示例#1
0
    /*
     * 动作模型只有2种,1.完整模型动作 2.简化模型动作,详细请看
     * http://oa.baoyugame.net/redmine/documents/27
     */
    static void SetAnimation(
        AnimatorOverrideController controller
        , string path
        , string actorName
        , ModelHelper.AnimType animationName
        , ModelHelper.AnimType replaceAnimationName = ModelHelper.AnimType.idle)
    {
        var animationNameStr        = ModelHelper.AnimToString(animationName);
        var replaceAnimationNameStr = ModelHelper.AnimToString(replaceAnimationName);
        var animationPath           = GetAnimationClipPath(path, actorName, animationNameStr);
        var clip = AssetDatabase.LoadAssetAtPath(animationPath, typeof(AnimationClip)) as AnimationClip;

        if (clip != null)
        {
            controller[animationNameStr] = clip;
        }
        else if (!string.IsNullOrEmpty(replaceAnimationNameStr))
        {
            animationPath = GetAnimationClipPath(path, actorName, replaceAnimationNameStr);
            clip          = AssetDatabase.LoadAssetAtPath(animationPath, typeof(AnimationClip)) as AnimationClip;
            if (clip != null)
            {
                controller[animationNameStr] = clip;
            }
            else
            {
                Debug.LogError(actorName + " 动作模型不符合规范,缺少 [替换] 动作: " + replaceAnimationName);
            }
        }
        else
        {
            Debug.LogError(actorName + " 动作模型不符合规范,缺少动作: " + animationName);
        }
    }