저번주는 계속 교육만들어서 내용이 별로없었지만..
이번에는 개인 프로젝트로 메타버스를 구현하는 과제가 생겼다
해당 과제를 진행하면서 가장 크게 막힌부분은 스크립트를 여러개로 쪼개면서 해당 스크립트에서 불러올때 오류가 나서 고생을 하였다
그 이유가 뭔가 했더니 InGameUIManager에 있는 하위 속성들을 GetComponet로 가져오려고 해서 NullReferenceException 오류가 발생하였다
내가 필요한게 UIManager에 있는데 이것도 해보고 저것도 해봤는데 못가져온다고 하니 계속 오류가나니 화가났다
이것 저것 찾아보면서 Object 관련된걸 다 써보며 세월아 네월아 하다가
그래서 마지막으로 해본게 FindObjectOfType 으로 가져오는 것이였다
FindObjectOfType는 아래 사이트를 참고하였다
[C#, 유니티] 10. FindObjectOfType
제트카라에서 파인드함수가 쓰인 것을 본 당신 파인드시리즈를 알아보자 Find 여러 파인드시리즈가 있겠지만 세가지 방식을 소개하겠다 (!!경고!!) 컴퓨터 cpu의 성능에 따라 부하되는 정도가 다
sonnyisback.tistory.com
FindObjectOfType을 사용하면 씬 전체에서 찾아서 가져오는 대신 컴퓨터가 아프다는 단점이 있다고한다
하지만 지금 게임 로직 자체에서 엄청 많이 쓰지않으므로 사용하기로했다
InGameManager를 싱글톤으로 만들어서 전역에서 접근 가능하게 하고, 그 안에서 InGameUIManager를 변수로 가지고 있어서 필요할 때 쉽게 사용할 수 있게 했다.
InGameUIManager inGameUIManager;
public InGameUIManager InGameUIManager { get { return inGameUIManager; } }
private void Awake()
{
inGameUIManager = FindObjectOfType<InGameUIManager>();
}
FindObjectOfType 을 사용하여 드디어 내가 원하던걸 가져올 수 있게 되었다 실행해보니 NullReferenceException 오류도 안나고.. 한건 해결한 느낌이다
이 부분에서 너무 시간을 끈 나머지 머리를 식히는 시간을 오래 가진 것 같다
해결한 이후로는 나름 문제없이 잘 진행이 되어서 그렇게 크게 문제가 생긴건 없었다
아직도 스크립트를 쪼개면 가져올때 라던지, 상속받는 것 이라던지 알아봐야 할게 많지만
계속 꾸준히 하다보면 시행착오 겪으면서 이해하지 않을까 싶다

'UNITY' 카테고리의 다른 글
| [내일배움캠프 28일차 TIL] 생명주기 함수 (이벤트함수) (4) | 2025.08.06 |
|---|---|
| [내일배움캠프 27일차 TIL] (팀프)맵 만들기 - 오브젝트 풀링 (5) | 2025.08.05 |
| [내일배움캠프 5일차 TIL] 애니메이션 오류 (0) | 2025.07.04 |
| [내일배움캠프 4일차 TIL] 카드 만들기 카드 세팅 (0) | 2025.07.03 |
| [내일배움캠프 3일차 TIL] 코루틴 (Coroutine) (0) | 2025.07.02 |