本文主要為了方便查閱
1. MonoBehaviour 生命週期
- Awake 物件建立的時候呼叫,類似建構函式
- Start 在
Awake
之後執行,區別在於,如果元件不可用(在Inspector
沒有勾選該元件),是不會執行Start
的 - Update 主函式迴圈每幀呼叫
- FixedUpdate 每次固定幀呼叫,在物理計算的時候,應該使用該方法,而不是
Update
- OnDestroy 物件銷燬時呼叫
2. MonoBehaviour 常見回撥函式
- OnMouseEnter 滑鼠移入GUI控制元件或者碰撞體時呼叫
- OnMouseOver 滑鼠停留在GUI控制元件或者碰撞體時呼叫
- OnMouseExit 滑鼠移出GUI控制元件或者碰撞體時呼叫
- OnMouseDown 滑鼠在GUI控制元件或者碰撞體上按下時呼叫
- OnMouseUp 滑鼠在GUI控制元件或者碰撞體上釋放時呼叫
- OnTriggerEnter 當其他碰撞體進入觸發器時呼叫
- OnTriggerExit 當其他碰撞體離開觸發器時呼叫
- OnCollisionEnter 當碰撞體或者剛體與其他碰撞體或剛體接觸時呼叫
- OnCollisionEnter2D 其它2D函式類似
- OnCollisionExit 當碰撞體或者剛體與其他碰撞體或剛體停止接觸時呼叫
- OnCollisionStay 當碰撞體或者剛體與其他碰撞體或剛體保持接觸時呼叫
- OnContollerColliderHit 當控制器移動時與碰撞體發生碰撞時呼叫
- OnBecameVisible 對於任意一個相機可見時呼叫
- OnBecameInVisible 對於任意一個相機不可見時呼叫
- OnEnable 物件啟用或者啟用時呼叫
- OnDisable 物件禁用或者取消啟用時呼叫
- OnDestroy 指令碼銷燬時呼叫
- OnGUI 渲染GUI和處理GUI訊息時呼叫
3. 訪問遊戲物件
- GameObject.Find 多個時返回第一個
- GameObject.FindWithTag 多個時返回第一個
- GameObject.FindGameObjectsWithTag 返回陣列
以上函式比較耗時,儘量避免在update函式中使用。
4. 訪問元件
4.1. 常見元件
- Transform 位置、旋轉、縮放
- Rigidbody 剛體
- Renderer 渲染物體模型
- Light 燈光屬性
- Camera 相機屬性
- Collider 碰撞體
- Animation 動畫
- Audio 聲音
- Mesh
- Mesh Filter 網格過濾器
- Text Mesh 文字
- Mesh Renderer 網格渲染器
- Skinned Mesh Renderer 蒙皮渲染器,用於骨骼動畫
- Particle Sysyem 粒子系統
- Physics 物理
- Image Effects
- Scripts 自定義元件
4.2. 獲取元件
- GetComponent<>() 獲取元件
- GetComponents<>()
- GetComponentInChildren<>() 得到物件或者物件子物體上的元件
- GetComponentsInChildren<>()
以上函式比較耗時,儘量避免在update函式中使用。
4.3. Transform 元件
4.3.1. 成員變數
- position 世界座標系
- localPosition 相對座標系(父物件)
- eulerAngles 世界座標系中以尤拉角表示的旋轉
- localEulerAngles 相對旋轉
- right 右方向
- up 上方向
- forward 前方向
- rotation 旋轉四元數
- localRotation 相對旋轉四元數
- localScale 相對縮放比例
- parent 父物件的Transform元件
- worldToLocalMatrix 世界座標系到區域性座標系的變換矩陣(只讀)
- localToWorldMatrix 區域性座標系到世界座標系的變換矩陣(只讀)
- root 根物件的Transform元件
- childCount 子孫物件的數量
- lossyScale 全域性縮放比例(只讀)
4.3.2. 成員函式
- Translate 按指定方向和距離平移
- Rotate 按指定的尤拉角旋轉
- RotateAround 按給定旋轉軸和旋轉角度進行旋轉
- LookAt 旋轉使得自身的前方向指向目標的位置
- TransformDirection 將一個方向從區域性座標系變換到世界座標系
- InverseTansformDirection 將一個方向從世界座標系變化到區域性座標系
- DetachChildren 與所有子物體接觸父子關係
- Find 按名稱查詢子物件
- IsChildOf 判斷是否是指定物件的子物件
5. Time 時間類
5.1. 成員變數
- time 遊戲從開始到現在經歷的時間(秒)(只讀)
- timeSinceLevelLoad 此幀開始時間(秒)(只讀),從關卡載入完成開始計算
- dateTime 上一幀耗費的時間(秒)(只讀)
- fixedTime 最近FixedUpdate的時間。該時間從遊戲開始計算
- fixedDateTime 物理引擎和FixedUpdate的更新時間間隔
- maximunDateTime 一幀的最大耗時時間
- smoothDeltaTime Time.deltaTime的平滑淡出
- timeScale 時間流逝速度的比例。可以製作慢動作特效
- frameCount 已渲染的幀的總數(只讀)
- realtimeSinceStartup 遊戲從開始到現在的真實時間(秒),該事件不受timeScale影響
- captureFramerate 固定幀率設定
6. Random 隨機數類
6.1. 成員變數
- seed 隨機數生成器種子
- value 0~1隨機數,包含0和1
- insideUnitSphere 半徑為1的球體內的一個隨機點
- insideUnitCircle 半徑為1的圓內的一個隨機點
- onUnitSphere 半徑為1的球面上的一個隨機點
- rotation 隨機旋轉
- rotationUnitform 均勻分佈的隨機旋轉
6.2. 成員函式
- Range 返回(min,max)直接的隨機浮點數,包含min和max
7. Mathf 數學類
7.1. 成員變數
- PI
- Infinity 正無窮大
- NegativeInfinity 負無窮大
- Deg2Rad 度到弧度的轉換系數
- Rad2Deg 弧度到度的轉換系數
- Epsilon 一個很小的浮點數
7.2. 成員函式
- Sin 弧度
- Cos 弧度
- Tan 弧度
- Asin 角度
- ACos 角度
- Atan 角度
- Sqrt 計算平方根
- Abs 絕對值
- Min
- Max
- Pow Pow(f,p) f的p次方
- Exp Exp(p) e的p次方
- Log 計算對數
- Log10 計算基為10的對數
- Ceil 向上取整
- Floor 向下取整
- Round 四捨五入
- Clamp 將數值限制在min和max之間
- Clamp01 將數值限制在0和1之間
8. Coroutine 協同程式函式
- StartCoroutine 啟動一個協同程式
- StopCoroutine 終止一個協同程式
- StopAllCoroutines 終止所有協同程式
- WaitForSeconds 等到若干秒
- WaitForFixedUpdates 等待直到下一次FiexedUpdate呼叫