千锋Unity游戏开发培训老师 分享十道最常见的面试题
Unity3D作为当前最为火爆的游戏开发引擎,受到众多游戏开发厂家的欢迎。对于很多刚学完Unity3D初入职场的菜鸟,在面试时的表现决定了你谈薪资时的底气。今天千锋Unity3D游戏开发培训老师就给大家分享几道经常遇见的面试题。
一.写光照计算中的diffuse的计算公式
实际光照强度 I= 环境光(Iambient) + 漫反射光(Idiffuse) + 镜面高光(Ispecular);
环境光:Iambient= Aintensity* Acolor; (Aintensity表示环境光强度,Acolor表示环境光颜色)
漫反射光:Idiffuse = Dintensity*Dcolor*N.L;
(Dintensity表示漫反射强度,Dcolor表示漫反射光颜色,N为该点的法向量,L为光源向量)
镜面反射光:Ispecular = Sintensity*Scolor*(R.V)^n;
(Sintensity表示镜面光照强度,Scolor表示镜面光颜色,R为光的反射向量,V为观察者向量,n称为镜面光指数)
二.lod是什么,优缺点是什么
LOD技术即Levels of Detail的简称,意为多细节层次。LOD技术指根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。
优点:可根据距离动态地选择渲染不同细节的模型
缺点:加重美工的负担,要准备不同细节的同一模型,同样的会稍微增加游戏的容量。
三.物体发生碰撞时,有几个阶段,分别对应的函数
三个阶段,OnCollisionEnter/Stay/Exit函数
四.alpha blend 工作原理
实际显示颜色 = 前景颜色*Alpha/255 + 背景颜色*(255-Alpha)/255
五.用[color=rgb(85, 85, 85) !important]u3d实现2d游戏,有几种方式?
1.利用引擎自带的GUI
2.把摄像机设为Orthographic,用面片作为2d元素
3.利用第三方插件:NGUI、2dToolkit
六.u3d中碰撞器和触发器的区别?
collider碰撞器会有碰撞的效果,IsTrigger = false,可以调用OnCollisionEnter/Stay/Exit函数
trigger触发器没有碰撞效果,isTrigger = true,可以调用OnTriggerEnter/stay/exit函数
七.Unity3d从唤醒到销毁有一段生命周期,请列出系统自己调用的几个重要方法。
Awake –>OnEnable –> Start –> Update –> FixedUpdate –> LateUpdate –> OnGUI –> Reset –> OnDisable –> OnDestroy
八.物理更新一般在哪个系统函数里?
FixedUpdate,每固定帧绘制时执行一次,和update不 同的是FixedUpdate是渲染帧执行,如果你的渲染效率低下的时候FixedUpdate调用次数就会跟着下降。FixedUpdate比较适用于 物理引擎的计算,因为是跟每帧渲染有关。Update就比较适合做控制。
九.移动相机动作在哪个函数里,为什么在这个函数里。
LateUpdate,,是在所有update结束后才调,比较适合用于命令脚本的执行。官网上例子是摄像机的跟随,都是在所有update操作完才跟进摄像机,不然就有可能出现摄像机已经推进了,但是视角里还未有角色的空帧出现。
十.当游戏中需要频繁创建一个物体对象时,我们需要怎么做来节省内存。
做一个pool,游戏开始时预先实例化足够的数量,然后用的时候取不用的时候收回。
如果你想加入培训机构,不如选择千锋Unity游戏开发培训,在千锋还有更切近于企业的项目资源管理解决方案。从AssetBundle打包到管理,再到加载,让学生了解项目资源管理的全过程,并协助学员完成自定义的AssetBund le框架。