Unity

3D 테스트 프로젝트 10

psb08 2025. 3. 3. 15:37
728x90

TurnDisplay.cs

using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;

public class TurnDisplay : MonoBehaviour
{
    public Image currentTurnImage;
    public TextMeshProUGUI currentTurnText;
    public TextMeshProUGUI turnListText;

    public void UpdateCurrentTurn(object currentCharacter)
    {
        if (currentCharacter is Player player)
        {
            currentTurnText.text = player.CharacterName;
        }
        else if (currentCharacter is Enemy enemy)
        {
            currentTurnText.text = enemy.CharacterName;
        }
    }

    public void UpdateTurnList(List<object> turnOrder, int currentTurnIndex)
    {
        turnListText.text = "";

        for (int i = 0; i < turnOrder.Count; i++)
        {
            string characterName = turnOrder[i] is Player
                ? (turnOrder[i] as Player).CharacterName
                : (turnOrder[i] as Enemy).CharacterName;

            if (i == currentTurnIndex)
            {
                turnListText.text += $"{characterName}\n\n";
            }
            else
            {
                turnListText.text += $"{characterName}\n\n";
            }
        }
    }

}

이미지는 당장 안쓰고, TurnList, currentTurnText만 사용했습니다.

 

TurnManager의 NextTurn 메서드

public void NextTurn()
{
    currentTurnIndex++;

    if (currentTurnIndex >= turnOrder.Count)
    {
        currentTurnIndex = 0;
    }

    object currentCharacter = turnOrder[currentTurnIndex];
    turnDisplay.UpdateCurrentTurn(currentCharacter);
    turnDisplay.UpdateTurnList(turnOrder, currentTurnIndex);

    Debug.Log($"{(currentCharacter is Player ? (currentCharacter as Player).CharacterName : (currentCharacter as Enemy).CharacterName)}의 턴입니다.");

    if (currentCharacter is Enemy enemy)
    {
        enemy.AttackRandomPlayer();
        StartCoroutine(WaitTime());
    }
}

턴이 넘어가면 리스트도 넘어가고, 현재 턴인 플레이어, 적이 currentText에 뜨게 됩니다.

 

 

리스트가 있고 리스트 순서대로 행동하는 것을 볼 수 있습니다.

그리고 리스트 옆에 현재 턴인 애가 뜹니다.

728x90

'Unity' 카테고리의 다른 글

3D 테스트 프로젝트 12  (0) 2025.03.05
3D 테스트 프로젝트 11  (0) 2025.03.04
3D 테스트 프로젝트 9  (0) 2025.03.02
3D 테스트 프로젝트 8  (0) 2025.03.01
3D 테스트 프로젝트 7  (0) 2025.02.28