안녕하세요?
지난번 시간에는 어떻게 해서 배경화면까지 만드는 것에는 성공하기는 했는데, 문제는 이번 포스팅에서도 완전히 성공은 하지 못해서, 이래저래 상당히 많이 헤메는 과정을 거쳤는데, 이번 포스팅은 그 헤메는 과정의 중간 과정이라고 할 수 있습니다.
일단 ShopCanvas에 이 컴포넌트가 없어서 문제가 될 것인가 싶어서 우선 추가해 주기로 합니다.
다음으로는 GameManager처럼 Shop씬을 유지하기 위해서 ShopManager라는 게임 오브젝트를 추가 하도록 합니다.
그리고 스크립트 폴더로 가서, 위 스크린샷처럼 ShopManager.cs라는 스크립트를 생성하도록 합니다.
그리고 과거에 NGUI를 배울 때 처럼 코딩을 했는데, 계속해서 에러가 생기는 것을 볼 수 있었습니다.
그리고 씬 전환을 위해서 Build Settings를 들어가 보도록 합니다.
지금 나와 있는 Shop_Scene를 추가해 주도록 하며
test_Game씬을 열기전에 위 스크린샷처럼 ShopManager게임 오브젝트에 위 스크린샷처럼 ShopManager.cs를 컴포넌트로서 추가해 주도록 합니다.
그리고 씬 전환을 위해서 버튼을 하나 만들어 주기 위해서 Shop_Canvas의 자식 오브젝트로서 추가를 하나 해 주도록 합니다.
그리고 일단 버튼 컴포넌트를 추가한 다음에, OnClick()이벤트로 ExitShop()메서드를 지정하도록 합니다.
그런데 위 스크린샷처럼 에러가 뜨는 것을 볼 수 있었습니다.
그래서 NGUI때와는 다른 것을 써야 한다는 것을 알고는, 자료를 찾아보니 SceneManager.LoadScene이 있다는 것을 알 수 있었습니다. 그래서 이걸 좀 찾아 보았습니다.
그리고 LoadSceneMode라고 해서 Single일 경우 그냥 지금의 씬을 닫고 새로운 씬을 연다는 것이고, Additive는 기존의 씬이 열려있는 상태에서 새로운 씬을 연다는 것을 알 수 있습니다.
먼저 스크립트의 가장 상단에 위 스크린샷처럼 using UnityEngine.SceneManagement; 라는 것을 추가해 주도록 합니다.
그리고 메소드를 위 스크린샷처럼 코딩을 해 주도록 하는데, SceneManager.LoadScene("열고자 하는 씬의 이름",LoadSceneMode.지정); 이라는 방식으로 이렇게 코딩을 합니다.
여기서 지정이라는 것은 위에서 언급한 모드로, Single 혹은 Additive가 오게 됩니다.
그런데 메소드를 제대로 지정하고 나서도, 위 스크린샷처럼 에러 메세지가 나오는 것을 볼 수 있습니다. 이 에러메세지는 줄 바꿈에 대해서 에러가 나오는 것으로, 이게 새로 스크립트를 생성해서 만들면 이런 에러가 종종 생기는 듯 합니다.
먼저 스크립트를 다른 이름으로 저장하기를 눌러서, 바로 저장을 하는 것이 아니라, 위 스크린샷처럼 저장 옆에 있는 아랫쪽 화살표를 눌러 주도록 합니다.
그리고 줄바꿈이 문제가 되어서 발생하는 문제가 되기 때문에, 줄 끝 이라고 해서 CR+LF라는 것으로 위 스크린샷처럼 지정을 하는 것으로 마무리를 할 수 있습니다. 이것으로 스크립트에 대한 문제는 다 해결되기는 했지만, 그래도 아직 문제가 심각한 것이 남아 있는데, 다음 포스팅에서 이에 대해서 올리고자 합니다.
'유니티5 독학 & 게임 제작' 카테고리의 다른 글
유니티5 독학하기 그 84.5번째 걸음-상점씬을 다듬는 작업 (0) | 2018.09.08 |
---|---|
유니티5 독학하기 그 84번째 걸음-업그레이드를 위한 shop씬을 여닫기part3 (0) | 2018.09.07 |
유니티5 독학하기 그 84번째 걸음-업그레이드를 위한 shop씬을 여닫기part1 (0) | 2018.09.06 |
유니티5 독학하기 그 83번째 걸음-크레딧 화면의 구현 (0) | 2018.09.05 |
유니티5 독학하기 그 82번째 걸음-종료 사운드 이후에 종료하기의 구현 (0) | 2018.09.05 |