本文主要是介绍Unity 利用animator制作通用伞形攻击范围,3d血条等等,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
如何做一个通用0-180度的攻击扇形?
攻击扇形我让美术k动画,从中间开始两边扩展90度这个动画,这就是一个从0度展开180的扇形动画
然后感觉扇形角度算出比例,就能知道是哪一帧,只要固定这一帧
怎么固定某一帧播放,下面就会介绍一些接口
animator的播放接口
public void Play(string stateName, [Internal.DefaultValue("-1")] int layer, [Internal.DefaultValue("float.NegativeInfinity")] float normalizedTime);
主要看normalizedTime,这个就是某个百分比乘以动画时间作为开始帧播放动画,取值(0-1),不过需要负数才是第一帧上面说的
手动更新aniamtor
这里又出现另外一个问题,正常直接调用开始播是不会固定一帧
这里我们要执行手动更新动画
animator.Update就是手动更新动画控制器,前提我们要把animator enable设为false
原理:根据计算出来参数让动画固定一帧
下面是具体写法
public class testAnimation : MonoBehaviour
{public float percent;private float LastPercent;public Animator anim;// Start is called before the first frame updatevoid Start(){anim.enabled = false;}// Update is called once per framevoid Update(){if(LastPercent != percent){anim.Play("New Animation", 0, percent);anim.Update(0);}}
}
下面是效果图,我用两条长方体代替扇形(动画制作能力有限)
我主要说一个思路实现,工程就不用放
类似可以做3d血条,只要美术做好0-1的血条变化过程就可以
这篇关于Unity 利用animator制作通用伞形攻击范围,3d血条等等的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!