|
|
|
|
|
|
using UnityEngine; |
|
|
|
using UnityEditor; |
|
|
|
using System.Linq; |
|
|
|
#region STATE MACHINES
|
|
|
|
[MenuItem("GameObject/Gameplay Ingredients/State Machines/State Machine (Empty)", false, 10)] |
|
|
|
static void CreateEmptyStateMachine() |
|
|
|
{ |
|
|
|
var go = new GameObject("New StateMachine"); |
|
|
|
var sm = go.AddComponent<StateMachines.StateMachine>(); |
|
|
|
|
|
|
|
if (Selection.activeGameObject != null) |
|
|
|
go.transform.parent = Selection.activeGameObject.transform; |
|
|
|
} |
|
|
|
|
|
|
|
[MenuItem("GameObject/Gameplay Ingredients/State Machines/State Machine (On\\Off)", false, 10)] |
|
|
|
static void CreateTwoStateStateMachine() |
|
|
|
{ |
|
|
|
var go = new GameObject("New StateMachine"); |
|
|
|
var sm = go.AddComponent<StateMachines.StateMachine>(); |
|
|
|
|
|
|
|
AddState(sm, "On"); |
|
|
|
AddState(sm, "Off"); |
|
|
|
|
|
|
|
sm.DefaultState = "On"; |
|
|
|
|
|
|
|
if (Selection.activeGameObject != null) |
|
|
|
go.transform.parent = Selection.activeGameObject.transform; |
|
|
|
} |
|
|
|
|
|
|
|
[MenuItem("GameObject/Gameplay Ingredients/State Machines/State Machine (On\\Off\\Disabled)", false, 10)] |
|
|
|
static void CreateThreeStateStateMachine() |
|
|
|
{ |
|
|
|
var go = new GameObject("New StateMachine"); |
|
|
|
var sm = go.AddComponent<StateMachines.StateMachine>(); |
|
|
|
|
|
|
|
AddState(sm, "Disabled"); |
|
|
|
AddState(sm, "On"); |
|
|
|
AddState(sm, "Off"); |
|
|
|
|
|
|
|
sm.DefaultState = "Disabled"; |
|
|
|
|
|
|
|
if (Selection.activeGameObject != null) |
|
|
|
go.transform.parent = Selection.activeGameObject.transform; |
|
|
|
} |
|
|
|
|
|
|
|
static StateMachines.State AddState(StateMachines.StateMachine sm, string name) |
|
|
|
{ |
|
|
|
var goState = new GameObject(name); |
|
|
|
var state = goState.AddComponent<StateMachines.State>(); |
|
|
|
goState.transform.parent = sm.gameObject.transform; |
|
|
|
goState.transform.localPosition = Vector3.zero; |
|
|
|
goState.transform.localRotation = Quaternion.identity; |
|
|
|
goState.transform.localScale = Vector3.one; |
|
|
|
sm.States = sm.States.Concat(new StateMachines.State[] { state }).ToArray(); |
|
|
|
return state; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region TRIGGERS
|
|
|
|
|
|
|
|
[MenuItem("GameObject/Gameplay Ingredients/Events/Trigger (Box)", false, 10)] |
|
|
|