我有两个3dtext,一个播放动画,另一个逆转它。一次过后,动画不再播放了,为什么?

时间:2014-06-21 02:42:49

标签: animation unity3d

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

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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,不需要。