유니티에서 객체를 찾아 오는 건 귀찮기도 하고 실수를 유발하기가 쉽다.
그래서 싱글톤 방식으로 불러오면 굉장히 간단하고 좋은데 사용법은 아래 코드와 같다.
UIManager.cs (UI를 관리하는 소스, 유니티 하이어라키 창의 Canvas객체에 컴포넌트로 붙여넣는 스크립트)
public class UIManager : MonoBehaviour
{
public static UIManager I; // 이렇게 static으로 선언 후
GameObject _backBtnObj;
GameObject _leftBtnObj;
GameObject _rightBtnObj;
void Awake() // Awake는 Start 함수보다 먼저 실행됨
{
I = this; // 스크립트가 실행되자마자 I에 UIManager 클래스 자체를 넣어준다.
}
void Start()
{
}
}
SceneObject.cs (유니티 하이어라키창에 있는 사물 객체에 컴포넌트로 붙여준 스크립트)
public class SceneObject : MonoBehaviour
{
void Start()
{
// 선행적으로 Canvas객체에 UIManager가 드래그앤드랍이 되있어야 함
GameObject canvas = UIManager.I.gameObject; // 이런식으로 바로 접근이 가능
// 밑의 코드를 통해 Canvas 객체의 자식 객체 InfoText의 값을 가져올 수 있음
_infoTextTrans = canvas.transform.Find("InfoText").GetComponent<RectTransform>();
}
}
'유니티 프로그래밍' 카테고리의 다른 글
유니티에서의 for 문과 foreach 문 비교해서 사용해보기 (0) | 2022.08.08 |
---|---|
텍스쳐(Texture)와 머티리얼(Material)의 개념 및 관계 (+깨진 에셋 머티리얼 연결하기) (0) | 2022.08.06 |
Visual Studio 와 Unity 연계할때 해줘야할 것 (0) | 2022.08.04 |
유니티 방탈출 게임에서 사물에 마우스를 갖다대면 텍스트 뿌려주기 (0) | 2022.08.02 |
유니티에서 카메라 각도를 90도씩 제어 하는 법 (0) | 2022.07.27 |