20231213_Class
2023. 12. 14. 00:01ㆍIT/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 |