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 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的血条变化过程就可以

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值