유니티에서는 객체를 하이어라키창에서 찾기 위해
소스코드에 GameObject.Find("찾을 객체이름") 으로 사용하는 경우가 있지만
다들 알다시피 수많은 하이어라키창에서 찾아야 하고, 중복될 경우 문제가 발생할 여지가 있으며 속도가 느려서려서
권장되지 않는 방법이다.
그래서 게임오브젝트에 접근하는 가장 좋은 방법은
은하이어라키창에서 가장 상위의 그룹들은 public으로 변수 선언 후
유니티에서 드래그앤드랍을 해주고 그 밑의 객체들을 transform.Find로 찾는 방식이 제일 권장된다고 한다.
아래와 같은 예제처럼 사용하면 된다.
public class GameManager : MonoBehaviour
{
public Text _nowTimeText;
public GameObject _world; // 최상위 객체그룹 중 한 개. 유니티에서 드래그앤드랍으로 갖고 온다.
public GameObject _dishObj; // 그 밑의 자식 객체
// Start is called before the first frame update
void Start()
{
_dishObj = _world.transform.Find("Dish").gameObject;
}
public void OnClick_Food()
{
_dishObj.SetActive(true);
}
}
'유니티 프로그래밍' 카테고리의 다른 글
유니티 프로그램에서 쓰는 비트 연산 (0) | 2022.06.25 |
---|---|
게임 구동시 현재 화면 프레임을 알아 내는 프로그램 (MSI 애프터버너) (0) | 2022.06.24 |
유니티 기본 스크립트 템플릿 바꾸고 싶을때 (Script Template) (0) | 2022.06.17 |
유니티 Horizontal Layout Group 으로 Scroll View 내에 고정하기 (0) | 2022.06.15 |
지금까지 배운 튜토리얼 프로젝트 흐름도 (0) | 2022.06.12 |