Tilemap Collider 2D コンポーネントは、同じゲームオブジェクト上の Tilemap コンポーネント上の タイル の コライダー 形状を生成します。Tilemap コンポーネントにタイルを追加または削除すると、Tilemap Collider 2D は LateUpdate
中に Collider 形状を更新します。複数のタイル変更をまとめてバッチ処理し、パフォーマンスへの影響を最小限に抑えます。
プロパティ | 機能 |
---|---|
Max Tile Change Count | コライダーの増分の再作成ではなく、すべての再作成を行う場合に蓄積するタイルの変更 (タイルマップへのタイルの追加/削除など) の最大数。 蓄積された変更数が多いと、Tilemap Collider 2D の増分の再作成がすべてを再作成するよりも遅くなる場合があります。この問題を解決するには、この値を減らします。 |
Extrusion Factor | 各タイルのコライダー形状を押し出す量 (Unity ワールドスペースユニット) を設定します。これにより、隣接するタイルのコライダー形状間のギャップを最小にし、Composite Collider 2D 設定された最小の Vertex Distance 内に収め、タイルコライダーを構成します。 このプロパティは、デフォルトではグレーアウトされ、無効になっています。このプロパティは、Used by Composite が有効で、Composite Collider 2D が同じゲームオブジェクトにアタッチされている場合にのみ有効です。 |
Material | 摩擦や弾性など 衝突 のプロパティーを定義する物理マテリアル。 |
Is Trigger | これを有効にすると、Tilemap Collider 2D がトリガーとして動作します。 |
Used by Effector | これを有効にすると、Tilemap Collider 2D はアタッチされた Effectors 2D によって使用されます。 |
Used by Composite | これを有効にすると、このコライダーはアタッチした Composite Collider 2D で使用されます。 Used by Composite が有効な場合、Offset 以外のすべてのプロパティは Tilemap Collider 2D コンポーネントで使用できなくなります。代わりに、プロパティは、アタッチされた Composite Collider 2D コンポーネントによって制御されます。 |
Offset | Tilemap Collider 2D ジオメトリのローカルオフセット |
タイルマップの各タイルに対して生成されたコライダー形状は、タイルアセット で設定する Collider Type (コライダータイプ) によって異なります。コンポーネント形状の生成の動作は、次の方法でコライダータイプに対応します。
Collider Type | 機能 |
---|---|
None | Tilemap Collider 2D コンポーネントは、このタイルのコライダー形状を生成しません。 |
Sprite | Tilemap Collider 2D コンポーネントは、タイルに割り当てられたスプライトに基づいてコライダー形状を作成します。コライダー形状は、スプライトに設定した カスタムの物理形状 に基づきます。 |
Grid | Tilemap Collider 2D コンポーネントは、グリッドセルの形状に基づいたコライダー形状を作成します。グリッドセルは、Grid コンポーネントの Cell Layout で選択されたセルレイアウトによって決定されます。 |
Tilemap Collider 2D コンポーネントは、Composite Collider 2D コンポーネントと一緒に使うことができます。両方のコンポーネントを同じタイルマップに加えると、Unity は隣り合うタイルのコライダー形状を合成します。これにより、隣り合うタイルのコライダー形状間の角やエッジが滑らかになります。
この 2 つのコンポーネントを併用することで、物理計算の更新に関わる個々のコライダー形状の数が減り、必要な計算量が減り、パフォーマンスへの影響を最小限に抑えることができます。
コライダーにすぐに変更を加える必要がある場合は、TilemapCollider2D.ProcessTilemapChanges を使って、すぐに処理を行います。TilemapCollider2D.hasTilemapChanges を使って、何らかの処理が必要かを確認できます。