게임에는 반드시 설정 버튼을 통해 게임을 중단할 수 있어야 한다.


게임을 중단했을 때, 시간도 멈춰야 하며 게임 플레이 화면이 터치되서도 안된다.


유니티에서 화면은 기본적으로 Canvas로 구성하므로 Canvas를 하나 더 만들거나, Panel을 이용한다.


Canvas나 Panel이나 적용 방식은 동일하다.


설정 버튼을 누르면,


 1. 시간을 멈춘다.


Time.timeScale = 0; 반대는 Time.timeScale = 1;


2. 게임 플레이 화면 위에 또다른 화면을 오버랩해서 비활성화시킨다.


if(settingCanvas) settingCanvas.gameObject.SetActive(true);

if(settingCanvas) settingCanvas.gameObject.SetActive(false);


SetActive()를 사용해서 껐다가 켰다가 할 수 있다.(Toggle)


위에 코드는 settingCanvas를 활성화하겠다(일시 중지하겠다)
아래 코드는 settingCanvas를 비활성화하겠다(다시 시작하겠다)

화면이 아예 사라지면 좀 이상하므로, 알파값을 넣어서 반투명으로 해보자. 


이러면 화면 위에 화면이 올라온 것처럼 보이고 


반투명이라 게임 플레이 화면까지 보여서 좀 더 그럴듯해보인다.



Posted by sungho88
,

Rect Transform은 캔버스 내의 모든 UI 요소에 대한 위치 지정 요소이며,


위치 지정, 앵커링(Anchoring), 피벗 등을 조정하는 데 사용됩니다.


새로운 UI 컴포넌트에서 일반 Transform 컴포넌트를 대체하는 새로운 컴포넌트이다.


Transform 컴포넌트는 씬에서 3D 오브젝트의 위치, 회전, 스케일을 표시한다.


반면 Rect Transform은 피봇 포인트와 관련된 폭 및 높이가 지정하는 2D 직사각형을 표시한다.


Rect Transform이 2D 직사각형을 표시하긴 하지만, 컴포넌트에는 회전 및 스케일, Z축 위치도 포함된다.


따라서 엘리먼트를 3D 오브젝트로 조작할 수 있다.


Rect Transform과 Transform의 중요한 차이점은 바로 앵커 개념이다.


부모가 Rect Transform 컴포넌트를 갖고 있으면 Rect Transform를 통해 부모에게 고정할 수 있다.


고정을 통해 UI 엘리먼트는 부모 UI 엘리먼트의 Rect Transform의 위치 및 크기를 기준으로 


움직이거나 늘릴 수 있다.


UI 엘리먼트는 직계자식은 아니더라도 궁극적으로는 캔버스의 자식이라는 점에 유의해야 한다.


Canvas 컴포넌트 자체는 Rect Transform를 갖는다.


따라서 거의 모든 UI 엘리먼트들의 부모도 Rect Transform를 갖게 된다.


 

Posted by sungho88
,

[클래스 소개]


이 PlayerPrefs 클래스를 사용하면 간단한 게임데이터를 쉽게 저장할 수 있음.

KEY - VALUE 형식으로 데이터를 저장하고, 다시 KEY를 이용해서 데이터를 조회/삭제도 가능함.


[저장 방법]


저장 가능한 타입은 : Int, Float, String


PlayerPrefs.SetInt(“number”,10); 

// number라는 키로 정수 10을 저장하라는 의미.  SetFloat, SetString도, 존재.


PlayerPrefs.GetInt(“number”); 

// number라는 키로 값을 꺼낼 수 있음.  GetFloat, GetString도 존재.


[삭제 방법]


PlayerPrefs.DeleteKey(“number”); 

// number라는 키값에 해당되는 값을 삭제함.


PlayerPrefs.DeleteAll(); 

// 모든 데이터를 삭제함(전부 삭제되므로 주의)

 

[데이터 키 유무 확인]


PlayerPrefs.HasKey(“number”); 

// number라는 키값이 존재하면 true, 존재하지 않으면 false

Posted by sungho88
,