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; } }