うにてぃブログ

主にUnityとC#に関する記事を書いていきます

【Unity】AnimatorController の AnimationClip をスクリプトで変更する方法

using UnityEditor;
using UnityEngine;
using AnimatorController = UnityEditor.Animations.AnimatorController;
 
public static class AnimatorUtility
{
    public static bool ReplaceAnimationClip(string path, string replaceName, AnimationClip clip)
    {
        var controller = AssetDatabase.LoadAssetAtPath<AnimatorController>(path);
        foreach (var layer in controller.layers)
        {
            foreach (var state in layer.stateMachine.states)
            {
                if (state.state.name != replaceName)
                    continue;
 
                state.state.motion = clip;
                return true;
            }
        }
 
        return false;
    }

}