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

Unity2D_UI_Button(일시정지, 진행)기능구현

zelkova 2017. 2. 14. 17:26

<목차로 돌아가기>


 Panel_기능구현


판넬을 Esc로 보이고 안보이게 하고 싶습니다.


우선 Edit-> Project Settings -> input을 클릭합니다.




Axes의 숫자를 추가합니다.


이제 아래의 스크립트를 항상 활성화되어있는 MainCamera에 부착합니다


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

  4. public class PauseMenu : MonoBehaviour {

  5.     public GameObject PauseUI;

  6.     private bool paused = false;

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

  11.     void Update()
  12.     {
  13.         if (Input.GetButtonDown ("Pause"))
  14.         {
  15.             paused = !paused;
  16.         }
  17.         if(paused)
  18.         {
  19.             PauseUI.SetActive(true);
  20.             Time.timeScale = 0;
  21.         }
  22.     
  23.         if(!paused)
  24.         {
  25.             PauseUI.SetActive(false);
  26.             Time.timeScale = 1f;
  27.         }
  28.     }
  29. }


그리고 GameObject의 Panel에 하이러키의 Panel을 드래그하면 끝!


이제 esc로 일시정지기능을 간단하게 구현할 수 있습니다.




 Resume_기능구현


PauseMenu에 간단한 소스를 추가합니다.


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

  4. public class PauseMenu : MonoBehaviour {

  5.     public GameObject PauseUI;

  6.     private bool paused = false;

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

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

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

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

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



Resume버튼을 클릭하고 우선 버튼을 선택합니다.+버튼을 클릭합니다.




PauseMenu가 붙어있는 main 카메라를 드래그합니다.



PauseMenu -> Resume 함수를 선택하면 완성!




반응형