응용프로그램/유니티(Unity)

Unity2D_UI_Button(다시시작,씬이동, 종료)기능

zelkova 2017. 2. 15. 12:03

<목차로 돌아가기>


 Button(다시시작,씬이동, 종료)기능

우선 아래의 소스를 MainCamera에 집어 넣습니다.

빨간색으로 표시된 소스가 이번 포스팅에서 다루는 소스입니다.


  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.SceneManagement;

  5. public class PauseMenu : MonoBehaviour {

  6.     public GameObject PauseUI;

  7.     private bool paused = false;

  8.     void Start()
  9.     {
  10.         PauseUI.SetActive (false);
  11.     }

  12.     void Update()
  13.     {
  14.         if (Input.GetButtonDown ("Pause"))
  15.         {
  16.             paused = !paused;
  17.         }

  18.         if(paused)
  19.         {
  20.             PauseUI.SetActive(true);
  21.             Time.timeScale = 0;
  22.         }

  23.         if(!paused)
  24.         {
  25.             PauseUI.SetActive(false);
  26.             Time.timeScale = 1f;
  27.         }
  28.     }

  29.     public void Resume()
  30.     {
  31.         paused = false;
  32.     }

  33.     public void Restaret()
  34.     {
  35.         SceneManager.LoadScene ("Rg_playgame1");
  36.     }
  37.     public void MainMenu() 
  38.     {
  39.         SceneManager.LoadScene (1);
  40.     }
  41.     public void Quit() 
  42.     {
  43.         Application.Quit ();
  44.     }
  45. }


버튼선택 -> +표시 누르기 -> 위의 소스를 집어넣은 메인카메라 드래그

Restart(), MainMenu, Quite 모두 똑같이 작업합니다.


 

 

 




Restart()


하이러키에서 Restart 버튼을 선택하고 아래 버튼 클릭!



메인카메라의 paseMenu스크립트 -> Restart()메소드를 선택




MainMenu


우선 씬을 저장한 후!



단축키 'Ctrl+Shift+B' 또는 File -> BuildSettings 클릭 


이동할 씬을 드래그 -> 표시된 씬의 오른쪽의 숫자 확인

오른쪽의 숫자가 씬이동시 필요한번호입니다.

굿이 씬이동 번호가 필요한건 아니고 씬의 이름만 있어도 되지만.

같은이름인 씬이 여러 폴더에 나뉘어 있다면 경로까지 적어주어야 합니다.



그리고 MainMenu버튼을 선택하고 아래의 버튼을 누른



카메라의 Pause 스크립트 -> MainMenu()메소드 클릭




Quit


그리고 MainMenu버튼을 선택하고 아래의 버튼을 누른



카메라의 Pause 스크립트 -> Quit()메소드 클릭




종료했는데 뭔가 찝찝하다 그러면 아래의 소스를 집어넣으세요

확실하게 끝내줍니다.


(연습중에는 유니티빌드 하는 것까지 날려버림 굿잡'ㅁ'b)

System.Diagnostics.Process.GetCurrentProcess().Kill(); 


반응형