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 查看动画状态机是如何播放的,方便理解
    请添加图片描述
    请添加图片描述

在 Cube 上实现调用 Play(stateName,layer,normalizedTime) 脚本。脚本挂在 cube 上,设置两个按钮分别从 30% 、70% 开始播放动画直到结束动画。基于 Animator 制作一个Cube旋转的帧动画。
Unity中有两个动画系统,Animation和Animator,它们两个虽然都是关于动画播放的组件,但它们之间有很多的不同点。Animation是老版本就存在的动画系统组件,但Animatorunity4.6版本之后才拥有的组件;控制一个动画播放一般都使用Animation,控制多个动画播放一般使用Animator,因为Animator 有一个动画控制器,俗称动画状态机,用于切换动画非常的方便;Animator 缺点就是占用内存比Animation大。
unity可以用两种方式控制动画 1 Animations,这种方式简单,直接 Play(“Idle”) 或者 CorssFade(“Idle”) 就可以播放动画 2 Animator,5.x之后推荐使用这种方式,因为里面可以加上混合动画,让动画切换更加平滑 添加状态控制参数 编辑切换状态的条件 点击连线,添加条件,这个条件只会显示刚才添加的状态控制参数 AnimState,设置等于0是...
Animtor.Play("anim_1"); //////////////////////////////////////////////////////////////////////////////////////////// 如果想要再次播放,使用如下代码: Animtor.P...
Animator.Play 函数原型 void Play(string stateName, int layer = -1, float normalizedTime = float.NegativeInfinity); Parameters 参数 Desc... // playThen,上个动画播放完在播发 // playWith,与上个动画同时播放 ViewAnimator.playOn(lifecyclerOwner, view) .slideBottomIn() $ npm install spritesheet-animator var dataFile = JSON.parse(fs.readFileSync(__dirname + '/particle_hover.json', 'utf8')); this.spriteAnimation = new SpritesheetAnimator(); this.spriteAnimation.init({ sprite: dataFile, //tp json file parentEl: animationContainer, //container folder: 'test/' this.spriteAnimation.play(0, true); 使用前进行测试? git clone https: //github.com/Jam3/spri
Animator.Play(layerName, -1, normalizedTime)函数用于播放动画,其中layerName参数表示播放动画的层级名称,-1表示播放动画的状态机层级默认值,normalizedTime参数表示动画的归一化时间(0到1之间)。 在使用Animator.Play函数时,可以指定播放某个层级上的动画,这个层级可以是任意的,例如可以是动作,可以是表情等等。在Animator Controller中,可以使用多个层级来进行动画混合和覆盖,通过Animator.Play函数可以控制播放不同层级中的动画。 例如,如果你想在Animator Controller的第一个层级中播放名为“idle”的动画,可以使用如下代码: ```csharp animator.Play("Base Layer.idle"); 如果你想在第二个层级中播放名为“walk”的动画,并且归一化时间为0.5,可以使用如下代码: ```csharp animator.Play("Layer2.walk", -1, 0.5f); 需要注意的是,Animator.Play函数不会替换当前正在播放动画,而是会在指定的层级上进行混合和覆盖。
KandyDev: 大佬您好,按文章中设置了获取权限,但报以下错误,麻烦帮忙看下是啥原因,谢谢表情包!(说明,config目录自己创建的,265是AssetBundle文件,没加后缀名,安卓12,unity2020.3) 报错信息: Unable to open archive file: /sdcard/config/265 Failed to read data for the AssetBundle '265'. unity-bug:Your platform doesn‘t support linear rendering with OpenGL ES, switch to OpenGL core graph jizhu0821: 我这也出现的问题 目前解决办法是把电脑自带的显卡禁掉 就解决了 VsCode Error:can‘t find java! Please install JAVA 1.8 or above and set JAVA_HOME environment variabl csdn_HZW: 怎么安装javaSE1.8?怎么设置环境变量?