2014-06-21 80 views
0

我有一個名爲Play的3dtext,點擊時會播放動畫;另一個名爲Back,它反轉了動畫。問題是我玩和支持它後,當我點擊播放時,動畫不再播放。我有兩個3dtext,一個播放動畫,另一個播放動畫。一旦離開後,動畫將無法播放,爲什麼?

名爲redsubmenu的動畫處於傳統模式,並且永久封裝模式。

public class PlayButtonScript : MonoBehaviour { 

     //public static PlayButtonScript pbs; 
     public GameObject redsubmenu; 

     void Update(){ 
    #if UNITY_EDITOR 
      Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); 
      RaycastHit hit; 

      if(Input.GetMouseButtonDown(0)&&Physics.Raycast(ray,out hit)){ 
       if(hit.collider.name == "Play"){ 
        redsubmenu.animation.Play(); 
       } 
      } 
    #endif 


     } 
    } 


    public class BackButtonScript : MonoBehaviour { 


     // Update is called once per frame 
     void Update() { 
    #if UNITY_EDITOR 
      Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); 
      RaycastHit hit; 

      if(Input.GetMouseButtonDown(0)&&Physics.Raycast(ray, out hit)){ 
       if(hit.collider.name == "Back"){ 
        transform.parent.animation["redsubmenu"].speed = -1; 
        transform.parent.animation.Play("redsubmenu"); 
       } 
     } 

    #endif 
     } 
} 

回答

0

看來,你永遠不重置動畫的速度回1.當你點擊播放第一次的速度最初是1,所以它工作正常。但是,當您返回時,您將速度設置爲-1,並且它永遠不會設置爲任何其他值。

嘗試使用:

if (hit.collider.name == "Play") { 
    transform.parent.animation["redsubmenu"].speed = 1; 
    redsubmenu.animation.Play(); 
} 
在你的播放按鈕腳本

您可能也可以使用Animation.Rewind。 http://docs.unity3d.com/ScriptReference/Animation.Rewind.html

0

只是爲了更具體,我編輯playbuttonscript如下圖所示:

if(Input.GetMouseButtonDown(0)&&Physics.Raycast(ray,out hit)){ 
     if(hit.collider.name == "Play"){ 
      if(redsubmenu.animation["redsubmenu"].speed == -1){ 
       redsubmenu.animation["redsubmenu"].speed = 1; 
      } else { 
       redsubmenu.animation.Play(); 
      } 
     } 
    } 
在我的後退按鈕

,我刪除transform.parent.animation.Play,沒有必要的。