如何做一个通用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 update
void Start()
{
anim.enabled = false;
}
// Update is called once per frame
void Update()
{
if(LastPercent != percent)
{
anim.Play("New Animation", 0, percent);
anim.Update(0);
}
}
}
下面是效果图,我用两条长方体代替扇形(动画制作能力有限)
我主要说一个思路实现,工程就不用放
类似可以做3d血条,只要美术做好0-1的血条变化过程就可以