簡體   English   中英

在游戲中按a按鈕播放動畫

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM