Unity笔试题面试题汇总

来源:互联网 发布:高中化学辅导书 知乎 编辑:程序博客网 时间:2024/05/16 16:22

特别说明:
本文的题目均来自个人求职过程中的总结或网上文章汇总的问题,对于所列的题目,会在网上搜索相应问题并加上自己的理解进行解答,如存在不足错误之处,请联系本人以作修改。


  1. Draw Call是什么?为什么要减少Draw Call的次数?
    答:Unity每次在准备数据并通知GPU渲染的过程称为一次Draw Call。一般情况下,渲染一次拥有一个网格并携带一种材质的物体便会使用一次Draw Call。对于渲染场景中的这些物体,在每一次Draw Call中除了在通知GPU的渲染上比较耗时之外,切换材质与shader也是非常耗时的操作。

  2. Material和Shader的区别。
    答:Material里包含Shader,Shader事实上是一个小程序,当我们输入Mesh(网格)(它会以指定的方式输出)或输入贴图或颜色(进行组合等作用)后,Shader会将输出和输入参数打包存储在一起,这个就是Material。

  3. 请描述游戏动画有几种,以及其原理。
    答:主要有关节动画、骨骼动画和单一网格模型动画(关键帧动画)。
    关节动画:把角色分成若干个独立部分,一部分对应一个网格模型,部分的动画连接成一个整体的动画。
    单一网格模型动画:由一个网格模型构成,在动画序列的关键帧里记录各顶点的原始位置和改变,用插值运算实现动画效果。
    骨骼动画:集合了以上两个动画的优点。骨骼用关节动画实现,皮肤用单一网格模型动画实现,骨骼的运动会使得皮肤上的网格模型的点受影响。

  4. Unity脚本的生命周期。
    答:Awake—>Start—>Update—>FixedUpdate—>LateUpdate—>OnGUI—>Reset—>OnDisable—>OnDestroy。

  5. Update、FixedUpdate和LateUpdate的区别。
    答:Update和当前平台的帧数有关,如果当前机器太卡的话会出现漏帧的情况,用来做物体的渲染和画面的改变。
    FixedUpdate是和时间相关的,一定会被执行到,所以和时间有关的物理逻辑都要放在FixedUpdate中。
    LateUpdate是在所有的Update执行后,再执行的。

  6. 渲染和3D渲染管线分别是什么。
    答:渲染是将三维物体或三维场景转化为二维图像的一个过程。
    渲染管线:顶点处理,面处理,光栅化,像素处理。

  7. AssetBundle的内存分配:
    待补充。

  8. 什么是协同程序?
    在主线程运行的同时开启另一段逻辑处理,来协助当前程序的执行,协程很像多线程,但是不是多线程,Unity的协程实在每帧结束之后去检测yield的条件是否满足。

  9. :Unity3d中的碰撞器和触发器的区别?
    碰撞器是触发器的载体,而触发器只是碰撞器身上的一个属性。当Is Trigger=false时,碰撞器根据物理引擎引发碰撞,产生碰撞的效果,可以调用OnCollisionEnter/Stay/Exit函数;当Is Trigger=true时,碰撞器被物理引擎所忽略,没有碰撞效果,可以调用OnTriggerEnter/Stay/Exit函数。如果既要检测到物体的接触又不想让碰撞检测影响物体移动或要检测一个物件是否经过空间中的某个区域这时就可以用到触发器。

  10. 物体发生碰撞的必要条件?
    两个物体都必须带有碰撞器(Collider),其中一个物体还必须带有Rigidbody刚体,而且必须是运动的物体带有Rigidbody脚本才能检测到碰撞。

  11. 请简述ArrayList和List的主要区别?
    ArrayList存在不安全类型(ArrayList会把所有插入其中的数据都当做Object来处理),装箱拆箱的操作(费时),List是泛型类,功能跟ArrayList相似,但不存在ArrayList所说的问题。

  12. Unity提供了几种光源,分别是什么
    四种。
    平行光:Directional Light
    点光源:Point Light
    聚光灯:Spot Light
    区域光源:Area Light

  13. 摄像机的工作方式。
    perspective透视摄像机(和我们眼睛看到的一样)和orthographic正交摄像机(不会随着物体距离的变化而变化大小)。

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

  15. MipMap是什么,其作用是什么 ?
    MipMap:在三维计算机图形的贴图渲染中有常用的技术,为加快渲染进度和减少图像锯齿,贴图被处理成由一系列被预先计算和优化过的图片组成的文件,这样的贴图被称为MipMap。

  16. alpha blend 工作原理
    实际显示颜色 = 前景颜色Alpha/255 + 背景颜色(255-Alpha)/255。

  17. 用u3d实现2d游戏,有几种方式?
    1.利用引擎自带的GUI。
    2.把摄像机设为Orthographic,用面片作为2d元素。
    3.利用第三方插件:NGUI、2dToolkit。

  18. CharacterController和Rigidbody的区别。
    Rigidbody具有完全真实物理的特性,而CharacterController可以说是受限的Rigidbody,具有一定的物理效果但不是完全真实的。

  19. u3d下如何安全的在不同工程迁移asset数据。
    方法1,可以把assets目录和Library目录一起迁移。
    方法2,导出包。
    方法3,用unity带的assets server功能。

原创粉丝点击