유니티 부트캠프 8기/Ch03. Mini Project2(250206 - 250213) 5

250217. 결합도, 응집도의 관점에서 본 아이템 클래스의 설계 (feat GW님)

튜터님께 질문하기 전에 아이템클래스를 만드신 GW님께 구조에 대한 질문을 했다인터페이스 ItemData의 상속을 받은 추상클래스 Equipment의 상속을 받은 Armor와 Weapon 으로 만들었는데ItemData와 Equipment의 상속 구조 문제였다 GW님께서 하신 말씀은 검은 배경, 흰 글씨로응집도는 높아야하고 결합도는 낮아야한다는 법칙이 있습니다결합도가 낮아야 한다는 건모듈과 모듈 사이의 결합력을 낮춘다 라는 말이구요응집도는 모듈 내의 기능들의 응집도를 올려준다는 이야기입니다  결합도가 낮다: 모듈과 모듈 사이의 결합력을 낮춘다모듈: 코드가 포함된 파일이나 논리적인 기능 단위(클래스, 인터페이스 구조체)모듈은 특정한 개념이 아니라 여러 클래스와 코드 조각을 포함하는 논리적 단위이다 (응집도 +..

Skill 구현하기

마지막 남은 건 스킬이다 스킬을 담을 allSkillList와 playerSkillList는 GameProcess에서 SkillManager 초기화하 때 같이 초기화하기로 했다 public class GameProcess {... SkillManager skillManager; public static bool isPlaying; // 종료하는 곳에서 false로 바꾼다 public GameProcess() { Awake(); } // 멤버 초기화는 Awake메서드에서 이루어진다 public void Awake() { ... if (skillManage..

Quest 구현하기

우선 퀘스트는 3개를 만들었다  // json에 퀘스트 내용 저장하기 private void SaveDefaultQuests(Npc npc) { List defaultQuests = new List() { /// 추가할 퀘스트가 있다면 여기에 기록 (object) new QuestData { Name = "고블린 5마리 잡기", QuestType = eQuestType.KILL, State = eQuestState.NOTSTARTED, Description = "던전의 고블린을 5마리 처치하세요.", Target = "고블린", Count = 0, IsCleared = fal..

불러오기 후 장착한 아이템 표시를 하지 않는 문제(json 파일 읽을 때 참조가 바뀌는 문제)

Status에서 보면 여전히 장착은 하고 있다 다만, 장착관리에서 보면 미장착 표시가 나오는 문제다 혹시 불러오면 equipList에 저장된 순서가 바뀌는 것이 아닐까 생각했다 그래서 저장했던 당시의 정보를 json파일에서 확인했다{"$type":"SpartaDungeon.Managers.GameData, SpartaDungeon","fileIndex":3,"player":{"$type":"SpartaDungeon.Player, SpartaDungeon","data":{"$type":"SpartaDungeon.PlayerData, SpartaDungeon","name":"asdf","classType":1,"level":1,"attack":10.0,"defence":5.0,"maxHp":100.0,"hp..

전체적인 게임 아키텍처 설계

이번 콘솔 text rpg 프로젝트에서 아키텍처 설계와 작은 규모의 게임엔진을 만들었다유니티와 최대한 유사하게 만들려고 노력했다GameProcess에서 모든 매니저를 싱글턴으로 생성한 뒤SceneManager를 통해 Scenes의 Awake Start를 1회 순회하고,  GameProcess의 while 루프로 SceneManager의 Update를 호출하는 구조로 만들었다SceneManager에는 현재 씬과 이전 씬을 저장하는데, 이는 이전 페이지로 돌아갈 때 어디에서 왔는지 알게 하기 위함이다DataManager에서는 Newtonsoft Json을 이용하여 실제로 저장을 하는 구조로 만들 계획이다(이미 개인 text rpg에서는 성공했으니까 문제없다)  유니티 구조를 공부를 겸해서 만들었는데 좋은 공..