纳金网

标题: 关于反向动画的问题 [打印本页]

作者: hunk_winnie    时间: 2014-4-17 23:04
标题: 关于反向动画的问题
刚学Unity不久,试着做了一个开关动画效果,如一个宝箱,鼠标点击后打开,再点击就关闭;点击打开动画播放是好的,可是点击关闭时候动画瞬间完成,没有关闭的过程!不知道为什么?
下面是我的代码(这段代码是绑定在宝箱上的), 求高手指点迷津!

        private int PingPongFlag = 0;                //开关标志变量
        public float AnimationSpeed = 1.0f;        //动画播放速度
        public string AnimationName;                //动画名字
       
        //鼠标按下事件
        void OnMouseDown()
        {
                if (PingPongFlag == 0)
                {
                        Open();
                }
                else if(PingPongFlag == 1)
                {
                        Close();
                }
        }

        //打开动画事件
        void Open()
        {
                animation [AnimationName].speed = AnimationSpeed * 1;
                animation.CrossFade (AnimationName);
                PingPongFlag = 1;
                Debug.Log ("Open");
        }

        //关闭动画事件
        void Close()
        {
                animation [AnimationName].speed = AnimationSpeed * -1;
                animation.CrossFade (AnimationName);
                PingPongFlag = 0;
                Debug.Log ("Close");
        }


作者: 王者再临    时间: 2014-4-18 02:00
你可以把宝箱的开与关在Unity做成动画,而不是用3D制作的动画效果,然后用脚本来控制开与关的动作,而且能做到速度的调整,这里有个教程可以参考一下:

如何使用Unity制作虚拟导览(九)
http://www.narkii.com/club/thread-318064-1.html

作者: 崇尚现在    时间: 2014-4-18 08:50
要重新设置设置time,如:

animation["door"].time =animation["door"].clip.length;
animation["door"].speed = -1;
animation.play();   
作者: tangqizuse    时间: 2014-4-18 11:09
谢谢分享
作者: hunk_winnie    时间: 2014-4-18 19:42
崇尚现在 发表于 2014-4-18 08:50
要重新设置设置time,如:

animation["door"].time =animation["door"].clip.length;

重新设置time后问题解决了,非常感谢!
作者: hunk_winnie    时间: 2014-4-18 19:44
王者再临 发表于 2014-4-18 02:00
你可以把宝箱的开与关在Unity做成动画,而不是用3D制作的动画效果,然后用脚本来控制开与关的动作,而且能 ...

谢谢你的建议和分享!
作者: 崇尚现在    时间: 2014-4-21 10:50
hunk_winnie 发表于 2014-4-18 19:44
谢谢你的建议和分享!

客气了 一起学习




欢迎光临 纳金网 (http://old.narkii.com/club/) Powered by Discuz! X2.5