코딩 시작한지 을마 안된 뉴비인데 Object Missing 때문에 Null Ref 나는 에러를 해결을 못하는 중임
코딩 ㅈ 고수들님 헬프 좀 ㅜㅜ
지금 이것저것 해보고 있는데 너무 막 하고 있는 거 같은데 방향 좀 봐줘,,
1. Game Manager 싱글톤으로 사용
2. Game Manager 에서 특정 버튼으로 UI를 끄고 키고 있음
3. Game Manager에 public 변수 선언해서, 인스펙터에서 씬에 있는 UI Object 할당함
4. 낙사 하면 현재 씬 다시 로드함
5. 로드하게되면 싱글톤인 Game Manager는 안사라짐
6. 근데, 물고있던 UI Object는 사라짐. 그리고 새 씬의 UI 오브젝트가 따로 생성됨
7. 그래서 Game Manager에서 Null Ref 에러남
8. UI를 Prefab으로 만들어서 null 이면 인스턴시에시트 해서 사용하게 함
9. 근데 UI Prefab 안에서도, 사용하는 변수들 중에 씬 위에 있는 오브젝트를 물고있는 것들이 있어서 프리펩화가 잘 안됨.
10. 변수들 public 에서 private로 변경하고, 인스턴시에시트할 때 FindFirstObjectByType<모시기모시기>(), parentTransform.Find("모시기모시기") 사용해서 씬에서 찾게 만듬
11. 이렇게 하는게 맞나 싶음
[Game Manager.cs]
[UI : ViewFinder.cs]
추가로 하나 더 궁금한건
Game Manager에서 인스턴시에시트 하고나서
이후에 ToggleViewFinder 매서드 사용하는데 Unassigned Reference 에러 발생할까
인스턴시에시트하면 Start에서 Find로 찾는 tileGridUI 할당하는데
왜 unassigned 에러 발생하는거임?
인스턴시에시트가 바로 오브젝트 만들어서 초기화하는게 아니라
오브젝트 만들거라고 생각만 해두고서
Update 로직 마저 다돌고서 다음 프레임에 오브젝트 만드는 건가?
싱글톤 자식오브젝트로 두면 안 사라지긴 하는디 정답은 없어서..
DontDestroyOnLoad 참고
아니면 UI Scene을 따로 두던가
싱글톤 쓰는거면 게임 전역적으로 쓰겠다고 한건데, 특정 씬에서만 사용하는 ui가 있으면 씬 시작할때 캐싱해두는 게 맞는듯? 타입이나 이름 말고 태그 할당해두는게 장기적으로 괜찮지 싶음. 굳이 프리팹화해서 인스턴싱시키지 말고
ui 등 레퍼런스를 물고 있는 클래스를 만들고 고놈을 씬에 같이 두고, 씬 로드할때 해당 클래스만 찾으면 되게끔 하는 방법도 있음 - dc App
나도 이렇게 함
그리고 한 씬에 무조건 하나만 있는 요소면 태그 하나 할당해서 씬 로드시 FindWithTag로 찾는 방법도 있움
역시 코딩 답게,, 다양한 방법이 있네 한 번 씩 해보고 나한테 맞는 방향으로 결정해야겠다
다들 빌어먹게 감사했슴다
게임매니저를 싱글톤으로 만들기보단 awake에서 스태틱 인스턴스=this 하고 싱글톤처럼 쓰셈 게임매니저는 씬에넣어놓고
이거 편함
오 이거 편하게 사용 가능하겠다
Start는 생성되고 다음프레임이 실행돼서 Awake에서 찾으면 되긴한데. 게임매니져에서 UI를 끄고키고 있는 이유를 모르겠음. UI한테 'ㅇㅇㅇ 감지기' 컴포넘트 줘가지고 이 컴포넘트의 업데이트 함수에서 키 감지하지하는게 그나마 나을 듯. - dc App
그러네 생각해보니까 굳이 겜매니져에서 update로 잡을 필요가 없구나,, 뭔가 게임 매니져가 있으면 좋게다고 생각해서 필요도 없는데 사용한 코드였구나
코딩이 아무리 자유도가 높다고 해도 인간이 역사를 배우는 이유 다시 말해 남의 경험치를 학습하면서 시행착오 줄이고 반복실수를 안하게 되는것이 인간이지? 부모님들이 공부해라 그러면 스스로 딱히 목표가 없고 경험이 없어 싫은것 너무 하기 싫어도 그때는 그냥 아닥하고 시키는대로 해야 나중에 깨우쳤을때 이미 자기 자산화 되어 있고 시행착오의 시간을 다 세이브 시키고 뒤늦게 그때 부모님 선생님이 잡아줘서 너무 고마웠다는 소리를 하는것임. 얘기가 길었는데 싱글톤은 뭐든 일단 엥간한 초중급 학습이나 프로토타입 제작시 남의 코딩 많이 보고 제일 많이 쓰여지는 디자인패턴을 참고로 설계를 해라 예를들어 변수선언 10개하는것 대신 List 배열로 대처한다던지 등등등 아니면 템플릿중에 아주 호평받은것을 받아서 분석해서 그 패턴
싱글톤 패턴에 대해서 제대로 알아보지도 않고 사용한거 같아서 이렇게 된거 같네여 다른 사람들 사용하는 방법이나 좀 더 찾아서 공부해보겠읍니다