45 lines
1.0 KiB
C#
45 lines
1.0 KiB
C#
|
using System.Collections;
|
|||
|
using UnityEngine;
|
|||
|
|
|||
|
namespace NeoFPS.Samples
|
|||
|
{
|
|||
|
public abstract class UiSpinner : MonoBehaviour
|
|||
|
{
|
|||
|
[SerializeField]
|
|||
|
private bool m_StartVisible = true;
|
|||
|
|
|||
|
public abstract void Tick();
|
|||
|
protected abstract IEnumerator ShowCoroutine();
|
|||
|
protected abstract IEnumerator HideCoroutine();
|
|||
|
|
|||
|
protected virtual void Awake()
|
|||
|
{
|
|||
|
if (!m_StartVisible)
|
|||
|
gameObject.SetActive(false);
|
|||
|
}
|
|||
|
|
|||
|
public void Show()
|
|||
|
{
|
|||
|
StopAllCoroutines();
|
|||
|
gameObject.SetActive(true);
|
|||
|
StartCoroutine(ShowCoroutine());
|
|||
|
}
|
|||
|
|
|||
|
public void Hide()
|
|||
|
{
|
|||
|
StopAllCoroutines();
|
|||
|
StartCoroutine(HideCoroutineInternal());
|
|||
|
}
|
|||
|
|
|||
|
private void Update()
|
|||
|
{
|
|||
|
Tick();
|
|||
|
}
|
|||
|
|
|||
|
private IEnumerator HideCoroutineInternal()
|
|||
|
{
|
|||
|
yield return StartCoroutine(HideCoroutine());
|
|||
|
gameObject.SetActive(false);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|