2022年unity企业面试题库 .pdf

上传人:C****o 文档编号:24116228 上传时间:2022-07-03 格式:PDF 页数:8 大小:109.39KB
返回 下载 相关 举报
2022年unity企业面试题库 .pdf_第1页
第1页 / 共8页
2022年unity企业面试题库 .pdf_第2页
第2页 / 共8页
点击查看更多>>
资源描述

《2022年unity企业面试题库 .pdf》由会员分享,可在线阅读,更多相关《2022年unity企业面试题库 .pdf(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、1、什么是协同程序?在主线程运行时同时开启另一段逻辑处理,来协助当前程序的执行。换句话说,开启协程就是开启一个线程。可以用来控制运动、序列以及对象的行为。2、你用过哪些插件?具体功能?3、u3d 中碰撞器和触发器的区别?答:触发器只是碰撞器身上的一个属性,碰撞器是触发器的载体。碰撞器有碰撞的效果, IsTrigger=false,可以调用 OnCollisionEnter/Stay/Exit函数;触发器没有碰撞效果, IsTrigger=true, 可以调用 OnTriggerEnter/Stay/Exit函数。4、使用 unity3d 实现 2D游戏,有几种方式?1. 使用本身的 GUI;2

2、. 把摄像机的 Projection(投影) 值调为 Orthographic(正交投影 ) ,不考虑 z 轴;3. 使用 2d 插件,如: 2DToolKit ;5、物体发生碰撞的必要条件两个物体都必须带有碰撞器(Collider), 其中一个物体还必须带有Rigidbody 刚体。6、CharacterController和 Rigidbody 的区别?CharacterController自带胶囊碰撞器,里面包含有刚体的属性;Rigidbody 就是刚体,使物体带有刚体的特征。7、.Unity3d的物理引擎中,有几种施加力的方式,分别描述出来a)爆炸力( AddExplosionForc

3、e(force : float, forcePos : Vector3, radius : float, upwards : float, mode : ForceMode)),应用一个力到刚体来模拟爆炸效果,就是在爆炸力中心坐标position, 搜索在 radius 范围内的刚体,对其释放力作用,超出radius 范围的刚体不受力作用,爆炸力将随着刚体的距离线性减弱。b)力 AddForce(force : Vector3, mode : ForceMode),主要施力给一个刚体,使其移动。c)位置力 AddForceAtPosition(force : Vector3, position

4、 : Vector3, mode : ForceMode), 在position 施加一个力,施力的主体将会受到一个力和力矩。d)相对力 AddRelativeForce(force : Vector3, mode : ForceMode),类似于 AddForce 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 1 页,共 8 页 - - - - - - - - - 8、物体自身旋转使用的函数?Transform.Rotate()9、Unity3d 提供了几种光源

5、类型,分别是哪几种?四种。平行光: Directional Light 点光源: Point Light 聚光灯: Spot Light 区域光源: Area Light10、unity3d脚本从唤醒到销毁有着一套比较完整的生命周期,请列出系统自带的几个重要的方法。Awake Start UpdateFixedUpdateLateUpdateOnGUI ResetOnDisableOnDestroy 11、物理更新一般放在哪个系统函数里?FixedUpdate ,每固定帧绘制时执行一次,和Update 不同的是 FixedUpdate 是渲染帧执行,如果你的渲染效率低下的时候FixedUpda

6、te 调用次数就会跟着下降。FixedUpdate 比较适用于物理引擎的计算,因为是跟每帧渲染有关。Update 就比较适合做控制。12、移动摄像机的动作放在哪个系统函数中,为什么放在这个函数中?LateUpdate ,在每帧执行完毕调用, 它是在所有 Update 结束后才调, 比较适合用于命令脚本的执行。官网上例子是摄像机的跟随, 都是在所有 Update 操作完才跟进摄像机,不然就有可能出现摄像机已经推进了,但是视角里还未有角色的空帧出现。13、当游戏中需要频繁创建一个物体时,我们需要怎样做能够节省内存?使用预制物体对象Prefab ,然后复制创建。14、在场景中放置多个Camera并同

7、时处于活动状态会发生什么?游戏界面可以看到很多摄像机的混合。15、如何销毁一个 UnityEngine.Object及其子类?名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 2 页,共 8 页 - - - - - - - - - 使用 Destroy() 方法;16、请简述 Unity3d 下如何安全的在不同工程间迁移asset 数据,请列举出三种方法?1. 可以把 assets 目录和 Library目录一起迁移2. 导出包3. 用 Unity 带的 assets

8、 Server功能17、请描述为什么 Unity3d 中会发生在组件上出现数据丢失的情况一般是组件上绑定的物体对象被删除了18、alpha blend工作原理Alpha Blend 实现透明效果, 不过只能针对某块区域进行alpha 操作,透明度可设。19、Lod是什么,优缺点是什么?LOD(Level of detail)多层次细节,是最常用的游戏优化技术。它按照模型的位置和重要程度决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。20、MipMap是什么,作用?MipMapping:在三维计算机图形的贴图渲染中有常用的技术,为加快渲染进度和减少图像锯齿,贴图被

9、处理成由一系列被预先计算和优化过的图片组成的文件,这样的贴图被称为 MipMap 。21、获取、增加、删除组件的命令分别是什么?获取: GetComponent增加: AddComponent删除: Destroy22、Application.loadLevel命令为: (A)A.加载关卡B.异步加载关卡C.加载动作23、调试记录到控制台的命令是什么?Debug.Log();名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 3 页,共 8 页 - - - - - -

10、- - - 24、localPosition与 Position的使用区别?localPosition:自身位置,相对于父级的变换的位置。Position :在世界坐标 transform的位置25、localPosition与 Position的使用区别?localPosition:自身位置,相对于父级的变换的位置。Position :在世界坐标 transform的位置26、在物体发生碰撞的整个过程中,有几个阶段,分别列出对应的函数三个阶段1.OnCollisionEnter2.OnCollisionStay3.OnCollisionExit27、请描述游戏动画有哪几种,以及其原理?主要有

11、关节动画、骨骼动画、单一网格模型动画( 关键帧动画 ) 。关节动画:把角色分成若干独立部分,一个部分对应一个网格模型,部分的动画连接成一个整体的动画,角色比较灵活,Quake2中使用这种动画;骨骼动画:广泛应用的动画方式,集成了以上两个方式的优点,骨骼按角色特点组成一定的层次结构, 有关节相连, 可做相对运动, 皮肤作为单一网格蒙在骨骼之外,决定角色的外观;单一网格模型动画:由一个完整的网格模型构成,在动画序列的关键帧里记录各个顶点的原位置及其改变量,然后插值运算实现动画效果,角色动画较真实。28、写出光照计算中的diffuse的计算公式diffuse = Kd x colorLight x

12、max(N*L,0);Kd 漫反射系数、 colorLight 光的颜色、N 单位法线向量、 L 由点指向光源的单位向量、其中N与 L 点乘,如果结果小于等于 0,则漫反射为 0。29、物体绕某点旋转使用函数叫什么答: transform.RotateAround(point : Vector3, axis : Vector3, angles : float) 30、什么是渲染管道?名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 4 页,共 8 页 - - - -

13、- - - - - 是指在显示器上为了显示出图像而经过的一系列必要操作。渲染管道中的很多步骤,都要将几何物体从一个坐标系中变换到另一个坐标系中去。主要步骤有:本地坐标 -视图坐标 -背面裁剪 -光照 -裁剪 -投影 -视图变换 -光栅化 . 31、如何优化内存?有很多种方式,例如1.压缩自带类库;2.将暂时不用的以后还需要使用的物体隐藏起来而不是直接 Destroy 掉;3.释放 AssetBundle 占用的资源;4.降低模型的片面数,降低模型的骨骼数量,降低贴图的大小;5.使用光照贴图,使用多层次细节(LOD) ,使用着色器 (Shader),使用预设 (Prefab) 32、动态加载资源

14、的方式?(有时候也问区别,具体请百度) 1.Resources.Load(); 2.AssetBundle 33、使用原生GUI 创建一个可以拖动的窗口命令是什么?GUI.DragWindow(); 34、C#中所有引用类型的基类是什么答:引用类型的基类是System.Object 值类型的基类是System.ValueType 同时,值类型也隐式继承自System.Object 35、请简述ArrayList和 List 的主要区别答:ArrayList存在不安全类型 (ArrayList会把所有插入其中的数据都当做Object 来处理)装箱拆箱的操作(费时)List 是接口, ArrayL

15、ist是一个实现了该接口的类,可以被实例化。36、请简述GC (垃圾回收)产生的原因,并描述如何避免答: GC 回收堆上的内存避免: 1)减少 new 产生对象的次数2)使用公用的对象(静态成员)3)将 String 换为 StringBuilder 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 5 页,共 8 页 - - - - - - - - - 37、请简述private , public ,protected ,internal 的区别答:public :

16、对任何类和成员都公开,无限制访问private :仅对该类公开protected :对该类和其派生类公开internal :只能在包含该类的程序集中访问该类protected internal:protected + internal 38、简述四元数的作用,四元数对欧拉角的优点?答:四元数用于表示旋转相对欧拉角的优点:1)能进行增量旋转2)避免万向锁3)给定方位的表达方式有两种,互为负(欧拉角有无数种表达方式)39、为何大家都在移动设备上寻求U3D 原生 GUI 的替代方案不美观, OnGUI 很耗费时间,使用不方便40、请简述如何在不同分辨率下保持UI 的一致性NGUI 很好的解决了这一点

17、,屏幕分辨率的自适应性,原理就是计算出屏幕的宽高比跟原来的预设的屏幕分辨率求出一个对比值,然后修改摄像机的size 。41、 U3D 经验中描述你做过的最好的UI 及相关功能模块,及对这部分的理解42、 C#的委托和事件的原理和优缺点43、 NGUI 和 GUI 的区别和特点44、 Time.deltaTime和 Time.tmeScale各是什么意思?什么情况下用到?名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 6 页,共 8 页 - - - - - - - -

18、 - 45、如何获取当前屏幕的宽度和高度?46、 GameObject的 Tag 和 Layer 有什么用?怎么设置?47、已知游戏物体PlayerGameObject上绑定脚本Player ,怎么在其他脚本上获取该脚本?48 、interface和 abstract class的区别?49 、override和 overload的区别?1、方法的覆盖是子类和父类之间的关系,是垂直关系; 方法的重载是同一个类中方法之间的关系,是水平关系2、覆盖只能由一个方法,或只能由一对方法产生关系;方法的重载是多个方法之间的关系。3、覆盖要求参数列表相同;重载要求参数列表不同。4、覆盖关系中,调用那个方法体

19、,是根据对象的类型(对像对应存储空间类型)来决定;重载关系,是根据调用时的实参表与形参表来选择方法体的。50、 GC是什么 ? 为什么要有GC? 答: GC是垃圾收集器。程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:System.gc() Runtime.getRuntime().gc() 51、 sleep() 和 wait() 有什么区别 ?答: sleep()方法是使线程停止一段时间的方法。在sleep 时间间隔期满后,线程不一定立即恢复执行。这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非(a)“醒来”的线程具有更高

20、的优先级(b) 正在运行的线程因为其它原因而阻塞。wait()是线程交互时,如果线程对一个同步对像x 发出一个wait()调用,该线程会暂停执行,被调对像进入等待状态,直到被唤醒或等待时间到。名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 7 页,共 8 页 - - - - - - - - - 52、 error和 exception有什么区别 ?答: error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。53、static 有什么用途?(请至少说明两种)1. 限制变量的作用域2. 设置变量的存储域54、名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 8 页,共 8 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁