Unity3d面试题总结
unity3d面试题与参考答案

unity3d⾯试题与参考答案1、C#程序题1 2 3 4 5 6 7 8 9 10 11private static void aaa(int x) { x = 10; } private static void bbb(ref int x) { x = 10; } static void Main(string[] args){int x = 0; aaa(x); //现在x的值是:___ bbb(ref x); //现在x的值是:___}答案:0,,10。
详细解答:⼀个是复制⼀份值过去,⼀个是把地址传过去2、英⽂翻译题(把下⾯⽂字翻译成中⽂)Transform.LocalPositionvar localPosition:Vector3;Description:Position of the transform relative to the parent transform.If the transform has no parent,it is the same as Transform.position.Note that the parent transform's world rotation and scale are applied to the local position when calculating the world position.This means that while 1 unit in Transform.position is always 1 unit in transform.localPosition will get scaled by the scale of all ancestors.描述:相对于⽗级的变换的位置。
如果该变换没有⽗级,那么等同于Transform.position。
注意当计算世界的位置时,⽗级变换的世界旋转和缩放被应⽤到⾃⾝的位置。
总结的U3D面试题

总结的U3D⾯试题1.配置Unity 3d调试环境?1) Visual Studio Tools for Unity3)安装对应的版本4)使⽤⽅法(⽣成项⽬⽂件,如何调试)2.Array(数组)和List<T>的异同点?相同点:1)存储⼀组类型相同的数据2)都可以通过”[i]”数组访问符获取内部数据不同点:Array声明时需要指定固定的⼤⼩,且以后再也⽆法改变⼤⼩;List<T>声明时⽆需设定⼤⼩,且以后可以Add和Remove元素。
答案⼆、int[]--->数组,只能放int类型的元素,并且必须定长度ArrayList-->集合的⼀种,其中可以放任何类型,不受限制,长度可变,⾃增加长度List--->集合的⼀种,其中只能放相同类型的数据,长度可变,增长度3.Unity3D常⽤的组件有哪些?1)Transform组件(Transformers变形⾦刚)2)Camera 摄象机组件3)Collder碰撞器组件4)Renderer 渲染器组件(Teach---Teacher)5)RigidBody刚体组件6)CharacterController⾓⾊控制器组件7)AudioListener⾳频监听器(⽿朵)8)AudioSource⾳频源(喇叭)4.Unity3D⾥的游戏对象(GameObject)有哪些属性?1)name 名字作⽤:对对象进⾏标识2)tag 标签作⽤:对对象进⾏分组(Group)3)layer 层作⽤:1.射线投射2.摄象机裁剪5.Unity3D 中实现UI有哪⼏种技术?1)GUI(绝对布局),GUILayout(⾃动布局)特点:只能在OnGUI函数中使⽤。
2)NGUI (Next-Gen UI)中⽂:下⼀代通⽤的UI系统特点:80%的游戏都采⽤3)UGUI (Unity3D GUI)GUI:Game User Interface特点:开发者就是NGUI的原班⼈马6.NGUI的UI动画怎么实现?动画:在⼀段时间以内,对象的某个属性值从⼀个状态过渡到另外⼀个状态。
游戏公司unity面试题

Unity3d 程序员面试题1.什么是渲染管道?渲染管道有哪些步骤?答:渲染管道是指程序为了在显示器上输出图像而经过的一系列必要操作.渲染管道的步骤有:本地空间->世界空间->视图空间->背面剔除->光照计算->相机裁剪->投影计算->视口变换->光栅化2.Unity3d有几种加载Prefab的方式?答: 1.静态引用,建一个public变量,在Inspector里把prefab拉上去,在场景运行时会自动加载,用的时候instantiate2.Resource.Load, 在调用该函数后加载, Load以后instantiate3.AssetBundle.Load 在调用该函数后加载, Load以后instantiate3.什么是协同程序?答:在主线程序运行时同时开启另一段逻辑处理,来协助当前程序的执行.换名话说.开启协程就象开启一个线程.4.你例举几个你用过的Unity3d插件,并说明它们的用途和特点.5.Unity3d中的碰撞器Collision和触发器Trigger的区别?答:碰撞器有碰撞效果, IsTrigger = false 在碰撞发生时会调用OnCollisionEnter,OnCollisionStay,OnCollisionExit函数.触发器没有碰撞效果, IsTrigger = true, 可被触发时会调用OnTriggerEnter,OnTriggerStay,OnTriggerExit函数6.物体发生碰撞的必要条件答:两件物体都必须有碰撞组件(Collider),其中一物体还必须带有Rigidbody刚体组件7.在物体发生碰撞的整个过程中,有几个阶段,不同阶段分别调用哪些函数答:1.OnCollisionEnter2.OnCollisionStay3.OnCollisionExit8.在unity3D中有Update还有FixedUpdate,物理引擎的更新一般放在哪个系统函数里,为什么?答:物理引擎的更新一般放在FixedUpdate里面,和Update不同,FixedUpdate是渲染帧执行,如果你的渲染效率低下的时候FixedUpdate调用次数就会跟着下降.因为FixedUpdate是每固定帧绘制时执行一次,所以更适合做物理控制.9.移动摄像机的动作放在哪个系统函数中,为什么放在这个函数中?答:移动摄像机的动作应该放在LateUpdate函数中.在每帧执行完毕调用,它是在所有Update结束后才调用,比较适合用于命令脚本的执行.如果不是在所有Update执行完后就移动摄像机可能会出现摄像机移动了,视口里的内容还没有更新的空帧现象.10.场景中有多个相机(Camera)时,怎么来设置多个相机的渲染顺序.答: Depth参数,设为-1会最先被渲染,值越大越后被渲染.11.LOD是什么, 优缺点是什么?答: LOD 是Level Of Detail的缩写,是指的多层次细节技术,是最常用的游戏优化技术.它按照模型的位置和重要程度决定物体渲染的精细层度,从而降低非重要物体的在视口中的面数和细节度,来提高渲染运算的速度.12.写出光照计算中的Diffuse的计算公式?答: diffuse = Kd * colorLight *max(N . L, 0) ; Kd漫反射系数,ColorLight光照的颜色,N物体表面单位法线向量, L由点指向光源的单位向量, 其中N与L为点乘,如果结果小于等于0,则漫反射为013.Vertex Shader是什么?答:顶点着色器14.MipMap是什么,作用?答:MIP map技术与材质帖图技术结合,根据距观看者远近距离的不同,以不同的分辨率将单一的材质帖图以多重图像的形式表现出来并代表平面纹理:尺寸最大的图像放在前面显著的位置,而相对较小的图像则后退到背景区域。
unity高级工程师面试题

unity高级工程师面试题Unity3D工程师一:值类型和引用类型有何区别?(6分)二:C#中所有引用类型的基类是什么?(4分)三:结构体和类有何区别?(5分)四:请描述Interface与抽象类之间的不同(5分)五:请简述GC(垃圾回收)产生的原因,并描述如何避免?(5分)六:Unity3d脚本从唤醒到销毁有着一套比较完整的生命周期,请列出系统自带的几个重要的方法。
(5分)七:OnEnable、Awake、Start运行时的发生顺序?哪些可能在同一个对象周期中反复的发生?(5分)八:物理更新一般放在哪个系统函数里?(5分)九:CharacterController和Rigidbody的区别?(5分)十:MeshRender中material和sharedmaterial的区别?(5分)十一:什么是协同程序?(5分)十二:什么是渲染管道?(5分)十三:.Net与Mono的关系?(4分)十四:向量的点乘、叉乘以及归一化的意义?(6分)十五:Heap与Stack有何区别?(5分)十六:概述序列化:(5分)十七.如何优化内存?(10分)十八:N个元素取出最大(小)的K个元素,请说明思路及算法?(10分二十一:物理更新一般放在哪个系统函数里?FixedUpdate,每固定帧绘制时执行一次,和Update不同的是FixedUpdate是渲染帧执行,如果你的渲染效率低下的时候FixedUpdate调用次数就会跟着下降。
FixedUpdate比较适用于物理引擎的计算,因为是跟每帧渲染有关。
Update就比较适合做控制。
二十二:在场景中放置多个Camera并同时处于活动状态会发生什么?游戏界面可以看到很多摄像机的混合。
二十三:如何销毁一个UnityEngine.Object及其子类?使用Destroy()方法;二十四:请描述为什么Unity3d中会发生在组件上出现数据丢失的情况一般是组件上绑定的物体对象被删除了二十五:LOD是什么,优缺点是什么?LOD(Levelofdetail)多层次细节,是最常用的游戏优化技术。
unity常见面试题

21.请描述为什么Unity3d中会发生在组件上出现数据丢失的情况一般是组件上绑定的物体对象被删除了22.alpha blend工作原理Alpha Blend 实现透明效果,不过只能针对某块区域进行alpha操作,透明度可设。
23.写出光照计算中的diffuse的计算公式diffuse = Kd x colorLi【狗刨学习网】ght x max(N*L,0);Kd 漫反射系数、colorLight 光的颜色、N 单位法线点指向光源的单位向量、其中N与L点乘,如果结果小于等于0,则漫反射为0。
24.Lod是什么,优缺点是什么?LOD(Level of detail)多层次细节,是最常用的游戏优化技术。
它按照模型的位置和重要程度决定物体渲染的资非重要物体的面数和细节度,从而获得高效率的渲染运算。
25.两种阴影判断的方法、工作原理。
26.Vertex Shader是什么,怎么计算?顶点着色器27.MipMap是什么,作用?MipMapping:在三维计算机图形的贴图渲染中有常用的技术,为加快渲染进度和减少图像锯齿,贴图被处理成预先计算和优化过的图片组成的文件,这样的贴图被称为Mip【狗刨学习网】Map。
28.机试:二选一1.用代码实现第三角色控制器2.实现吊机吊物体的功能29.反向旋转动画的方法是什么?30.碰撞检测需要物体具备什么属性?31.获取、增加、删除组件的命令分别是什么?获取:GetComponent增加:AddComponent删除:Destroy32.Animation.CrossFade命令作用是:(C)A.动画放大B.动画转换C.动画的淡入为其他动画33.Application.loadLevel命令为:(A)A.加载关卡B.异步加载关卡C.加载动作34.调试记录到控制台的命令是什么?Debug.Log();35.编辑器类存放路径是什么?工程目录下的Assets/Editor文件夹下。
unity3d 面试题

unity3d 面试题Unity3D面试题Unity3D是一款用于游戏开发的跨平台游戏引擎,广泛应用于游戏开发、虚拟现实和增强现实等领域。
在Unity3D面试中,面试官通常会考察候选人对Unity3D的了解程度,包括其核心概念、常用功能和技术以及解决问题的能力。
本文将针对Unity3D面试常见的题目进行介绍和解答。
1. 请简要介绍一下Unity3D的主要特点和优势。
Unity3D作为一款综合性游戏开发引擎,有以下几点主要特点和优势:- 跨平台支持:Unity3D可以在多个平台上运行,包括Windows、Mac、iOS、Android等,方便开发者进行跨平台的游戏开发。
- 强大的编辑器:Unity3D提供了强大的可视化编辑器,开发者可以方便地进行场景编辑、物体创建、材质设置等操作。
- 丰富的资源库:Unity3D拥有庞大的资源库,包括模型、贴图、音频等素材,开发者可以在开发过程中快速找到适合的资源。
- 灵活的脚本支持:Unity3D支持多种脚本语言,包括C#、JavaScript等,开发者可以根据自身喜好和项目需求选择使用。
- 社区活跃:Unity3D拥有庞大的开发者社区,开发者可以在社区中交流、分享经验和解决问题。
2. 请说明一下Unity3D的游戏开发流程。
Unity3D的游戏开发流程通常包括以下几个主要阶段:- 设计阶段:包括游戏的创意构思、关卡设计、物体设计等。
- 美术阶段:包括游戏角色和场景的建模、贴图、动画制作等。
- 编程阶段:根据设计阶段的需求,通过编写脚本实现游戏的各种功能,包括玩家控制、碰撞检测、音效播放等。
- 调试和优化阶段:测试游戏的各种功能和性能,修复bug,优化游戏的性能和体验。
- 发布阶段:将游戏打包成可执行文件,发布到对应平台(如PC、手机等)。
3. 请介绍一下Unity3D中常用的游戏物体组件。
在Unity3D中,常用的游戏物体组件包括:- Transform:控制物体的位置、旋转和缩放。
Unity3D面试题

Unity3D面试题1.哪种实时光源是Unity中没有的?A:点光源B:方向光C:聚光灯D:日光灯3.以下哪种操作步骤可以在场景中添加“WindZone”?A:Terrain->WindZone5.下列哪一项不属于Camera中的“ClearFlag”?A:Skybo某B:SolidColorC:DepthOnlyD:Background6.以下哪种脚本语言是Unity编辑器所不支持的?A:JavaScriptB:C#C:BooD:Perl7.对于Prefab,以下说法错误的是?A:Prefab资源可以在项目中多次重复使用B:由Prefab实例出的GameObject,其在Hierarchy视图中表现为蓝色C:Prefab上的组件信息一经改变,其实例出的GameObject也会自动改变D:实例出的GameObject上的组件信息一经改变,其对应的Prefab 也会自动改变8.下面哪种做法可以打开Unity的AetStore?A:Window->AetStoreB:Edit->AetStoreC:File->AetStoreD:Aet->AetStore9.在哪个面板中可以修改物体的空间属性,如位置、朝向、大小等?A:ProjectB:InpectorC:HierarchyD:Toolbar10.如何为一个Aet资源设定一个Label,从而能够方便准确的搜索到A:在Project窗口中选中一个Aet,右键->Create->LabelB:在Project窗口中选中一个Aet,右键->AddLabelC:在Project窗口中选中一个Aet,在Inpector窗口中点击添加Label的图标D:在Project窗口中选中一个Aet,在Inpector窗口中点击按钮“AddLabel”1.Mecanim系统中,BodyMak的作用是?A:指定身体的某一部分是否参与骨骼动画B:指定身体的某一部分是否参与物理模拟C:指定身体的某一部分是否可以输出骨骼信息D:指定身体的某一部分是否参与渲染3.下列关于光照贴图,说法错误的是?A:使用光照贴图比使用实时光源渲染要快B:可以降低游戏内存消耗C:可以增加场景真实感D:多个物体可以使用同一张光照贴图4.如何为物体添加光照贴图所使用的UV?A:不用添加,任何时候都会自动生成B:更改物体导入设置,勾选”GenerateLightmapUV”C:更改物体导入设置,勾选“SwapUV”D:更改物体导入设置,在UV选项中选择”UeLightmap”5.在哪个模块下可以修改RenderPath?A:CameraB:LightC:RenderSettingD:ProjectSetting->Quality6.以下哪项技术不是目前Unity所支持的OccluionCulling技术?A:PVSonlyB:PVSanddynamicobjectC:AutomaticPortalGenerationD:DynamicOnly7.关于Vector3的API,以下说法正确的是?A:Vector3.normalize可以获取一个三维向量的法线向量;B:Vector3.magnitude可以获取一个三维向量的长度;C:Vector3.forward与Vector3(0,0,1)是一样的意思;D:Vector3.Dot(向量A,向量B)是用来计算向量A与向量B的叉积8.以下哪个函数在游戏进入新场景后会被马上调用?A:MonoBehaviour.OnSceneWaLoadedB:MonoBehaviour.OnSceneEnterC:MonoBehaviour.OnLevelWaLoadedD:MonoBehaviour.OnLevelEnter9.什么是导航网格(NavMeh)?A:一种用于描述相机轨迹的网格B:一种被优化过的物体网格C:一种用于物理碰撞的网格D:一种用于实现自动寻路的网格10.下列那些选项不是网格层属性的固有选项A:DefaultB:WalkableC:NotWalkableD:Jump。
Unity面试题汇总

一、C#语言1.重载和重写的区别1)所处位置不同重载在同类中重写在父子类中2)定义方式不同重载方法名相同参数列表不同重写方法名和参数列表都相同3)调用方式不同重载使用相同对象以不同参数调用重写用不同对象以相同参数调用4)多态时机不同重载时编译时多态重写是运行时多态2.面向对象的三大特点封装、继承、多态1、封装:封装是将数据和行为相结合,通过行为约束代码修改数据的程度,增强数据的安全性,属性是C#封装实现的最好体现。
2、继承:提高代码重用度,增强软件可维护性的重要手段,符合开闭原则。
3、多态性:多态性是指同名的方法在不同环境下,自适应的反应出不同得表现,是方法动态展示的重要手段。
3.简述值类型和引用类型有什么区别1.值类型存储在内存栈中,引用类型数据存储在内存堆中,而内存单元中存放的是堆中存放的地址。
2.值类型存取快,引用类型存取慢。
3.值类型表示实际数据,引用类型表示指向存储在内存堆中的数据的指针和引用。
4.栈的内存是自动释放的,堆内存是.NET 中会由GC 来自动释放。
5.值类型继承自System.ValueType,引用类型继承自System.Object。
4.请简述private,public,protected,internal的区别public:对任何类和成员都公开,无限制访问private:仅对该类公开protected:对该类和其派生类公开internal:只能在包含该类的程序集中访问该类protected internal:protected + internal5.C#中所有引用类型的基类是什么引用类型的基类是System.Object 值类型的基类是System.ValueType同时,值类型也隐式继承自System.Object6.请简述ArrayList 和List<Int>的主要区别ArrayList 不带泛型数据类型丢失List<T> 带泛型数据类型不丢失ArrayList需要装箱拆箱List<T>不需要7.请简述GC(垃圾回收)产生的原因,并描述如何避免?GC 为了避免内存溢出而产生的回收机制避免:1)减少new 产生对象的次数2)使用公用的对象(静态成员)3)将String 换为StringBuilder8.请描述Interface 与抽象类之间的不同1.接口不是类不能实例化抽象类可以间接实例化2.接口是完全抽象抽象类为部分抽象3.接口可以多继承抽象类是单继承9.下列代码在运行中会产生几个临时对象?其实在C#中第一行是会出错的(Java 中倒是可行)。
unity3d-高频率面试题目

unity3d-高频率面试题目(单选)选择题(共50题,每题2分)1、NavMeshAgent组件中的Speed指的是答案:(A)A、导航移动最大速度B、移动速度和旋转速度C、加速度D、移动起始速度2、LeapMotion的核心脚本是答案:(A)A、HandControllerB、GameControllerC、ControllerD、FingerController3、unity2D平台开发,碰撞方法是()答案:(D)A、OnCollisionEnter(Collision other)B、OnCollisionEnter(Collision2D other)C、OnCollisionEnter2D(Collision other)D、OnCollisionEnter2D(Collision2D other)4、Unity中使用LitJSON,将对象转换成字符串是用哪个方法答案:(A)A、()B、()C、()D、()5、物理更新一般放到哪个函数里面答案:(D)A、OnEnableB、AwakeC、StartD、FixedUpdate6、Unity发布安卓程序,Sqlite数据库应该存在那个路径下答案:(C)A、B、、、7、发布PC端程序,使用WWW加载本地文件,正确的URL是答案:(C)A、、XXXC、""++"/xxxx"D、以上都不对8、JSON格式比XML更小,更快,以下说法错误的是答案:(B)A、数据在键值对中B、数据由分号分隔C、花括号保存对象D、方括号保存数组9、外部引入的DLL需要放到哪个文件夹下答案:(A)A、PluginsB、ResourcesC、PluginD、Resource10、使用导航系统,想要实现VR效果,船员爬上绳索,肯定需要设置那个属性答案:(A)A、autoTraverseOffMeshLinkB、autoRepathC、autoBrakingD、currentOffMeshLinkData11、要使用IK,必须使用新版动画,除此之外还需要实现系统自带的什么函数答案:(A)A、OnAnimatorIK(int layerIndex)B、OnAnimatorIK()C、OnIKAnimator(int layerIndex)D、OnIKAnimation()12、Unity3d提供了一个用于保存和读取数据的类是答案:(A)A、PlayerPrefsB、ResourceC、DataSaveD、Players13、角色控制器(CharacterController)组件中自动使用重力的方法是答案:(A)A、SimpleMoveB、MoveC、SimpleMove和MoveD、以上都不对14、Unity中的Light组件,那个属性可以实现图案投影答案:(A)A、CookieB、FlareC、ShadowTypeD、Color15、移动相机动作最好在哪个函数里答案:(B)A、UpdateB、LateUpdateC、FixedUpdateD、OnGUI16、物体自身旋转使用的函数是答案:(C)A、()B、()C、()D、()17、关于烘焙导航网格,说法错误的是答案:(C)A、表示为Static的物体才可以烘培B、Drop Height表示能跳下的高度C、Jump Distance表示能跳上的高度D、Agent Radius表示物体能通过的半径18、下列选项中,哪个选项表示从游戏开始到到现在所用的时间答案:(A)A、B、、、19、物体发生碰撞的必要条件是答案:(C)A、两个物体都有碰撞器即可B、都有刚体即可C、都有碰撞器,至少一个刚体D、都有刚体,至少一个碰撞体20、使用UGUI中的拖拽接口,需要引入那个命名空间答案:(A)A、B、、、21、关于动画系统中的融合树,描述错误的是答案:(D)A、融合树的1D类型是指用一个参数控制融合树B、Blend Tree可以自动融合两个动作,实现自然过渡效果C、2D Simple Directional类型的融合树,在某一个方向上只能有一个状态D、融合树内部不能嵌套融合树22、关于Avatar,描述错误的是答案:(C)A、Humanoid和Generic类型的模型,都需要AvatarB、Avatar是骨骼绑定的映射,是系统自动生成C、要使用新版动画,每一个人物模型都必须要有自己的AvatarD、Avatar配置不对,可能导致人物动画无法正常播放23、关于拖尾组件的描述错误的是答案:(C)A、一般选用粒子效果的材质B、Time表示拖尾的生命周期C、Colors下面可以设置1个颜色D、Autodestruct 勾选后,物体一旦静止,将被自动销毁游戏物体24、关于四元数说法错误的是答案:(C)A、能避免万向锁B、表示没有旋转C、()方法不需要参数D、表示球形插值25、关于预设体,以下说法错误的是答案:(D)A、空的预设体是白色,非空为蓝色B、反复需要实例化的物体通常设为预设体C、只要预设体原型发生改变,所有Prefab实例都会发生改变D、声音资源可以作为预设体26、Unity引擎自带的回调函数中OnEnable、Awake、Start哪个可能在同一个对象周期中反复的发生答案:(A)A、OnEnableB、AwakeC、StartD、以上都不对27、导航系统中,想要实现路障效果,需要使用答案:(A)A、NavMeshAgent和NavMeshObstacle组件B、NavMeshObstacle和OffMeshLink组件C、NavMeshAgent和OffMeshLink组件D、NavMeshAgent和NavMeshLayer组件28、关于射线,以下说法错误的是答案:(C)A、射线可以用于物体检测B、射线有两个属性,direction和originC、()用于产生多条射线D、 ()方法可以用射线检测指定层29、关于Unity自己封装了一个Network类,主要用于状态同步,开启服务器的方法是答案:(D)A、()B、()C、()D、()30、新版动画系统中,模型的Rig模块下,Animation Type不包括答案:(C)A、HumanoidB、GenericC、NormalD、Legacy31、Sqlite数据库,ExecuteReader方法的作用是答案:(C)A、连接数库库B、执行命令,返回第一行第一列的值C、执行命令,返回所有结果D、读取数据,返回所有数据,返回值为字符串数组32、UGUI中可以实现穿透效果的组件是答案:(C )A、Canvas ScalerB、Graphic RaycasterC、Canvas GroupD、Canvas Mask33、LOD优化的是答案:(C)A、内存B、CPUC、GPUD、以上都不对34、关于XML,描述错误的是答案:(B)A、XML是可扩展标记语言,用于数据传输B、XML比JSON的可读性更高,占用资源更少C、XML只能有一个根节点D、XML 是W3C的举荐标准35、自动布局控件中,可以实现固定子元素宽高的控件是答案:(B)A、Horizontal Layout GroupB、Grid Layout GroupC、Vertical Layout GroupD、Content Size Fitter36、关于协程,以下说法正确的是答案:(A)A、方法的返回值必须为IenumeratorB、协程是多线程C、协程里面不能再次开启另一个协程D、yield return 2;表示等待2帧37、LineRender组件不包含那个属性答案:(D )A、SetColorB、SetVertexCountC、SetWidthD、SetLength38、光照贴图,描述错误的是答案:(C)A、烘培完毕,可以删掉灯光B、优化的是GPU的DrawCallC、所有的灯光都可以烘培D、当场景很大时,全局烘培非常费时39、NetworkView默认情况下,不能同步什么属性答案:(D)A、位置B、刚体C、动画D、脚本40、以下说法正确的是答案:(A)A、TCP是基于连接的,保证数据正确性,不会丢包B、UDP是基本非连接的,保证了数据顺序,不会丢包C、Unity内部不能使用Socket 编程D、Socket可以发送字符串数据41、关于MVC描述错误的是答案:(D)A、结构清晰B、减少耦合度C、容易理解、有利于标准化D、减少了代码量和工作量42、关于StreamingAssetsPath路径描述不正确的是答案:(D)A、该路径在移动端可读不可写B、在安卓路径下是jar:,打包成一个Assetbundle之后,所占空间可能是多少答案:(C)A、小于4KBB、大于8KBC、小于8KBD、12KB44、以下说法正确的是()答案:(B)A、Sprite Renderer支持的图片类型为TextureB、精灵编辑器Sprite Editor可以给图片添加borderC、使用图集会增加DrawCall值D、2D游戏无法控制层级关系45、下列选项中,可以找到隐藏物体的方法是答案:(C)A、()B、()C、()D、()46、实现鼠标拉近人物模型,人物模型自动看向摄像机(时时)需要使用什么技术答案:(B)A、遮罩技术B、动画头部IKC、动画事件D、动画融合47、Unity中鼠标的位置用屏幕的像素坐标表示,描述正确的是()答案:(C)A、左上为坐标原点(0, 0),右下为(, )B、右上为坐标原点(0, 0),左下为(, )C、左下为坐标原点(0, 0),右上为(, )D、右下为坐标原点(0, 0),左上为(, )48、关于动画系统中,要实现边走边换子弹的效果,描述错误的是答案:(B)A、需要用到遮罩技术B、原有层的权重值需为1C、需要添加AvatarMaskD、在新建层中设置一个空的状态机49、使用导航系统,想获取到达目标点内包含的所有路径,需要用到答案:(B)A、B、、、50、UGUI中的Canvas不包含那种渲染类型答案:(D )A、Screen Space - overlayB、Screen Space - CameraC、World SpaceD、Camera Space。
unity3d 面试试题

unity3d 面试题1. 在场景中放置多个Camera并同时处于活动状态时会发生什么.2. 请简述Prefab的作用,并描述如何在移动设备的环境下恰当的使用它.3. 如何销毁一个UnityEngine.Object及其子类.4. 请简述为什么Unity3D中会发生在组件上出现数据丢失的情况(missing).4. 请简述Unity3D下如何安全的在不同工程间迁移asset数据,请举出三种方法.qq群(68994667)的各种吐槽程序@成都: 09:39:021.多个camera与depth有关,2,prefab预定制,我的理解就是,它已经是对象了(包含了各种脚本,模型,资源关系的集合),但是如果你在场景中不引用它,它是不会占用内存的,因此在移动设备上不能直接引用(也就是不能直接托在给脚本的),可以采用resouces.load,传路径的方式。
3、难倒不能直接用destroy,可能另有玄机4、其实就是关系丢失了(Library目录),基本上就是没有在unity里改名啊,改变位置就会出这个问题,5、方法1,可以把assets目录和Library目录一起迁移,方法二,导出包,方法三,用unity带的assets server功能程序@成都: 09:39:12可能理解有错程序@kt: 09:39:47北京程序@笑靥: 09:42:23Program_cyh: 09:46:094.应该是引用的对象发生了改变程序@Frank: 10:26:214. 请简述Unity3D下如何安全的在不同工程间迁移asset数据,请举出三种方法. 个人认为只有一种方法,就是先导出unitypackage格式,再导入另外一个项目程序@Frank: 10:27:303. 如何销毁一个UnityEngine.Object及其子类.直接Destroy,不管是对象还是组件程序@Frank: 10:27:57请简述Prefab的作用就是模板程序@野猪: 10:28:21程序@Frank: 10:29:22请简述为什么Unity3D中会发生在组件上出现数据丢失的情况(missing).通常都是因为项目的相关文件被外部修改或删除成都程序@chwu: 10:33:10@程序@Frank 回答的靠谱程序@野猪: 10:33:21程序@kt: 10:35:33rendertexture 在destroy前,有没有必要调用release呢?程序@Frank: 10:38:38没有release程序@Frank: 10:38:54release 在DirectX里见过程序@小董: 10:40:07大侠何在!~程序@小董: 10:40:29脚本控制---创建一个prefab 如何实现!程序@小董: 10:40:50并且制定目录和命名策划@多乐士: 10:46:35UnityEditor.PrefabUtility.CreateEmptyPrefab。
Unity3D面试题汇总

Unity3D⾯试题汇总1.请描述游戏动画有哪⼏种,以及其原理。
2.alpha blend ⼯作原理3.写光照计算中的diffuse的计算公式4.lod是什么,优缺点是什么5.两种阴影判断的⽅法⼯作原理6.MipMap是什么?作⽤?7.⽤u3d实现2d游戏,有⼏种⽅式?答:⼀种⽤UI实现(GUI,NGUI...),⼀种是采⽤3d实体对象(plane),绘制在3d对象上,调节摄像机,采⽤平⾏投影模式或则固定视⾓。
8.u3d中碰撞器和触发器的区别?答:触发器只是碰撞器⾝上的⼀个属性,碰撞器是触发器的载体。
9.物体发⽣碰撞的必要条件答:需要检测碰撞的物体⾝上存在刚体组件(或被检测物体),也要碰撞器collider10.CharacterController和Rigidbody的区别11.物体发⽣碰撞时,有⼏个阶段,分别对应的函数答:排除触发,有3种,OnCollisionEnter(),OnCollisionStay(); OnCollisionExit()12.u3d中,⼏种施加⼒的⽅式,描述出来。
答:a)爆炸⼒(AddExplosionForce(force : float, forcePos : Vector3,radius : float, upwards : float, mode : ForceMode)),应⽤⼀个⼒到刚体来模拟爆炸效果,就是在爆炸⼒中⼼坐标position,搜索在radius范围内的刚体,对其释放⼒作⽤,超出radius范围的刚体不受⼒作⽤,爆炸⼒将随着刚体的距离线性减弱。
b)⼒AddForce(force : Vector3, mode : ForceMode),主要施⼒给⼀个刚,使其移动。
c)位置⼒AddForceAtPosition(force : Vector3, position : Vector3, mode : ForceMode), 在position施加⼀个⼒,施⼒的主体将会受到⼀个⼒和⼒矩。
我的unity面试题

界(大于这个纹理的宽/高或者小于 0),那么它将会以纹理的循环模式 为准 进行限制或重复。 6. 若要快速的从纹理上获取一大块像素的颜色,采用 Texture2D.GetPixels (int x),此方法中参数 x 表示 Mip 等级 。 7. 纹理(Texture)的循环模式:Repeat(重复)表示:纹理重复的平铺本身; Clamp(钳制)表示:纹理的边缘无限延伸。
B、一个粒子动画器
C、一个粒子碰撞器
D、一个粒子渲染器。
5. 网格粒子发射器(Mesh Particle Emitter)的 Emitter Velocity Scale(发
射器速度比例)此属性只适用于模拟()被启用时。(A)
A、世界空间 B、本地空间 C、两者都可以
6. 网格粒子发射器(Mesh Particle Emitter)的 Emitter Velocity Scale(发
3.给 定 一 个 字 符 串 , 删 除 字 符 串 中 重 复 出 现 过 的 字 符 , 比 如 给 定 ”
unity3d-高频率面试题目(单选)

unity3d-高频率面试题目(单选)unity3d-高频率面试题目(单选)选择题(共50题,每题2分)1、NavMeshAgent组件中的Speed指的是?答案:(A)A、导航移动最大速度B、移动速度和旋转速度C、加速度D、移动起始速度2、LeapMotion的核心脚本是?答案:(A)A、HandControllerB、GameControllerC、ControllerD、FingerController3、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、OnEnableB、AwakeC、StartD、FixedUpdate6、Unity发布安卓程序,Sqlite数据库应该存在那个路径下?答案:(C)A、Application.dataPathB、Application.streamingAssetsPathC、Application.persistentDataPathD、Application.temporaryCachePath7、发布PC端程序,使用WWW加载本地文件,正确的URL是?答案:(C)A、/XXXB、Application.streamingAssetsPath/XXXC、"file://"+Application.streamingAssetsPath+"/xxxx"D、以上都不对8、JSON格式比XML更小,更快,以下说法错误的是?答案:(B)A、数据在键值对中B、数据由分号分隔C、花括号保存对象D、方括号保存数组9、外部引入的DLL需要放到哪个文件夹下?答案:(A)A、PluginsB、ResourcesC、PluginD、Resource10、使用导航系统,想要实现VR效果,船员爬上绳索,肯定需要设置那个属性?答案:(A)A、autoTraverseOffMeshLinkB、autoRepathC、autoBrakingD、currentOffMeshLinkData11、要使用IK,必须使用新版动画,除此之外还需要实现系统自带的什么函数?答案:(A)A、OnAnimatorIK(int layerIndex)B、OnAnimatorIK()C、OnIKAnimator(int layerIndex)D、OnIKAnimation()12、Unity3d提供了一个用于保存和读取数据的类是?答案:(A)A、PlayerPrefsB、ResourceC、DataSaveD、Players13、角色控制器(CharacterController)组件中自动使用重力的方法是?答案:(A)A、SimpleMoveB、MoveC、SimpleMove和MoveD、以上都不对14、Unity中的Light组件,那个属性可以实现图案投影?答案:(A)A、CookieB、FlareC、ShadowTypeD、Color15、移动相机动作最好在哪个函数里?答案:(B)A、UpdateB、LateUpdateC、FixedUpdateD、OnGUI16、物体自身旋转使用的函数是?答案:(C)A、Transform.RotateRound()B、Transform.RotateAt()C、Transform.Rotate()D、Transform.Rotated()17、关于烘焙导航网格,说法错误的是?答案:(C)A、表示为Static的物体才可以烘培B、Drop Height表示能跳下的高度C、Jump Distance表示能跳上的高度D、Agent Radius表示物体能通过的半径18、下列选项中,哪个选项表示从游戏开始到到现在所用的时间?答案:(A)A、Time.timeB、Time.deltaTimeC、Time.timeScaleD、Time.fixedTime19、物体发生碰撞的必要条件是?答案:(C)A、两个物体都有碰撞器即可B、都有刚体即可C、都有碰撞器,至少一个刚体D、都有刚体,至少一个碰撞体20、使用UGUI中的拖拽接口,需要引入那个命名空间?答案:(A)A、UnityEngine.EventSystemsB、UnityEngine.UIC、UnityEngine.EventsD、UnityEngine.Event21、关于动画系统中的融合树,描述错误的是?答案:(D)A、融合树的1D类型是指用一个参数控制融合树B、Blend Tree可以自动融合两个动作,实现自然过渡效果C、2D Simple Directional类型的融合树,在某一个方向上只能有一个状态D、融合树内部不能嵌套融合树22、关于Avatar,描述错误的是?答案:(C)A、Humanoid和Generic类型的模型,都需要AvatarB、Avatar是骨骼绑定的映射,是系统自动生成C、要使用新版动画,每一个人物模型都必须要有自己的AvatarD、Avatar配置不对,可能导致人物动画无法正常播放23、关于拖尾组件的描述错误的是?答案:(C)A、一般选用粒子效果的材质B、Time表示拖尾的生命周期C、Colors下面可以设置1个颜色D、Autodestruct 勾选后,物体一旦静止,将被自动销毁游戏物体24、关于四元数说法错误的是?答案:(C)A、能避免万向锁B、Quaternion.identity表示没有旋转C、Quaternion.LookRotation()方法不需要参数D、 Quaternion.Slerp表示球形插值25、关于预设体,以下说法错误的是?答案:(D)A、空的预设体是白色,非空为蓝色B、反复需要实例化的物体通常设为预设体C、只要预设体原型发生改变,所有Prefab实例都会发生改变D、声音资源可以作为预设体26、Unity引擎自带的回调函数中OnEnable、Awake、Start哪个可能在同一个对象周期中反复的发生?答案:(A)A、OnEnableB、AwakeC、StartD、以上都不对27、导航系统中,想要实现路障效果,需要使用?答案:(A)A、NavMeshAgent和NavMeshObstacle组件B、NavMeshObstacle和OffMeshLink组件C、NavMeshAgent和OffMeshLink组件D、NavMeshAgent和NavMeshLayer组件28、关于射线,以下说法错误的是?答案:(C)A、射线可以用于物体检测B、射线有两个属性,direction和originC、Physics.RaycastAll()用于产生多条射线D、 Physics.Raycast()方法可以用射线检测指定层29、关于Unity自己封装了一个Network类,主要用于状态同步,开启服务器的方法是?答案:(D)A、Network.StartServer()B、Network.Listen()C、Network.BeginServer()D、Network.InitializeServer()30、新版动画系统中,模型的Rig模块下,Animation Type不包括?答案:(C)A、HumanoidB、GenericC、NormalD、Legacy31、Sqlite数据库,ExecuteReader方法的作用是?答案:(C)A、连接数库库B、执行命令,返回第一行第一列的值C、执行命令,返回所有结果D、读取数据,返回所有数据,返回值为字符串数组32、UGUI中可以实现穿透效果的组件是?答案:(C )A、Canvas ScalerB、Graphic RaycasterC、Canvas GroupD、Canvas Mask33、LOD优化的是?答案:(C)A、内存B、CPUC、GPUD、以上都不对34、关于XML,描述错误的是?答案:(B)A、XML是可扩展标记语言,用于数据传输B、XML比JSON的可读性更高,占用资源更少C、XML只能有一个根节点D、XML 是W3C的举荐标准35、自动布局控件中,可以实现固定子元素宽高的控件是?答案:(B)A、Horizontal Layout GroupB、Grid Layout GroupC、Vertical Layout GroupD、Content Size Fitter36、关于协程,以下说法正确的是?答案:(A)A、方法的返回值必须为IenumeratorB、协程是多线程C、协程里面不能再次开启另一个协程D、yield return 2;表示等待2帧37、LineRender组件不包含那个属性?答案:(D )A、SetColorB、SetVertexCountC、SetWidthD、SetLength38、光照贴图,描述错误的是?答案:(C)A、烘培完毕,可以删掉灯光B、优化的是GPU的DrawCallC、所有的灯光都可以烘培D、当场景很大时,全局烘培非常费时39、NetworkView默认情况下,不能同步什么属性?答案:(D)A、位置B、刚体C、动画D、脚本40、以下说法正确的是?答案:(A)A、TCP是基于连接的,保证数据正确性,不会丢包B、UDP是基本非连接的,保证了数据顺序,不会丢包C、Unity内部不能使用Socket编程D、Socket可以发送字符串数据41、关于MVC描述错误的是?答案:(D)A、结构清晰B、减少耦合度C、容易理解、有利于标准化D、减少了代码量和工作量42、关于StreamingAssetsPath路径描述不正确的是?答案:(D)A、该路径在移动端可读不可写B、在安卓路径下是jar:file:///Application.dataPath/!/assetsC、在iOS路径下是Application.dataPath/Data/RawD、在Unity中可以通过Resources.Load()加载该路径下面的资源43、两个4KB的预设体,打包成一个Assetbundle之后,所占空间可能是多少?答案:(C)A、小于4KBB、大于8KBC、小于8KBD、12KB44、以下说法正确的是()答案:(B)A、Sprite Renderer支持的图片类型为TextureB、精灵编辑器Sprite Editor可以给图片添加borderC、使用图集会增加DrawCall值D、2D游戏无法控制层级关系45、下列选项中,可以找到隐藏物体的方法是?答案:(C)A、GameObject.FindWithTag()B、GameObject.Find()C、transform.Find()D、transform.FindWithTag()46、实现鼠标拉近人物模型,人物模型自动看向摄像机(时时)需要使用什么技术?答案:(B)A、遮罩技术B、动画头部IKC、动画事件D、动画融合47、Unity中鼠标的位置用屏幕的像素坐标表示,描述正确的是()答案:(C)A、左上?为坐标原点(0, 0),右下?为(Screen.width, Screen.height)B、右上?为坐标原点(0, 0),左下?为(Screen.width, Screen.height)C、左下?为坐标原点(0, 0),右上?为(Screen.width, Screen.height)D、右下?为坐标原点(0, 0),左上?为(Screen.width, Screen.height)48、关于动画系统中,要实现边走边换子弹的效果,描述错误的是?答案:(B)A、需要用到遮罩技术B、原有层的权重值需为1C、需要添加AvatarMaskD、在新建层中设置一个空的状态机49、使用导航系统,想获取到达目标点内包含的所有路径,需要用到?答案:(B)A、navMeshAgent.meshB、navMeshAgent.pathC、navMeshAgent.cornersD、navMeshAgent.points50、UGUI中的Canvas不包含那种渲染类型答案:(D )A、Screen Space - overlayB、Screen Space - CameraC、World SpaceD、Camera Space。
u3d面试题

u3d面试题随着游戏行业的发展,U3D引擎在游戏制作中扮演着重要的角色。
因此,掌握U3D技术的人才需求也越来越大。
如果你正在准备参加一场U3D的面试,本文将为你提供一些常见的U3D面试题,并给出相应的解答。
1. U3D是什么?U3D(Unity 3D)是一种跨平台的游戏开发引擎。
它提供了丰富的工具和资源,以便开发人员能够轻松地创建各种类型的游戏,包括2D 和3D游戏。
2. U3D的优势有哪些?U3D有以下几个优势:(1)跨平台:使用U3D可以开发适用于多个平台的游戏,包括Windows、Mac、iOS、Android等。
(2)易学易用:U3D提供了友好的可视化编辑界面,使开发人员能够轻松创建游戏场景、角色、特效等。
(3)资源丰富:U3D拥有大量的开放源代码社区和资源商店,可以快速获取各种插件和资源,方便开发人员进行扩展和二次开发。
(4)高性能:U3D引擎具备强大的性能优化能力,使得游戏在各种设备上都能够流畅运行。
3. 请简要介绍一下U3D的工作流程。
U3D的工作流程可以概括为以下几个步骤:(1)项目规划和需求分析:通过与客户或产品经理的沟通,在获得明确的需求后,确定项目的整体规划和目标。
(2)场景设计和资源准备:根据需求,设计游戏场景,并准备好所需的模型、贴图、音频等资源。
(3)编写脚本和逻辑:使用C#或JavaScript等编程语言编写游戏逻辑和交互脚本。
(4)调试和测试:在U3D编辑器中进行调试和测试,保证游戏的功能和性能达到预期效果。
(5)发布和上线:根据目标平台,将游戏打包发布,并进行上线测试和发布。
4. U3D中的碰撞器有哪些类型?请简要介绍它们的作用。
U3D中常用的碰撞器类型有以下几种:(1)Box Collider:盒子碰撞器,用于模拟物体的盒形边界。
它可以用于大多数物体的碰撞检测。
(2)Sphere Collider:球体碰撞器,用于模拟物体的球形边界。
它在需要模拟球体碰撞判定时使用。
Unity3D实习生面试题总结-Unity引擎相关

Unity3D实习⽣⾯试题总结-Unity引擎相关Unity组件删除和添加//添加GameObect.AddComponent<ScriptName>();//删除Destroy(GameObect.GetComponent<ScriptName>());Unity3d获取游戏对象的⼏种⽅法GameObject.Find();Tranform.Find();GameObject.FindGameObjectWithTag();Unity3d中的碰撞器和触发器的区别碰撞器有碰撞的效果,IsTrigger=false,可以调⽤OnCollisionEnter/Stay/Exit函数;触发器没有碰撞效果,IsTrigger=true,可以调OnTriggerEnter/Stay/Exit函数。
Unity3d脚本声明周期First Scene Load 第⼀个场景加载Awake:这个函数是在Start函数之前以及预制物体实例化后被调⽤。
OnEnable:(仅在对象激活状态下可⽤):这个函数在对象可⽤之后被调⽤。
Before the first frame update 第⼀帧更新之前Start:如果脚本实例化被启⽤,则Start函数在第⼀帧更新之前被调⽤。
In between frames 执⾏期间FixedUpdate: FixedUpdate()⽐Update()函数调⽤的更频繁。
当帧率⽐较低时,它每帧被调⽤多次,如果帧率⽐较⾼,它有可能就不会被调⽤。
所有的物理计算和更新都⽴即发⽣在FixedUpdate()之后。
当在FixedUpdate()中计算物体移动时,你不需要乘以Time.deltaTime。
因为FixedUpdate()是基于可靠的定时器的,不受帧率的影响。
Update() 每帧调⽤⼀次。
这是帧更新的主要函数。
LateUpdate: 在Update()执⾏后,LateUpdate() 也是每帧都被调⽤。
unity面试题含答案

unity面试题含答案1. 什么是Unity?Unity是一款跨平台的游戏开发引擎,可用于开发2D和3D游戏。
它提供了一个可视化的开发环境,简化了游戏开发的流程,并支持多种平台,包括Windows、iOS、Android等。
2. 请介绍一下Unity中的场景(Scene)和游戏对象(GameObject)。
场景(Scene)是Unity中的基本概念,用于存储游戏中的内容,如场景中的角色、环境、事件等。
一个Unity项目可以包含多个场景,可以在场景之间切换。
游戏对象(GameObject)是Unity中的基本单元,代表了场景中的可见、可听、可触碰的实体。
游戏对象可以是角色、道具、特效等,同时也可以包含其他游戏对象。
3. 请说明Unity中的组件(Component)是什么?组件(Component)是Unity中的重要概念,它可以附加到游戏对象上,并为游戏对象提供特定的功能。
例如,碰撞器(Collider)组件用于检测游戏对象之间的碰撞,脚本(Script)组件用于编写游戏逻辑代码。
每个游戏对象可以包含多个组件,不同的组件可以协同工作,实现更复杂的功能。
通过添加、删除和配置组件,可以定制游戏对象的行为和外观。
4. 请简要介绍Unity中的物理系统(Physics System)。
Unity中的物理系统用于模拟游戏中的物理行为,如重力、碰撞等。
它分为两个主要部分:刚体系统和碰撞系统。
刚体系统负责处理游戏对象的运动和旋转,例如使角色受重力作用下落。
碰撞系统负责处理游戏对象之间的碰撞,例如角色与墙壁的碰撞。
开发者可以通过配置物理材质、设置刚体属性等来实现所需的物理效果。
5. 请简述Unity中的资源管理机制。
Unity的资源管理机制旨在确保游戏在运行时能够高效加载和使用资源,包括模型、贴图、音频等。
通过将资源放入Unity的资源文件夹中,资源将在项目构建时被打包,然后可以通过代码访问。
Unity提供了一些API来加载和实例化资源,开发者可以根据需要动态加载资源,并在使用完毕后及时释放资源,以避免内存过载和性能问题。
unity3d面试题总结

unity3d面试题总结1. 请简述值类型与引用类型的区别答:区别:1.值类型存储在内存栈中,引用类型数据存储在内存堆中,而内存单元中存放的是堆中存放的地址。
2.值类型存取快,引用类型存取慢。
3.值类型表示实际数据,引用类型表示指向存储在内存堆中的数据的指针和引用。
4.栈的内存是自动释放的,堆内存是.NET中会由GC来自动释放。
5.值类型继承自,引用类型继承自。
#中所有引用类型的基类是什么答:引用类型的基类是值类型的基类是同时,值类型也隐式继承自3.请简述ArrayList和List的主要区别答:ArrayList存在不安全类型‘(ArrayList会把所有插入其中的数据都当做Object来处理)装箱拆箱的操作(费时)List是接口,ArrayList是一个实现了该接口的类,可以被实例化。
4.请简述GC(垃圾回收)产生的原因,并描述如何避免?答:GC回收堆上的内存避免:1)减少new产生对象的次数2)使用公用的对象(静态成员)3)将String换为StringBuilder5.请描述Interface与抽象类之间的不同答:抽象类表示该类中可能已经有一些方法的具体定义,但接口就是公公只能定义各个方法的界面,不能具体的实现代码在成员方法中。
类是子类用来继承的,当父类已经有实际功能的方法时该方法在子类中可以不必实现,直接引用父类的方法,子类也可以重写该父类的方法。
实现接口的时候必须要实现接口中所有的方法,不能遗漏任何一个。
6.下列代码在运行中会产生几个临时对象?string a = new string("abc");a = (() + "123").Substring(0, 2);复制代码答:其实在C#中第一行是会出错的(Java中倒是可行)。
应该这样初始化:string b = new string(new char{'a','b','c'});复制代码7.下列代码在运行中会发生什么问题?如何避免?Listls = new List(new int { 1, 2, 3, 4, 5 });foreach (int item in ls){(item * item);(item);}复制代码答:会产生运行时错误,因为foreach是只读的。
Unity面试题(超全)

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 是一个实现了该接口的类,可以被实例化五:如何安全的在不同工程间安全地迁移asset数据?三种方法1.将Assets目录和Library目录一起迁移2.导出包,export Package3.用unity自带的assets Server功能六:OnEnable、Awake、Start运行时的发生顺序?哪些可能在同一个对象周期中反复的发生Awake –>OnEnable->Start,OnEnable在同一周期中可以反复地发生。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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,能够调用OnCollisionEnter/Stay/Exit函数;
触发器没有碰撞效果,IsTrigger=true,能够调用OnTriggerEnter/Stay/Exit函数。
3.物体发生碰撞的必要条件
两个物体都必须带有碰撞器(Collider),其中一个物体还必须带有Rigidbody刚体。
4.CharacterController和Rigidbody的区别?
CharacterController自带胶囊碰撞器,里面包含有刚体的属性;
Rigidbody就是刚体,使物体带有刚体的特征。
5.在物体发生碰撞的整个过程中,有几个阶段,分别列出对应的函数
三个阶段
1.OnCollisionEnter
2.OnCollisionStay
3.OnCollisionExit
6.Unity3d的物理引擎中,有几种施加力的方式,分别描述出来
rigidbody.AddForce/AddForceAtPosition,都在rigidbody 系列函数中。
7.什么叫做链条关节?
Hinge Joint,能够模拟两个物体间用一根链条连接在一起的情况,能保持两个物体在一个固定距离内部相互移动而不产生作用力,可是达到固定距离后就会产生拉力。
8.物体自身旋转使用的函数?
Transform.Rotate()
9.物体围绕某点旋转使用的函数?
Transform.RotateAround()
10.Unity3d提供了一个用于保存和读取数据的类(PlayerPrefs),请列出保存和读取整形数据的函数
PlayerPrefs.SetInt() PlayerPrefs.GetInt()
11.Unity3d提供了几种光源类型,分别是哪几种?
四种。
平行光:Directional Light 点光源:Point Light
聚光灯:Spot Light 区域光源:Area Light
12.Unity3d脚本从唤醒到销毁有着一套比较完整的生命周期,请列。