时间:2013年11月
地点:北京
公司:游戏公司
这家公司很看重笔试,面试都是问的笔试的问题。
主要题目有:
1.请简述值类型和引用类型的区别?
2.C#中所有引用类型的基类是什么?
3.请简述ArrayList和List<int>之间的主要区别?
4.请简述GC(垃圾收集)产生的原因,并描述如何避免?
5.请描述interface和抽象类之间的不同
6.下列代码在运行中,会产生几个临时对象?
string a=new string("abc");
a=(a.ToUpperCase()+"123").SubString(0,2);
7.下列代码在运行中会发生什么问题,如何避免?
List<int> ls=new List<int>(new int[](1,2,3,4,5));
foreach(int n in ls)
{
Debug.Log(n*n);
ls.Remove(n);
}
8.请简述sealed关键字用在类声明时与函数声明时的作用
9.请简述private,public,protected,internal的区别?
10.请简述反射的实现原理
11.请简述.Net与Mono之间的关系
12.请简述Unity3D支持的3种作为脚本语言的名称
13.Unity3D是否支持写成多线程?如果支持的话要注意什么?
14.Unity3D中的协程(Coroutine)和C#线程之间的区别是什么?
15.请说出Unity3D中用于记录节点空间几何信息的组件名称以及其父类名称
16.请简述四元数的作用以及四元数相对于欧拉角的优点
17.请简述向量的点乘,向量的叉乘以及向量归一化的意义?
18.矩阵相乘的几何意义?
19.请描述Prefab的作用,并描述如何在移动设备的环境下恰当的使用它?
20.如何销毁一个UnityEngine.Object及其子类?
21.在场景中放置多个Camera并同时处于活动状态会发生什么?
22.请描述为什么Unity3d中会发生在组件上出现数据丢失的情况
23.
24.
25.GUI和NGUI的区别是什么?
26.
27.
28.请简述Unity3d下如何安全的在不同工程间迁移asset数据,请列举出三种方法?
29.请简述MeshCollider和其它Collider的一个主要不同点?
30.当一个细小的高速运动的物体(例如子弹)撞向一个较大的物体时,可能会出现什么情况,应如何避免?
31.请简述OnEnable、Awake和Start在运行时的发生顺序,其中哪些可以在一个对象的声明周期中重复发生?
32.请简述OnBecameVisible及OnBecameInvisible的发生时机,以及他们执行的意义?
33.请简述Unity3D如何获知场景的加载?
34.请描述MeshRender中material和sharder的区别?