Skip to content

Collision Component ​

接触を判定する形状・衝突タイプ・押し戻しを設定します。

設定する手順 ​

  1. 形状を選び、同じGameObjectのRigidbodyと組み合わせます。
  2. SceneViewまたはGameViewで結果を確認します。
  3. 編集中のSceneまたはPrefabを保存します。

項目の説明 ​

項目C#名型操作定義時の初期値意味
有効Enabledbool読取・変更trueこのComponentの処理を有効にします。GameObject全体のアクティブ状態とは別です。
静的IsStaticbool読取・変更false形状を固定物として扱います。
押し戻しEnablePushbackbool読取・変更true接触時の押し戻しを有効にします。
TypeMaskTypeMaskuint読取・変更1u衝突タイプをbitで指定します。描画Layerとは別です。

Inspectorの設定と使い方 ​

「Editor / C#」は両方から変更できる設定、「Editorのみ」は公開C# APIのない編集操作です。「Editor表示のみ」は計算結果や統計などの確認欄です。「C#のみ」は、このInspectorに編集欄のない操作です。

設定・操作編集場所C#の入口意味・使い方
Componentの有効・静的・押し戻し・衝突タイプEditor / C#Enabled / IsStatic / EnablePushback / TypeMaskComponent全体を判定へ参加させるか、固定物として扱うか、接触時に押し戻すかを指定します。TypeMaskはプロジェクトの衝突設定で定義したbitで、描画レイヤーとは異なります。
形状:タイプEditor / C#ShapeShape.TypeでCircle2D・Quad2D・Sphere3D・AABB3D・OBB3D・Capsule2D・Capsule3Dを選びます。1つのCollisionにつき形状は1つです。描画Meshから自動生成するMesh Colliderではありません。
形状:有効・コールバックのみEditor / C#ShapeShape.Enabledは形状自身の有効状態です。Shape.IsTrigger=trueは押し戻さず接触通知だけを受ける指定で、拾い物・チェックポイント・侵入範囲に使います。
形状:回転の使用・オフセット・回転Editor / C#ShapeShape.UseTransformRotationでTransform回転を含めるかを決め、OffsetとRotationDegreesで追加の位置・回転を指定します。RotationDegreesは度数です。Capsule2DではXY位置とZ回転を使います。
Circle2D・Sphere3D:半径Editor / C#ShapeShape.Radiusで円・球の半径を指定します。サイズではなく中心から外周までの長さで、実際の判定にはTransformのScaleも影響します。
Quad2D:半サイズ・回転四角Editor / C#ShapeHalfSize2Dは全幅・全高の半分です。RotatedQuadを有効にすると回転した矩形として扱います。幅2・高さ1なら半サイズは(1, 0.5)です。
AABB3D・OBB3D:半サイズEditor / C#ShapeHalfExtents3Dは全サイズの半分です。AABBはWorldの軸に沿った箱、OBBは回転する箱です。回転した壁や箱へ判定を合わせたい場合はOBBと回転設定を確認します。
Capsule2D:サイズ・方向Editor / C#ShapeCapsuleSize2Dはカプセル全体の幅・高さです。CapsuleAxisはX=横、Y=縦で、3D用の半径・高さとは別の値を使います。
Capsule3D:半径・高さ・方向Editor / C#ShapeRadiusは胴の半径、CapsuleHeightは両端の丸みを含む全高、CapsuleAxisはローカル長軸です。全高が直径より小さい場合、中央の線分がなくなって球に近い形になります。
接触状態・接触コールバックC#のみIsCollidingIsCollidingは現在frameの接触状態です。開始・継続・終了を使い分けたいときはMonoBehaviourのOnCollisionEnter・OnCollisionStay・OnCollisionExitを使い、引数Collisionから相手や接触点を取得します。

初期値はEngineのComponent定義時の値で、C++表記を含みます。C#へ貼り付ける実行例ではありません。既存Sceneの保存値や既定Assetがある場合はそちらが優先されます。数値の編集範囲はInspectorで制限される場合があります。

C#から使う ​

操作型はCollisionComponentです。 GameObjectから取得する基本操作はGameObjectの操作を参照してください。以下には基本プロパティだけでなく、公開関数・追加の設定API・継承した共通操作も掲載します。

実用例:Playerだけに反応する拾い物を作る ​

このScriptがSphere3DのTriggerを設定します。Playerタグのある相手にも3DのCollisionを用意し、衝突設定で接触する組み合わせにします。

cs
using NEMEngine;

public sealed class TriggerPickup : MonoBehaviour {

    [SerializeField, Min(0.01f)] private float radius = 0.75f;
    private bool collected;

    void Awake() {
        // 物体を押し戻さず、接触通知だけを受ける球を用意
        var collider = GetComponent<CollisionComponent>() ?? AddComponent<CollisionComponent>();
        collider.Enabled = true;
        collider.Shape.Type = ColliderShapeType.Sphere3D;
        collider.Shape.Enabled = true;
        collider.Shape.Radius = radius;
        collider.Shape.IsTrigger = true;
    }

    void OnCollisionEnter(Collision collision) {
        // Player以外の接触と、破棄適用前の重複取得を除外
        if (collected || collision.gameObject == null || !collision.gameObject.CompareTag("Player")) return;
        collected = true;

        // 所持数や得点を加える処理はこの位置へ接続
        Debug.Log("アイテムを取得しました");
        NEMEngine.Object.Destroy(gameObject);
    }
}

設定用・関連するC#型 ​

選択値(Enum) ​

型・各値の詳説使える値
CapsuleAxisX / Y / Z
ColliderShapeTypeAABB3D / Capsule2D / Capsule3D / Circle2D / OBB3D / Quad2D / Sphere3D

CollisionComponent ​

宣言・詳説種類・操作役割
public bool EnablePushbackプロパティ(読取・変更)接触時の押し戻しを有効にします。
public bool Enabledプロパティ(読取・変更)このComponentの処理を有効にします。GameObject全体のアクティブ状態とは別です。
public static CollisionComponent FromEntity(GameObject gameObject)関数既にComponentを持つGameObjectから操作用の参照を作ります。Componentを追加する操作ではありません。
public bool IsCollidingプロパティ(読取専用)現在フレームに接触しているか
public bool IsStaticプロパティ(読取・変更)形状を固定物として扱います。
public CollisionComponent.CollisionShapeRef Shapeプロパティ(読取専用)発生形状または粒子を描く形状を選びます。設定を持つ型の説明も確認してください。
public uint TypeMaskプロパティ(読取・変更)衝突タイプをbitで指定します。描画Layerとは別です。
public static int componentTypeIDプロパティ(読取専用)組み込みComponentの接続識別子です。通常のゲームコードではGetComponentで取得します。

CollisionComponent.CollisionShapeRef ​

宣言・詳説種類・操作役割
public CapsuleAxis CapsuleAxisプロパティ(読取・変更)カプセルのローカル長軸です。2DではX=横・Y=縦、3DではX/Y/Zを選びます。
public float CapsuleHeightプロパティ(読取・変更)Capsule3Dの両端の丸みを含む全高です。
public Vector2 CapsuleSize2Dプロパティ(読取・変更)Capsule2D全体の幅・高さです。方向と組み合わせて縦横を指定します。
public bool Enabledプロパティ(読取・変更)この形状の判定を有効にします。CollisionComponent全体のEnabledとは別です。
public Vector3 HalfExtents3Dプロパティ(読取・変更)AABB3D・OBB3Dの全幅・全高・全奥行きの半分です。
public Vector2 HalfSize2Dプロパティ(読取・変更)Quad2Dの全幅・全高の半分です。
public bool IsTriggerプロパティ(読取・変更)trueなら押し戻さず、接触コールバックだけを発行します。侵入範囲や拾い物に使います。
public Vector3 Offsetプロパティ(読取・変更)Transformから形状中心をずらす位置です。Capsule2DではXY成分を使います。
public float Radiusプロパティ(読取・変更)Circle2D・Sphere3D・Capsule3Dの半径です。Capsule2Dの全体サイズとは別です。
public bool RotatedQuadプロパティ(読取・変更)Quad2Dを回転する矩形として扱うかを指定します。
public Vector3 RotationDegreesプロパティ(読取・変更)形状へ加える回転を度数で指定します。Capsule2DではZ成分を使います。
public ColliderShapeType Typeプロパティ(読取・変更)判定する形状です。2Dの円・四角・カプセル、3Dの球・AABB・OBB・カプセルから選び、該当する寸法を設定します。
public bool UseTransformRotationプロパティ(読取・変更)形状の向きへ所有GameObjectのTransform回転を含めるかを指定します。

継承する共通操作:Component ​

宣言・詳説種類・操作役割
public T AddComponent<T>() where T : Component関数ComponentまたはScriptを追加し、操作する参照を返します。
public T? GetComponent<T>() where T : class関数component access(owner GameObjectへの委譲)
public T? GetComponentInChildren<T>(bool includeInactive = false) where T : class関数子階層から指定型のComponentを探します。
public T? GetComponentInParent<T>(bool includeInactive = false) where T : class関数親階層から指定型のComponentを探します。
public T[] GetComponents<T>() where T : class関数同じGameObjectにある指定型のComponentをすべて取得します。
public void GetComponents<T>(List<T> results) where T : class関数同じGameObjectにある指定型のComponentをすべて取得します。
public T[] GetComponentsInChildren<T>(bool includeInactive = false) where T : class関数子階層にある指定型のComponentを収集します。
public void GetComponentsInChildren<T>(bool includeInactive, List<T> results) where T : class関数子階層にある指定型のComponentを収集します。
public void GetComponentsInChildren<T>(List<T> results) where T : class関数子階層にある指定型のComponentを収集します。
public T[] GetComponentsInParent<T>(bool includeInactive = false) where T : class関数親階層にある指定型のComponentを収集します。
public void GetComponentsInParent<T>(bool includeInactive, List<T> results) where T : class関数親階層にある指定型のComponentを収集します。
public override int GetHashCode()関数同じ値を検索Keyに使うためのHashを返します。
public bool HasComponent<T>() where T : class関数指定型のComponentを持つかを調べます。
public void RemoveComponent<T>() where T : Component関数指定型のComponentを取り除きます。
public bool TryGetComponent<T>(out T component) where T : class関数Componentを検索し、見つかったかをbool、結果をout引数で返します。
public GameObject gameObjectプロパティ(読取専用)このComponentを所有するGameObjectです。
public Transform transformプロパティ(読取専用)所有GameObjectのTransformです。

継承する共通操作:Object ​

宣言・詳説種類・操作役割
public static void Destroy(Object? target)関数参照先の個体だけを安全地点で破棄する
public override bool Equals(object? obj)関数2つの値が等しいかを調べます。
public override int GetHashCode()関数同じ値を検索Keyに使うためのHashを返します。
public static GameObject Instantiate(Prefab original)関数Prefabまたは指定したGameObject・Componentを複製して参照を返します。生成できない場合は例外です。nullを返す前提で処理しないでください。
public static GameObject Instantiate(Prefab original, GameObject? parent)関数Prefabまたは指定したGameObject・Componentを複製して参照を返します。生成できない場合は例外です。nullを返す前提で処理しないでください。
public static GameObject Instantiate(Prefab original, Vector3 position, Quaternion rotation)関数Prefabまたは指定したGameObject・Componentを複製して参照を返します。生成できない場合は例外です。nullを返す前提で処理しないでください。
public static GameObject Instantiate(Prefab original, Vector3 position, Quaternion rotation, GameObject? parent)関数Prefabまたは指定したGameObject・Componentを複製して参照を返します。生成できない場合は例外です。nullを返す前提で処理しないでください。
public static T Instantiate<T>(T original) where T : Object関数Prefabまたは指定したGameObject・Componentを複製して参照を返します。生成できない場合は例外です。nullを返す前提で処理しないでください。
public static T Instantiate<T>(T original, GameObject? parent) where T : Object関数Prefabまたは指定したGameObject・Componentを複製して参照を返します。生成できない場合は例外です。nullを返す前提で処理しないでください。
public static T Instantiate<T>(T original, Vector3 position, Quaternion rotation) where T : Object関数Prefabまたは指定したGameObject・Componentを複製して参照を返します。生成できない場合は例外です。nullを返す前提で処理しないでください。
public static T Instantiate<T>(T original, Vector3 position, Quaternion rotation, GameObject? parent) where T : Object関数Prefabまたは指定したGameObject・Componentを複製して参照を返します。生成できない場合は例外です。nullを返す前提で処理しないでください。
public static bool operator ==(Object? lhs, Object? rhs)関数等値比較を行います。引数型と戻り値型で、成分ごとの演算か対象参照の比較かを確認してください。
public static implicit operator bool(Object? value)関数暗黙の型変換を行います。引数型と戻り値型で、成分ごとの演算か対象参照の比較かを確認してください。
public static bool operator !=(Object? lhs, Object? rhs)関数不等値比較を行います。引数型と戻り値型で、成分ごとの演算か対象参照の比較かを確認してください。

使用時の注意 ​

描画Meshを置くだけではPhysicsのColliderになりません。Triggerと押し戻しの違いを確認します。

Play中の変更は実行用Worldへ反映します。Scene編集のUndoと実行中の値の変更は別です。保存方法は編集と実行時変更を参照してください。

関連項目 ​

現行版マニュアル · 8ea58ba2 · 2026-10-28確認