Unity Animator动画系统的使用问题一

实现一个功能:UI弹性移动到屏幕外->修改UI上面的内容->移动回屏幕

        功能很简单,如果用cocos做就是一句代码的事:执行动作1,添加函数动作,执行动作2

         但是我用Unity的UGUI(没有用到任何UI插件)做动画遇到了一些麻烦事。

        1、第一个问题:

              UI的动画做好之后要修改Animator,不能让它一启动就执行,所以要添加一个默认启动状态。

         2、如果这个动画执行结束后(不是循环)不把它切换到其他状态的话,下次执行这个动画有延迟,相当于动画自己跳转自己有延迟。


具体我的做法是:

        1、编辑动画

         Unity Animator动画系统的使用问题一_第1张图片

         2、修改Animator状态

         Unity Animator动画系统的使用问题一_第2张图片

         3、添加相关控制参数和反向执行动画、切换状态的代码

         

//执行动作
		_roleInfoAnimator.Play("RoleInfoPanelMoveOut",0);
		_roleInfoAnimator.SetFloat("SingSpeed",1);
		_roleInfoAnimator.SetBool("isBack",false);

//动画播放结束方向执行动画
void Update(){
		if(GameTools.getInstance().AnimatorIsPlaying(_roleInfoAnimator,"RoleInfoPanelMoveOut")){
			//切换文字
			//播放返回动画
			AnimatorStateInfo info = _roleInfoAnimator.GetCurrentAnimatorStateInfo(0);
			_roleInfoAnimator.SetFloat("SingSpeed",-1);
			_roleInfoAnimator.SetBool("isBack",true);
		}
	}

        实现效果完成,总体上感觉流程太繁琐,不知道有没有其他更方便的实现方法,如果有看到的同学希望能指点一下!!


    

你可能感兴趣的:(Unity开发)