Files
2026-06-01 17:19:55 +02:00

40 lines
824 B
C#

using System;
using UnityEngine;
[DisallowMultipleComponent]
public sealed class TimerBehavior : NodeBehavior
{
private bool running;
private float nextTickAt;
private void Update()
{
if (base.IsAuthoritative && running)
{
float num = Mathf.Max(0.0001f, (float)GetInputNumber("Seconds"));
if (Time.unscaledTime >= nextTickAt)
{
nextTickAt = Time.unscaledTime + num;
TriggerOutput("Tick");
}
}
}
public override void OnRun(string inputPortName)
{
if (base.IsAuthoritative)
{
if (string.Equals(inputPortName, "Start", StringComparison.Ordinal))
{
running = true;
nextTickAt = Time.unscaledTime + Mathf.Max(0.0001f, (float)GetInputNumber("Seconds"));
}
else if (string.Equals(inputPortName, "Stop", StringComparison.Ordinal))
{
running = false;
}
}
}
}