MonoBehavior类
1. 必然事件
必然事件是从MonoBehavior继承而来,就是Monobehavior的生命周期,我们先来了解MonoBehavior函数的
执行顺序
Awake()-OnEnable()-Start()-Update()-LateUpdate()-OnDisable()-Destory()
-
Awake函数
Awake()函数是加载场景是运行的,一般用于初始化游戏变量或游戏状态。
-
Start函数
Start()函数在第一次启动时执行,一般用于游戏对象的初始化,在Awake()函数之后。
-
Update函数
Update()函数是在运行时每一帧执行的函数,用于更新游戏场景或者状态。
-
FixedUpdate函数
FixedUpdate()函数与Update()相似,但是每一个固定的物理时间间隔调用一次,用于物理状态的更新。
-
LateUpdate函数
LateUpdate()函数在Update()函数被执行后再次被执行。
2.Collision事件
-
OnCollisionEnter()函数
当碰撞体与其他碰撞提或刚体开始接触时调用。
-
OnCollisionStay()函数
当碰撞体与其他碰撞提或刚体保持接触时调用。
-
OnCollisionExit()函数
当碰撞体与其他碰撞提或刚体停止接触时调用。
3.Trigger事件
-
OnTriggerEnter()函数
当其他碰撞体与进入触发器时调用。
-
OnTriggerStay()函数
当其他碰撞体与停留在触发器时调用。
-
OnTriggerExit()函数
当其他碰撞体与离开触发器时调用。
Tirgger事件和Collision事件的区别:
使用Trigger事件时必须具备以下条件。
双方都要有碰撞,至少一个有刚体组件,双方碰撞器至少开启一个IsTrigger,只要开启,就会
触发Tigger事件而不会触发Collision事件,但是会穿透另一个碰撞器,若不开启IsTrigger,只
触发Collision时间而不会相互穿透。
GameObject类
1. Instantiate()实例化
instantiate()是克隆游戏对象的方法,应用非常广泛,
格式:
Instantiate(GameObject,position,rotation)
(1)GameObject是指生成克隆的游戏对象,也可以是Prefeb预制体。
(2)position是游戏对象的初始位置,类型是Vector3.
(3)rotation是生成对象的初始角度,类型是Quaternion。
2. Destroy()销毁
格式:
Destroy(GameObject,time);
(1)Gameobject是销毁的游戏对象,time是时间;
下面写一个简单的案例:
void OnCollisionEnter(Collision collision){
Destroy(collision.gameObject,2);
}
//代码控制接触碰撞体后两秒销毁
在Unity中创建几个物体:
给小球附上代码并且加上刚体(rigidbody)使其能自由落体。
我们就会得到这样的效果:
3.GetComponent()获取组件
GetComponent()是访问游戏对象组件的方法
格式:
GameObject.GetComponent< type >()
(1)GameObject是定义GameObject的变量名。
(2)type是组建名称,类型是string。
例如:Ball.GetComponent< Rigidbody >.mass = 20 ;//把rigidbody组件的质量改为20
4.SetActive()显示/隐藏游戏对象
格式:
GameObject.SetActive(value);
value是让物体是否隐藏,类型是bool。
Transform类
场景里的每一个对象都有Transform,用来存储物体的大小,旋转,缩放,Transform组件的成员变量有:
(1)transform.position:指物体在世界坐标下的位置。
(2)transform.Translate:指物体的相对移动单位。
(3)transform.Rotate:指物体旋转。
(4)transform.eulerAngels:指物体的角度。
(5)transform.localScale:指物体的缩放(三个轴都不为0,否则会消失)