1、Start() 开始方法;
2、Update() 正常更新逻辑,每渲染一帧都会调用
3、FixedUpdate() 不受帧率的变化,固定的时间间隔被调用,怎么设置间隔?Edit->Project Setting->time下面的Fixed timestep
4、LateUpdate() 会在每一帧中被调用。在所有Update函数被调用之后才执行。有利于程序的有序执行。(例如:跟随摄像机就应该在LateUpdate执行,因为它跟随的对象也许需要在Update中执行
5、OnGUI() 游戏界面绘制、更新
6、OnCollisionEnter(Conllision other) 在刚体与刚体开始接触时候调用此方法,(记住是刚体之间的碰撞)
7、OnCollisionStay(Conllision other) 在刚体与刚体碰撞的过程中,调用此方法 每帧都会调用此方法,知道碰撞结束;
8、OnCollisionExit( Conllision other) 在刚体与刚体停止接触时,调用此方法
9、OnTriggerEnter(Collider other) 当Collider(碰撞体)进入trigger(触发器)时调用,这个消息被发送到触发器碰撞体和刚体(或者碰撞体假设没有刚体)。注意如果碰撞体附加了一个刚体,也只发送触发器事件
10、判断两个物体之间的距离 Vector3.Distance( position1,position2) <distance ;
position1 和position2是需要判断的两个物体transform的position,distance是距离。
11、让一个物体朝向另一个物体
transform.LookAt(other.transform);
12、创建一个对象,并让它有一个运动轨迹
Transform shoot = (Transform)Instantiate(shotPrefab,firePoint.gameObject.transform.position,
firePoint.gameObject.transform.rotation);
shoot.rigidbody.velocity= transform.TransformDirection(Vector3.forward*100f);
firePoint 是一个Empty对象,它提供初始位置,shotPrefab是一个预制对象,shoot.rigidbody.velocity= transform.TransformDirection(Vector3.forward*100f);是让这个物体向前运动
13、旋转和移动
transform.Rotate(new Vector3(x,y,z)) ; transform.Translate(new Vector3(x,y,z));以某个轴为轴旋转或者移动就修改某个坐标的值,
14、当判断预制对象之间的判断的时候,名字会改变
void OnCollisionEnter(Collision collision) {
if(collision.gameObject.name=="tankshot(Clone)")
{
Debug.Log(collision.transform.gameObject.name.ToString());
life--;
}
if(life==0)
{
Destroy(transform.gameObject);
}
}
其中 tankshot是一个预制对象,在动态创建的时候,后面会添加(Clone),所以名字编程tankshot(Clone);