게임오브젝트에 Inspector> component를 살펴 보았다.
이름 왼쪽에 체크 되있는부분이 게임 오브젝트가 활성화 되어있는 부분이다.
이부분을 스크립트를 통해서 활성화와 비활성화를 시켜보자.
1) 비활성화시키기
-----------------------------------------
게임오브젝트.활성화시키기(비활성화);
=>
gameObject.SetActive(false);
-----------------------------------------
Start() 함수에 넣어보자.
========================
public class PlayerMove : MonoBehaviour
{
void Start()
{
gameObject.SetActive(false);
Debug.Log("비활성화");
}
void Update()
{
}
}
========================
플레이 버튼을 누르면 플레이어가 없어지고 Inspector에서 활성화 체크가 꺼진것을 볼 수 있다.
참고로 비활성화가 되면 스크립트도 작동이 안된다.
2) 활성화시키기
이번에는 반대로 활성화 시켜보자.
-----------------------------------------
게임오브젝트.활성화시키기(활성화);
=>
gameObject.SetActive(true);
-----------------------------------------
false부분에 true로 넣어주면된다.
========================
public class PlayerMove : MonoBehaviour
{
void Start()
{
gameObject.SetActive(true);
Debug.Log("활성화");
}
void Update()
{
}
}
========================
플레이버튼을 누르면 아무런 변화가 없다. 활성화가 되있는 상태에서 활성화하라고 하니 변화가 없는 것이다.
3) 활성화 상태 보기
gameObject.activeSelf;
결과를 true/false로 반환한다.
다음과 같이 해보자.
-----------------------------------------
게임오브젝트.활성화자신;
=>
gameObject.activeSelf;
-----------------------------------------
========================
public class PlayerMove : MonoBehaviour
{
void Start()
{
Debug.Log(gameObject.activeSelf);
}
void Update()
{
}
}
========================
결과값으로 True를 반환하는 것을 볼 수 있다.
4) 오브젝트 이름 알아내기
-----------------------------------------
게임오브젝트.이름;
=>
gameObject.name;
-----------------------------------------
========================
public class PlayerMove : MonoBehaviour
{
void Start()
{
Debug.Log(gameObject.name);
}
void Update()
{
}
}
========================
플레이 버튼을 누르고 실행시키면
오브젝트의 이름을 알 수 있다.
5) 태그 알아내기
player-idle의 tag를 Player로 정하고 tag를 이름을 디버그로 찍어보자.
-----------------------------------------
게임오브젝트.태그
=>
gameObject.tag
-----------------------------------------
========================
public class PlayerMove : MonoBehaviour
{
void Start()
{
Debug.Log(gameObject.tag);
}
void Update()
{
}
}
========================
6) Layer 알아내기
레이어를 Water로 지정하고 다음과 같이 스크립팅해보자.
--------------------
게임오브젝트.레이어
=>
gameObject.layer
--------------------
========================
public class PlayerMove : MonoBehaviour
{
void Start()
{
Debug.Log(gameObject.layer);
}
void Update()
{
}
}
========================
gameObject.layer를 찍어보면 4라고 숫자가 나오는데 이는 레이어에 인덱스 번호 이다.
* 레이어 이름 가져오기
그렇다면, Water를 가져올 수는 없을까?
방법이 있다. 레이어 번호를 이름으로 바꿔주 함수!
------------------------
레이어마스크.레이어를이름으로(레이어번호)
=>
LayerMask.LayerToName(레이어번호)
------------------------
레이어 번호 대신에 gameObject.layer를 넣어주면 현재 레이어 이름을 알 수 있다.
========================
public class PlayerMove : MonoBehaviour
{
void Start()
{
Debug.Log(LayerMask.LayerToName(gameObject.layer));
}
void Update()
{
}
}
========================
이제까지 gameObject의 속성에 대해서 살펴 봤다.
게임을 스크립팅하면서 중요하게 사용될 내용들이니, 복사 붙여넣기를 잘 활용해서 유용하게 사용해보자
다음 챕터에서는 Transform 속성요소를 살펴 보겠다.!!
gameObject 클래스 참조 :
'Unity Basic > 03. Unity C# script basic' 카테고리의 다른 글
Unity Basic ch. 13] C#Script로 제어하기 Rigidbody 2D_Velocity (0) | 2020.04.27 |
---|---|
Unity Basic ch. 12] Sprite Renderer를 C#Script로 제어하기 (0) | 2020.04.27 |
Unity Basic ch. 11] 스크립트 Transform 구성요소 제어하기 (0) | 2020.04.27 |
Unity Basic ch. 09] 스크립팅 시작하기: Hello Unity World! (0) | 2020.04.26 |
Unity Basic ch. 08] 스크립팅 준비하기 (0) | 2020.04.26 |