20231213_Class

2023. 12. 14. 00:01IT/TIL

오늘의 TIL은 C#과 유니티에서 사용한 Class에 관한 이야기이다.

 

Class는 이전부터 많이 공부했었던 내용이지만,

오늘 과제를 진행하면서 Player를 만들면서 Class를 이용했기에 복습하는 느낌으로 적었다.

 

원래는 이전 콘솔 프로젝트처럼 {get; set;}을 사용하려고 했지만,

이번에는 스크립터블 오브젝트와 연동하려고 간단하게 작성했다.

 

Player Class를 만들면서 PlayerCreator도 함께 작성했는데,

Player Class는 아래와 같은 코드로 작성했다.

[System.Serializable]
public class Player
{ 
    public string Title;
    public string Name;
    public int Level;
    public int Exp;
    public string Explain;

    public int Gold;

    public int Atk;
    public int Def;
    public int HP;
    public int Cri;
}

 

 

이후에 아래와 같이 PlayerCreator를 만들고 이를 Player 오브젝트에게주어서

게임 시작 시에 PlayerCreator의 MakeNewPlayer를 가동시켜서 Player를 만들었다.

public class PlayerCreator : MonoBehaviour
{
    public TextMeshProUGUI PlayerTitle;
    public TextMeshProUGUI PlayerName;
    public TextMeshProUGUI PlayerLevel;
    public TextMeshProUGUI PlayerExp;
    public TextMeshProUGUI PlayerExplain;
    public TextMeshProUGUI PlayerGold;
    public TextMeshProUGUI PlayerAtk;
    public TextMeshProUGUI PlayerDef;
    public TextMeshProUGUI PlayerHP;
    public TextMeshProUGUI PlayerCri;

    public ExpBar expBar;

    public void MakeNewPlayer(Player player)
    {
        player.Title = "칭호";
        player.Name = "아이디";
        player.Level = 50;
        player.Exp = 35;
        player.Explain = "캐릭터 설명입니다.";
        player.Gold = 20000;
        player.Atk = 100;
        player.Def = 50;
        player.HP = 500;
        player.Cri = 88;

        PlayerTitle.text = player.Title;
        PlayerName.text = player.Name;
        PlayerLevel.text = player.Level.ToString();
        PlayerExp.text = player.Exp.ToString();
        PlayerExplain.text = player.Explain;
        PlayerGold.text = player.Gold.ToString();
        PlayerAtk.text = player.Atk.ToString();
        PlayerDef.text = player.Def.ToString();
        PlayerHP.text = player.HP.ToString();
        PlayerCri.text = player.Cri.ToString();

        expBar.UpdateExpBar();
    }
}

 

이후에 이 스크립트를 응용하여 Player도 스크립터블 오브젝트로 만든 뒤에,

PlayerCreator 함수를 이용하여 Player를 생성할 수 있도록 변경할 것이다.

'IT > TIL' 카테고리의 다른 글

20231215_데이터 저장  (0) 2023.12.16
20231214_프리펩,ItemSlot  (0) 2023.12.14
20231212_ScriptableObject  (0) 2023.12.12
20231211_SOLID원칙, LayerMask, 싱글톤  (1) 2023.12.11
20231208_Generic, 오브젝트풀, SOLID원칙  (0) 2023.12.08