1. 程式人生 > >【Unity】關於物體運動的一切

【Unity】關於物體運動的一切

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);