[英]Press a in game Button to play a animation
我最近考慮過要在游戲中添加InGame按鈕。 它不是GUI或UI按鈕,而是一個塊,例如添加到Wall。
虛擬代碼:
OnTriggerEnter(c:Collider) {
if(c.gameObject.tag =="Player")
{
//Text = "E to interact!"
if(key.pressed("e")
{
//Connect the Button to a specific Block, play a Animation
}
}
}
那么,如何將特定的塊連接到按鈕,如果按e,就在特定的塊上播放動畫? 請記住,我是Unity新手。 感謝您的幫助!
我不知道您是否已經可以創建動畫,所以我將從頭開始進行解釋。 在編輯器中時,選擇您的Door,然后按ctrl + 6打開動畫窗口。 在這里,您可以為塊設置動畫。 創建完動畫后 ,您的塊對象將附加一個新腳本: animator 。 您可以在動畫器窗口中看到動畫器狀態機
這是兩件事:
動畫 :定義單個動畫(平移,旋轉,顏色變化等)
動畫器 :定義何時為相應的游戲對象生成動畫。 動畫師可以具有定義下一個要播放的動畫的變量(例如bool)
任何物體都可以有一個動畫器(按下該按鈕時可以移動一個。您的門可以有另一個可以打開/關閉)
例如,在按鈕動畫器中,您應具有三種狀態:空閑,按下,取消按下。 狀態Press將包含速度為1的動畫“ press”。狀態UnPress將包含速度為-1的動畫“ press”
然后,仍在動畫器窗口中,您將在Idle和其他兩個狀態之間創建鏈接,並添加一個稱為“ OnPress”的觸發條件(例如)
您可以執行同樣的操作來制作門動畫
在您的按鈕代碼中,然后您將編寫
public Animator Door; // In the editor, give a reference to your door. It must have an Animator script for this to work
OnTriggerEnter(c:Collider) {
if(c.gameObject.tag =="Player")
{
//Text = "E to interact!"
if(key.pressed("e")
{
GetComponent<Animator>().SetTrigger("OnPress"); // The button's animator goes to "pressed" state
Door.SetTrigger("Open"); // The door's animator goes to "open" state
}
}
}
然后,您可以添加另一個觸發器來松開按鈕
還有一件事:當您說“將按鈕連接到塊”時,我覺得您誤解了一些東西:您的按鈕腳本應該已經在編輯器中添加到了塊中
請查看以下兩個鏈接,以獲取有關動畫的更多信息:
http://docs.unity3d.com/Manual/animeditor-UsingAnimationEditor.html http://docs.unity3d.com/Manual/AnimatorWindow.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.