У меня есть коллайдер 2D Tilemap (триггер) и капсульный коллайдер 2D (триггер и имеет жесткое тело2D).
Я успешно получил столкновение в моем OnTriggerEnter2D
методе. Но понятия не имею, как я могу получить все плитки, которые столкнулись с капсульным коллайдером.
На первом изображении вы видите капсульный коллайдер, а на втором - мозаичный коллайдер. Я хочу покрасить все плитки, которые столкнулись с капсульным коллайдером.
![Capsule collider 2D (green line)](https://i.stack.imgur.com/4S2zM.png)
![Tilemap collider](https://i.stack.imgur.com/SuS2E.png)
Что я уже пробовал
Я пытался получить все контактные точки, используя функцию 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);
}
}
}