Unity3D中生命週期函數的應用

//今天的生命週期函數是Unity3D中比較常用的,在理解的基礎上我們一定要會默寫這些單詞,包括大小寫的區別。
列表內容Reset /Awake/OnEnable/OnDisable等……
Reset(在編輯狀態下腳本被掛到遊戲對象上的時候被調用,例如不運行程序,在腳本掛到遊戲對象的一瞬間被調用,在聲明周期函數中最早執行)
void Reset()
{
transform.position=Vector3.zero;
}
Awake在運行狀態下被執行,不管腳本是否被激活都可以被調用
void Awake()
{
Debug.Log(“喚醒了”);
}
OnEnable 腳本被激活的時候調用
void OnEnable()
{
Debug.Log(“激活了”);
}
OnDisable腳本被失活的時候調用
void OnDisable()
{
Debug.Log(“失活了”);
}
Start在整個生命週期函數只被調用一次,即使腳本失活在激活腳本,Start方法也不在執行
void Start()
{
Debug.Log(“Start”);
}
FixedUpdate處理物理遊戲一般行爲時調用改方法,例如在處理Rigidbody時,應用此函數,此函數每一幀都在執行;例如當給剛體添加一個力時
void FixedUpdate()
{
rigidbody.AddForce(Vector3.up);
}
OnMouseEnter當鼠標進入到物體上方法被調用
void OnMouseEnter()
{
transform.localScale=new Vector3(2,2,2);
}
OnMouseOver當鼠標停留在物體上方法被調用
void OnMouseOver()
{
transform.Rotate(Vector3.Up*30*Time.deltaTime);
}
OnMouseExit當鼠標離開物體身上的時候方法被調用
void OnMouseExit()
{
transform.localScale=new Vector3.(1.1.1);
}
OnMouseDown當鼠標點擊在物體身上時被調用
void OnMouseDown()
{
transform.localScale*=2;
}
OnMouseUp當鼠標不點擊在物體身上時被調用
void OnMouseUp()
{
transform.licalScale/=2;
}
OnCollisionEnte\Stay\Exit檢查碰撞時候被調用(碰撞的條件,主動方必須添加Rigidbody(剛體),發生碰撞的兩個物體必須有Collider)
void OnCollisionEnter(Collision col)
{
Debug.Log(“開始碰撞”+col.collider.gameObject.name);
//這裏打印出的名字是被碰撞物體的名字
}
void OnCollisionStay(Collision col)
{
Debug.Log(“碰撞持續”+col.collider.game.Object.name);
}
void OnCollisionExit(Collision col)
{
Debug.Log(“碰撞結束”+col.collider.gameObject.name);
}
OnTriggerEnter\Stay\Exit檢測觸發時被調用(發生觸發的條件:發生碰撞的兩個物體其中一個添加Rigidbody(剛體)即可,發生碰撞的物體必須有Collider,並且其中任意一方需要勾選IsTrigger(碰撞檢測器))
void OnTriggerEnter(Collider other)
//這的的other指的是被動方
{
Debug.Log(“觸發器檢測到”);
}
void OnTriggerStay()
{
Debug.Log(“觸發器持續檢測中”);
}
void OnTriggerExit()
{
Debug.Log(“觸發器檢測結束”);
}
Update循環周期函數使我們應用最多的一個方法
OnDestory當遊戲對象被銷燬時被調用,例如在Start方法中銷燬了遊戲對象,那麼OnDestory纔會被調用;
void OnDestory()
{
Debug.Log(“遊戲對象被銷燬了”);
}
**GUI**GUI方法中有很多,例如按鈕,鼠標點擊等諸多方法,以下就說說博主用的比較多的幾個方法吧
//在屏幕上顯示按鈕
void OnGUI()
{
if(GUI.Button(new Rect(0,0,60,40)”開始”))
//0,0,60,40分別代表按鍵的X,Y軸位置,寬還有高
{
Debug.Log(“開始打印”);
}
}
void OnGUI()
//這裏可以理解爲要在屏幕上顯示運行時間,當然了timeTest自己設置的變量;
{
GUI.Label(new Rect(Screen.width-100,0,100,60),timeTest);
}
以上就是博主目前更新的生命週期函數類型以及用法,後期會不斷更新。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章