当前位置: 首页 > 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

http://www.dtcms.com/a/95744.html

相关文章:

  • 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中数据集的使用
  • ros2 humble无法识别头文件<rclcpp/rclcpp.hpp>
  • 科技赋能建筑业变革:中建海龙创新引领高质量发展新路径
  • 深度解读:智能体2.0 AI Agent多推演进
  • 第七章:Python中pygame库的使用:开发小游戏
  • 【Java】注解
  • 单店效率优化促毛利增长,雍禾医疗业绩稳步跑
  • 服装零售行业数据分析方案
  • StarRocks 中 CURRENT_TIMESTAMP 和 current_time 分区过滤问题
  • Ai工作流工具有那些如Dify、coze扣子等以及他们是否开源
  • CF每日5题Day4(1400)