搜档网
当前位置:搜档网 › Unity3d面试题总结

Unity3d面试题总结

Unity3d面试题总结
Unity3d面试题总结

本人总结的一些Unity3d 高频面试题目,希望可以帮助到大家。

限于个人水平有限,只附上一些参考答案。

数据结构和算法很重要,图形学也很重要!大的游戏公司很看重个人基础、综合能力;小公司看你实际工作能力,看你的Demo 。高频问答的问题:一.什么是渲染管道是指在显示器上为了显示出图像而经过的一系列必要操作。渲染管道中的很多步骤,都要将几何物体从一个坐标系中变换到

另一个坐标系中去。

主要步骤有:

本地坐标-> 视图坐标-> 背面裁剪-> 光照-> 裁剪-> 投影-> 视图变换-> 光栅化。

二.如何优化内存

有很多种方式,例如

1. 压缩自带类库;

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

3. 释放AssetBundle 占用的资源;

4. 降低模型的片面数,降低模型的骨骼数量,降低贴图的大小;

5. 使用光照贴图,使用多层次细节(LOD),使用着色器(Shader),使用预设(Prefab)。

三、动态加载资源的方式(有时候也问区别,具体请百度)

四、什么是协同程序

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

五、你用过哪些插件

(最好多熟悉几个插件,问的时候好回答)

1. 使用Unity3d 实现2d 游戏,有几种方式

1. 使用本身的GUI ;

2. 把摄像机的Projection(投影)值调为Orthographic(正交投影),不考虑z 轴;

3. 使用2d 插件,如:2DToolKit ;

2. Unity3d 中的碰撞器和触发器的区别

碰撞器有碰撞的效果,IsTrigger=false ,可以调用OnCollisionEnter/Stay/Exit 函数;

触发器没有碰撞效果,IsTrigger=true ,可以调用

OnTriggerEnter/Stay/Exit 函数。

3. 物体发生碰撞的必要条件

两个物体都必须带有碰撞器(Collider) ,其中一个物体还必须带有

Rigidbody 刚体。

4. CharacterController 和Rigidbody 的区别

CharacterController 自带胶囊碰撞器,里面包含有刚体的属性;

Rigidbody 就是刚体,使物体带有刚体的特征。

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

阶段

6. Unity3d 的物理引擎中,有几种施加力的方式,分别描述出来

AddForceAtPosition ,都在rigidbody 系列函数中。

7. 什么叫做链条关节

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

8. 物体自身旋转使用的函数

()

9. 物体围绕某点旋转使用的函数

()

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

() ()

11. Unity3d 提供了几种光源类型,分别是哪几种

四种。

平行光:Directional Light 点光源:Point Light

聚光灯:Spot Light 区域光源:Area Light

12. Unity3d 脚本从唤醒到销毁有着一套比较完整的生命周期,请列出系统自带的几个重要的方法。

Awake ——>Start ——>Update ——>FixedUpdate —

—>LateUpdate ——>OnGUI ——>Reset ——>OnDisable ——>OnDestroy

13. 物理更新一般放在哪个系统函数里

FixedUpdate ,每固定帧绘制时执行一次,和Update 不同的是FixedUpdate 是渲染帧执行,如果你的渲染效率低下的时候FixedUpdate 调用次数就会跟着下降。FixedUpdate 比较适用于物理引擎的计算,因为是跟每帧渲染有关。Update 就比较适合做控制。

14. 移动摄像机的动作放在哪个系统函数中,为什么放在这个函数中

LateUpdate ,在每帧执行完毕调用,它是在所有Update 结束后才调,比较适合用于命令脚本的执行。官网上例子是摄像机的跟随,都是在所有Update 操作完才跟进摄像机,不然就有可能出现摄像机已经推进了,但是视角里还未有角色的空帧出现。

15. 当游戏中需要频繁创建一个物体时,我们需要怎样做能够节省内

使用预制物体对象Prefab ,然后复制创建。

16. 在场景中放置多个Camera 并同时处于活动状态会发生什么游戏界面可

以看到很多摄像机的混合。

17. 请描述Prefab 的作用,并描述如何在移动设备的环境下恰当的使用它

Prefab 在实例化的时候用到,主要用于经常会用到的物体,属性方便修改。

18. 如何销毁一个及其子类

使用Destroy() 方法;

19. 请简述Unity3d 下如何安全的在不同工程间迁移asset 数据,请列举出三种方法

1. 可以把assets 目录和Library 目录一起迁移

2. 导出包

3. 用Unity 带的assets Server 功能

20. 请描述游戏动画有哪几种,以及其原理主要有关节动画、骨骼动画、单一网格模型动画(关键帧动画)。关节动画:把角色分成若干独立部分,一个部分对应一个网格模型,部分的动画连接成一个整体的动画,角色比较灵活,Quake2 中使用这种动画;骨骼动画,广泛应用的动画方式,集成了以上两个方式的优点,骨骼按角色特点组成一定的层次结构,有关节相连,

可做相对运动,

皮肤作为单一网格蒙在骨骼之外,决定角色的外观;

单一网格模型动画由一个完整的网格模型构成,在动画序列的关键帧里记录各个顶点的原位置及其改变量,然后插值运算实现动画效果,角色动画较真实。

21. 请描述为什么Unity3d 中会发生在组件上出现数据丢失的情况

一般是组件上绑定的物体对象被删除了

22. alpha blend 工作原理

Alpha Blend 实现透明效果,不过只能针对某块区域进行alpha 操作,透明度可设。

23. 写出光照计算中的diffuse 的计算公式

diffuse = Kd x colorLight x max(N*L,0) ;Kd 漫反射系数、colorLight 光的颜色、N 单位法线向量、L 由点指向光源的单位向量、其中N 与L 点乘,如果结果小于等于0,则漫反射为0。

24. Lod 是什么,优缺点是什么

LOD(Level of detail) 多层次细节,是最常用的游戏优化技术。它按照模型的位置和重要程度决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。

25. 两种阴影判断的方法、工作原理。

26. Vertex Shader 是什么,怎么计算

顶点着色器

27. MipMap 是什么,作用

MipMapping :在三维计算机图形的贴图渲染中有常用的技术,为加快渲染进度和减少图像锯齿,贴图被处理成由一系列被预先计算和优化过的图片组成的文件,这样的贴图被称为MipMap 。

28. 机试:二选一

1. 用代码实现第三角色控制器

2. 实现吊机吊物体的功能

29. 反向旋转动画的方法是什么

30. 碰撞检测需要物体具备什么属性

31. 获取、增加、删除组件的命令分别是什么

获取:GetComponent

增加:AddComponent

删除:Destroy

32. 命令作用是:(C)

A.动画放大

B.动画转换

C.动画的淡入为其他动画

33. 命令为:(A)

A.加载关卡

B.异步加载关卡

C.加载动作

34. 调试记录到控制台的命令是什么

();

35. 编辑器类存放路径是什么

工程目录下的Assets/Editor 文件夹下。

36. 使用原生GUI 创建一个可以拖动的窗口命令是什么

();

37.localPosition 与Position 的使用区别

localPosition :自身位置,相对于父级的变换的位置

史上最全的Unity面试题(三)

二十一:物理更新一般放在哪个系统函数里? FixedUpdate,每固定帧绘制时执行一次,和Update不同的是FixedUpdate是渲染帧执行,如果你的渲染效率低下的时候FixedUpdate调用次数就会跟着下降。FixedUpdate比较适用于物理引擎的计算,因为是跟每帧渲染有关。Update就比较适合做控制。 二十二:在场景中放置多个Camera并同时处于活动状态会发生什么?游戏界面可以看到很多摄像机的混合。 二十三:如何销毁一个UnityEngine.Object及其子类? 使用Destroy()方法; 二十四:请描述为什么Unity3d中会发生在组件上出现数据丢失的情况一般是组件上绑定的物体对象被删除了 二十五:LOD是什么,优缺点是什么? LOD(Level of detail)多层次细节,是最常用的游戏优化技术。它按照模型的位置和重要程度决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。缺点是增加了内存。 二十六:MipMap是什么,作用? MipMapping:在三维计算机图形的贴图渲染中有常用的技术,为加快渲染进度和减少图像锯齿,贴图被处理成由一系列被预先计算和优化过的图片组成的文件,这样的贴图被称为MipMap。 二十七:请描述Interface与抽象类之间的不同 抽象类表示该类中可能已经有一些方法的具体定义,但接口就是公公只能定义各个方法的界面,不能具体的实现代码在成员方法中。类是子类用来继承的,当父类已经有实际功能的方法时该方法在子类中可以不必实现,直接引用父类的方法,子类也可以重写该父类的方法。实现接口的时候必须要实现接口中所有的方法,不能遗漏任何一个。

U3d面试题(全)

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

在主线程运行时同时开启另一段逻辑处理,来协助当前程序的执行。换句话说,开启协程就是开启一个线程。可以用来控制运动、序列以及对象的行为。 五、你用过哪些插件? (最好多熟悉几个插件,问的时候好回答) ======================================= ============= 1.使用Unity3d实现2d游戏,有几种方式? 1.使用本身的GUI; 2.把摄像机的Projection(投影)值调为Orthographic(正交投影),不考虑z轴; 3.使用2d插件,如:2DToolKit; 2.Unity3d中的碰撞器和触发器的区别? 碰撞器有碰撞的效果,IsTrigger=false,可以调用OnCollisionEnter/Stay/Exit函数; 触发器没有碰撞效果,IsTrigger=true,可以调用OnTriggerEnter/Stay/Exit函数。 3.物体发生碰撞的必要条件 两个物体都必须带有碰撞器(Collider),其中一个物体还必须带有Rigidbody刚体。

游戏公司unity面试题

Unity3d 程序员面试题 1.什么是渲染管道?渲染管道有哪些步骤? 答:渲染管道是指程序为了在显示器上输出图像而经过的一系列必要操作. 渲染管道的步骤有: 本地空间->世界空间->视图空间->背面剔除->光照计算->相机裁剪->投影计算->视口变换->光栅化 2.Unity3d有几种加载Prefab的方式? 答: 1.静态引用,建一个public变量,在Inspector里把prefab拉上去,在场景运行时会自动加载,用的时候instantiate 2.Resource.Load, 在调用该函数后加载, Load以后instantiate 3.AssetBundle.Load 在调用该函数后加载, Load以后instantiate 3.什么是协同程序? 答:在主线程序运行时同时开启另一段逻辑处理,来协助当前程序的执行.换名话说. 开启协程就象开启一个线程. 4.你例举几个你用过的Unity3d插件,并说明它们的用途和特点. 5.Unity3d中的碰撞器Collision和触发器Trigger的区别? 答:碰撞器有碰撞效果, IsTrigger = false 在碰撞发生时会调用 OnCollisionEnter,OnCollisionStay,OnCollisionExit函数. 触发器没有碰撞效果, IsTrigger = true, 可被触发时会调用 OnTriggerEnter,OnTriggerStay,OnTriggerExit函数 6.物体发生碰撞的必要条件 答:两件物体都必须有碰撞组件(Collider),其中一物体还必须带有Rigidbody刚体组件 7.在物体发生碰撞的整个过程中,有几个阶段,不同阶段分别调用哪些函数 答:1.OnCollisionEnter 2.OnCollisionStay 3.OnCollisionExit 8.在unity3D中有Update还有FixedUpdate,物理引擎的更新一般放在哪个系统函数里,为什 么? 答:物理引擎的更新一般放在FixedUpdate里面,和Update不同,FixedUpdate是渲染帧执行,如果你的渲染效率低下的时候FixedUpdate调用次数就会跟着下降.因为FixedUpdate是每固定帧绘制时执行一次,所以更适合做物理控制. 9.移动摄像机的动作放在哪个系统函数中,为什么放在这个函数中? 答:移动摄像机的动作应该放在LateUpdate函数中.在每帧执行完毕调用,它是在所有Update结束后才调用,比较适合用于命令脚本的执行.如果不是在所有Update执行完后就移动摄像机可能会出现摄像机移动了,视口里的内容还没有更新的空帧现象.

Unity3d面试题总结

Unity3d面试题总结

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

3.释放AssetBundle占用的资源; 4.降低模型的片面数,降低模型的骨骼数量,降低贴图的大小; 5.使用光照贴图,使用多层次细节(LOD),使用着色器(Shader),使用预设(Prefab)。 三、动态加载资源的方式?(有时候也问区别,具体请百度) 1.Resources.Load(); 2.AssetBundle 四、什么是协同程序? 在主线程运行时同时开启另一段逻辑处理,来协助当前程序的执行。换句话说,开启协程就是开启一个线程。能够用来控制运动、序列以及对象的行为。 五、你用过哪些插件? (最好多熟悉几个插件,问的时候好回答) ====================================== ============== 1.使用Unity3d实现2d游戏,有几种方式? 1.使用本身的GUI; 2.把摄像机的Projection(投影)值调为Orthographic(正交投影),不考虑z轴; 3.使用2d插件,如:2DToolKit; 2.Unity3d中的碰撞器和触发器的区别?

unity3d笔试题

Unity 1. u3d用u3d实现2d游戏,有几种方式 1.利用引擎自带的GUI 2.把摄像机设为Orthographic,用面片作为2d元素 3.利用第三方插件:NGUI、2dToolkit 2. u3d物体发生碰撞时,有几个阶段,分别对应的函数 三个阶段,OnCollisionEnter/Stay/Exit()函数 提供了一个用于保存读取数据的类,(playerPrefs),请列出保存读取整形数据的函数 (string, int) 与(string) 从唤醒到销毁有一段生命周期,请列出系统自己调用的几个重要方法(按执行顺序书写至少五个)。 Awake –>OnEnable –> Start –> Update –> FixedUpdate –> LateUpdate –> OnGUI –> OnDisable –> OnDestroy 下如何安全的在不同工程迁移asset数据 方法1,可以把assets目录和Library目录一起迁移, 方法2,导出包Export Package 方法3,用unity带的assets server功能或meta功能 Ngui 1 NGUI:有两张图集Altas1和Altas2,Altas1中有一张图Background,Altas2中有一张图叫Element,分别作出三个Sprite B1、E、B2,如何让这三个Sprite在镜头前显示顺序为B2盖住E且E盖住B1(如下图所示) 将B1和E放在在同一个Panel P1下,调整E的depth高于B1;将B2放在另一个Panel P2下,将P2所在的z轴调整为-1(或更小的数) 2 NGUI:图集里有图A,使用哪种控件可以实现在场景中显示为图B: 图A 图B SlicedSprite,设置这张图在图集中的Border的上下左右边框范围,再拉伸UISprite 3 NGUI: Sprite有哪几种分别有什么用途 Sprite(一张普通的图片)

Unity面试题

最近unity3d找工作有些受挫,自己也开始补课了。 下面把这段时间看到的些面试题供出来让大家也学习下,题目只是面试官选拔人才的一部分,在研究面试题目的过程中,多检测下自己的不足,及时温习或补习下,最终学到真本事才是最重要的。 祝自己也祝大家好运哈! 题目中有些答案有网上搜的,也有个人整理的,有错误或不足的地方,望指正,谢谢! 文章最后会有参考的一些网址或资料的链接,有想看原址的朋友可以直接跳到最后哦。 题目归类区(看题目字体颜色识第几部分) ps:下面题目可能稍有点多,翻页会较麻烦,根据题目的颜色辨别是第几部分吧(超链接功能不会,也懒得做了) 第一部分 1.请简述值类型与引用类型的区别 2.C#中所有引用类型的基类是什么 3.请简述ArrayList和List的主要区别 4.请简述GC(垃圾回收)产生的原因,并描述如何避免? 5.请描述Interface与抽象类之间的不同 6.下列代码在运行中会产生几个临时对象? 7.下列代码在运行中会发生什么问题?如何避免? 8.请简述关键字Sealed用在类声明和函数声明时的作用 9.请简述private,public,protected,internal的区别 10.反射的实现原理? 11. .Net与Mono的关系? 12.简述unity3d支持的作为脚本的语言的名称 13.Unity3D是否支持写成多线程程序?如果支持的话需要注意什么? 14.Unity3D的协程和C#线程之间的区别是什么? 15.U3D中用于记录节点空间几何信息的组件名称,及其父类名称 16.简述四元数的作用,四元数对欧拉角的优点?

17.向量的点乘、叉乘以及归一化的意义? 18.矩阵相乘的意义及注意点 19.为何大家都在移动设备上寻求U3D原生GUI的替代方案 20.请简述如何在不同分辨率下保持UI的一致性 21.为什么dynamic font在unicode环境下优于static font 22.Render的作用?描述MeshRender和SkinnedMeshRender的关系与不同 23.简述SkinnedMesh的实现原理 24.在场景中放置多个Camera并同时处于活动状态会发生什么? 25.Prefab的作用?如何在移动环境的设备下恰当地使用它? 26.如何销毁一个UnityEngine.Object及其子类 27.为什么Unity3D中会发生在组件上出现数据丢失的情况? 28.如何安全的在不同工程间安全地迁移asset数据?三种方法 29.MeshCollider和其他Collider的一个主要不同点? 30.当一个细小的高速物体撞向另一个较大的物体时,会出现什么情况?如何避免? 31.OnEnable、Awake、Start运行时的发生顺序?哪些可能在同一个对象周期中反复的发生? 32.请简述OnBecameVisible及OnBecameInvisible的发生时机,以及这一对回调函数的意义? 33.Unity3D如何获知场景中需要加载的数据? 34.MeshRender中material和sharedmaterial的区别? 第二部分 1.请描述游戏动画有哪几种,以及其原理。 2.alpha blend 工作原理 3.写光照计算中的diffuse的计算公式 4.lod是什么,优缺点是什么 5.两种阴影判断的方法工作原理 6.MipMap是什么?作用? 7.用u3d实现2d游戏,有几种方式? 8.u3d中碰撞器和触发器的区别? 9.物体发生碰撞的必要条件 10.CharacterController和Rigidbody的区别 11.物体发生碰撞时,有几个阶段,分别对应的函数 12.u3d中,几种施加力的方式,描述出来。

Unity一些面试题整理

60、关于光照贴图 A:使用光照贴图比使用实时光源渲染要快B:可以降低游戏内存消耗C、多个物体可以使用同一张光照贴图 61、关于Vector3的API,以下说法正确的是? Vector3.forward与Vector3(0,0,1)是一样的意思; 62、以下哪个函数在游戏进入新场景后会被马上调用? MonoBehaviour.OnLevelWasLoaded 63、什么是导航网格(NavMesh)? 一种用于实现自动寻路的网格 64、什么是局部坐标,什么是世界坐标? 世界坐标是不会变的,一直以世界坐标轴的XYZ为标准。局部坐标其实就是自身的坐标,会随着物体的旋转而变化的。 65、itween插件的作用是什么,itween【狗刨学习网】作用于世界坐标还是局部坐标,请列举出3个其常用方法? iTween是一个动画库,作者创建它的目的就是最小的投入实现最大的产出。让你做开发更轻松,用它可以轻松实现各种动画,晃动,旋转,移动,褪色,上色,控制音频等等“

方法:a、MoveTo 物体移动;b、ColorTo:随着时间改变对象的颜色组;c、LookTo:随时间旋转物体让其脸部朝向所提供的Vector3或Transform位置 66、请简述NGUI中Panel和Anchor的作用? Anchor包含UIAnchor脚本。UIAnchor的功能是把对象锚定在屏幕的边缘(左上,左中,左下,上,中,下,右上,右中,右下),或缩放物体使其匹配屏幕的尺寸Panel对象有UIPanel脚【狗刨学习网】本,UIPanel是一个容器,它将包含所有UI 小部件,并负责将所包含的部件组合优化,以减少绘制命令的调用。 68、https://www.sodocs.net/doc/4317345421.html,ToLayer()这个方法有什么作用? LayerMask的使用是按位操作的,https://www.sodocs.net/doc/4317345421.html,ToLayer("Players") 返回该Layer的编号。 69、请描述MeshRender中material和shader的区别? Shader(着色器)实际上就是一小段程序,它负责将输入的Mesh(网格)以指定的方式和输入的贴图或者颜色等组合作用,然后输出。绘图单元可以依据这个输出来将图像绘制到屏幕上。输入的贴图或者颜色等,加上对应的Shader,以及对Shader的特定的参数设置,将这些内容(Shader及输入参数)打包存储在一起,得到的就是一个Material(材质)

史上最全的Unity面试题(一)

一:什么是协同程序? 在主线程运行的同时开启另一段逻辑处理,来协助当前程序的执行,协程很像多线程,但是不是多线程,Unity的协程实在每帧结束之后去检测yield的条件是否满足。 二:Unity3d中的碰撞器和触发器的区别? 碰撞器是触发器的载体,而触发器只是碰撞器身上的一个属性。当Is Trigger=false时,碰撞器根据物理引擎引发碰撞,产生碰撞的效果,可以调用OnCollisionEnter/Stay/Exit函数;当Is Trigger=true时,碰撞器被物理引擎所忽略,没有碰撞效果,可以调用OnTriggerEnter/Stay/Exit函数。如果既要检测到物体的接触又不想让碰撞检测影响物体移动或要检测一个物件是否经过空间中的某个区域这时就可以用到触发器 三:物体发生碰撞的必要条件? 两个物体都必须带有碰撞器(Collider),其中一个物体还必须带有Rigidbody刚体,而且必须是运动的物体带有Rigidbody脚本才能检测到碰撞。 四:请简述ArrayList和List的主要区别? ####ArrayList存在不安全类型(ArrayList会把所有插入其中的数据都当做Object来处理)?装箱拆箱的操作(费时)?List是接口,ArrayList是一个实现了该接口的类,可以被实例化 五:如何安全的在不同工程间安全地迁移asset数据?三种方法 1.将Assets目录和Library目录一起迁移 2.导出包,export Package 3.用unity自带的assets Server功能 六:OnEnable、Awake、Start运行时的发生顺序?哪些可能在同一个对象周期中反复的发生 Awake –>OnEnable->Start,OnEnable在同一周期中可以反复地发生。 七:MeshRender中material和sharedmaterial的区别?

史上最全的Unity面试题(一)

一:什么是协同程序 在主线程运行的同时开启另一段逻辑处理,来协助当前程序的执行,协程很像多线程,但是不是多线程,Unity的协程实在每帧结束之后去检测yield的条件是否满足。 二:Unity3d中的碰撞器和触发器的区别 碰撞器是触发器的载体,而触发器只是碰撞器身上的一个属性。当Is Trigger=false 时,碰撞器根据物理引擎引发碰撞,产生碰撞的效果,可以调用 OnCollisionEnter/Stay/Exit函数;当Is Trigger=true时,碰撞器被物理引擎所忽略,没有碰撞效果,可以调用OnTriggerEnter/Stay/Exit函数。如果既要检测到物体的接触又不想让碰撞检测影响物体移动或要检测一个物件是否经过空间中的某个区域这时就可以用到触发器 三:物体发生碰撞的必要条件 两个物体都必须带有碰撞器(Collider),其中一个物体还必须带有Rigidbody刚体,而且必须是运动的物体带有Rigidbody脚本才能检测到碰撞。 四:请简述ArrayList和List的主要区别 ####ArrayList存在不安全类型(ArrayList会把所有插入其中的数据都当做Object来处理)?装箱拆箱的操作(费时)?L ist是接口,ArrayList是一个实现了该接口的类,可以被实例化 五:如何安全的在不同工程间安全地迁移asset数据三种方法 1.将Assets目录和Library目录一起迁移 2.导出包,export Package 3.用unity自带的assets Server功能 六:OnEnable、Awake、Start运行时的发生顺序哪些可能在同一个对象周期中反复的发生 Awake –>OnEnable->Start,OnEnable在同一周期中可以反复地发生。

Unity3d面试题总结

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

三、动态加载资源的方式(有时候也问区别,具体请百度) 四、什么是协同程序 在主线程运行时同时开启另一段逻辑处理,来协助当前程序的执行。换句话说,开启协程就是开启一个线程。可以用来控制运动、序列以及对象的行为。 五、你用过哪些插件 (最好多熟悉几个插件,问的时候好回答) 1. 使用Unity3d 实现2d 游戏,有几种方式 1. 使用本身的GUI ; 2. 把摄像机的Projection(投影)值调为Orthographic(正交投影),不考虑z 轴; 3. 使用2d 插件,如:2DToolKit ; 2. Unity3d 中的碰撞器和触发器的区别 碰撞器有碰撞的效果,IsTrigger=false ,可以调用OnCollisionEnter/Stay/Exit 函数; 触发器没有碰撞效果,IsTrigger=true ,可以调用 OnTriggerEnter/Stay/Exit 函数。 3. 物体发生碰撞的必要条件 两个物体都必须带有碰撞器(Collider) ,其中一个物体还必须带有

unity3d-高频率面试题目(单选)

unity3d-高频率面试题目(单选) 选择题(共50题,每题2分) 1、 NavMeshAgent组件中的Speed指的是?答案:(A) A、导航移动最大速度 B、移动速度和旋转速度 C、加速度 D、移动起始速度 2、 LeapMotion的核心脚本是?答案:(A) A、HandController B、GameController C、Controller D、FingerController 3、 unity2D平台开发,碰撞方法是()答案:(D) A、OnCollisionEnter(Collision other) B、OnCollisionEnter(Collision2D other) C、OnCollisionEnter2D(Collision other) D、OnCollisionEnter2D(Collision2D other) 4、 Unity中使用LitJSON,将对象转换成字符串是用哪个方法?答案:(A) A、JsonMapper.ToJson() B、JsonMapper.ToObject() C、JsonMapper.ToGameObject() D、JsonMapper.ToString() 5、 物理更新一般放到哪个函数里面?答案:(D) A、OnEnable B、Awake C、Start D、FixedUpdate 6、

Unity发布安卓程序,Sqlite数据库应该存在那个路径下?答案:(C) A、Application.dataPath B、Application.streamingAssetsPath C、Application.persistentDataPath D、Application.temporaryCachePath 7、 发布PC端程序,使用WWW加载本地文件,正确的URL是?答案:(C) A、https://www.sodocs.net/doc/4317345421.html,/XXX B、Application.streamingAssetsPath/XXX C、 "file://"+Application.streamingAssetsPath+"/xxxx"D、以上都不对 8、JSON格式比XML更小,更快,以下说法错误的是?答案:(B) A、数据在键值对中 B、数据由分号分隔 C、花括号保存对象 D、方括号保存数组 9、 外部引入的DLL需要放到哪个文件夹下?答案:(A) A、Plugins B、Resources C、Plugin D、Resource 10、 使用导航系统,想要实现VR效果,船员爬上绳索,肯定需要设置那个属性?答案:(A) A、autoTraverseOffMeshLink B、autoRepath C、autoBraking D、currentOffMeshLinkData 11、 要使用IK,必须使用新版动画,除此之外还需要实现系统自带的什么函数?答案:(A) A、OnAnimatorIK(intlayerIndex) B、OnAnimatorIK() C、OnIKAnimator(intlayerIndex) D、OnIKAnimation() 12、 Unity3d提供了一个用于保存和读取数据的类是?答案:(A) A、PlayerPrefs B、Resource C、DataSave D、Players 13、 角色控制器(CharacterController)组件中自动使用重力的方法是?答案:(A) A、SimpleMove B、Move C、SimpleMove和Move D、以上都不对 14、 Unity中的Light组件,那个属性可以实现图案投影?答案:(A)

史上最全的Unity面试题

四十一:射线检测碰撞物的原理是 射线是3D世界中一个点向一个方向发射的一条无终点的线,在发射轨迹中与其他物体发生碰撞时,它将停止发射。 四十二:Unity中,照相机的Clipping Planes的作用是什么调整Near、Fare两个值时,应该注意什么 剪裁平面。从相机到开始渲染和停止渲染之间的距离。 四十三:如何让已经存在的GameObject在LoadLevel后不被卸载掉 void Awake() { DontDestroyOnLoad; } 四十四:请简述GC(垃圾回收)产生的原因,并描述如何避免 GC回收堆上的内存 避免:1.减少new产生对象的次数 2.使用公用的对象(静态成员) 3.将String换为StringBuilder 四十五:反射的实现原理 审查元数据并收集关于它的类型信息的能力。实现原理:在运行时根据程序集及其中的类型得到元数据。下面是实现步骤: 1. 导入using ; 2. (“程序集”)加载程序集,返回类型是一个Assembly 3. 得到程序集中所有类的名称 foreach (Type type in ())

{ string t = ; } 4. Typ e type = (“程序集.类名”);获取当前类的类型 5. (type); 创建此类型实例 6. MethodInfo mInfo = (“方法名”);获取当前方法 7. 方法参数); 四十六:简述四元数的作用,四元数对欧拉角的优点 四元数用于表示旋转 相对欧拉角的优点: 1.能进行增量旋转 2.避免万向锁 3.给定方位的表达方式有两种,互为负(欧拉角有无数种表达方式) 四十七:移动相机动作在哪个函数里,为什么在这个函数里 LateUpdate,是在所有的update结束后才调用,比较适合用于命令脚本的执行。官网上例子是摄像机的跟随,都是所有的update操作完才进行摄像机的跟进,不然就有可能出现摄像机已经推进了,但是视角里还未有角色的空帧出现。 四十八:GPU的工作原理 简而言之,GPU的图形(处理)流水线完成如下的工作:(并不一定是按照如下顺序)顶点处理:这阶段GPU读取描述3D图形外观的顶点数据并根据顶点数据确定3D图形的形状及位置关系,建立起3D图形的骨架。在支持DX8和DX9规格的GPU中,这些工作由硬件实现的Vertex Shader(定点着色器)完成。光栅化计算:显示器实际显示的图像是由像素组成的,我们需要将上面生成的图形上的点和线通过一定的算法转换到相应的像素点。把一个矢量图形转换为一系列像素点的过程就称为光栅化。例如,一条数学表示的斜线段,最终被转化成阶梯状的连续像素点。纹理帖图:顶点单元生成的多边形只构成了3D物体的轮廓,而纹理映射(texture mapping)工作完成对多变形表面的帖图,通俗的说,就是

unity面试题分析

史上最全的Unity面试题(持续更新总结。。。。。。) 包含答案的Unity面试题 这个是我刚刚整理出的Unity面试题,为了帮助大家面试,同时帮助大家更好地复习Unity知识点,如果大家发现有什么错误,(包括错别字和知识点),或者发现哪里描述的不清晰,请在下面留言,我会重新更新,希望大家共同来帮助开发者 一:什么是协同程序? 在主线程运行的同时开启另一段逻辑处理,来协助当前程序的执行,协程很像多线程,但是不是多线程,Unity的协程实在每帧结束之后去检测yield的条件是否满足。 二:Unity3d中的碰撞器和触发器的区别? 碰撞器是触发器的载体,而触发器只是碰撞器身上的一个属性。当Is Trigger=false时,碰撞器根据物理引擎引发碰撞,产生碰撞的效果,可以调用OnCollisionEnter/Stay/Exit函数;当Is Trigger=true时,碰撞器被物理引擎所忽略,没有碰撞效果,可以调用OnTriggerEnter/Stay/Exit函数。如果既要检测到物体的接触又不想让碰撞检测影响物体移动或要检测一个物件是否经过空间中的某个区域这时就可以用到触发器 三:物体发生碰撞的必要条件? 两个物体都必须带有碰撞器(Collider),其中一个物体还必须带有Rigidbody刚体,而且必须是运动的物体带有Rigidbody脚本才能检测到碰撞。 四:请简述ArrayList和List的主要区别? ####ArrayList存在不安全类型(ArrayList会把所有插入其中的数据都当做Object来处理)?装箱拆箱的操作(费时)?List是接口,ArrayList是一个实现了该接口的类,可以被实例化

Unity3d面试题总结

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

4.降低模型的片面数,降低模型的骨骼数量,降低贴图的大小; 5.使用光照贴图,使用多层次细节(LOD),使用着色器(Shader),使用预设(Prefab)。 三、动态加载资源的方式?(有时候也问区别,具体请百度) 1.Resources.Load(); 2.AssetBundle 四、什么是协同程序? 在主线程运行时同时开启另一段逻辑处理,来协助当前程序的执行。换句话说,开启协程就是开启一个线程。可以用来控制运动、序列以及对象的行为。 五、你用过哪些插件? (最好多熟悉几个插件,问的时候好回答) ======================================= ============= 1.使用Unity3d实现2d游戏,有几种方式? 1.使用本身的GUI; 2.把摄像机的Projection(投影)值调为Orthographic(正交投影),不考虑z轴; 3.使用2d插件,如:2DToolKit; 2.Unity3d中的碰撞器和触发器的区别? 碰撞器有碰撞的效果,IsTrigger=false,可以调用

Unity面试题

Unity面试题 一:什么是协同程序? 在主线程运行的同时开启另一段逻辑处理,来协助当前程序的执行,协程很像多线程,但是不是多线程, Unity的协程实在每帧结束之后去检测yield的条件是否满足。 二: Unity3d中的碰撞器和触发器的区别? 碰撞器是触发器的载体,而触发器只是碰撞器身上的一个属性。当Is Trigger=false 时,碰撞器根据物理引擎引发碰撞,产生碰撞的效果,可以调用OnCollisionEnter/Stay/Exit 函数;当Is Trigger=true 时, 碰撞器被物理引擎所忽略,没有碰撞效果,可以调用OnTriggerEnter/Stay/Exit 函数。如果既要检测到物体的接触又不想让碰撞检测影响物体移动或要检测一个物件是否经过空间中的某个区域这时就可以用到触发器 三:物体发生碰撞的必要条件? 两个物体都必须带有碰撞器(Collider ),其中一个物体还必须带有Rigidbody刚体,而且必须是运动的 物体带有Rigidbody脚本才能检测到碰撞。 四:请简述ArrayList 和List的主要区别? ####ArrayList 存在不安全类型(ArrayList 会把所有插入其中的数据都当做Object来处理)?装箱拆箱的操作(费时)?List是接口,ArrayList是一个实现了该接口的类,可以被实例化 五:如何安全的在不同工程间安全地迁移asset数据?三种方法 1. 将Assets目录和Library 目录一起迁移 2. 导出包,export Package 3. 用unity 自带的assets Server 功能 六:OnEnable、Awake Start运行时的发生顺序?哪些可能在同一个对象周期中反复的发生 Awake - >OnEnable->Start ,OnEnable在同一周期中可以反复地发生。 七: MeshRender中material 和sharedmaterial 的区别? 修改sharedMaterial将改变所有物体使用这个材质的外观,并且也改变储存在工程里的材质设置。不推荐修改由sharedMaterial 返回的材质。如果你想修改渲染器的材质,使用material替代。 八:Unity提供了几种光源,分别是什么 四种。 平行光:Directional Light 点光源:Point Light 聚光灯:Spot Light 区域光源:Area Light 九:简述一下对象池,你觉得在FPS里哪些东西适合使用对象池

Unity3D面试题

1. 哪种实时光源是Unity中没有的? A:点光源 B:方向光 C:聚光灯 D:日光灯 2. 如何在Unity中创建地形系统? A:Terrain->Create Terrain B:Component->Create Terrain C:Asset->Create Terrain D:Windows->Create Terrain 3. 以下哪种操作步骤可以在场景中添加“Wind Zone”? A:Terrain -> Wind Zone B:GameObject -> Create Other -> Wind Zone C:Component -> Physics -> Wind Zone D:Assets -> Create -> Wind Zone 4. 在Unity编辑器中创建一个Directional Light,以下步骤正确的是? A:Edit -> Rendering Setting -> Directional Light B:GameObject -> Create Other -> Directional Light C:Component -> Rendering -> Directional Light D:Assets -> Directional Light 5. 下列哪一项不属于Camera中的“Clear Flags”? A:Skybox B:Solid Color C:Depth Only D:Background 6. 以下哪种脚本语言是Unity编辑器所不支持的? A:JavaScript B:C# C:Boo D:Perl 7. 对于Prefab,以下说法错误的是? A:Prefab资源可以在项目中多次重复使用 B:由Prefab实例出的GameObject,其在Hierarchy视图中表现为蓝色 C:Prefab上的组件信息一经改变,其实例出的GameObject也会自动改变 D:实例出的GameObject上的组件信息一经改变,其对应的Prefab也会自动改变

史上最全的Unity面试题(三)

,每固定帧绘制时执行一次,和不同地是是渲染帧执行,如果你地渲染效率低下地时候调用次数就会跟着下降.比较适用于物理引擎地计算,因为是跟每帧渲染有关.就比较适合做控制.二十二:在场景中放置多个并同时处于活动状态会发生什么? 游戏界面可以看到很多摄像机地混合. 二十三:如何销毁一个及其子类? 使用()方法; 二十四:请描述为什么中会发生在组件上出现数据丢失地情况 一般是组件上绑定地物体对象被删除了 二十五:是什么,优缺点是什么? ( )多层次细节,是最常用地游戏优化技术.它按照模型地位置和重要程度决定物体渲染地资源分配,降低非重要物体地面数和细节度,从而获得高效率地渲染运算.缺点是增加了内存.资料个人收集整理,勿做商业用途 二十六:是什么,作用? :在三维计算机图形地贴图渲染中有常用地技术,为加快渲染进度和减少图像锯齿,贴图被处理成由一系列被预先计算和优化过地图片组成地文件,这样地贴图被称为.资料个人收集整理,勿做商业用途 二十七:请描述与抽象类之间地不同 抽象类表示该类中可能已经有一些方法地具体定义,但接口就是公公只能定义各个方法地界面,不能具体地实现代码在成员方法中.类是子类用来继承地,当父类已经有实际功能地方法时该方法在子类中可以不必实现,直接引用父类地方法,子类也可以重写该父类地方法.实现接口地时候必须要实现接口中所有地方法,不能遗漏任何一个.资料个人收集整理,勿做商业用途 二十八:与地关系? 是地一个开源跨平台工具,就类似虚拟机,本身不是跨平台语言,但运行在虚拟机上就能够实现了跨平台.只能在下运行,可以实现跨平台跑,可以运行于,,等.资料个人收集整理,勿做商业用途 二十九:简述支持地作为脚本地语言地名称 地脚本语言基于地平台上运行,可以使用库,这也为、数据库、正则表达式等问题提供了很好地解决方案.里地脚本都会经过编译,他们地运行速度也很快.这三种语言实际上地功能和运行速度是一样地,区别主要体现在语言特性上.、、资料个人收集整理,勿做商业用途三十:中用于记录节点空间几何信息地组件名称,及其父类名称 父类是 三十一:向量地点乘、叉乘以及归一化地意义? .点乘描述了两个向量地相似程度,结果越大两向量越相似,还可表示投影 .叉乘得到地向量垂直于原来地两个向量 .标准化向量:用在只关系方向,不关心大小地时候 三十二:为何大家都在移动设备上寻求原生地替代方案 不美观,很耗费时间,效率不高,使用不方便 三十三:请简述如何在不同分辨率下保持地一致性 很好地解决了这一点,屏幕分辨率地自适应性,原理就是计算出屏幕地宽高比跟原来地预设地屏幕分辨率求出一个对比值,然后修改摄像机地.通过锚点和中心点和分辨率也解决这个问题资料个人收集整理,勿做商业用途 三十四:什么是? :就是指在三维软件里实现打好光,然后渲染把场景各表面地光照输出到贴图上,最后又通

史上最全的Unity面试题(三).

二十一:物理更新一般放在哪个系统函数里? FixedUpdate ,每固定帧绘制时执行一次,和 Update 不同的是 FixedUpdate 是渲染帧执行, 如果你的渲染效率低下的时候 FixedUpdate 调用次数就会跟着下降。FixedUpdate 比较适用于物理引擎的计算,因为是跟每帧渲染有关。 Update 就比较适合做控制。 二十二:在场景中放置多个 Camera 并同时处于活动状态会发生什么? 游戏界面可以看到很多摄像机的混合。 二十三:如何销毁一个 UnityEngine.Object 及其子类? 使用 Destroy(方法 ; 二十四:请描述为什么 Unity3d 中会发生在组件上出现数据丢失的情况一般是组件上绑定的物体对象被删除了 二十五:LOD 是什么,优缺点是什么? LOD(Level of detail多层次细节,是最常用的游戏优化技术。它按照模型的位置和重要程度决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。缺点是增加了内存。 二十六:MipMap 是什么,作用? MipMapping :在三维计算机图形的贴图渲染中有常用的技术,为加快渲染进度和减少图像锯齿,贴图被处理成由一系列被预先计算和优化过的图片组成的文件,这样的贴图被称为 MipMap 。 二十七:请描述 Interface 与抽象类之间的不同 抽象类表示该类中可能已经有一些方法的具体定义, 但接口就是公公只能定义各个方法的界面 ,不能具体的实现代码在成员方法中。类是子类用来继承的,当父类

已经有实际功能的方法时该方法在子类中可以不必实现, 直接引用父类的方法, 子类也可以重写该父类的方法。实现接口的时候必须要实现接口中所有的方法,不能遗漏任何一个。 二十八:.Net 与 Mono 的关系? mono 是 .net 的一个开源跨平台工具,就类似 java 虚拟机, java 本身不是跨平台语言,但运行在虚拟机上就能够实现了跨平台。 .net 只能在 windows 下运行, mono 可以实现跨平台跑, 可以运行于 linux , Unix , Mac OS等。 二十九:简述 Unity3D 支持的作为脚本的语言的名称 Unity 的脚本语言基于 Mono 的 .Net 平台上运行, 可以使用 .NET 库, 这也为XML 、数据库、正则表达式等问题提供了很好的解决方案。 Unity 里的脚本都会经过编译,他们的运行速度也很快。这三种语言实际上的功能和运行速度是一样的,区别主要体现在语言特性上。 JavaScript 、 C#、 Boo 三十:U3D 中用于记录节点空间几何信息的组件名称,及其父类名称 Transform 父类是 Component 三十一:向量的点乘、叉乘以及归一化的意义? 1. 点乘描述了两个向量的相似程度,结果越大两向量越相似,还可表示投影 2. 叉乘得到的向量垂直于原来的两个向量 3. 标准化向量:用在只关系方向,不关心大小的时候 三十二:为何大家都在移动设备上寻求 U3D 原生 GUI 的替代方案不美观, OnGUI 很耗费时间,效率不高,使用不方便 三十三:请简述如何在不同分辨率下保持 UI 的一致性

相关主题