using Obvious.Soap; using SoapCustomVariable; using UnityEngine; public class UI_LureBehaviour : MonoBehaviour { private static readonly int StateHash = Animator.StringToHash("state"); public FSMVariable playerState; public IntVariable lureStateId; private Animator _animator; private CanvasGroup _canvasGroup; private void Awake() { _canvasGroup = GetComponent(); _animator = GetComponent(); } private void OnEnable() { LureStateIdOnOnValueChanged(lureStateId.Value); PlayerStateOnOnValueChanged(playerState.Value); lureStateId.OnValueChanged += LureStateIdOnOnValueChanged; playerState.OnValueChanged += PlayerStateOnOnValueChanged; } private void OnDisable() { lureStateId.OnValueChanged -= LureStateIdOnOnValueChanged; playerState.OnValueChanged -= PlayerStateOnOnValueChanged; } private void PlayerStateOnOnValueChanged(State obj) { if (obj == State.fishing || obj == State.fight) { _canvasGroup.alpha = ((lureStateId.Value > -1) ? 1f : 0f); return; } _canvasGroup.alpha = 0f; lureStateId.Value = -1; } private void LureStateIdOnOnValueChanged(int value) { _canvasGroup.alpha = ((lureStateId.Value > -1) ? 1f : 0f); _animator.SetInteger(StateHash, value); } }