Unity

[Unity] 유니티 콘텐트사이즈피터 버그 증상 임시? 해결책 Get layoutgroup and contentSizeFitter to update immediately

정보처리마법사 2019. 1. 22. 17:19
반응형

 

 

 

[Unity] 유니티 콘텐트사이즈피터(Content Size Fitter) 정상적으로 하위 오브젝트를 추가했음에도 어긋나는 버그 해결법 (Get layoutgroup and contentSizeFitter to update immediately )

 

 

 

유니티 콘텐트사이즈피터 버그 해결법

 

 

 

 

이모티콘・01・고양이 마멋 친구들 - Google Play 앱

이모티콘・01・고양이 마멋 친구들: 무료 이모티콘, 회원가입 없이! 카톡, SNS로 감정 표현이 쉬워져요. 귀여움 가득, 대화창을 더 풍성하게!

play.google.com

 

 

안녕하세요 정보처리마법사 입니다.

 

 

 

이번 포스팅의 주제는 유니티 컨텐트사이즈피터 버그에 관한 내용입니다.

 

언젠간 유니티에서 수정하겠지만 2019.01.22 현재 제가 요번 프로젝트에서 사용하고 있는

유니티 버전 2018.3.1f1 에서도 여전히 진행중인 버그입니다.

 

오브젝트에 하위 오브젝트를 추가할 때 자동으로 부모 오브젝트의 사이즈를 늘려주는 컴포넌트인

콘텐트사이즈피터를 자주 이용하는데요. 요녀석이 편리하긴 하지만 이상한 버그가 있습니다.

 

정상적으로 딱딱딱 들어가는 건 괜찮은데 간헐적으로? (아마 항시) 렌더링 리프레시가 되지 않은 체

자식오브젝트들이 꼬여있습니다. 거기서 뭐를 살짝 건들거나 움직이거나 하면 다시 정상적으로 되지만

어쨋든 버그인 건 분명합니다.

 

이 문제를 해결하려면 리프레시를 한 번 해줘야하는데요

 

깔끔하게 한방에 해결하는 방법이 있습니다.

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    [SerializeField]
    InputField input;
 
    [SerializeField]
    ContentSizeFitter csf;
 
    /// <summary>
    /// 단어장 추가 버튼 클릭.
    /// </summary>
    public void ClickBtnAddWord()
    {
        if (input.text == string.Empty) return;
 
        addedWordObject.transform.GetChild(0).GetChild(0).GetComponent<Text>().text = input.text;
        Instantiate(addedWordObject, rtParent);
 
        LayoutRebuilder.ForceRebuildLayoutImmediate((RectTransform)csf.transform);
    }
cs

 

 

 

저런식으로 뭔가 하위 오브젝트를 추가하는 일이 발생할 때마다 혹은 모든 처리를 마친 후

 

LayoutRebuilder.ForceRebuildLayoutImmediate((RectTransform)csf.transform);

 

요 한 줄을 추가하면 한방에 해결됩니다.

 

 

 

 

 

 

이상으로 포스팅을 마칩니다. 감사합니다.

 

 

 

 

잘 못 된 정보가 있으면 말씀해주세요.

공감버튼 클릭은 작성자에게 큰 힘이 됩니다.  행복한 하루 되세요.

 

“파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음"

반응형