[Unity3D]上海某大型游戏公司的基础面试题

简介: 分享上海某大型游戏公司的一个基础测试题!1.Unity中碰撞器(Collider)和触发器(Trigger)的区别?碰撞器(Collider)有碰撞效果,IsTrigger=false,可以调用OnCollisionEnter/Stay/Exit函数触发器...

分享上海某大型游戏公司的一个基础测试题!

1.Unity中碰撞器(Collider)和触发器(Trigger)的区别?

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

触发器(Trigger)没有碰撞效果,isTrigger=true,可以调用OnTriggerEnter/Stay/Exit函数

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

必须带有collider碰撞器和rigibody刚体属性或者人物控制器,其实人物控制器就包含了前两者,另外一个物体也要必须带有Collider,Collider分类:网格碰撞器,盒子碰撞器,胶囊碰撞器,球型碰撞器,地形碰撞器!

3.CharacterController和Rigidbody的区别?

Rigidbody具有完全真实物理的特性,而CharacterController可以说是受限的的Rigidbody,具有一定的物理效果但不是完全真实的。

4.物体发生碰撞时,有几个阶段,分别对应的函数?

三个阶段,OnCollisionEnter/Stay/Exit函数

5.物体发生碰撞时,几种施加压力的方式,描述出来?

rigidbody.AddForce/AddForceAtPosition,都是rigidbody的成员函数

6.Unity3d提供了几种光源,分别是什么?

共4种,DirectionalLight、PointLight、SpotLight、AreaLight(用于烘焙)

7.物理更新一般在哪个系统函数里?

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

8.移动相机动作在哪个函数里,为什么在这个函数里。

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

9.简述一下Prefab的用处?

在游戏运行时实例化,prefab相当于一个模板,对你已经有的素材、脚本、参数做一个默认的配置,以便于以后的修改,同事prefab打包的内容简化了导出的操作,便于团队的交流。

10.简述一下对象池,你觉得在FPS游戏里哪些东西适合使用对象池?

对象池就存放需要被反复调用资源的一个空间,比如游戏中要常被大量复制的对象,子弹,敌人,以及任何重复出现的对象。

11.最后一题就不详细说了,时间也不早了,该洗洗睡了,可以参考这个来模仿:

1. 机枪兵在平时站立时,处于 空闲 状态;

初始化状态机,并将 空闲 状态作为初始状态放入状态机堆栈中;状态机堆栈:【空闲】

2. 机枪兵发现敌人,并且敌人在射程范围内,机枪兵开始攻击敌人;此时,机枪兵进入 攻击 状态;

进入 攻击 状态;状态机堆栈:【攻击】【空闲】

3. 敌人死亡,机枪兵停止攻击;此时,机枪兵回到 空闲 状态;

退出当前状态;状态机堆栈:【空闲】

4. 此时玩家发出进攻命令,此进攻命令是用A键点了远处的一个地面 place1 ,也就是没有具体目标的进攻;此时,机枪兵进入 移动进攻 状态;

进入 移动进攻 状态;状态机堆栈:【移动进攻】【空闲】

5. 在移动过程中,机枪兵发现了敌人,所以他要脱离原来的路径,走向发现的敌人;此时,机枪兵进入 追击 状态;

进入 追击 状态;状态机堆栈:【追击】【移动进攻】【空闲】

6. 机枪兵和敌人的距离小于了自己的射程之后,机枪兵停下来,并且攻击敌人;此时,机枪兵进入了 攻击 状态;

切换到 攻击 状态;状态机堆栈:【攻击】【移动进攻】【空闲】

7. 敌人死亡后,机枪兵重新寻路到place1,继续前进;此时机枪兵回到步骤4,回到了 移动进攻 状态。

退出当前状态;状态机堆栈:【移动攻击】【空闲】

相关文章
|
图形学 开发者
unity3d游戏公司面试常见问题全接触
当你热切地期盼着你的第一份游戏行业的工作时。游戏公司会从你的简历和求职信来看你的潜力,而后通过面试来了解你。那么你应该如何准备面试呢? 在游戏行业,有一些面试问题常常出现,专业游戏培训列举了一些,并且加上一些提示,告诉你如何应对。
1269 0
|
XML 前端开发 图形学
Unity3d高频率面试题目(单选)
一个优秀的程序必备的几种设计模式:http://www.unity.5helpyou.com/2572.html 选择题(共50题,每题2分) 1、 NavMeshAgent组件中的Speed指的是?答案:(A) A、导航移动最大速度 B、移动速度和...
1620 0
|
XML JSON 图形学
Unity3d高频率面试题目(选择题)
Material(材质球) 【选择(多选或者单选)】 在Unity中,材质(Materials)主要是用来把()贴到游戏对象上。(AB) A Mesh B Particle Renderers C Texture D Color 2.判断题:在 Unity 中,若修改了材质( Material )的颜色,例如: renderer.material.color= Color.green;则会重新创建一个材质(Material )。
1889 0
|
存储 C# 图形学
Unity3d技术面试题100问
一:什么是协同程序? 答:在主线程运行时同时开启另一段逻辑处理,来协助当前程序的执行。换句话说,开启协程就是开启一个可以与程序并行的逻辑。可以用来控制运动、序列以及对象的行为。
3408 0
|
图形学 Windows
[Unity3D]面试题集锦
最先执行的方法是: 1、(激活时的初始化代码)Awake,2、Start、3、Update【FixUpdate、LateUpdate】、4、(渲染模块)OnGUI、5、再向后,就是卸载模块(TearDown),这里主要有两个方法OnDisable与OnDestroy   高频问答的问题: 1.什么是渲染管道? 是指在显示器上为了显示出图像而经过的一系列必要操作。
1925 0
|
存储 编解码 Java
[Unity3D]蓝港面试题
1. 请简述值类型与引用类型的区别 答: 区别:1.值类型存储在内存栈中,引用类型数据存储在内存堆中,而内存单元中存放的是堆中存放的地址。2.值类型存取快,引用类型存取慢。
1541 0
|
4天前
|
存储 缓存 Java
面试官:什么是Java内存模型?
面试官:什么是Java内存模型?
29 0
面试官:什么是Java内存模型?
|
1月前
|
Java 调度 Windows
JAVA面试八股文之多线程基础知识
JAVA面试八股文之多线程基础知识

相关产品