최종 프로젝트 문제해결 일지 #1
문제 1. 유니티 엔진 - Inspector 창에 text가 들어가지 않는 현상
최근 버전의 유니티는 TextMeshPro 사용을 권장하고 있다.
예전에 UI에서 많이 사용한 일반적인 Text 클래스는 사용에 제약이 있다.
따라서 name space에 using TMPro; 를 사용한 뒤
public TextMeshProUGUI 로 변수를 선언하면 Inspector에서 불러올 수 있다.
문제 2. 같은 scene의 Heirarchy에서 특정 오브젝트를 더 늦게 호출시키는 방법
문제상황) SelectScene에서 넘어온 캐릭터 정보 중 stat 3가지를 gamescene에서 canvas 로 띄우는데, 값이 0으로 출력됨.
시도) 스탯에 연결된 스크립트인 spawnedcharacterstats.cs 와 관련 있는 클래스를 모두 찾아서 연결 방식을 다양하게 수정했지만, null이 발생하거나 값이 0으로 출력됨.
해결) 출력 순서의 문제가 있다고 판단해서 gamescene을 먼저 로드하고 ui가 나중에 올 수 있도록 조치함.
(ui가 먼저 출력되는 경우 아직 캐릭터가 넘어오지 않은 상태에서 값이 들어가기 때문에 0이 나오게 된다.)
GameScene 내의 game scene 오브젝트와 UI 가 같은 hierarchy 상에 위치함
⇒ 시스템 상 어떤 게 먼저 출력될 지 불분명함
따라서 UI를 프리팹화 한 뒤, 게임씬을 먼저 로드하고 나중에 프리팹을 꺼내기로 함
gamescene.cs에서 프리팹화 한 UI를 instantiate 하면 UI를 나중 순서로 불러올 수 있음.
⇒ (Main.ResourceManager.Instantiate("UI_Prefabs/GameSceneUI");
따라서 로드 순서를 gamescene 오브젝트 ⇒ UI 순으로 확정시킬 수 있음.
scene 전환 => gamescene 오브젝트 생성 => 프리팹화한 UI를 Instantiate 해주는 방법!
'게임 개발 일지 > 내일배움캠프 TIL' 카테고리의 다른 글
[Unity] 2가지 타이머 적용하기(코루틴) (0) | 2024.01.30 |
---|---|
[C#] 인터페이스와 추상클래스 / 스택과 큐의 차이 (1) | 2024.01.26 |
[C#] 자료구조의 차이점 / 제네릭 (1) | 2024.01.24 |
[C#] 가비지 컬렉션 / 박싱과 언박싱 (0) | 2024.01.23 |
[C#] 구조체와 클래스 / GC (0) | 2024.01.22 |
댓글