Degulleo3D/Assets/LIN/Scripts/UI/InteractionAnimationPanelController.cs
2025-04-28 17:44:00 +09:00

69 lines
1.8 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class InteractionAnimationPanelController : MonoBehaviour
{
[SerializeField] private GameObject panel;
[SerializeField] private Image doingImage;
[SerializeField] private TMP_Text doingText;
[SerializeField] private Animator animator;
private Coroutine _textAnimCoroutine;
// private void Start()
// {
// ShowAnimationPanel(LoadingState.Housework);
// }
public void SetDoingText(string text)
{
doingText.text = text;
}
public void ShowAnimationPanel(ActionType actionType, string animationText)
{
panel.SetActive(true);
if (_textAnimCoroutine != null)
{
StopCoroutine(_textAnimCoroutine);
}
doingText.text = animationText;
switch (actionType)
{
case ActionType.Sleep:
break;
case ActionType.Work:
break;
case ActionType.Eat:
doingText.text = "식사하는 중";
break;
case ActionType.Dungeon:
break;
case ActionType.Housework:
animator.Play("Laundry");
break;
}
_textAnimCoroutine = StartCoroutine(TextDotsAnimation());
}
private IEnumerator TextDotsAnimation()
{
var tempText = doingText.text;
float startTime = Time.time;
while (Time.time - startTime < 3)
{
for (int i = 0; i < 3; i++)
{
yield return new WaitForSeconds(0.3f);
doingText.text = tempText + new string('.', i + 1);
}
yield return new WaitForSeconds(0.3f);
}
_textAnimCoroutine = null;
}
}