New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
안녕하세요 InfiniteScroll 시스템 중 Dynamic Item Size에 대한 궁금증입니다. #165
Comments
ugui에서 Vertical Layout Group와 Contents Size Filter를 중첩으로 사용할 경우 순서에 의해 정상 동작을 하지 않습니다. 일반적으로 Layout Group이 부모 오브젝트이며 Contents Size Filter가 자식 오브젝트이기 때문에
순으로 진행 되어 사이즈에 따른 정렬이 되지 않습니다. 이럴 경우 GpmUI에 포함된 LayoutUpdater 컴포넌트를 사용해 갱신 할 수 있습니다.
순으로 사이즈 변환 후 정렬이 되게 됩니다. ContentSizeSetterSample 셈플 참고 부탁 드립니다. |
에러는 다른 문제로 보이는데 확인해 보겠습니다. |
배치는 정상적으로 되는데 스크롤 시 InfiniteScrollItem 상속 프리팹(TextElementController 부착 오브젝트)를 인스펙터로 활성화 시키고 테스트하면 프리팹이 너무 많이 생성되고 |
구현이 어떻게 되었는지 셈플이 필요합니다. 예상으로는 InfiniteScrollItem의 UpdateData함수는 한번 호출되는 것이 아닌 스크롤 시 지속적으로 호출됩니다. LayoutGrpup로 관리하는 것으로 보아 자식 오브젝트를 여러개 생성하는 것으로 보이는데 리스트로 관리해 좀 더 확인해보겠습니다. |
안녕하세요 스크린샷 및 InfiniteScroll 구현 코드를 첨부합니다. 자식 컴포넌트 때문에 문제 해결에 혼동이 올 것 같아 Layout Group은 제외하고 즉 제가 구현하고자 하는 기능은 어떠한 텍스트 파일을 읽어와 줄바꿈 기준으로 배열로 분할 후
지금 결과는 의도치 않게 많은 오브젝트가 활성화되어 있거나 |
원인을 찾았습니다. InfiniteScroll은 InfiniteScrollItem을 보이는 구간에 재사용합니다. 로직 중간에는 다시 사이즈변경 이벤트가 호출되지 않도록 개선하여 수정하였습니다. 감사합니다. |
테스트 해보니 이젠 문제없이 작동합니다. |
스크롤 재사용하면서 각 행의 길이가 제대로 적용되지 않은 문제로 보이는데 좀 더 자세히 살펴보겠습니다. |
몇가지 테스트 후 나타나는 현상을 공유하고자 합니다. 스크린샷1과 2는 InfiniteScroolItem과 Contents Size Filter가 [스크린샷1] 인스펙터에서 활성화 상태로 프리팹을 생성한 경우 유니티 에디터 : 무수히 많은 오브젝트가 생성되지만 출력 자체는 정상 (오브젝트가 많이 활성화되서 렉이 걸립니다.) ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ [스크린샷2] 인스펙터에서 비활성화 상태로 프리팹을 생성한 경우 유니티 에디터 : 정상적으로 출력 -스크린샷2의 모바일 결과
|
안녕하세요. 수정이 늦었습니다. |
셈플 전달 드립니다. 이전 버전에 동적 시스템에서 길이 계산, 스크롤 오브젝트 생성 문제를 확인해 수정했습니다 |
테스트 씬을 통해 테스트 및 안드로이드 빌드해 보니 Unity 2019.4.16f1 LTS / TmpPro 2.1.6 Trying to remove TextElementController(Clone) (TMPro.TextMeshProUGUI) from rebuild list while we are already inside a rebuild loop. This is not supported. |
네 확인 감사합니다. Contents Size Fitter제거 후 아래와 같이 사이즈를 설정하여 LayoutGroupScrollItem.cs
|
셈플 포함하여 전달드립니다 |
감사합니다. |
다만 위 업데이트 이후 LogViewer쪽에 영향이 있는지 에러코드가 발생합니다. |
적용 후 확인해보겠습니다. |
적용 후 셈플로 테스트 해봤을 때 영향이 보이지 않는데 좀 더 자세히 알 수 있을까요? 좀 더 확인해 보겠습니다. |
재현 과정은 infiniteScroll 내부의 아이템이 0개인 경우라고 추측했지만 게임 패키지 매니저에 있는 v2.0.7의 코드로 복원시키면 정상작동합니다.
|
Logview에서 item 최초 초기화 하기전에 리사이즈 호출 시 발생하는 문제로 확인 되었습니다. 수정 및 예외 처리 강화 하였습니다. 곧 해당 빌드로 공식 배포하겠습니다. 감사합니다. |
### Added * InfiniteScroll * ScrollItem active 함수 추가 * ScrollItem Item size 설정 함수 추가 ### Updated * InfiniteScroll * dynamicItemSize 환경에서 가변길이 ScrollItem 대응 가능하도록 수정 로직 수정[(165)](#165) ### Fixed * InfiniteScroll * dynamicItemSize 환경에서 보이지 않는 ScrollItem 오브젝트 활성화 되는 문제 수정
Service
Version
2.0.7
Summary
가변길이의 텍스트를 스크롤로 출력하려고 하는데 잘 구현되지 않아 질문 드립니다.
Screenshots
Additional context
제가 구현하고자 하는 시스템은 가변길이의 텍스트를 스크롤로 출력 기능입니다.
해당 텍스트는 스크린샷과 같이 텍스트 갯수에 따라 가변적으로 오브젝트 사이즈가 늘어나도록
UGUI에서 자동으로 정렬해주는 컴포넌트인
Contents Size Filter 및 Vertical Layout Group 두가지를 부착하였습니다.
ex1) 오브젝트1의 텍스트는 3라인의 길이 : 높이가 150size
ex2) 오브젝트2의 텍스트는 2라인의 길이 : 높이가 100size
즉 이러한 오브젝트 10개를 텍스트 길이에 따라 가변적으로 InfiniteScroll을 구현하려고 했는데
에러로 인해 잘 구현이 되지 않아서
현재 제가 생각하고있는 기능이 InfiniteScroll을 통해 구현이 가능한 것인지
혹은 다른 방법을 통해 구현할 수 있을지 도움을 얻고자 문의 드립니다.
(에러는 InsertData호출 시 itemShowDataIndex변수가 null이라는 에러였습니다.)
The text was updated successfully, but these errors were encountered: