[소수점 처리]


소수점 처리를 위해 반올림 , 올림, 내림 함수가 존재한다.


유니티 소수점 처리는 보통 첫 번째 자리에서 이뤄진다.


[반올림]

Mathf.Round(float data) : 소숫점 첫 번째 자리에서 반올림. 반환형 float

Mathf.RoundToInt(float data) : 소숫점 첫 번째 자리에서 반올림. 반환형 int


[올림]

Mathf.Ceil(float data) : 소숫점 첫 번째 자리에서 올림. 반환형 float

Mathf.CeilToInt(float data) : 소숫점 첫 번째 자리에서 올림. 반환형 int


[내림]

Mathf.Floor(float data) : 소숫점 첫 번째 자리에서 올림. 반환형 float

Mathf.FloorToInt(float data) :  소숫점 첫 번째 자리에서 올림. 반환형 int

 


[거리 구하기]


Mathf.Lerf()


Lerf()는 유니티 프로그램 작성 시, Vector3.Lerf()도 자주 봤다. 


두 오브젝트 간의 거리를 구하는 명령이다. 


Mathf.Lerf()가 뭔지 찾아보니 역시나 선형보간 해서 두 개 값 사이의 거리를 구하는 것이다.


선형보간이 도대체 무엇인가.??


모르면서 걍 사용하기만 했으나 이제는 알면서 사용하고 싶었다.


Mathf.Lerf()부터 정확하게 알기 위해 공식 API 홈페이지를 들어갔다.


(정의)

public static float Lerp (float a, float b, float t);


(파라미터)

Parameters

a

 The start value.

b

 The end value.

t

 The interpolation value between the two floats.


(리턴값)

시작점a와 끝점b의 두 값 간의 사이의 값을 보간한 float형.



(설명)


a와 b 간에 선형 보간한다. 매개변수 t의 범위는 0부터 1까지로 제한된다.

0일 때는 a가 리턴되며, 1일때는 b가 리턴된다. 즉, 0.5일때는 a와b의 중간점이 리턴된다.

 


Posted by sungho88
,

interact : 소통하다, 상호 작용하다.


의 의미이므로,


interactable는 소통할 수 있는, 상호 작용 가능한... 정도로 의미를 해석할 수 있지 않을까?


UGUI에서 UI - Button을 생성하면 다음과 같이 컴포넌트가 몇 개가 기본적으로 생성된다.




기본적으로 Button 컴포넌트에 Interactable이 체크되어 있다.

(버튼이므로 기본으로 버튼을 누를 수 있게 되어있다.)


만약, 이 버튼을 상황에 따라 비활성화하고 싶다면, 해당 버튼으로 들어 간 뒤 false로 바꿔주면 된다.


GetComponent<Button>().interactable = true;

GetComponent<Button>().interactable = false;


를 통해 게임 실행 도중 동적으로 활성화/비활성화할 수 있다.



Posted by sungho88
,

유니티에서 게임 오브젝트 찾는 법은 한두가지가 아니다.

이번에는 게임 오브젝트 내 게임 오브젝트 즉, 하위 게임오브젝트를 찾는 방법을 정리해보려 한다.


대표적으로 세 가지가 존재한다.


transform.FindChild(string str)

transform.GetChild(int index)

transform.childCount


자식이 무엇인가. 

하이어라키(Hierarchy)에서 계층 구조를 이루고 있는 형태를 말한다.



상위에 GameObject가 부모이며 들여쓰기 된 하위 1~6까지의 6개의 GameObject가 자식이다.

이제, 자식을 찾는 방법을 알아보자.


1. 이름으로 자식 GameObject를 찾는 방법(자기 자신)


transform.FindChild("이름");


2. 번호 순으로 자식 GameObject를 찾는 방법(자기 자신)


transform.GetChild(번호);


여기서 자기 자신이란, 해당 스크립트가 컴포넌트가 된 상태를 말한다.

만약, 외부의 게임오브젝트를 찾는 것은 앞에 어떤 GameObject인지를 명시해줘야 한다.


3. 이름으로 다른 게임오브젝트의 자식 GameObject를 찾는 방법(외부 게임오브젝트)


otherGameobject.transform.FindChild("이름");


4. 번호 순으로 다른 게임오브젝트의 자식 GameObject를 찾는 방법(외부 게임오브젝트)


otherGameobject.transform.GetChild(번호);

 

물론 otherGameobject는 스크립트에서 어떤 게임오브젝트인지 선언해줘야 한다.


그 외에도 childCount 가 존재하는데, 이것은 자식 오브젝트의 개수를 알 수 있다.


Transform에 연결되어 있는 자식 트랜스폼들의 갯수입니다.


즉, transform.childCount 으로 자식의 개수를 불러 올 수 있다. ( 위 같은 경우 6 출력)



원래 기본적으로 자식의 Transform을 얻고 싶을 때 사용하는 것이다.


하지만 이를 통하여 GameObject나 Component 모두 얻을 수 있다.


 



Posted by sungho88
,