我有一个Tilemap对撞机2D(触发)和一个胶囊对撞机2D(触发并有一个刚体2D)。
我成功地通过OnTriggerEnter2D
方法获得了解决方法。但是对于如何获取与胶囊对撞机相撞的所有瓷砖毫无头绪。
在第一张图片中,您可以看到胶囊对撞机,在第二张图片中,您可以看到tilemapcollider。我想为所有与胶囊碰撞器碰撞的瓷砖上色。
我已经尝试过的内容
我尝试使用GetContacts
函数获取所有联系点。但是我得到的计数为0。
private void OnTriggerEnter2D(Collider2D collision) {
GameObject go = collision.gameObject;
if (LayerMask.LayerToName(go.layer) == "ground") // is collision with TileMap
{
ContactPoint2D[] contacts = new ContactPoint2D[100];
int contactCount = collision.GetContacts(contacts);
Debug.Log(contactCounts); // 0
for (int i = 0; i < contactCount; i++)
{
Vector3Int tile = walkableTilemap.WorldToCell(contacts[i].point);
walkableTilemap.SetColor(tile, newColor);
}
}
}