You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
1.8 KiB
C#

1 year ago
using UnityEngine;
namespace Unity.VisualScripting
{
[AddComponentMenu("Visual Scripting/State Machine")]
[RequireComponent(typeof(Variables))]
[DisableAnnotation]
[HelpURL("https://docs.unity3d.com/Packages/com.unity.visualscripting@latest/index.html?subfolder=/manual/vs-graphs-machines-macros.html")]
public sealed class StateMachine : EventMachine<StateGraph, StateGraphAsset>
{
protected override void OnEnable()
{
if (hasGraph)
{
using (var flow = Flow.New(reference))
{
graph.Start(flow);
}
}
base.OnEnable();
}
protected override void OnInstantiateWhileEnabled()
{
if (hasGraph)
{
using (var flow = Flow.New(reference))
{
graph.Start(flow);
}
}
base.OnInstantiateWhileEnabled();
}
protected override void OnUninstantiateWhileEnabled()
{
base.OnUninstantiateWhileEnabled();
if (hasGraph)
{
using (var flow = Flow.New(reference))
{
graph.Stop(flow);
}
}
}
protected override void OnDisable()
{
base.OnDisable();
if (hasGraph)
{
using (var flow = Flow.New(reference))
{
graph.Stop(flow);
}
}
}
[ContextMenu("Show Data...")]
protected override void ShowData()
{
base.ShowData();
}
public override StateGraph DefaultGraph()
{
return StateGraph.WithStart();
}
}
}