using System; using Unity.VisualScripting; using Object = UnityEngine.Object; namespace Filta.VisualScripting { [UnitCategory("Events/Filta")] public class OnRightEyeCloseValueChange : ManualEventUnit { protected override string hookName => "RightEyeClose"; [DoNotSerialize] private ValueOutput _rightEyeCloseValue; GraphReference _graph; private ArTriggerEvents _arTriggerEvents; private float _val; protected override void Definition() { base.Definition(); _rightEyeCloseValue = ValueOutput("Right Eye Close Value", _ => _val); } public override void StartListening(GraphStack stack) { base.StartListening(stack); _graph = stack.AsReference(); _arTriggerEvents = Object.FindObjectOfType(); _arTriggerEvents.onRightEyeValueChange += OnRightEyeCloseValueChanged; } private void OnRightEyeCloseValueChanged(object sender, float val) { _val = val; Trigger(_graph, this); } public override void StopListening(GraphStack stack) { base.StopListening(stack); _arTriggerEvents.onRightEyeValueChange -= OnRightEyeCloseValueChanged; } } }