Unity_2기 내일배움캠프 TIL

Unity_2기 4주차 (231122)

잼잼재미 2023. 11. 22. 19:38

오늘은 대망의 팀 프로젝트 과제 제출 날이다. 우리조는 거의 작업을 완료 하였고, 추가적으로 데이터 저장 기능을 구현 했다. 기능을 추가하고, 깃허브에 Push하면서 코드가 수정되었는지 사소한 버그들이 계속 발생해서 하루종일 버그 수정하느라 바빴다. 그리고 오늘 팀 프로젝트 해설 영상이 올라왔는데, 영상을 보면서 우리조와 다르게 구현한 점과 중요하다고 생각한 부분을 정리했다. 그리고 아슬아슬하게 작업을 완료하고, 시연영상을 찍었다. 

 

스파르타 던전 배틀 (Text 게임) 만들기 팀 프로젝트 시연 영상


https://www.youtube.com/watch?v=q8H9MfyFrAQ

구현한 기능을 최대한 보여주기 위해서 영상을 찍어서 생각보다 영상 길이가 길었다. 발표에서는 중요한 부분 위주로 넘어가면서 재생할 예정이다.

 

 

Text RPG 팀프로젝트 해설


Game 클래스 생성


 - 게임이 시작할 때, 실행되는 함수들을 관리

class Game
{
    public Game()	// 생성자를 통해 관리
    {
        GameDataSetting();
        PrintStartLogo();
        StartMenu();
    }
    
    public static GameDataSetting()
    {
    	// 내용
    }
    
    public static PrintStartLogo()
    {
    	// 내용
    }
    
    public static StartMenu()
    {
    	// 내용
    }
}

 

 

Utility 클래스 생성


 - 여러가지 기능들을 관리하는 함수들을 관리

 - ex) FontColor 함수, CheckValidInput 함수 등

class Utility
{
    public Utility()
    {
        FontColor();
        CheckValidCheck();
    }
    
    public static FontColor()
    {
    	// 내용
	}
    
    public static CheckValidInput()
    {
    	// 내용
    }
}

 * static 으로 함수를 정의해야 Utility.함수명 으로 사용 가능

 

 

Scene 클래스 생성


 - 각각 다른 Scene을 생성

abstract class Scene
{
    abstract public void EnterScene(Character character);
    abstract protected void DisplayDiscription();
}

class StartScene : Scene
{
    override public void EnterScene(Character character)
    {
        // 내용
    }

    override protected void DisplayDiscription()
    {
        // 내용
    }   
}

class StatusScene : Scene
{
    override public void EnterScene(Character character)
    {
        // 내용
    }

    override protected void DisplayDiscription()
    {
        // 내용
    }   
}

 

 

싱글톤 사용


class StartScene : Scene
{
	// 싱글톤
	public static StartScene instace
    {
    	get
        {
        	if (instace == null)
            {
            	instace = new StartScene();
            }
            
            return instace;
        }
    }
}

 * 싱글톤과 정적 클래스(static) 의 차이?

  - 정적 클래스는 상속할 수 없음

  - 싱글톤은 클래스를 확장하고 인터페이스를 구현 가능

  - 힙 영역에 싱글톤 객체 저장, 스택에 정적 객체 저장

 

 

오늘의 회고


오늘은 거의 버그 수정에 모든 시간을 썼다. 협업을 하다보니 자신이 맡아서 코드를 작성한 부분이 정해져있기 때문에 버그가 하나 생기면 내가 작성한 코드가 아니라면 코드 분석부터 시간이 많이 걸렸다. 전체적으로 내가 구현한 부분들은 쉬운 부분이었기 때문에 버그가 거의 생기지 않아서 발생한 버그를 해결하는데 어려움이 많아서 팀원들과 상의를 많이 했다. 그래도 혼자서 과제를 한 것보다 팀원들과 협업을 해서 하나의 프로젝트를 완료했다는 것이 많이 보람있었다. 특히, 깃허브 사용에 어려움이 많았는데, 이번 프로젝트를 통해서 확실히 알 수 있었다. 해설 강의를 보고 우리의 프로젝트와 비교를 해보니 해설 강의에서는 전체적으로 기능별로 class를 잘 나누었고, 싱글톤 사용도 있었다. 싱글톤은 유니티를 공부하면서 사용한적이 있었는데, C#에서만은 사용한적이 없었기 때문에 따로 공부하고 정리를 해야겠다고 생각했다. 마지막으로 내일 프로젝트 발표를 잘 마무리하고, 다른조들은 우리조와 어떻게 다르게 구현했는지 확인해서 내일 정리할 것이다.

'Unity_2기 내일배움캠프 TIL' 카테고리의 다른 글

Unity_2기 4주차 (231124)  (1) 2023.11.24
Unity_2기 4주차 (231123)  (1) 2023.11.23
Unity_2기 4주차 (231121)  (2) 2023.11.21
Unity_2기 4주차 (231120)  (1) 2023.11.20
Unity_2기 3주차 (231117)  (0) 2023.11.17