目標
讓舞台上的GameObject受事件驅動(ex.點擊按鈕)而旋轉某個角度
分析
GameObject A是一個實體物件,按鈕B 是一個實體物件,
我想要透過使用按鈕B來控制GameObject A。
1. 幫按鈕B新增一個script,名為bt_left,並設定一個全域變數,
類別為Animator,用來把GameObject A裏頭已經製作好的Animator指定進去。

2. 由於旋轉的animation,已事先錄製好,
而且已經使用Animator controller編輯好每個animation切換的驅動條件,
所以可以直接使用SetTrigger()指定要執行哪一個animation。
除此之外,Target是全域變數,剛剛已經將Holograms指定給Target,
所以Target就是要旋轉的物件,Target.SetTrigger("r_0")就可以讓他執行r_0這個animation。
附註:
在某些情況下,可能希望直接讓Target做旋轉,
而不是事先錄製animation,此時也可以使用以下程式碼。
//Target.transform.rotation = Quaternion.Euler(0f, 72f, 0f); //停在這個旋轉角度上
//Target.transform.Rotate (new Vector3(0f, 72f, 0f)); //每次點擊都旋轉72度,有五個角度
但請記得宣告時將Target類別定義為GameObject
public GameObject Target;
而且旋轉的程式碼需要寫在void update (){}裡面,並註明每隔多久旋轉多少,就可以了。
在此,為了以按鈕驅動旋轉,所以大費周章,
使用了animator controller來控制秀哪一種旋轉角度的動畫。
參考資源 [連結]

沒有留言:
張貼留言