当前位置: 首页 > news >正文

Unity 运行时更换Animator状态里的动画剪辑

AnimatorController是一个编辑器里的类,用来处理asset的。但是运行时改不了asset。只能通过AnimatorOverrideController来实现,不过操作也很简单。


public class TestOverrideAnimator : MonoBehaviour
{
    public Animator animator;
    public bool testBtn;
    public AnimationClip replaceClip;

    private AnimatorOverrideController overrideController;
    private AnimationClip sourceClip;

    void Start()
    {
        //新建一个AnimatorOverrideController
        overrideController = new AnimatorOverrideController(animator.runtimeAnimatorController);
        //获取原始的动画Clip,因为测试只有一个动画,就直接这么获取了,如果动画很多个,可以根据名字遍历查找
        //编辑器里可以获得状态机的状态,但是运行时获取不到。
        //也可以通过overrideController.GetOverrides()获取映射列表
        sourceClip = animator.runtimeAnimatorController.animationClips[0];
        //使用新的AnimatorOverrideController
        animator.runtimeAnimatorController = overrideController;
    }

    void Update()
    {
        if (testBtn)
        {
            testBtn = false;
            //传入原始Clip和新Clip的映射就行了
            //映射的目标如果是null,就可以取消替换
            overrideController.ApplyOverrides(new List<KeyValuePair<AnimationClip, AnimationClip>>()
            {
                new (sourceClip, replaceClip),
            });
            //播放Test状态,也可以在编辑器里手动播放
            animator.Play("Test", 0, 0);
        }
    }
}

参考

Unity - Scripting API: AnimatorOverrideController.ApplyOverrides

相关文章:

  • Docker部署minio,SSL证书问题与两个解决方案
  • 【数据结构】栈 与【LeetCode】20.有效的括号详解
  • Spring Boot分布式项目实战:装饰模式的正确打开方式
  • 【网络】:应用层 —— HTTP协议
  • CloudCompare (CC)中ccHObject详解
  • 故障扭曲棱镜反射照片效果ps特效滤镜样机 Distorted Mirror Poster Effect
  • 日志打印级别定义
  • 高精度除法
  • SPI通信协议
  • uvm sequence
  • zsh安装以及安装配置oh-my-zsh安装zsh-autosuggestionszsh-syntax-highlighting
  • 条件变量与生产者-消费者模型
  • Unix/Linux 系统下的文件权限
  • D3524 PWM控制芯片详解:特性、参数与典型应用
  • arm非对齐访问编译器选项
  • vue(1-45)
  • GitHub美化个人主页3D图表显示配置操作
  • [力扣每日一练]关于MySQL和pandas的正则表达式应用
  • caddy常用配置
  • torchvision中数据集的使用
  • 用html5做京东网站代码/微信朋友圈推广文案
  • 网站建设合同书封皮/腾讯企点qq
  • jsp网站开发环境配置/广告推广网站
  • 南宁做网站推广的公司哪家好/铜川网络推广
  • 视频网站点击链接怎么做/视频号推广
  • 徐州市鼓楼区建设局网站/百度论坛首页官网