Unity의 무한 스크롤 UI 구현 방법

2551 단어 C#우이Unity

왜 구현했는가



UnityAssetStore등에도 GitHub등에도 조사하면 몇가지 있습니다만(보통의 실장), 이번 내가 하고 싶은 일의 실현이 어려운 것이었기 때문에 실장(나의 실장)을 실시했습니다.

일반 구현



일반적으로 공개되고 있는 것은, 이하와 같이 설계로 실시하고 있는 경우가 많습니다.

아래에는 GameObject가 F, A, B, C, D, E, F, A와 8개 있습니다. 빨간색 문자는 두 개의 동일한 알파벳 GameObject가 있음을 나타냅니다. 즉, 다른 GameObject입니다.


조금 스크롤하면 이런 느낌.


이와 같이 화면 밖의 보이지 않는 부분에 다음의 알파벳이 오도록(듯이) 재기록해 실장하고 있는 것이 많습니다.
기본적으로 이것으로 문제는 없지만 하나의 GameObject 구성이 복잡한 경우 문제가 발생합니다.
예를 들어, 재기록 비용이 문제이거나, 효과 등의 보이는 방법의 동기화가 복잡해지는 경향이 있습니다.

내 구현



구현한 것의 사정상, 옆에 옮겨놓고 있습니다.


조금 스크롤하면 이런 느낌.
0(제로)가 화면 절반에 걸려, 오른쪽 절반이 화면 왼쪽, 왼쪽 절반이 화면 오른쪽에 표시되고 있는 것 같은 느낌입니다.
자주 패미콘이었던, 슈퍼 마리오 브라〇즈, 콤보이의 수수께끼, 아이스크라이머, 파르테나의 거울 등, 패미콘 시대에 자주 캐릭터가 이러한 표시가 되었네요.


다른 점은 빨간색 문자의 동일한 숫자를 표시하는 동일한 GameObject입니다.
GameObject도 0,1,2,3,4와 5개밖에 없습니다.
같은 것을 표시하고 있으므로, 재기록하거나 하지 않고, 이펙트도 보이는 방법도 동기화를 취할 필요가 없다고 하는 것입니다.

구조는 간단하고 카메라를 2개 준비하고, 표시를 맞추어 그리기만 합니다.


↓ 표시를 맞춘다


구현 프로젝트입니다.
htps : // 기주 b. 코 m / 오쿠 히이로 / MySc 로트 ゔ ぃ
일단, uGUI의 Canvas를 사용하고 있습니다만, 생각방적으로는 다른 구현에도 사용할 수 있을까라고 느끼고 있습니다.
3D적인 취급이 아니면 2개의 카메라로 그릴 수 없기 때문에 World Space를 사용하고 있습니다.

좋은 웹페이지 즐겨찾기