Unity3d面试题总结

上传人:夏** 文档编号:432157913 上传时间:2023-03-13 格式:DOCX 页数:34 大小:44.01KB
返回 下载 相关 举报
Unity3d面试题总结_第1页
第1页 / 共34页
Unity3d面试题总结_第2页
第2页 / 共34页
Unity3d面试题总结_第3页
第3页 / 共34页
Unity3d面试题总结_第4页
第4页 / 共34页
Unity3d面试题总结_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《Unity3d面试题总结》由会员分享,可在线阅读,更多相关《Unity3d面试题总结(34页珍藏版)》请在金锄头文库上搜索。

1、本人总结的一些Unity3d高频面试题目,希望可以帮助到大家。 限于个人水平有限,只附上一些参考答案。数据结构和算法很重要,图形学也很重要!大的游戏公司很看重个人基础、综合能力;小公司看你实际工作能力,看你的Demo。高频问答的问题:一什么是渲染管道?是指在显示器上为了显示出图像而经过的一系列必要操作。渲染管道中的很多步骤,都要将几何物体从一个坐标系中变换到 另个坐标系中去。主要步骤有:本地坐标- 视图坐标- 背面裁剪- 光照- 裁剪- 投影- 视图变 换- 光栅化。二. 如何优化内存?有很多种方式,例如1. 压缩自带类库;2. 将暂时不用的以后还需要使用的物体隐藏起来而不是直接Destroy

2、 掉;3.释放AssetBundle占用的资源;4降低模型的片面数,降低模型的骨骼数量,降低贴图的大小;5.使用光照贴图,使用多层次细节(LOD),使用着色器(Shader), 使用预设(Prefab)。三、动态加载资源的方式?(有时候也问区别,具体请百度)1. Resources.Load();2. AssetBundle四、什么是协同程序?在主线程运行时同时开启另一段逻辑处理,来协助当前程序的执 行。换句话说,开启协程就是开启一个线程。可以用来控制运动、序 列以及对象的行为。五、你用过哪些插件?(最好多熟悉几个插件,问的时候好回答)1. 使用Unity3d实现2d游戏,有几种方式?1. 使

3、用本身的GUI ;2. 把摄像机的Projection投影)值调为Orthographic(正交投 影),不考虑z轴;3. 使用 2d 插件,如:2DToolKit;2. Unity3d中的碰撞器和触发器的区别?碰撞器有碰撞的效果,IsTrigger二false,可以调用OnCollisionEnter/Stay/Exit 函数;触发器没有碰撞效果,IsTrigger二true,可以调用 OnTriggerEnter/Stay/Exit 函数。3. 物体发生碰撞的必要条件两个物体都必须带有碰撞器(Collider),其中一个物体还必须带有 Rigidbody 刚体。4. CharacterCo

4、ntroller和 Rigidbody 的区别?Charactercontroller自带胶囊碰撞器,里面包含有刚体的属性;Rigidbody就是刚体,使物体带有刚体的特征。5. 在物体发生碰撞的整个过程中,有几个阶段,分别列出对应的函数三个阶段1.OnCollisionEnter2.OnCollisionStay3.OnCollisionExit6. Unity3d的物理引擎中,有几种施加力的方式,分别描述出来rigidbody.AddForce/AddForceAtPosition,者匕在 rigidbody 系 列函数中。7. 什么叫做链条关节?Hinge Joi nt,可以模拟两个物体

5、间用一根链条连接在一起的情 况,能保持两个物体在一个固定距离内部相互移动而不产生作用力, 但是达到固定距离后就会产生拉力。8. 物体自身旋转使用的函数?Transform.Rotate()9. 物体围绕某点旋转使用的函数?Transform.RotateAround()10. Unity3d提供了一个用于保存和读取数据的类(PlayerPrefs),请 列出保存和读取整形数据的函数PlayerPrefs.SetInt() PlayerPrefs.GetInt()11. Unity3d提供了几种光源类型,分别是哪几种?四种。平行光:DirectionalLight点光源:PointLight聚光

6、灯:SpotLight区域光源:AreaLight12. Unity3d脚本从唤醒到销毁有着一套比较完整的生命周期,请列 出系统自带的几个重要的方法。AwakeStartUpdateFixedUpdate 一 LateUpdateOnGUIResetOnDisable 一OnDestroy13. 物理更新一般放在哪个系统函数里?FixedUpdate,每固定帧绘制时执行一次,和Update不同的是 FixedUpdate是渲染帧执行,如果你的渲染效率低下的时候 FixedUpdate调用次数就会跟着下降。FixedUpdate比较适用于物 理引擎的计算,因为是跟每帧渲染有关。Update就比较

7、适合做控制。14移动摄像机的动作放在哪个系统函数中,为什么放在这个函数 中?LateUpdate,在每帧执行完毕调用,它是在所有Update结束后 才调,比较适合用于命令脚本的执行。官网上例子是摄像机的跟随, 都是在所有Update操作完才跟进摄像机,不然就有可能出现摄像机 已经推进了,但是视角里还未有角色的空帧出现。15. 当游戏中需要频繁创建一个物体时,我们需要怎样做能够节省内 存?使用预制物体对象Prefab,然后复制创建。16. 在场景中放置多个Camera并同时处于活动状态会发生什么?游戏界面可以看到很多摄像机的混合。17. 请描述Prefab的作用,并描述如何在移动设备的环境下恰当

8、的使 用它?Prefab在实例化的时候用到,主要用于经常会用到的物体,属性 方便修改。18. 如何销毁一个UnityEngine.Object及其子类?使用Destroy。方法;19. 请简述Unity3d下如何安全的在不同工程间迁移asset数据,请 列举出三种方法?1. 可以把assets目录和Library目录一起迁移2. 导出包3. 用 Unity 带的 assetsServer 功能20. 请描述游戏动画有哪几种,以及其原理?主要有关节动画、骨骼动画、单一网格模型动画(关键帧动画)。关节动画:把角色分成若干独立部分,一个部分对应一个网格模型,部分的动画连接成一个整体的动画,角色比较灵

9、活,Quake2中 使用这种动画;骨骼动画,广泛应用的动画方式,集成了以上两个方式的优点, 骨骼按角色特点组成一定的层次结构,有关节相连,可做相对运动, 皮肤作为单一网格蒙在骨骼之外,决定角色的外观;单一网格模型动画由一个完整的网格模型构成,在动画序列的关 键帧里记录各个顶点的原位置及其改变量,然后插值运算实现动画效 果,角色动画较真实。21. 请描述为什么Unity3d中会发生在组件上出现数据丢失的情况一般是组件上绑定的物体对象被删除了22. alphablend 工作原理AlphaBlend实现透明效果,不过只能针对某块区域进行alpha 操作,透明度可设。23. 写出光照计算中的diff

10、use的计算公式diffuse = Kd x colorLight x max(N*L,0) ; Kd 漫反射系数、 colorLight光的颜色、N单位法线向量、L由点指向光源的单位向 量、其中N与L点乘,如果结果小于等于0,则漫反射为0。24. Lod是什么,优缺点是什么?LOD(Levelofdetail)多层次细节,是最常用的游戏优化技术。它 按照模型的位置和重要程度决定物体渲染的资源分配,降低非重要物 体的面数和细节度,从而获得高效率的渲染运算。25. 两种阴影判断的方法、工作原理。26. VertexShader是什么,怎么计算?顶点着色器27. MipMap是什么,作用?MipM

11、apping :在三维计算机图形的贴图渲染中有常用的技术, 为加快渲染进度和减少图像锯齿,贴图被处理成由一系列被预先计算 和优化过的图片组成的文件,这样的贴图被称为MipMap。28. 机试:二选一1. 用代码实现第三角色控制器2. 实现吊机吊物体的功能29 .反向旋转动画的方法是什么?30. 碰撞检测需要物体具备什么属性?31. 获取、增加、删除组件的命令分别是什么?获取:GetComponent增加:AddComponent删除:Destroy32. Animation.CrossFade命令作用是:(C)A.动画放大B.动画转换C.动画的淡入为其他动画33. Application.lo

12、adLevel 命令为:(A)A.加载关卡B.异步加载关卡C.加载动作34. 调试记录到控制台的命令是什么?Debug.LogO;35. 编辑器类存放路径是什么?工程目录下的Assets/Editor文件夹下。36. 使用原生GUI创建一个可以拖动的窗口命令是什么?GUI.DragWindow();37ocalPosition 与 Position 的使用区别?localPosition :自身位置,相对于父级的变换的位置。Position :在世界坐标transform的位置38.意义连线Mathf.RoundMathf.ClampMathf.Lerp插值四舍五入限制39.写一个计时器工具,

13、从整点开始计时,格式为:00:00:0040.写出Animation的五个方法41. 怎么拿到一个对象上脚本的方法GameObject.GetComponent();42. 上机题:用鼠标实现在场景中拖动物体,用鼠标滚轮实现缩放(用 个 Cube 即可)。43. 请简述向量的点乘,向量的叉乘以及向量归一化的几何意义?点乘的几何意义是:计算两个向量之间的夹角,以及在某一方向 上的投影;叉乘的几何意义是:创建垂直于平面,三角形,或者多边形的向 量;参考:http:/.en/s/blog_9283b6f601017hfw.html最先执行的方法是:1、(激活时的初始化代码)Awake , 2、Sta

14、rt、3、Update【FixUpdate、LateUpdate】、4、(渲染模块)0nGUI、5、再向后, 就是卸载模块(TearDown),这里主要有两个方法OnDisable与 OnDestroy高频问答的问题:1什么是渲染管道?是指在显示器上为了显示出图像而经过的一系列必要操作。渲染管道中的很多步骤,都要将几何物体从一个坐标系中变换到 另个坐标系中去。主要步骤有:本地坐标- 视图坐标- 背面裁剪- 光照- 裁剪- 投影- 视图变 换- 光栅化。2. 如何优化内存?有很多种方式,例如A、压缩自带类库;B、将暂时不用的以后还需要使用的物体隐藏起来而不是直接Destroy 掉;C、释放Ass

15、etBundle占用的资源;AssetBundle资源包D、降低模型的片面数,降低模型的骨骼数量,降低贴图的大小;E、使用光照贴图,使用多层次细节(LOD),使用着色器(Shader), 使用预设(Prefab)。3. 动态加载资源的方式?(有时候也问区别,具体请百度)1. 通过Resources模块,调用它的load函数:可以直接load并 返回某个类型的Object,前提是要把这个资源放在Resource命名 的文件夹下,Unity不关有没有场景引用,都会将其全部打入到安装 包中。Resources.Load();2. 通过bundle的形式:即将资源打成asset bundle放在服务 器或本地磁盘,然后使用WWW模块get下来,然后从这个bundle 中 load 某个 object。AssetBundle3. 通过 AssetDatabase.loadasset :这种方式只在 editor 范围 内有效,游戏运行时没有这个函

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 建筑资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号