3-12. 5조 게임종료, 반환값 문제

keubung·2024년 10월 22일
  • 종료로직

    public void GameExit(){
    	Application.Quit();
    }

    - 하지만 이렇게만 하면 빌드를 하기 전까지는 유니티에서 종료가 되지 않기 때문에 전처리기 지시어(#if, #else, #endif)를 사용해서 종료를 시켜준다.

    public void GameExit()
    {
        #if UNITY_EDITOR
            UnityEditor.EditorApplication.isPlaying = false;
        #else
            Application.Quit();
        #endif
    }

  • 꾸준 실습

    • 문제 상황
      - for문 안에서 return을 줬으나 반환값이 제대로 주어지지 않았다는 오류가 생김.

        public GameObject Get()
      {
          for (int i = 0; i < poolSize; i++)
          {
              if (findObject.activeSelf == false)
              {
                  pool[i].SetActive(true);
              }
              return pool[i];
          }
      }

      → for문 안에서는 return을 만나 반환값이 나올 수 있지만 for문의 poolSize가 0일 경우 아예 for문이 실행되지 않아 return이 안되기 때문에 for문 밖에서도 return을 줘야한다.

        public GameObject Get()
      {
          for (int i = 0; i < poolSize; i++)
          {
              if (findObject.activeSelf == false)
              {
                  pool[i].SetActive(true);
              }
              return pool[i];
          }
          return null;	// for문이 실행되지 않으면 값이 없기 때문에 null 반환
      }
      	나름대로 해봤지만 아직 실행시켜봐야 함..
profile
김나영(Unity_6기)

0개의 댓글