unity 關於2D遊戲物體的轉動與朝向與移動(攝像機)
阿新 • • 發佈:2019-02-18
如果你想做的是UI或者是2d遊戲物體的的朝向
可以使用這個
this.transform.eulerAngles = new Vector3 (0, 0, (角度));
如果你有兩個遊戲物體之間的座標 則可以使用遊戲座標之間的差值。從而計算出兩個座標之間的向量。然後轉化成為角度,在使用上面的方法就可以實現需求了
下面是通過兩個點的座標 計算出角度
//計算出當前滑鼠和Dian原點之間的向量 其中data.position為一個遊戲物體的座標 Dian_position另一個遊戲物體的座標 Vector3 MoveNormalized = new Vector3(data.position - Dian_position); //兩點之間的向量 Vector3 V3 = MoveNormalized .normalized; //角度 float z; if ((V3).x > 0) { //以Z軸為座標 使用向量計算出來角度 z = -Vector3.Angle (Vector3.up, V3)); } else { z = Vector3.Angle (Vector3.up, V3); } //在使用上這句話 遊戲物體就會轉動了 this.transform.eulerAngles = new Vector3 (0, 0, (z));
通過上面 的方法---如果你已經實現了在UI或者2D平面上的轉化 ,只是遊戲物體轉動的角度不對,這個時候我們只需要在Z這個變數上進行微調就可以了
如果你是3D遊戲物體的朝向 你可以使用系統的API 下面是系統的註釋
this.transform.LookAt (new Vector3(需要朝向的遊戲物體的Vector3的座標,也是就是這個遊戲物體的座標position));
如果你需要的是2D遊戲物體的移動 可以使用面的API 其實是與3D通用的 入參也就是遊戲物體需要移動到的座標
但是筆者還是建議大家使用 Tween外掛~
this.transform.DOMove (playerToPostion, 0.1f,false).SetEase (Ease.Flash);
可能你還需要用到盡頭跟隨遊戲物體 隨著遊戲物體而跑 那麼你依然可以使用到 上面那面這句程式碼
//找到你的相機 我使用tag 尋找的攝像機 或者你也可以使用GameObject.Fin("相機的名字")
MainCamera_ = GameObject.FindWithTag ("MainCamera").gameObject;
MainCamera_.transform.DOMove (需要相機跟隨的遊戲物體V3座標, 0.1f,false).SetEase (Ease.Flash);
希望可以幫助到你~