Files
Ultimate-Fishing-Simulator-…/Assets/Scripts/Assembly-CSharp/UI_LureBehaviour.cs
2026-03-04 09:37:33 +08:00

54 lines
1.2 KiB
C#

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<CanvasGroup>();
_animator = GetComponent<Animator>();
}
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);
}
}