Unity Animator.Play(stateName, layer, normalizedTime) 播放动画函数用法

15 篇文章 1 订阅
13 篇文章 0 订阅

原理

接口:

public void Play(string stateName, int layer = -1, float normalizedTime = float.NegativeInfinity);
参数含义
stateName动画状态机的某个状态名字
layer第几层的动画状态机,-1 表示播放第一个状态或者第一个哈希到的状态
normalizedTime从state动画进度的百分比(<100%)开始播放到结束

Unity Animator.Play 详解

案例

  1. 基于 Animator 制作一个Cube旋转的帧动画
    请添加图片描述
    在这里插入图片描述

  2. 在 Cube 上实现调用 Play(stateName,layer,normalizedTime) 脚本

    using UnityEngine;
    using UnityEngine.UI;
    
    public class BoxAnimator : MonoBehaviour {
        public Animator animator;
        public Button   btn1;
        public Button   btn2;
        
        public const float Percentage1 = 0.3f;
        public const float Percentage2 = 0.7f;
        
        void OnEnable() {
            btn1.onClick.AddListener(() => animator.Play("Rotate",-1, Percentage1));
            btn2.onClick.AddListener(() => animator.Play("Rotate",-1, Percentage2));
        }
    
        void OnDisable() {
            btn1.onClick.RemoveAllListeners();
            btn2.onClick.RemoveAllListeners();
        }
    }
    

    在这里插入图片描述
    在这里插入图片描述
    脚本挂在 cube 上,设置两个按钮分别从 30% 、70% 开始播放动画直到结束动画

  3. 看运行效果,可以选中 cube 查看动画状态机是如何播放的,方便理解
    请添加图片描述
    请添加图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值