전제 조건

  • 첫번째 Scene에서 생성되어 게임이 실행되는 동안 계속 소유하고 있는 무언가가 있어야 함
    • 현재 쓰고 있는 구조에서는 App이라는 스크립트가 게임 시작부터 끝까지 존재
  • 각 Scene마다 소유하고 있는 스크립트가 존재해야 함
    • 현재 쓰고 있는 구조에서는 _Ruler(상속)라는 스크립트가 존재
      • 예) Ruler_Logo, Ruler_Lobby 등

방법

  1. (예외 처리 1) 첫번째 Scene으로 갈 지 안 갈 지를 판단
    • isGoToApp:Bool 라는 Inspector 상에서 보이는 변수를 _Ruler가 소유 중
    • 해당 isGoToApp이 True면 밑의 내용을 실행, False면 return
      • (예외 처리 2)
        • False일 때 App을 아예 생성해서 모든 작업들(데이터 로드 등)을 우선 진행한 후 이 Scene에 남아 있게 할 수도 있음
          • 이 Scene에서는 로드가 전부 될 때까지 지연 처리
        • 다만 그 경우 여러모로 각 씬 + 협업하는 사람이 합(데이터 로드는 무조건 한 곳)을 맞춰야 함
  2. _Ruler가 Awake될 때 App이라는 스크립트가 현재 화면 내에 존재하는 지 확인
  3. App이 없다면 바로 0번째 Scene을 로드
  4. 완료

생각해볼 것

  • 저런 처리(스크립트 존재) 없이 유니티 상에서 시작 시에 현재 Scene을 판단해서 어떤 항목의 ON/OFF에 따라 첫번째(0) Scene으로 갈 수 있지 않을까?
블로그 이미지

RIsN

,