Unity3D 面试题

Unity 3D本来是由德国的一些苹果粉丝开发的一款游戏引擎,一直只能用于Mac平台,所以一直不被业外人士所知晓。但是今年推出了2.5版,同时发布了PC版本,并将其发布方向拓展到手持移动设备。学完了unity技术,不知道怎么准备面试?Unity3D 面试题值得一看。

一、什么是渲染管道?

是指在显示器上为了显示出图像而经过的一系列必要操作。渲染管道中的很多步骤,都要将几何物体从一个坐标系中变换到另一个坐标系中去。

主要步骤有:本地坐标->视图坐标->背面裁剪->光照->裁剪->投影->视图变换->光栅化。

二、如何优化内存?有很多种方式,例如 1.压缩自带类库;

2.将暂时不用的以后还需要使用的物体隐藏起来而不是直接Destroy掉;

3.释放AssetBundle占用的资源;

4.降低模型的片面数,降低模型的骨骼数量,降低贴图的大小; 5.使用光照贴图,使用多层次细节(LOD),使用着色器(Shader),使用预设(Prefab)。

三、动态加载资源的方式?(有时候也问区别,具体请百度) 1.Resources.Load(); 2.AssetBundle 四、什么是协同程序?

在主线程运行时同时开启另一段逻辑处理,来协助当前程序的执行。换句话说,开启协程就是开启一个线程。可以用来控制运动、序列以及对象的行为。

四、CharacterController和Rigidbody的区别?

CharacterController自带胶囊碰撞器,里面包含有刚体的属性; Rigidbody就是刚体,使物体带有刚体的特征。

五、在物体发生碰撞的整个过程中,有几个阶段,分别列出对应的函数三个阶段

1.OnCollisionEnter 2.OnCollisionStay 3.OnCollisionExit

六、Unity3d的物理引擎中,有几种施加力的方式,分别描述出来 rigidbody.AddForce/AddForceAtPosition,都在rigidbody系列函数中。

七、什么叫做链条关节?

Hinge Joint,可以模拟两个物体间用一根链条连接在一起的情况,能保持两个物体在一个固定距离内部相互移动而不产生作用力,但是达到固定距离后就会产生拉力。

八、物体自身旋转使用的函数? Transform.Rotate()

九、物体围绕某点旋转使用的函数? Transform.RotateAround()

十、Unity3d提供了一个用于保存和读取数据的类(PlayerPrefs),请列出保存和读取整形数据的函数 PlayerPrefs.SetInt() PlayerPrefs.GetInt()

猜你喜欢

转载自www.cnblogs.com/unity--3d/p/9151574.html
今日推荐