【问题标题】:I have two 3dtext, one plays the animation, the other reverses it. After one go, the animation wont play anymore, why?我有两个 3dtext,一个播放动画,另一个反转它。点了之后,动画就播放不下去了,为什么?
【发布时间】:2014-06-21 11:51:48
【问题描述】:

我有一个名为 Play 的 3dtext,点击它会播放动画;另一个名为 Back,它反转动画。问题是在我播放并支持它之后,当我点击播放时动画将不再播放。

名为redsubmenu 的动画处于legacy 和clamp forever wrap 模式。

    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
        }
}

【问题讨论】:

    标签: animation unity3d


    【解决方案1】:

    您似乎从未将动画的速度重置回 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

    【讨论】:

      【解决方案2】:

      更具体地说,我编辑了我的播放按钮脚本,如下所示:

      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,不需要。

      【讨论】:

        猜你喜欢
        • 2023-03-22
        • 2017-07-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-05
        • 2018-06-02
        • 2013-04-07
        • 2022-09-27
        相关资源
        最近更新 更多