このページでは、ビジュアルツリーで要素を管理するにあたって推奨される方法を説明します。
要素を作成して階層に読み込む処理は時間がかかります。これを回避するには、要素をあらかじめ階層に作成しておき、display:none
を使ってそれらを非表示にし、必要な時にだけ表示します。ただし、多くの要素を同時に作成すると、より多くのメモリが消費される場合があります。
要素のプール (プーリング) とは、要素を毎回 new()
で作成して解放する代わりに、後で再作成する可能性のある要素を保持しておくことです。
プールする全ての要素を完全に管理し、プールに戻す前にきちんとリセットすることが重要です。これを行わないと、プーリングシステムが不安定になり問題が発生する場合があります。例えば、イベントコールバックの登録中やシリアル化されていない内部状態の設定中に要素のプーリングを行うと、特定の要素をクリーンアップすることが不可能になります。
ビジュアル要素の数を少なくするには、可能な限り ListView を使用します。ListView は、要素をプールし、ユーザーのスクロールに応じて要素をリサイクルします。
代替として、ListView に似たプールとリサイクルの仕組みを独自に実装し、以下を使用して可視領域を管理することも可能です。
GeometryChangedEvent
を使用します。VisualElement.layout
プロパティを使用します。Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.