四:请简述ArrayList和List的主要区别?
ArrayList存在不安全类型(ArrayList会把所有插入其中的数据都当做Object来处理),装箱拆箱的操作(费时),List是泛型类,功能跟ArrayList相似,但不存在ArrayList所说的问题。
五:如何安全的在不同工程间安全地迁移asset数据?三种方法
1.将Assets目录和Library目录一起迁移
2.导出包,export Package
3.用unity自带的assets Server功能
六:OnEnable、Awake、Start运行时的发生顺序?哪些可能在同一个对象周期中反复的发生
Awake –>OnEnable->Start,OnEnable在同一周期中可以反复地发生。
七:MeshRender中material和sharedmaterial的区别?
修改sharedMaterial将改变所有物体使用这个材质的外观,并且也改变储存在工程里的材质设置。不推荐修改由sharedMaterial返回的材质。如果你想修改渲染器的材质,使用material替代。
八:Unity提供了几种光源,分别是什么
四种。
平行光:Directional Light
点光源:Point Light
聚光灯:Spot Light
区域光源:Area Light
九:简述一下对象池,你觉得在FPS里哪些东西适合使用对象池
对象池就存放需要被反复调用资源的一个空间,当一个对象回大量生成的时候如果每次都销毁创建会很费时间,通过对象池把暂时不用的对象放到一个池中(也就是一个集合),当下次要重新生成这个对象的时候先去池中查找一下是否有可用的对象,如果有的话就直接拿出来使用,不需要再创建,如果池中没有可用的对象,才需要重新创建,利用空间换时间来达到游戏的高速运行效果,在FPS游戏中要常被大量复制的对象包括子弹,敌人,粒子等
十二:请简述sealed关键字用在类声明时与函数声明时的作用
sealed修饰的类为密封类,类声明时可防止其他类继承此类,在方法中声明则可防止派生类重写此方法。
十三:请简述private,public,protected,internal的区别
public:对任何类和成员都公开,无限制访问
private:仅对该类公开
protected:对该类和其派生类公开
internal:只能在包含该类的程序集中访问该类
十四:使用Unity3d实现2d游戏,有几种方式?
使用本身的GUI,在Unity4.6以后出现的UGUI
2.把摄像机的Projection(投影)值调为Orthographic(正交投影),不考虑z轴;
3.使用2d插件,如:2DToolKit,和NGUI
十五:在物体发生碰撞的整个过程中,有几个阶段,分别列出对应的函数
三个阶段,1.OnCollisionEnter 2.OnCollisionStay 3.OnCollisionExit