zoukankan      html  css  js  c++  java
  • 使用AnimatorOverrideController动态更换animationclip注意事项

    http://www.ceeger.com/forum/read.php?tid=19138

    public AnimationClip clip;
    Animator anim;
    void Awake()
    {
        anim = GetComponent<Animator>();
    }
    void Start () {
        AnimatorOverrideController overrideController = new AnimatorOverrideController();
        overrideController.runtimeAnimatorController = anim.runtimeAnimatorController;
        overrideController["testCip"] = clip;
        anim.runtimeAnimatorController = overrideController;
    }

    这里一定要注意, overrideController["testCip"] = clip;里面的testClip不是状态机里面的状态名,而是实际要替换的clip的名字..... 


    也可以用AnimationClipPair得到clip的名字

    RuntimeAnimatorController tempController = anim.runtimeAnimatorController;
    AnimatorOverrideController overrideController = new AnimatorOverrideController();
    overrideController.runtimeAnimatorController = tempController;
    overrideController.PerformOverrideClipListCleanup();//<span style="color:#ff0000;">这个函数在U5.3和5.0都不存在应该是去掉了吧</span>
     
     
    overrideController[overrideController.clips[0].originalClip.name] = clip;
    overrideController[overrideController.clips[1].originalClip.name] = clip2;
     
    foreach (AnimationClipPair pairs in overrideController.clips)
    {
        Debug.Log(pairs.originalClip.name );
        if (pairs.overrideClip!=null)
        {
            Debug.Log(pairs.overrideClip.name );
        }
    }
     
    anim.runtimeAnimatorController = overrideController;


  • 相关阅读:
    [转]Linux里的2>&1究竟是什么
    一段shell脚本分析
    [整理]Linux Crontab命令总结
    random seed()函数
    clear命令新认识
    泛型与发射初探,获取当前代码所在的行
    tomcat集群(转)
    查看本地电脑的端口及对应的使用程序
    信息摘要算法小试牛刀
    Linux非root用户安装jdk和tomcat(转)
  • 原文地址:https://www.cnblogs.com/nafio/p/9137366.html
Copyright © 2011-2022 走看看