Unity⾯试⼿册:中级开发⼯程师⾯试题
1.什么是渲染管道?
是指在显⽰器上为了显⽰出图像⽽经过的⼀系列必要操作。
渲染管道中的很多步骤,都要将⼏何物体从⼀个坐标系中变换到另⼀个坐标系中去。
主要步骤有:本地坐标->视图坐标->背⾯裁剪->光照->裁剪->投影->视图变换->光栅化。
2.如何进⾏内存优化?
1.压缩⾃带类库;
2.将暂时不⽤的以后还需要使⽤的物体隐藏起来⽽不是直接Destroy掉;
3.释放AssetBundle占⽤的资源;
4.降低模型的⽚⾯数,降低模型的⾻骼数量,降低贴图的⼤⼩;
5.使⽤光照贴图,使⽤多层次细节(LOD)[全称 Levels of Detail ,进⾏物体不同细节层次之间的平滑过渡。
根据物体所在的环境和所处位置的重要度,决定渲染。降低不重要和远的物体的⾯数和细节度。⼀般都是视距近的物体清楚,视距远的物体模糊。
3.动态加载资源的⽅式?
1.Resources.Load();
2.AssetBundle
4.什么是协同程序?
在主线程运⾏时同时开启另⼀段逻辑处理,来协助当前程序的执⾏。换句话说,开启协程就是开启⼀个线程。可以⽤来控制运动、序列以及对象的⾏为。
5.碰撞器和触发器的区别?
碰撞器有碰撞的效果,IsTrigger=false,可以调⽤OnCollisionEnter/Stay/Exit函数;
触发器没有碰撞效果,IsTrigger=true,可以调⽤OnTriggerEnter/Stay/Exit函数。
6.物体发⽣碰撞的必要条件?
两个物体都必须带有碰撞器(Collider),其中⼀个物体还必须带有Rigidbody刚体。
7.在物体发⽣碰撞的整个过程中,有⼏个阶段,分别列出对应的函数?
三个阶段:
1.OnCollisionEnter
2.OnCollisionStay
3.OnCollisionExit
8.Unity3d提供了⼀个⽤于保存和读取数据的类(PlayerPrefs),请列出保存和读取整形数据的函数?s
PlayerPrefs.SetInt() PlayerPrefs.GetInt()
9.解释⼀些Unity3d中的灯光有哪些?
有4种,点光源,区域光源,聚光灯,平⾏光。
10.Unity3d脚本从唤醒到销毁有着⼀套⽐较完善的⽣命周期,请举⼏个例⼦?
Awake——>Start——>Update——>FixedUpdate——>LateUpdate——>OnGUI——>Reset——>OnDisable——>OnDestroy
11.物流更新⼀般放在那个系统函数⾥?
FixedUpdate,每固定帧绘制时执⾏⼀次,和Update不同的是FixedUpdate是渲染帧执⾏。
如果你的渲染效率低下的时候FixedUpdate调⽤次数就会跟着下降。
FixedUpdate⽐较适⽤于物理引擎的计算,因为是跟每帧渲染有关。Update就⽐较适合做控制。
12.移动摄像机的动作放在那个系统函数中,为啥?
LateUpdate,在每帧执⾏完毕调⽤,它是在所有Update结束后才调,⽐较适合⽤于命令脚本的执⾏。官⽹上例⼦是摄像机的跟随,都是在所有Update操作完才跟进摄像机,不然就有可能出现摄像机已经推进了,但是视⾓⾥还未有⾓⾊的空帧出现。
13.当游戏中需要频繁创建⼀个物体时,我们需要怎么做?
使⽤预制物体对象Prefab,然后复制创建。
14.请简述Unity3d下如何安全的在不同⼯程间迁移asset数据,请列举出三种⽅法?
1.可以把assets⽬录和Library⽬录⼀起迁移
2.导出包
3.⽤Unity带的assets Server功能
15.请描述游戏动画有哪⼏种,以及其原理?
主要有关节动画、⾻骼动画、单⼀⽹格模型动画(关键帧动画)。
关节动画:把⾓⾊分成若⼲独⽴部分,⼀个部分对应⼀个⽹格模型,部分的动画连接成⼀个整体的动画,⾓⾊⽐较灵活,Quake2中使⽤这种动画;
⾻骼动画,⼴泛应⽤的动画⽅式,集成了以上两个⽅式的优点,⾻骼按⾓⾊特点组成⼀定的层次结构,有关节相连,可做相对运动,⽪肤作为单⼀⽹格蒙在⾻骼之外,决定⾓⾊的外观;
单⼀⽹格模型动画由⼀个完整的⽹格模型构成,在动画序列的关键帧⾥记录各个顶点的原位置及其改变量,然后插值运算实现动画效果,⾓⾊动画较真实。
16.MipMap是什么,作⽤?
MipMapping:在三维计算机图形的贴图渲染中有常⽤的技术,为加快渲染进度和减少图像锯齿,贴图被处理成由⼀系列被预先计算和优化过的图⽚组成的⽂件,这样的贴图被称为MipMap。
17.localPosition和Position的区别?
游戏开发工程师需要学什么
全局变量和局部变量
更多学习请参考

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。