当前位置: 首页 > news >正文

Unity面试笔记:Unity常见关键词概念

Unity面试笔记:Unity常见关键词概念

    • Invoke 延迟函数 和 Coroutine协程 和 Thread线程
    • 帧缓冲区(Frame buffer)
    • 颜色缓冲区(Color buffer)
    • 深度缓冲区(Depth buffer)
    • 模板缓冲区(Stencil buffer)
    • Image和RawImage,
    • Texture和Sprite有什么区别
    • alpha blend工作原理
    • LOD 多层次细节处理技术
    • Text 和 TMPText的区别 优缺点
    • MeshRender中material和shader的区别?
    • MeshRender中material和 sharedmaterial的区别?
    • MeshRenderer 和 SkinnedMeshRenderer 和 Renderer
    • MipMap
    • 什么是LightMap?
    • shader 分类
    • Vertex Shader是什么,怎么计算?
    • image.alphaHitTestMinimumThreshold

Invoke 延迟函数 和 Coroutine协程 和 Thread线程

Invoke:延迟函数,通过方法名延迟调用对应函数
注意:当此脚本或者当前脚本所在的游戏物体失活,延迟函数依然会执行;
但是当前脚本或者游戏物体被销毁,延迟函数就不会执行协程,不同于多线程,它不是一个线程,依附于Unity主线程Unity中的协程由协程函数和协程调度器两部分构成。
协程函数使用的是C#的迭代器, 协程调度器则利用了MonoBehaviour中的生命周期函数来实现。
协程函数实现了分步, 协程调度器实现了分时. 
注:因为协程分时分步执行的特性,当多个协程的耗时操作挤在同一时间执行也会造成卡顿。
应用场景1.www加载网络数据;2.异步加载资源,场景
挂载此脚本的组件和物体销毁,协程将不会执行;
物体失活协程不执行;组件失活协程执行。协程和线程区别:
新开一个线程是独立的一个管道,和主线程并行执行;新开一个协程是在原线程之上开启,进行逻辑分时分步执行;
新开的线程无法访问Unity对象,无法使用unity中的api
新开的线程记得关闭 要不然会一直运行。
同一时间只能执行某个协程,同一时间可以同时执行多个线程

帧缓冲区(Frame buffer)

帧缓冲区也被叫做显存,它的作用是用来存储显卡芯片处理过或者即将提取的渲染数据。
帧缓冲可能是GPU专属内存,也可能是GPU和CPU共享内存,看硬件。

颜色缓冲区(Color buffer)

用于绘图的缓冲区,它包含了颜色索引或者RGBA颜色数据

深度缓冲区(Depth buffer)

与帧缓冲区对应,存储每个像素的深度值,通过深度缓冲区,我们可以进行深度测试。
当启动深度测试时,片段像素深度值和深度缓冲区深度值进行比较,从而确定像素的遮挡关系
保证渲染正确,决定片段哪些像素点数据可以替换到颜色缓冲区中。

模板缓冲区(Stencil buffer)

与颜色缓冲区和深度缓冲区类似,模板缓冲区可以为屏幕上的每个像素点保存一个无符号整数值。
这个值的具体意义视程序的具体应用而定。
在渲染的过程中,可以用这个值与一个预先设定的参考值相比较,根据比较的结果来决定是否更新相应的像素点的颜色值。
这个比较的过程被称为模板测试。模板测试发生在透明度测试(alpha test)之后,深度测试(depth test)之前。
如果模板测试通过,则相应的像素点更新,否则不更新。模板缓冲区 用于规范颜色缓冲区 的运作范围

Image和RawImage,

Imgae比RawImage更消耗性能
Image只能使用Sprite属性的图片,但是RawImage什么样的都可以使用
Image适合放一些有操作的图片,裁剪平铺旋转什么的,针对Image Type属性
RawImage就放单独展示的图片就可以,性能会比Image好很多

Texture和Sprite有什么区别

Sprite作为UI精灵使用,Texture作用模型贴图使用。

alpha blend工作原理

Alpha Blend 实现透明效果,不过只能针对某块区域进行alpha操作,透明度可设。
Color = 原颜色*alpha/255+目标色*(255-alpha)/255

LOD 多层次细节处理技术

LOD多层次细节,是最常用的游戏优化技术。
它按照模型的位置和重要程度决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。
缺点:增加了内存

Text 和 TMPText的区别 优缺点

Text是像素渲染放大之后就会模糊,使用Text父物体的放大缩小会影响子物体Text的清晰度, 
TMPText不会,它是网格渲染TMPText会把字体生成一个类似于贴图的东西然后读取贴图的坐标来获取对应的文字,
更换文字的消耗会比Text大。
TMPText更适用于不会变动的文字,特别是在量大的情况下,性能比Text高一些,需要经常变动的问题用Text好点,
TMPText在字体库很大的情况下查找更换会比较慢。

MeshRender中material和shader的区别?

MeshRender是模型渲染的组件,有此组件物体才能显示出来
Material是材质球,实际就是shader的实例,并进行赋值,贴图、纹理、颜色等。
Shader是着色器,实际上是一段程序,还可以用来实现一些仅靠贴图不容易实现的效果,如玻璃。
Shader大致分为:
1.表面着色器
2.顶点和片元着色器
3.固定功能着色器

MeshRender中material和 sharedmaterial的区别?

修改sharedMaterial将改变所有物体使用这个材质 的外观,并且也改变储存在工程里的材质设置。
不推荐修改由sharedMaterial返回的材质。如果你 想修改渲染器的材质,使用material替代。当使用Renderer.material的时候,每次调用都会生成一个新的material到内存中去.
这在销毁物体的时候需要我们手动去销毁该material,否则会一直存在内存中。
也可以在场景替换的时候使用Resources.UnloadUnusedAssets去统一释放内存。当使用Renderer.sharedMaterial的时候并不会生成新的material,而是直接在原material上修改,
并且修改后的设置就会被保存到项目工程中。一般不推荐使用这个去修改.

MeshRenderer 和 SkinnedMeshRenderer 和 Renderer

MeshRenderer 和 SkinnedMeshRenderer 都继承自Renderer类,两个类都和网格有关。
MeshRenderer 一般引用于没有动画的模型身上,比如建筑,石头,树木等。
SkinnedMeshRenderer 一般应用于具有蒙皮动画、表情动画的应用场景中。

MipMap

MipMap:为了加快渲染速度和减少图像锯齿,贴图被处理成由一系列被预先计算和优化过的图片组成的文件。
优点:优化显存带宽,用来减少渲染。因为可以根据距离摄像机远近,选择适合的贴图来渲染。所以UI不适用MipMap。
缺点:运行时占用更多内存,且增加包的容量。

什么是LightMap?

Unity的Lightmap是一种用于预计算光照信息的技术,可以提高场景的渲染效率和真实感。使用Lightmap可以实现以下效果:
1.实时光照的替代:实时光照计算通常比较昂贵,尤其是在复杂的场景中。
通过预计算光照信息并将其存储在Lightmap中,可以避免在运行时进行实时光照计算,从而提高渲染性能。
2.高质量的间接光照:Lightmap可以捕捉到场景中物体之间的间接光照信息,包括反射和遮挡。
这可以增加场景的真实感,并在计算上比实时计算的间接光照更高效。
3.静态物体的持久光照效果:对于静态不变的物体,例如墙壁、地面等,
其光照信息可以在编辑器中进行烘焙,并在运行时保持不变。
这意味着即使在场景中移动相机或物体,它们的光照效果也会保持一致。使用Unity的Lightmap需要以下步骤:
1.设置光照:在Unity编辑器中,可以选择合适的光照设置,包括光源类型、光源参数、间接光照参数等。
2.烘焙Lightmap:在编辑器中,可以选择进行Lightmap烘焙操作。
这将会将光照信息计算并存储在场景中的物体的纹理中。
3.应用Lightmap:在运行时,Unity会自动将Lightmap应用于相应的物体。
可以通过设置物体的渲染器组件来控制Lightmap的使用方式。注意的是,Lightmap适用于静态不变的物体,例如墙壁、地面等。
对于动态或可移动的物体,可以使用实时光照计算技术,如实时阴影、实时全局光照等。
使用Lightmap可以提高场景的视觉效果和性能,并在静态物体上获得高质量的光照效果。
它在许多类型的游戏和应用程序中广泛应用,包括建筑可视化、虚拟现实、游戏开发等。

shader 分类

表面着色器的抽象层次比较高,
它可以轻松地以简洁方式实现复杂着色,表面着色器可同时在前向渲染及延迟渲染模式下正常工作。顶点片段着色器可以非常灵活地实现需要的效果,但是需要编写更多的代码,并且很难与Unity的渲染管线完美集成。固定功能管线着色器可以作为前两种着色器的备用选择,
当硬件无法运行哪些酷炫的Shader的时候,还可以通过固定功能管线着色器来绘制出一些基本的内容

Vertex Shader是什么,怎么计算?

Vertex Shader 中文意思就是顶点着色器,是一段执行在GPU上的程序,
用来取代fixed pipeline中的transformation和lighting,Vertex Shader主要操作顶点。

image.alphaHitTestMinimumThreshold

UGUI实现不规则图片点击(像素点击)的简单方法
1.开启图片的Read/Write Enabled
2.设置 image.alphaHitTestMinimumThreshold属性

相关文章:

Unity面试笔记:Unity常见关键词概念

Unity面试笔记:Unity常见关键词概念 Invoke 延迟函数 和 Coroutine协程 和 Thread线程帧缓冲区(Frame buffer)颜色缓冲区(Color buffer)深度缓冲区(Depth buffer)模板缓冲区(Stencil…...

gRPC vs HTTP

性能 gRPC 消息使用 Protobuf(一种高效的二进制消息格式)进行序列化。 Protobuf 在服务器和客户端上可以非常快速地序列化。 Protobuf 序列化产生的有效负载较小,这在移动应用等带宽有限的方案中很重要。 gRPC 专为 HTTP/2(HTTP…...

vue 导出el-table表格数据

1.先安装 file-saver 、xlsx 组件 npm install file-saver -Snpm intsall xlsx -S 2.html 代码 <el-table :data"elTable" ref"" id"table-content"><el-table-column label"其他" align"center"></el-…...

【问题记录】AttributeError: module ‘numpy‘ has no attribute ‘bool‘

服务器上运行代码报错&#xff1a; /opt/conda/envs/clrnet/lib/python3.8/site-packages/imgaug-0.4.0-py3.8.egg/imgaug/augmenters/meta.py:3368: FutureWarning: In the future np.bool will be defined as the corresponding NumPy scalar. augmenter_active np.zeros((n…...

WordPress企业模板

首页大图wordpress外贸企业模板 橙色的wordpress企业模板 演示 https://www.zhanyes.com/waimao/6250.html...

Intel Quartus II IP之DP1.4 工程的创建与使用

前述&#xff1a; Win10电脑安装了Quartus 21.4&#xff0c;这可以满足绝大多数工程&#xff0c;特别是对于简单调用fifo/ram等的工程&#xff0c;但是想要学习Quartus的HDMI/DP等高速接口类IP&#xff0c;首先需要创建HDMI/DP IP的设计demo工程&#xff0c;此时还需要安装Ecl…...

k8s集群环境搭建以及插件安装

前置条件 终端工具MobaXterm很好用。 1、虚拟机三台&#xff08;ip按自己的网络环境相应配置&#xff09;(master/node) 节点ipk8s-master192.168.200.150k8s-node1192.168.200.151k8s-node2192.168.200.152 2、关闭防火墙(master/node) systemctl stop firewalld systemc…...

面试的那些事儿

先从面试来说 假如你是网申&#xff0c;你的简历必然会经过HR的筛选&#xff0c;一张简历HR可能也就花费10秒钟看一下&#xff0c;然后HR 就会决定你这一关是Fail还是Pass。 假如你是内推&#xff0c;如果你的简历没有什么优势的话&#xff0c;就算是内推你的人再用心&#x…...

ffmpeg音视频解码

ffmpeg音视频解码 一.编译ffmpeg1.安装vmware虚拟机2.vmware虚拟机安装linux操作系统3.安装ftp和fshell软件4.在Ubuntu&#xff08;Linux&#xff09;中编译Android平台的FFmpeg&#xff08; arm和x86 &#xff09;5.解压FFmpeg6.Android编译脚本&#xff08;1&#xff09;修改…...

uniapp uni.chooseLocation调用走失败那里,错误码:112

问题&#xff1a;我配置了百度上所有能配置的&#xff0c;一直调用不成功&#xff0c;如下图配置的 1:第一个 配置 代码&#xff1a; "permission": {"scope.userLocation": {"desc": "你的位置信息将用于小程序位置接口的效果展示"}…...

第一次开发基于SpringBoot的Java应用

第一次开发基于SpringBoot的Java应用 一、 方式1&#xff1a;IDEA创建New Project Spring Boot官方文档的Getting Started1、IDEA创建New Project2、Spring Boot官方文档的Getting Started2.1 Creating the POM &#xff08;实际是&#xff0c;更新pom.xml&#xff09;2.2 Add…...

回归预测 | Matlab实现MSADBO-CNN-LSTM基于改进蜣螂算法优化卷积神经网络-长短期记忆神经网络多特征回归预测

回归预测 | Matlab实现MSADBO-CNN-LSTM基于改进蜣螂算法优化卷积神经网络-长短期记忆神经网络多特征回归预测 目录 回归预测 | Matlab实现MSADBO-CNN-LSTM基于改进蜣螂算法优化卷积神经网络-长短期记忆神经网络多特征回归预测预测效果基本描述程序设计参考资料 预测效果 基本描…...

数据结构--排序

参考【算法】排序算法之希尔排序 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/122632213 1. 排序的定义 2. 插入排序 2.1 直接插入排序 在插入第i&#xff08;i>1)个记录时&#xff0c;前面的i-1个记录已经排好序 void insertSort(int r[],int n) {for(int i2;i<…...

Androidmanifest文件加固和对抗

前言 恶意软件为了不让我们很容易反编译一个apk&#xff0c;会对androidmanifest文件进行魔改加固&#xff0c;本文探索androidmanifest加固的常见手法以及对抗方法。这里提供一个恶意样本的androidmanifest.xml文件&#xff0c;我们学完之后可以动手实践。 1、Androidmanife…...

openssl3.2 - 官方demo学习 - cms - cms_denc.c

文章目录 openssl3.2 - 官方demo学习 - cms - cms_denc.c概述笔记END openssl3.2 - 官方demo学习 - cms - cms_denc.c 概述 将CMS数据结构写入PEM文件, 并将分离后的加密数据单独写到数据文件. 笔记 /*! \file cms_denc.c * \note openssl3.2 - 官方demo学习 - cms - cms_d…...

【Linux 命令】tree 对目录进行树形展示

目录 1、tree 命令功能展示 2、tree 命令安装 3、tree 命令语法及其参数功能 4、终止 tree 展开树命令 1、tree 命令功能展示 在 Linux 中&#xff0c;我们使用 ll 命令对目录的展示并不太方便我们查看&#xff0c;不太清晰明了&#xff0c;所以我们可以使用 tree 命令以…...

掌握Spring MVC拦截器整合技巧,实现灵活的请求处理与权限控制!

拦截器 1.1 拦截器概念1.2 拦截器入门案例1.2.1 环境准备1.2.2 拦截器开发步骤1:创建拦截器类步骤2:配置拦截器类步骤3:SpringMVC添加SpringMvcSupport包扫描步骤4:运行程序测试步骤5:修改拦截器拦截规则步骤6:简化SpringMvcSupport的编写 1.3 拦截器参数1.3.1 前置处理方法1.3…...

使用xbindkeys设置鼠标侧键

1.安装如下包 sudo apt install xbindkeys xautomation 2.生成配置文件 xbindkeys --defaults > $HOME/.xbindkeysrc 3.确定侧键键号 在终端执行下面的代码&#xff1a; xev | grep button 此时会出现如下窗口&#xff0c;将鼠标指针移动到这个窗口上&#xff1a; 单…...

跨站点请求伪造攻击 - Cross Site Request Forgery (CSRF)

什么是CSRF 最好理解CSRF攻击的方式是看一个具体的例子。 假设你的银行网站提供一个表单,允许当前登录用户将钱转账到另一个银行账户。例如,转账表单可能如下所示: <form method="post"action="/transfer"> <...

PLAN B KRYPTO ASSETS GMBH CO. KG 普兰资产管理公司

引领加密技术不断演进 PLAN B KRYPTO ASSETS普兰资产管理以其独创的「Trident Strategy三叉戟模型」技术为基础&#xff0c;持续推动加密技术的发展&#xff0c;打造 Schutz&#xff08;舒茨盾&#xff09; AI 金融隐私匿名公链。致力于提供高效的技术服务&#xff0c;基于机构…...

Java 语言特性(面试系列1)

一、面向对象编程 1. 封装&#xff08;Encapsulation&#xff09; 定义&#xff1a;将数据&#xff08;属性&#xff09;和操作数据的方法绑定在一起&#xff0c;通过访问控制符&#xff08;private、protected、public&#xff09;隐藏内部实现细节。示例&#xff1a; public …...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中&#xff0c;各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过&#xff0c;在涉及到多个子类派生于基类进行多态模拟的场景下&#xff0c;…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业&#xff0c;项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升&#xff0c;传统的管理模式已经难以满足现代工程的需求。过去&#xff0c;许多企业依赖手工记录、口头沟通和分散的信息管理&#xff0c;导致效率低下、成本失控、风险频发。例如&#…...

基础测试工具使用经验

背景 vtune&#xff0c;perf, nsight system等基础测试工具&#xff0c;都是用过的&#xff0c;但是没有记录&#xff0c;都逐渐忘了。所以写这篇博客总结记录一下&#xff0c;只要以后发现新的用法&#xff0c;就记得来编辑补充一下 perf 比较基础的用法&#xff1a; 先改这…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版&#xff01;&#xff01;&#xff01;6.8截至答题&#xff0c;大家注意呀&#xff01; 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:&#xff08; B &#xff09; A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill

视觉语言模型&#xff08;Vision-Language Models, VLMs&#xff09;&#xff0c;为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展&#xff0c;机器人仍难以胜任复杂的长时程任务&#xff08;如家具装配&#xff09;&#xff0c;主要受限于人…...

【JVM】Java虚拟机(二)——垃圾回收

目录 一、如何判断对象可以回收 &#xff08;一&#xff09;引用计数法 &#xff08;二&#xff09;可达性分析算法 二、垃圾回收算法 &#xff08;一&#xff09;标记清除 &#xff08;二&#xff09;标记整理 &#xff08;三&#xff09;复制 &#xff08;四&#xff…...

libfmt: 现代C++的格式化工具库介绍与酷炫功能

libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库&#xff0c;提供了高效、安全的文本格式化功能&#xff0c;是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全&#xff1a…...

DAY 26 函数专题1

函数定义与参数知识点回顾&#xff1a;1. 函数的定义2. 变量作用域&#xff1a;局部变量和全局变量3. 函数的参数类型&#xff1a;位置参数、默认参数、不定参数4. 传递参数的手段&#xff1a;关键词参数5 题目1&#xff1a;计算圆的面积 任务&#xff1a; 编写一…...

加密通信 + 行为分析:运营商行业安全防御体系重构

在数字经济蓬勃发展的时代&#xff0c;运营商作为信息通信网络的核心枢纽&#xff0c;承载着海量用户数据与关键业务传输&#xff0c;其安全防御体系的可靠性直接关乎国家安全、社会稳定与企业发展。随着网络攻击手段的不断升级&#xff0c;传统安全防护体系逐渐暴露出局限性&a…...