AnimatorController.CreateNewStateMachineBehaviour
Declaration
public static EntityId CreateNewStateMachineBehaviour(MonoScript script);Параметры
| Параметр | Описание |
|---|---|
| скрипт | Класс MonoScript, экземпляр которого нужно создать. |
Возвращаемое значение
EntityId Возвращает EntityId созданного объекта, возвращает EntityId.None если что-то неверно.
Описание
Эта функция создаёт экземпляр StateMachineBehaviour на основе класса, объявленного в этом скрипте.
Эта функция проверяет, что monoscript является допустимым поведением машины состояний: класс должен быть подклассом 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;
EntityId entityId = AnimatorController.CreateNewStateMachineBehaviour(monoScript); if (entityId == EntityId.None) { Debug.LogError("Could not create state machine behaviour " + monoScript.name); return; }
state.AddStateMachineBehaviour(monoScript.GetClass()); var behaviour = EditorUtility.EntityIdToObject(entityId); AssetDatabase.AddObjectToAsset(behaviour, state.ToString()); } }