面试第一次知识总结:
一、Unity基本操作
1、unity提供哪几种光源?
点光源、平行光、聚光灯、区域光。
2、物体发生碰撞的必要条件什么?
两个物体必须有碰撞体Collider组件,一个物体上必须有刚体组件Rigidbody。
3、碰撞体和触发器区别与联系
触发器是碰撞体上的一个属性,如果不勾选触发器,两个物体是不可以别击穿;有了触发器后是可以被击穿的。
检测碰撞体方法:OnCollisionEnter/Stay/Exit() 检测触发器方法:OnTriggerEnter/Stay/Exit()
4、预设(prefab)的好处
预设更多的像一个模板,比如将一个人物模型设置成预设,我们可以在不同的场景使用,方便使用。
5、如何利用unity开发2D游戏
1)使用本身的GUI
2)摄像机的投影(projection)方式改为正交投影,不考虑一个坐标轴
3)使用插件2DToolKit
6、事件函数的执行顺序
初始化:函数Awake(激活游戏对象)----OnEnable(实例化游戏对象)-----Start(初始化)
更新顺序:FixedUpdate(物理计算,处理刚体)----Update()----LateUpdate(相机跟随)
渲染部分:OnBecameVisible/Invisible(相机中可见或不可见)----OnGUI(执行键盘和鼠标事件)
对象销毁和退出场景:OnDisable(不激活对象)----OnDestroy(销毁游戏对象)-----OnApplicationQuit(游戏场景退出)
7、协程
协程功能类似与多线程,StartCoroutine()-----yield WaitForSecond/WWW-----StopCoroutine()
协程背后通过迭代器实现,主要实现了两个接口,IEnumerator和IEnumerable,接口的方法重要有三个方法,MoveNext()---Current--Dispose()
8、对象池
对象池用于存放反复被调用的资源,比如射击类游戏中的子弹。
9、物体旋转和添加力
Transform.Rotate()、Rigidbody.AddForce()
10、Unity、Mono和.Net的关系
Unity是在.Net平台上运行,只能在window下运行,而mono是实现跨平台的工具。
11、uinty支持的脚本语言
c#、javascripts、Boo。