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

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

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

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

        1、第一个问题:

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

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


具体我的做法是:

        1、编辑动画

         

         2、修改Animator状态

         

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

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


    

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值