99 lines
2.6 KiB
C#
99 lines
2.6 KiB
C#
using System.Collections;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class UIAquariumInfo : MonoBehaviour
|
|
{
|
|
[SerializeField]
|
|
private GameObject _aquariumNamePanel;
|
|
|
|
[SerializeField]
|
|
private Text _aquariumName;
|
|
|
|
[SerializeField]
|
|
private Text _inputText;
|
|
|
|
[SerializeField]
|
|
private Text _inspectInputText;
|
|
|
|
[SerializeField]
|
|
private AspectRatioFitter _aspectRatioFitter;
|
|
|
|
[SerializeField]
|
|
private float _halfWindowAspectRatio;
|
|
|
|
[SerializeField]
|
|
private float _fullWindowAspectRatio;
|
|
|
|
[SerializeField]
|
|
private Text _fishCountText;
|
|
|
|
[SerializeField]
|
|
private CanvasGroup _canvasGroup;
|
|
|
|
[SerializeField]
|
|
private float _fadeOutDelay = 5f;
|
|
|
|
[SerializeField]
|
|
private float _fadeOutDuration = 2f;
|
|
|
|
private AquariumController _aquarium;
|
|
|
|
private Coroutine _fadingOutCoroutine;
|
|
|
|
private void Start()
|
|
{
|
|
_inputText.text = string.Format("{0} - {1}", UtilitiesInput.GetActionKeyName("THROW_NEAR"), Utilities.GetTranslation("GUI/AQUARIUM/MANAGE_AQUARIUM"));
|
|
_inspectInputText.text = string.Format("{0} - {1}", UtilitiesInput.GetActionKeyName("BOAT_ENTER"), Utilities.GetTranslation("GUI/AQUARIUM/INSPECT"));
|
|
}
|
|
|
|
public void Show(AquariumController aquarium)
|
|
{
|
|
_aquarium = aquarium;
|
|
_aquariumName.text = ((!string.IsNullOrEmpty(aquarium.Settings.name)) ? aquarium.Settings.name : aquarium.GetDefaultName());
|
|
_fishCountText.text = string.Format("{0}/{1}", aquarium.Settings.currentFishCount, aquarium.Settings.fishLimitCount);
|
|
_aquariumNamePanel.gameObject.SetActive(aquarium.Settings.waterType != AquariumWaterType.Undefined);
|
|
_inspectInputText.gameObject.SetActive(!VRManager.IsVROn() && _aquarium.Settings.HasAnyFish());
|
|
if ((bool)_aspectRatioFitter)
|
|
{
|
|
_aspectRatioFitter.aspectRatio = ((!_aquarium.Settings.HasAnyFish()) ? _halfWindowAspectRatio : _fullWindowAspectRatio);
|
|
}
|
|
base.gameObject.SetActive(true);
|
|
if (!VRManager.IsVROn())
|
|
{
|
|
_canvasGroup.alpha = 1f;
|
|
_fadingOutCoroutine = StartCoroutine(FadingOutCorotuine());
|
|
}
|
|
}
|
|
|
|
public void Hide()
|
|
{
|
|
if (_fadingOutCoroutine != null)
|
|
{
|
|
StopCoroutine(_fadingOutCoroutine);
|
|
}
|
|
base.gameObject.SetActive(false);
|
|
}
|
|
|
|
public void OnManageAquarium()
|
|
{
|
|
Hide();
|
|
_aquarium.ShowAquariumGUI();
|
|
}
|
|
|
|
public IEnumerator FadingOutCorotuine()
|
|
{
|
|
yield return new WaitForSeconds(_fadeOutDelay);
|
|
float timePassed = 0f;
|
|
while (timePassed < _fadeOutDuration)
|
|
{
|
|
float factor = timePassed / _fadeOutDuration;
|
|
_canvasGroup.alpha = Mathf.Lerp(1f, 0f, factor);
|
|
timePassed += Mathf.Min(Time.deltaTime, _fadeOutDuration - timePassed);
|
|
yield return null;
|
|
}
|
|
_canvasGroup.alpha = 0f;
|
|
_fadingOutCoroutine = null;
|
|
}
|
|
}
|