【Unity】關於物體運動的一切
阿新 • • 發佈:2018-12-15
Unity工具:
1.Transform
2.Rigidbody
3.動畫
操作方式:
滑鼠、鍵盤、(移動端:觸屏)
axis、keys、mouse、button
運動形式:
前進、後退、旋轉
方向、距離
方向:
Transfrom在世界空間中的方向,和角色的旋轉有關:
- Transform.right:紅軸(X)
- Transform.up:緑軸(Y)
- Transform.forward:藍軸(Z)
Vector3的性質:up/down/right/left/forward/back。分別代表了對應的世界空間座標系的單位向量。
關於轉向常見需求:
1.使得物體始終面向攝像機:
把物體的forward方向設定為攝像機forward方向的負方向。
tipBoard.transform.forward = Camera.main.transform.forward;
2.勝利後,2D角色向螢幕上方飛去,注意要平滑轉身。
if (GameManager._instance.isWin) { transform.up = Vector3.Lerp(transform.up, Vector3.right,Time.deltaTime*8) ; transform.Translate(Vector3.up*Time.deltaTime*5,Space.World); }
- 最後向世界空間的up方向飛去,這個函式預設是按照物體座標系來做的。
- 為什麼是讓transform的up方向轉到世界空間的right方向呢,因為一開始就是這樣的,角色是朝左的。所以要根據具體情況看目標轉向。
- 平滑轉身可以用三維向量的線性插值來做。
3.使得物體繞Y軸旋轉90度:
transform.Rotate(transfrom.up*Time.deltaTime);