Version: 2019.2
public static void IgnoreCollision (Collider2D collider1, Collider2D collider2, bool ignore= true);

パラメーター

collider1 collider2 と比較する最初のコライダー
collider2 collider1 と比較する2つ目のコライダー
ignore collider1collider2 のペア間の衝突/トリガーを検知するか無視するようにします

説明

collider1collider2 のペア間の衝突/トリガーを検知するか無視するようにします

選択されたコライダー間のいかなる衝突判定も無視します。つまり、すべての衝突判定とトリガー判定が起こらなくなります。まず最初に衝突レイヤーで2つのレイヤーが接触できるか確認し、その後接触が起こらないようにします。それらの処理の次に、特定のコライダーが作用しないようにします。

IgnoreCollision にはいくつかの制約があります:

1) It is not persistent. This means that the ignore collision state will not be stored in the editor when saving a Scene. 2) You can only apply the ignore collision to colliders in active game objects. When deactivating the collider the IgnoreCollision state will be lost and you have to call Physics2D.IgnoreCollision again. See Also: Physics2D.GetIgnoreCollision, Physics2D.IgnoreLayerCollision.

using UnityEngine;

public class Example : MonoBehaviour { // Instantiate a bullet and make it ignore collisions with this object.

Transform bulletPrefab;

void Start() { var bullet = Instantiate(bulletPrefab) as Transform; Physics2D.IgnoreCollision(bullet.GetComponent<Collider2D>(), GetComponent<Collider2D>()); } }
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961