主要內容:html
Unity操做:git
<h2 id="1">調試</h2> 在某函數內進行`Debug.Log(...)`可實現調試檢測,例如: ``` public class Player : MonoBehaviour {github
// Use this for initialization void Start () { Debug.Log("Hello"); } // Update is called once per frame void Update () { Debug.Log(" World"); }
} //在控制檯查看調試信息ide
<h2 id="2">碰撞體</h2> 前提:碰撞二者都有碰撞器 Collider ,至少一物體有剛體 Rigidbody(詳細前提見 [Unity-Manual-Colliders](https://docs.unity3d.com/Manual/CollidersOverview.html) )
// 碰撞觸發檢測 private void OnCollisionEnter(Collision collision) { print(collision.collider); //獲取碰撞體+碰撞器類型 print(collision.collider.name); //碰撞體名稱 print(collision.collider.tag); //碰撞體標籤 }函數
// 碰撞結束檢測 private void OnCollisionExit(Collision collision) print("OnCollisionExit");學習
// 碰撞持續檢測 private void OnCollisionStay(Collision collision) print("OnCollisionSaty");this
<h2 id="3">觸發器</h2> 存在於碰撞體collider頁面欄,勾選is Trigger 則表示物體爲觸發器(能夠穿過),不然物體爲碰撞體。 <h2 id="4">視角</h2> 遊戲視角的移動 <h3 id="4.1">鍵盤視角平移</h3> 對`Main Camera`建立腳本,在`Update`內調用:`transform.Translate()`實現視角移動 <h2 id="5">光照貼圖</h2> 燈光是實時計算的(默認設置:`Light|Mode|Realtime`),對不變更的燈光進行貼圖能夠節省資源,在`Windows|Rendering|Lighting Setting` 打開了`Lighting Setting` 頁面點擊 `Generate Lighting` 實現燈光貼圖。 <h2 id="6">遊戲對象</h2> 關於Gameobject的一些列操做 <h3 id="6.1">訪問對象</h3> 在腳本內建立一個字段,例如子彈`bullet`:`public Gameobject bullet;`,在Unity頁面經過將`Prefab`賦到腳本內`bullet`一欄,從而實如今腳本內經過`bullet`字段訪問到`Prefab`。 <h3 id="6.2">實體化遊戲對象</h3> 實例化用到了`GameObject.Instantiate(m_object, m_transform.position,m_transform.rotation)` - GameObject.Instantiate():建立實體化函數 - m.object:所建立的預製體 - m_transform.position,m_transform.rotation:預製體位置及旋轉角度,默認下爲`transform.position,transrotation`說明地址爲腳本所在對象的位置;也可自行修改 用法:
//建立對象 b 接收實體化的預製體 bullet GameObject b = GameObject.Instantiate(bullet, transform.position, transform.rotation);3d
<h3 id="6.3">獲得組件</h3>
//rgd 獲得對象 b 的剛體組件 Rigidbody rgd = b.GetComponent<Rigidbody>();調試
<h3 id="6.4">對象的移動</h3> <h2 id="7">交互類</h2> <h3 id="7.1">鼠標輸入</h3> `Input.GetMouseButtonDown()`:讀取鼠標按下狀況,括號內容即爲鼠標不一樣狀態: - 0:左鍵 - 1:右鍵 <h3 id="7.2">鍵盤輸入</h3> `Input.GetAxis("")`:返回鍵盤輸入的浮點數值 - Horizontal:讀取鍵盤AD左右移動的值(反映在Unity中的X方向) - Vertical:讀取鍵盤WS上下移動的值反映在Unity中的Y方向) 用法:`float h = Input.GetAxis("Horizontal");`