docs.unity3d.com
    目次を表示する/隠す

    Unity Collections パッケージ

    このパッケージは、ジョブや Burst でコンパイルしたコードで使用できるアンマネージのデータ構造を提供します。

    このパッケージで利用できるコレクションは、以下の 3 つのカテゴリに分けられます。

    • Unity.Collections のコレクション型のうち、名前の先頭が Native- のものには、それらが適切に破棄され、スレッドセーフな形で使用されるようにするための安全性チェックが備わっています。
    • Unity.Collections.LowLevel.Unsafe のコレクション型のうち、名前の先頭が Unsafe- のものには、そうした安全性チェックが備わっていません。
    • その他のコレクション型は割り当てられておらず、ポインターが含まれていないため、破棄やスレッドセーフが問題になることは実質的にありません。これらの型が使用されるのは、ごく一部のデータのみです。

    Native- 型の場合は、メソッドに渡されるインデックスが確実に範囲内に含まれるようにするための安全性チェックが実行されますが、その他の型では、ほとんどの場合そうしたチェックは実行されません。

    いくつかの Native- 型には Unsafe- のバージョンがあり、例えば NativeList には UnsafeList、NativeHashMap には UnsafeHashMap があります。

    一般的には Unsafe- バージョンではなく Native- コレクションを使用した方がよいですが、Native- コレクションは、他の Native- コレクションを含むことはできません (安全性チェックが実装されているため)。そのため、例えばリストをまとめたリストが必要な場合は、NativeList<UnsafeList<T>> または UnsafeList<UnsafeList<T>> を使用することはできますが、NativeList<NativeList<T>> は使用できません。

    安全性チェックを無効にした場合、通常は、Native- 型とその Unsafe- バージョンにはパフォーマンスの大きな違いはありません。実際、ほとんどの Native- コレクションは、Unsafe- バージョンのラッパーとして実装されます。例えば NativeList には、UnsafeList と、安全性チェックで使用されるいくつかのハンドルが含まれます。

    個々のコレクション型の詳細については、コレクション型 に関するドキュメントを参照してください。

    トップに戻る
    Copyright © 2023 Unity Technologies — 商標と利用規約
    • 法律関連
    • プライバシーポリシー
    • クッキー
    • 私の個人情報を販売または共有しない
    • Your Privacy Choices (Cookie Settings)