54 lines
1.2 KiB
C#
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);
|
|
}
|
|
}
|