1.C#中只存在传值和传引用两种方式
(传引用):
ref:用ref的方式来传递参数,,则该参数必须先初始化。
out:通过out方式则不需要初始化,out参数也称为输出参数。
2.常用的二元运算符
is x is T 若x为类型T则返回true,否则返回false
as x as T 返回类型为T的x,若x不是类型T,则返回null
3.协程(Coroutine)
yield:类似于Java中的线程
用于启动线程:
public Coroutine StartCoroutine(IEnumerator routine);
public Coroutine StartCoroutine(string methodName,object value=null);
用于关闭线程:
StopCoroutine("MyDo");
StopAllCoroutines();
4.Unity脚本事件执行顺序
Awake:
1.Awake用于脚本唤醒,此方法为系统执行的第一个方法,用于脚本的初始化,在脚本的生命周期中只执行一次。
2.Start方法在Awake之后执行,在脚本的生命周期中只执行一次。
在C#中与构造函数类似,所以在Unity中也常用来初始化类的成员变量。
5.Unity3d:Physx
Unity2d:Box2d
音乐:Fmod
成熟的商业引擎管理件:RakNet
每年的渲染大会
6.获得一个GameObject对象上的刚体组件时,做法是:
Rigidbody rb=gameObject.GetComponent<Rigidbody>();
float moveHorizontal = Input.GetAxis("Horizontal"); //得到水平方向的输入
float moveVertical = Input.GetAxis("Vertical"); //得到垂直方向的输入
//用上面的水平方向(X轴)和垂直方向(Z轴)输入创建一个Vector3变量,作为刚体速度
Vector3 movement = new Vector3(moveHorizontal,0.0f,moveVertical);
GetComponent<Rigidbody>().velocity = movement*speed;
7.Vector2和Vector3有什么区别
一个是平面的x.y,一个是3D的x.y.z。
8.Unity开发商业游戏经验:
地形:Terrain
做场景的时候先做地形,再做检测。
9.U3D各种的坐标意义(transform):
Position: transform的位置是世界空间,并不是本身的坐标(世界坐标)
Rotation: x:90,意思是绕着X轴旋转90度
Scale: x:15,意思是在X轴的方向上面再扩大15倍。
10.物理引擎:
只关心他关心的东西