Параметры
script | Класс MonoScript для создания экземпляра. |
Возвращает
int Возвращает идентификатор экземпляра созданного объекта, возвращает 0, если что-то не так.
Описание
Эта функция создаст экземпляр StateMachineBehaviour на основе класса, определенного в этом скрипте.
Эта функция проверит, что моноскрипт является допустимым поведением конечного автомата, класс должен быть подклассом StateMachineBehaviour и не должен быть универсальным.
Смотрите так же: StateMachineBehaviour.
using UnityEditor;
using UnityEditor.Animations;
using UnityEngine;
public class AddSMB
{
public void DoAddStateMachineBehaviour(UnityEditor.Animations.AnimatorState state, MonoScript monoScript)
{
if (state == null)
return;
int instanceID = AnimatorController.CreateStateMachineBehaviour(monoScript);
if (instanceID == 0)
{
Debug.LogError("Could not create state machine behaviour " + monoScript.name);
return;
}
state.AddStateMachineBehaviour(monoScript.GetClass());
var obj = EditorUtility.InstanceIDToObject(instanceID);
if (obj == null)
Debug.LogError("No object could be found with instance id: " + instanceID);
else
AssetDatabase.AddObjectToAsset(obj, state.ToString());
}
}