游戏公司unity面试题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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执行完后就移动摄像机可能会出现摄像机移动了,视口里的内容还没有更新的空帧现象.
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,则漫反射为0
13.Vertex Shader是什么?
答:顶点着色器
14.MipMap是什么,作用?
答:MIP map技术与材质帖图技术结合,根据距观看者远近距离的不同,以不同的分辨率将单一的材质帖图以多重图像的形式表现出来并代表平面纹理:尺寸最大的图像放在前面显著的位置,而相对较小的图像则后退到背景区域。

每一个不同的尺寸等级定义成一个MIP map水平。

MIP map技术帮助避免了不想要的锯齿边缘(称为锯齿状图形)在图像中出现,这种锯齿状图形可能是由于在不同分辨率下使用bit map图像产生的。

15.编辑器类Editor Classes 存放路径在哪里?和Runtime Classes运行时类有什么不同?
答: 存放路么在工程目录下的Assets/Editor文件夹下.和运行时类不同的是,RuntimeClasses是用来开发最终产品的,使用RuntimeClasses开发的程序在软件发布后也可以运行, EditorClasses是用来对编辑器进行2次开发用的,可以用它开发一些自已的模块或工具,但在最终发布的程序中是不能使用的.
16.请简述向量的点乘,向量的叉乘以及向量的归一化的几何意义?
答: 向量的点乘是计算两个向量之间的夹角的Cos值,
A,B向量的叉乘是计算垂直于由两个A,B两向量构成的平面的向量, 向量归一化,是指在空间坐标系内将向量的长度设为1.
17.机试: 多选
1)用鼠标实现在场景中拖动物体,用鼠标滚轮实现视口缩放(用一个Cube即可).
2)用代码实现第三人称角色控制器
3)实现吊机吊物体的功能。

相关文档
最新文档