Unity 6.3
0 онлайн 89 гостей 3 в системе
Вход

Collider2D.contactMask

Declaration

public LayerMask contactMask;

Описание

Вычисляет эффективный LayerMask, который Collider2D будет использовать при определении того, может ли он связаться с другим Collider2D.

Возвращаемая маска рассчитывается с помощью комбинации матрицы столкновений слоев и переопределений слоев Rigidbody2D и Collider2D; более подробная информация приведена в примере кода ниже:

Дополнительные ресурсы: Collider2D.CanContact.

using UnityEngine;

public class Example : MonoBehaviour { void Start() { var myCollider = GetComponent<Collider2D>(); Debug.Log(myCollider.contactMask); Debug.Log(CalculateContactMask(myCollider)); }

LayerMask CalculateContactMask(Collider2D collider) { Rigidbody2D body = collider.attachedRigidbody;

LayerMask layerCollisionMask = Physics2D.GetLayerCollisionMask(collider.gameObject.layer); LayerMask includeMask = collider.includeLayers | (body ? body.includeLayers : new LayerMask()); LayerMask excludeMask = collider.excludeLayers | (body ? body.excludeLayers : new LayerMask());

return (layerCollisionMask | includeMask) & ~excludeMask; } }