110 lines
1.9 KiB
C#
110 lines
1.9 KiB
C#
using DG.Tweening;
|
|
using UnityEngine;
|
|
|
|
public class FloatPointerUI : HUDCanvasGroupBase
|
|
{
|
|
private Animator animator;
|
|
|
|
[HideInInspector]
|
|
public float floatDeep;
|
|
|
|
private bool _IsEnabled;
|
|
|
|
private bool isInWater;
|
|
|
|
private float fadeInDuration = 0.1f;
|
|
|
|
private float fadeOutDuration = 0.4f;
|
|
|
|
private bool IsEnabled
|
|
{
|
|
get
|
|
{
|
|
return _IsEnabled;
|
|
}
|
|
set
|
|
{
|
|
_IsEnabled = value;
|
|
animator.SetBool("Take", value);
|
|
}
|
|
}
|
|
|
|
private void Start()
|
|
{
|
|
animator = GetComponent<Animator>();
|
|
SetOff();
|
|
}
|
|
|
|
private void OnEnable()
|
|
{
|
|
FFloat.OnFloatEnterWater += FFloat_OnFloatEnterWater;
|
|
FFloat.OnFloatExitWater += FFloat_OnFloatExitWater;
|
|
FishFightState.OnFishCanTake += FishFightState_OnFishCanTake;
|
|
FishFightState.OnFishStrikeEnter += FishFightState_OnFishStrikeEnter;
|
|
FishFightState.OnExit += FishFightState_OnExit;
|
|
}
|
|
|
|
private void OnDisable()
|
|
{
|
|
floatDeep = 0f;
|
|
SetOff();
|
|
FFloat.OnFloatEnterWater -= FFloat_OnFloatEnterWater;
|
|
FFloat.OnFloatExitWater -= FFloat_OnFloatExitWater;
|
|
FishFightState.OnFishCanTake -= FishFightState_OnFishCanTake;
|
|
FishFightState.OnFishStrikeEnter -= FishFightState_OnFishStrikeEnter;
|
|
FishFightState.OnExit -= FishFightState_OnExit;
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
UpdateUIWidth();
|
|
}
|
|
|
|
private void FishFightState_OnFishStrikeEnter()
|
|
{
|
|
SetOff();
|
|
}
|
|
|
|
private void FishFightState_OnExit()
|
|
{
|
|
if (isInWater)
|
|
{
|
|
SetOn(fadeInDuration);
|
|
}
|
|
IsEnabled = false;
|
|
}
|
|
|
|
private void FishFightState_OnFishCanTake()
|
|
{
|
|
if (isInWater)
|
|
{
|
|
SetOn(fadeInDuration);
|
|
}
|
|
IsEnabled = true;
|
|
}
|
|
|
|
private void FFloat_OnFloatExitWater()
|
|
{
|
|
isInWater = false;
|
|
SetOff(fadeOutDuration, Ease.InCubic);
|
|
}
|
|
|
|
private void FFloat_OnFloatEnterWater()
|
|
{
|
|
isInWater = true;
|
|
SetOn(fadeInDuration);
|
|
}
|
|
|
|
private void UpdateUIWidth()
|
|
{
|
|
if (canvasGroup.alpha > 0f)
|
|
{
|
|
rectTransform.sizeDelta = originalSizeDelta;
|
|
}
|
|
else
|
|
{
|
|
rectTransform.sizeDelta = new Vector2(0f, originalSizeDelta.y);
|
|
}
|
|
}
|
|
}
|