Frontend/Unity

[유니티 실전 예제] 씬 전환

에반황 2016. 8. 4. 00:31


이 글은 PC 버전 TISTORY에 최적화 되어있습니다.


서론

이번 파트에서는 유니티의 씬과 씬을 전환하는 방법에 대해 알아보도록 하겠습니다.



씬 만들기

씬과 씬 전환을 위해서 먼저 두 개의 씬을 만들어 보도록 하겠습니다. 게임 느낌이 나도록 두 씬은 각각 Stage1, Stage2의 모습을 띄도록 하겠습니다.






바닥에 Plane을 깔고 원하는 색상을 입혀준 후 3D Text로 Stage1 을 찍어줍니다.




















그리고 Hierarchy 뷰에 UI에서 버튼을 선택해 만들어줍니다.











완성하면  위와같이 Canvas 오브젝트와 그 자식으로 버튼이 보입니다. 













Scene뷰의 좌측 상단의 2D를 눌러준 후 스크롤과 트랜스폼 이동으로 위와 같이 버튼도 배치를 해줍니다. 이렇게 생성된 UI는 3D공간의 변화와 무관하게 유리창처럼 씬의 앞에 띄워져있습니다.















버튼 객체의 하위 Text에서 버튼의 내용물을 설정할 수 있습니다. 'Stage2로 이동' 이라고 설정해주겠습니다.










게임을 실행해보면 메인 카메라를 통해보는 3D공간과 UI 객체가 존재하는 2D 공간이 한꺼번에 보여집니다.












이러한 씬들의 전환을 위해서는 File ☞ Build & Settings...에 씬을 등록해줘야합니다.










Add Open Scene를 눌러줍니다.








씬이 저장되어있지 않다면 저장해주고 등록을 완료했으면 창을 닫아줍니다.










현재 씬을 다른 이름으로 복사하여 2번 째 씬을 만들어보도록 하겠습니다.












첫 씬과 완전히 같은 두 번째 씬이 생성되었습니다.












3D Text의 내용을 'Stage 2'로 설정해줍니다.











Button 의 내용물을 'Stage 1로 이동'으로 설정해줍니다.










위와 같이 Plane 오브젝트도 색상을 달리하여 구분이 쉽도록 해줍니다.










이 씬도 아까와 같은 방법으로 등록해줍니다.






스크립트 작성


 유니티 5.3이 되면서 이전의 방법과 다르게 SceneManger.LoadScene(string 호출할 씬명);을 사용합니다. 여기서 주의해야할 점은 using UnityEngine.SceneManagement;를 상단에 선언해줘야합니다. 생성된 두 함수는 아직 실행되지 않았기 때문에 아무 일도 일어나지 않습니다.











생성한 스크립트를 메인카메라에 붙여줍니다.










씬 전환




UI 버튼을 클릭했을 때 씬을 전환하기 위해 버튼 객체의 On Click()의 +를 눌러주고 None 부분을 클릭합니다.












버튼을 클릭했을 때 위에 생성한 스크립트 내의 함수를 실행해야하기 때문에 스크립트가 붙어있는 메인카메라를 선택합니다.














스크립트 컴포넌트 내의 SceneChange2() 메소드를 설정하면 버튼 클릭 시 저 메소드가 실행되어 씬이 전환 됩니다. Stage 2 씬의 메인 카메라에도 스크립트를 붙여주고, 버튼 Onclick() 메소드에 SceneChange1() 메소드를 붙여주도록 합시다.










실행해보면 버튼 클릭시 씬이 전환되는 것을 확인 할 수 있을 것입니다.










반응형