Я работаю над игрой и использую новые функции Tilemap. Пока они работают фантастически. Так легко поднять уровень. Однако я сталкиваюсь с проблемами при отражении лазера на коллайдерах тайловой карты. Как вы можете видеть на GIF-изображении ниже, первые несколько лазеров отражают хорошо, но иногда в небольшой трещине, где встречаются коллайдеры, я получаю нежелательное поведение для моего лазера.
Лазер состоит из небольшого гранулированного объекта рендеринга спрайтов с рендерером следа для цвета позади и кругового коллайдера.
Вот мой код столкновения. Где direction - это переменная класса Vector2, а rb - это компонент RigidBody2D объекта GameObject, спрятанный в функции Start()
.
if (collision.collider.gameObject.layer == LayerMask.NameToLayer ("Terrain")) {
direction = Vector2.Reflect (direction, collision.contacts[0].normal);
rb.velocity = direction.normalized*GameManager.instance.bouncySpeed;
}
Что я могу предпринять, чтобы избежать такого поведения?