같은 스크립트에서 하나의 솔루션만 작동시키기
같은 프로젝트 내 게임이 여러 개일 때 하나만 플레이하기
같은 프로젝트 안에 2개 이상의 게임 script를 만든 경우 디버깅을 하면 Main이 하나가 아니라며 오류가 떴었다.
그럴 때마다 실행하고자 하는 script를 제외한 나머지를 모두 ctrl+K+C를 사용해 주석처리 했는데.. 무척 번거로웠다.
때마침 오늘 발표 시간에 동기분께서 보다 깔끔하게 script를 디버깅하는 방법을 알려주셨다. (무한 감사😊)
1) Program 스크립트 만들기 (Main 제어 역할)
Program 이라는 script를 새로 만들어 이곳에서만 Main을 제어하도록 한다.
(따라서 기존 게임 script 에 들어있던 모든 Main 을 수정해야 한다.)
Main 안에는 Script명.Start(게임명) 형식으로 코드를 작성해 한 가지 게임만 실행하도록 할 수 있다.
script 명에 따라 디버깅 시 실행할 게임을 바꿀 수 있다.
2) 기존 게임 script 수정하기
게임 시작을 위해 필요한 코드를 일부 수정하는데,
static void Main() 을 삭제하고 static void Play() 로 바꿔준다.
Play를 동작시키기 위해 public static void Start(게임명)()을 추가한다.
이 메서드를 통해 Program 스크립트에 있는 Main의 Script명.Start(게임명); 을 실행시킬 수 있다.
게임2, 게임3의 경우도 똑같이 [Main삭제 - Play추가 - public static void Start(게임명)() 추가] 순으로 만들어준다.
Console. 없이 간결하게 코드 작성하기
shift+C 로 Console. 부터 찾던 나는 이제 없다! (필요할 때 또 찾겠지만)
Console. 이 많이 쓰이는 스크립트라면
using static Console; 을 입력함으로써 Console. 이라는 클래스명 없이 메서드를 작동시킬 수 있다.
Console.WriteLine() 대신 WriteLine() 으로 작성해도 무방하다!
WriteLine, Write, Clear, Title 등 Console이 필요한 메서드에 전부 적용된다.
다만 작성자가 코드를 읽을 때 Console. 이 확실하게 필요하다고 생각하는 경우에는
Console.을 붙여서 사용해도 무방하다.
오늘의 회고
발표 내용을 복습하기 위해 바로 2주차 과제 파일을 다시 열었다.
프로젝트 내에서 디버깅할 때마다 주석처리 하는 것이 불편했는데, 해결하는 좋은 방법을 배웠다.
지식은 나눌수록 좋구나!! (다시 한 번 감사합니다.)
질문을 많이 하고 싶은데, 내가 이상한 곳에서 자꾸 막히는 것 같아 일단은 혼자 해결하고 있다.
내일은 팀원이 다같이 개인과제(던전 게임)에 들어가기 때문에 좀 더 활발한 의견 교류가 있을 것 같다.
오늘의 고민
생각나는대로 쓰고 나중에 단정하게 고치는 게 나을까?
아니면 처음부터 공들여서 단정하게 만드는 게 좋을까?
일단 로직이 떠오르는 대로 막 적다보니 던전 게임에 빨간줄이 많이 생겨서.. 걱정이다.
내일은 오류를 줄이기 위해 한 계단씩 올라가야지 :)
<내일 해결해야 하는 문제>
인벤토리 - 아이템 목록이 제대로 뜨지 않는 현상
인벤토리 - 1. 장착 관리를 눌러도 아무런 반응이 없음