- 博客(16)
- 收藏
- 关注
原创 面试题5:简述一下GPU Instancing和MaterialPropertyBlock是什么?
GPU Instancing(GPU 实例化)是一种渲染技术,它允许在一次渲染调用中绘制同一网格(Mesh)的多个实例,并且每个实例可以有不同的属性,如位置、旋转、缩放、颜色等。该技术主要用于高效渲染大量相同模型的场景,能够显著减少 CPU 与 GPU 之间的通信开销,提高渲染性能。MaterialPropertyBlock(材质属性块)是一种用于在运行时修改材质属性的机制,它允许你在不创建新材质实例的情况下,为每个渲染对象设置不同的材质属性,如颜色、纹理、数值等。
2025-03-05 12:31:10
889
原创 面试题4: unity中的meta文件的作用?
在 Unity 中,.meta是每个资源(Assets)的,它与资源文件(如.png.fbx.cs等)一一对应,记录了该资源在 Unity 项目中的关键配置信息。
2025-03-05 11:47:04
484
原创 面试题3:简述下面函数的执行顺序和执行机制?
协程的执行顺序严格依赖Unity引擎的帧阶段,理解这一点可避免逻辑时序错误。:时间从调用时开始累积,若时间未到,协程会持续暂停。:暂停协程一帧,等待当前帧结束(等价于。假设协程在一个帧循环中依次执行这四个。所有渲染完成后,协程恢复执行后续代码。:前者与物理更新同步,后者与渲染同步。:常用于截图、渲染后处理等操作。:前者等待一帧,后者等待时间。在Unity协程中,这些。:常用于与物理引擎(
2025-03-05 11:20:12
272
原创 面试题1:简述场景的中的渲染顺序,如何进行设置?
多个相机时,Unity会按照相机的深度值从小到大的顺序依次渲染相机。深度值低的相机先渲染,深度值高的相机后渲染,后渲染的相机内容会覆盖在先渲染的相机内容之上。这是Unity中控制渲染顺序的主要方式,每个材质都有一个渲染队列值,Unity会按照渲染队列值从小到大的顺序进行渲染。同时,也可以设置 UI 元素的 “Order in Layer” 属性,该属性决定了同一 Canvas 内 UI 元素的渲染顺序,值越大越后渲染。对于同一渲染队列中的物体,Unity会根据物体与相机的距离来决定渲染顺序。
2025-03-04 15:10:35
421
原创 38头牛中选出3头跑得最快的,使用一个每次只能供6头牛比赛的场地,要求用最快的方法?
同时,D1、E1、F1所在组的所有牛都不可能进入前三名了(因为它们组的第一名都不是前三名),所以可以淘汰D组、E组、F组的所有牛。假设这6头牛的名次为A1、B1、C1、D1、E1、F1(A1表示A组的第一名,以此类推),且A1>B1>C1>D1>E1>F1。把这1头牛和刚才6头牛中排名前2的(X1、X2)和A1一起进行比赛,就可以确定38头牛中排名第一、第二和第三的牛了。假设这6头牛的名次为X1、X2、X3、X4、X5、X6(X1表示这6头牛中最快的,以此类推)。第一次复赛进行了1次(6组第一名的比赛)。
2025-03-04 09:52:27
224
原创 Unity中SpriteEditor Single单张图片编辑和Multiple图集编辑
注意:如果在切回Single 时,要删除之前在 Custom Outline 和Custom Physics Shape 设置的渲染区域和物理形状,否则会保留之前的数据。2、Offset 当图集的分割在图片边缘时,X:为起始分割点距离图片最左边的一个偏移量,Y为起始分割点距离图片最顶端的一个偏移量。3 Padding X为各精灵图片之间的水平间隔,Y 为各精灵图片之间的垂直间隔。1、PixelSize X,Y 为分割的矩形的边框的长和宽的大小。决定了图片的碰撞区域,跟Custom Outline类似。
2024-10-30 16:08:46
1232
1
原创 匿名函数、Lambad表达式和闭包
可以将lambad表达式理解为匿名函数的简写,它除了写法不同外,使用上和匿名函数一模一样都是和委托或者事件配合使用的。内层的函数可以引用包含在它外层的函数的变量即使外层函数的执行已经终止注意: 该变量提供的值并非变量创建的值,而是在父函数范围内的最终值(去代码中理解)
2024-09-12 20:53:54
349
原创 C# 事件与委托
通俗易懂的理解:委托是函数(方法)的容器,可以理解为表示函数(方法)的变量类型,用来储存、传递函数(方法)。委托的本质是一个类,用来定义函数(方法)的类型(返回值和参数的类型)。因为函数本身存在常规变量的参数,所以当函数作为参数传递的时候,一定要让函数申明格式和委托的定义格式参数和返回值上面要一 一对应。事件是基于委托的存在,事件是委托的安全包裹(或者说是委托的封装),让委托的使用更具有安全性,事件是一种特殊的变量类型。Func: 有返回值,有0-16位参数的委托,参数类型为:泛型,返回值类型为:泛型。
2024-09-11 18:38:04
499
原创 Unity中的渲染管线
渲染管线执行一系列操作来获取场景的内容,并将这些内容显示在屏幕上。剔除渲染后期处理不同的渲染管线具有不同的功能和性能特征,并且适用于不同的游戏、应用程序和平台。将项目从一个渲染管线切换到另一个渲染管线可能很困难,因为不同的渲染管线使用不同的着色器输出,并且可能没有相同的特性。因此,必须要了解 Unity 提供的不同渲染管线,以便可以在开发早期为项目做出正确决定。面试题:解释一下Unity中的渲染管线(Rendering Pipeline)是什么,如何使用它,并举例说明它在游戏开发中的应用场景?
2024-08-26 11:31:27
490
原创 程序的驼峰命名法
骆驼式命名法就是当变量名或函数名是由一个或多个单词连结在一起,而构成的唯一识别字时,第一个单词以小写字母开始;从第二个单词开始以后的每个单词的首字母都采用大写字母,例如:myFirstName、myLastName,这样的变量名看上去就像骆驼峰一样此起彼伏,故得名。骆驼式命名法的命名规则可视为一种惯例,并无绝对与强制,为的是增加识别和可读性。
2024-08-08 17:57:38
260
原创 逻辑推理题:砝码称重
如果下沉,则把下沉的那一组,拿2个出来(一边放一个),如果下沉,则。题目:有8个砝码和一台天平秤,其中有一个砝码稍微重一点,问至少需要几次称重,才可以找出那个重一点的砝码?找出,不下沉,则 剩下的那一个为重的。2、在把下沉的一方,两两一组,分成2组,放入天平秤,如果下沉的一方,则重的再里面。分析:8个砝码,再把他们分组,分成3(3个砝码),3(3个砝码),2 (2个砝码)先称3和3,如果不下沉,则去称2(分成1和1),则可找出重的那一个。3、再把下沉的一方,一边放一个,下沉的一方,则找出重的那一个。
2024-04-09 14:14:44
978
1
原创 逻辑算法题
题目:有1000瓶水,其中一瓶水是有毒的,喝下后24小时后才会死,现在用小白鼠来测试哪一瓶水有毒,至少需要用多少只小白鼠才能测出哪一瓶是有毒的水(需要24小时后,立马出结果)喝以后,24小时后这个编号位置上站的老鼠就会死亡,把编列组合的编号换算成10进制数就得到有毒水的编号:(左边为高位,右边为低位)那就有第2只老鼠,第4只老鼠,第6只老鼠,第8只老鼠,第9只老鼠去喝这个编号有毒的水,相当于:站队的有第3只老鼠,第6只老鼠 ,第10只老鼠,这样就代表了一个瓶子的编号。10位二进制数字,相当于10个位置,
2024-04-07 17:54:26
913
原创 lua排序算法-插入排序
它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。在最坏情况下,即待排序数组逆序排列时,插入排序的时间复杂度达到最大值。然而,在小规模或部分有序的数组中,插入排序算法的效率是很高的。另外,插入排序是一种稳定的排序方法,即相等元素的相对顺序在排序后保持不变。
2024-03-14 18:04:56
767
原创 Lua 排序算法-选择排序
它的工作原理如下,首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。2、 如果遇到比当前比较的数还小的数,则记录下标,再与下个数字比较时,拿记录好的最小数与 下个数字进行比较。一次内循环下来,则能找出剩下未排序序列中最小的数字。1 、迭代剩下的元素,寻找最小的元素: 拿序列得第i(i从1开始)个数 与剩下得数,挨个比较。3、再外循环中,拿找出的最小数与第i个数字进行位置交换(i从1开始)
2024-03-13 17:43:37
530
原创 Lua 排序算法-冒泡排序
冒泡排序(泡沫排序或气泡排序)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
2024-03-12 14:14:17
690
1
原创 关于屏幕坐标转3D场景射线问题(屏幕位置转射线)
Ray ray= Camera.main.ScreenPointToRay(Input.mousePosition); 表示屏幕坐标上的点通过光线投射到三维场景中的某一点的坐标转换。产生的射线是在世界空间中,从相机的近裁剪面开始并穿过屏幕position(x,y)像素坐标(position.z被忽略)。屏幕空间以像素定义。屏幕的左下为(0,0);右上是(pixelWidth,pi
2016-05-04 15:45:32
990
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人