본문 바로가기
유니티5 독학 & 게임 제작

유니티5 독학하기 그 47번째 걸음-게임 씬으로 전환하는 작업하기

by 인터넷떠돌이 2018. 6. 13.
반응형

안녕하세요?


이번 포스팅에서 드디어 게임 시작 버튼을 누르면 게임 시작 씬으로 장면을 바꾸는 것을 실습해 보았고 그 내용을 포스팅 하게 되었습니다. 아직은 배워야 하는 것이 많다는 생각이 들기도 하지만, 이것 하나만 해도 유니티NGUI게임 프로젝트라는 책을 공부한 보람이 있다는 생각이 듭니다.



이제 DisappearOnClick.cs라는 스크립트에서 위 스크린샷처럼 처리를 해서 Tween Effect를 주도록 합니다. 여기서 원래를 저 긴 항목에다가 .method를 다 붙이면 코드가 너무 길어지기 때문에...


UITweener 변수명 = Tween을 주는 코드;

변수명.method = UITweener.Method.Tween효과


이런 식으로 바꾼 것입니다.



위 도표처럼 저러한 Tween효과를 주면, Tween이 실행될 때 특별히 효과를 주는 것으로 할 수 있습니다.



이제 다시 MenuManager.cs로 가서, 위 스크린샷에 나와 있는 것처럼 LoadGameScene라는 메소드를 추가 하도록 합니다.



그리고 나서, File>Build Settings를 누르도록 합니다.




그리고 나서 책에서는 Add current라고 되어 있었지만, 여기서는 Add Open Scenes를 눌러서 지금 열려 있는 씬을 추가하도록 합니다.



그리고 나서 현재 열려 있는 씬을 Menu라는 이름으로 저장을 하도록 합니다.



다음으로는 NewScenes를 열도록 합니다.



새로운 씬의 이름은 Game이라고 지정을 합니다.



Add Open Scenes를 다시 눌러서 이번 씬을 추가하도록 합니다.



위 스크린샷처럼 Add OpenScenes를 누르되, 이전에 실수로 들어간 GameView라는 것을 선택 취소 하도록 합니다.




DisappearOnClick.cs 스크립트에 위 스크린샷의 붉은색 박스안에 있는 내용을 추가하도록 합니다. 여기서는 EventDelegate라고 해서 Tween 종료시 실행이 될 이벤트를 지정 하도록 ㅎ바니다. 일단 아래에 주석처리가 되어 있는 


tween.SetOnFinished(MenuManager.LoadGameScene);


최종 결과물은 이런 식으로 간단하게 추리는 것으로 할 수 있습니다. 

그리고 아래와 같은 코드를 사용할 수 있다고 하는데...


EventDelegate.Remove(eventDelegate, callback); 


이라는 코드로 이벤트 델리케이트와 콜백 메소드와의 관계를 지울 수있 다고 합니다. 앞으로 나오는 기능을 봐서는 이번 Tween이 종료가 되면, 다음에 오는 Callback이라는 메소드 와의 관계를 끊을 수 있다고 해서, 아마 이 기능을 실행하면 'Play'버튼을 눌러도 더는 게임이 실행되지 않도록 할 수 있다는 것으로 보입니다.



그리고 나서 아예 광역 변수를 선언한 다음에 그냥 ( ) 안에 변수만 집어 넣는 것으로 더더욱 간단하게 코드를 변환할 수 있다고 책에서 언급이 되어 있습니다. 다만 이 부분은 저로서는 그다지 이해는 되지 않기는 않았습니다.



이제 UIRoot>Main>Buttons>Play를 선택 하도록 합니다.



이번에는 인스펙터 뷰를 보니, Notify라는 항목이 있는데, 여기에 notify라는 항목이 비어 있는 것을 볼 수 있습니다.



먼저 Nofity라는 항목을 UIRoot로 지정을 하도록 합니다. 그리고 아래의 메소드를 선택해야 합니다.




여기서 LoadGameScene라는 메소드를 선택해야 하는데 선택이 되지 않는 것을 볼 수 있습니다. 이러한 문제가 생긴 이유가 책에서 언급하기를.........



바로 위 스크린샷에 붉은색 밑줄이 그어진 static이라는 것 때문에 벌어진 일이라고 합니다. 이 static이라는 글자를 제거 하도록 합니다.



이제 LoadGameScene라는 것을 선택할 수 있게 된느 것을 볼 수 있습니다. 여기까지 했으니, 실제로 유니티의 플레이 버튼을 눌러서 어떻게 변하는 지 확인해 보도록 합니다.



아직까지 게임뷰의 내용에 무언가를 넣은 것이 없기 때문에, 하는 수 없이 플레이 버튼을 누르면 아무것도 없습니다. 하지만 이것으로 메뉴 화면과 어떻게 하면 게임 화면으로 넘어갈 수 있는지에 대해서 알아 보는 데 까지는 성공했다는 생각이 듭니다. 하지만 아직까지는 가야할 길이 많다는 생각이 듭니다.

반응형