Legacy Documentation: Version 5.1
LanguageEnglish
  • C#
  • JS

Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

AnimatorController.CreateStateMachineBehaviour

Switch to Manual
public static function CreateStateMachineBehaviour(script: MonoScript): int;

Parameters

script MonoScript class to instantiate.

Returns

int Returns instance id of created object, returns 0 if something is not valid.

Description

This function will create a StateMachineBehaviour instance based on the class define in this script.

This function will validate that the monoscript is a valid statemachine behaviour, the class must be a sub class of StateMachineBehaviour and shouldn't be a generic. See Also: UnityEngine.StateMachineBehaviour.

#pragma strict
class AddSMB {
	public function DoAddStateMachineBehaviour(state: UnityEditor.Animations.AnimatorState, monoScript: MonoScript) {
		if (state == null)return ;
		var instanceID: int = AnimatorController.CreateStateMachineBehaviour(monoScript);
		if (instanceID == 0) {
			Debug.LogError("Could not create state machine behaviour " + monoScript.name);
			return ;
		}
		state.AddBehaviour(instanceID);
		var obj: var = EditorUtility.InstanceIDToObject(id);
		if (obj == null)
			Debug.LogError("No object could be found with instance id: " + id);
		else
			AssetDatabase.AddObjectToAsset(obj, state);
	}
}