Unity3d面试题总结

合集下载

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面试题

总结的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面试题

游戏公司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高级工程师面试题

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常见面试题

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的了解程度,包括其核心概念、常用功能和技术以及解决问题的能力。

本文将针对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面试题

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面试题汇总

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 中倒是可行)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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脚本从唤醒到销毁有着一套比较完整的生命周期,请列。

相关文档
最新文档