diff --git a/example_project/Assets/MonsterLove/StateMachine/StateMachine.cs b/example_project/Assets/MonsterLove/StateMachine/StateMachine.cs index 832cd77..aca0e76 100644 --- a/example_project/Assets/MonsterLove/StateMachine/StateMachine.cs +++ b/example_project/Assets/MonsterLove/StateMachine/StateMachine.cs @@ -102,10 +102,13 @@ public StateMachine(StateMachineRunner engine, MonoBehaviour component) continue; } + var stateName = string.Join("_", names, 0, names.Length - 1); + var eventName = names[names.Length - 1]; + Enum key; try { - key = (Enum) Enum.Parse(typeof(T), names[0]); + key = (Enum) Enum.Parse(typeof(T), stateName); } catch (ArgumentException) { @@ -115,7 +118,7 @@ public StateMachine(StateMachineRunner engine, MonoBehaviour component) var targetState = stateLookup[key]; - switch (names[1]) + switch(eventName) { case "Enter": if (methods[i].ReturnType == typeof(IEnumerator))