유니티 자체 Layout 컴포넌트로 정렬되는 UI요소들이 있음
얘들을 생성하고나서 서로간의 위치에 따라 장식물을 배치해야함
그런데 생성직후에 RectTransform.position 참조하면 레이아웃기준 원점 좌표만 나옴
그리고 생성되고 시간좀 지나서 확인하면 정렬된 좌표로 정상 출력됨
느낌상 update함수가 최소 한번정도는 실행되어야 레이아웃에 맞춰서 정렬되는것 같음
이럴때는 초기화 어떻게 하는게 좋음?
유니티 자체 Layout 컴포넌트로 정렬되는 UI요소들이 있음
얘들을 생성하고나서 서로간의 위치에 따라 장식물을 배치해야함
그런데 생성직후에 RectTransform.position 참조하면 레이아웃기준 원점 좌표만 나옴
그리고 생성되고 시간좀 지나서 확인하면 정렬된 좌표로 정상 출력됨
느낌상 update함수가 최소 한번정도는 실행되어야 레이아웃에 맞춰서 정렬되는것 같음
이럴때는 초기화 어떻게 하는게 좋음?
이거 진짜 그지같은데 나도 모르겟음 - dc App
bool isFirstUpdate 변수 만들어서, 이 변수를 기점으로 처리하삼
답변ㄳ 그래도 초기화 함수에 딜레이 주면 나중에 상태 추적하기 번거로워 지더라고
delay주는것도 방법이긴한데, 확실치 않아서리. 그냥 void Update() { if(isFirstUpdate == false ) isFirstUpdate = true; ...... do something }
그 ui 요소들은 다음 업데이트 시에 갱신되는 걸로 알고있음.
강제로 갱신하고 싶을 경우에는
https://docs.unity3d.com/2017.3/Documentation/ScriptReference/UI.LayoutRebuilder.ForceRebuildLayoutImmediate.html
https://docs.unity3d.com/ScriptReference/Canvas.ForceUpdateCanvases.html
요런
애들이 있음.