Как получить все столкнувшиеся тайлы при столкновении тайлакарты? - PullRequest
0 голосов
/ 22 июня 2019

У меня есть коллайдер 2D Tilemap (триггер) и капсульный коллайдер 2D (триггер и имеет жесткое тело2D). Я успешно получил столкновение в моем OnTriggerEnter2D методе. Но понятия не имею, как я могу получить все плитки, которые столкнулись с капсульным коллайдером.

На первом изображении вы видите капсульный коллайдер, а на втором - мозаичный коллайдер. Я хочу покрасить все плитки, которые столкнулись с капсульным коллайдером.

Capsule collider 2D (green line)

Tilemap collider

Что я уже пробовал Я пытался получить все контактные точки, используя функцию 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);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...