study/first_study/Library/PackageCache/com.unity.visualscripting@191c0d7e3b69/Runtime/VisualScripting.State/StateMachine.cs
jh04010421 739d49f1a0 Unity | 2026.01.20
수업 실습 파일
2026-01-20 11:01:57 +09:00

75 lines
1.7 KiB
C#

using UnityEngine;
namespace Unity.VisualScripting
{
[AddComponentMenu("Visual Scripting/State Machine")]
[RequireComponent(typeof(Variables))]
[DisableAnnotation]
[VisualScriptingHelpURL(typeof(StateMachine))]
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();
}
}
}