Version: Unity 6.0 (6000.0)
言語 : 日本語
コライダータイプ間のインタラクション
OnTrigger イベント

OnCollision イベント

衝突イベントは、2 つの非トリガーコライダーが接触すると発生します。

衝突イベントの使用例を以下に示します。

  • 発射物がターゲットにヒットしたら、発射物と敵の両方を破壊します。
  • プレイヤーキャラクターがドアに触れると、ドアを開けるアニメーションをトリガーします。
  • プレイヤーキャラクターがパワーアップアイテムに接触したら、プレイヤーのサイズを大きくします。

衝突イベントの処理には、主に以下の API 関数が関係します。

  • Collider.OnCollisionEnter:Unity は、2 つのコライダーが最初に接触したときに、各コライダーでこの関数を呼び出します。
  • Collider.OnCollisionStay:Unity は、2 つのコライダーが接触している間、物理演算が更新されるたびに各コライダーで 1 回この関数を呼び出します。
  • Collider.OnCollisionExit:Unity は、2 つのコライダーの接触が終了したときに、各コライダーでこの関数を呼び出します。

衝突イベントの場合、関連するオブジェクトの少なくとも一方に動的物理演算ボディ (つまり、Is Kinematic が無効になっている Rigidbody または ArticulationBody) が必要です。衝突状態のゲームオブジェクトの両方がキネマティック物理演算ボディの場合、この衝突で OnCollision 関数は呼び出されません。

以下の例では、Unity が各関数を呼び出すときにコンソールにメッセージを表示します。

using UnityEngine;
using System.Collections;

public class DoorObject : MonoBehaviour
{
    // “other” refers to the collider that is touching this collider
    void OnCollisionEnter (Collider other)
    {
        Debug.Log ("A collider has made contact with the DoorObject Collider");
    }

    void OnCollisionStay (Collider other)
    {
        Debug.Log ("A collider is in contact with the DoorObject Collider");
    }
    
    void OnCollisionExit (Collider other)
    {
        Debug.Log ("A collider has ceased contact with the DoorObject Collider");
    }
}

OnCollision イベントの実用的なアプリケーションの例については、コライダーイベントのスクリプト例 を参照してください。

コライダータイプ間のインタラクション
OnTrigger イベント
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961