У меня есть квадрадерево создать для всех статических объектов соударения, который прекрасно работает как для обнаружения столкновений и raycastingКак смешивать обычное и квадретное обнаружение столкновений?
Однако, как я также не-статические объекты столкновений, когда я raycast я хотел бы включить их в качестве возможные коллидируемые объекты для луча
Что было бы лучшим (с точки зрения производительности) способом достижения этого? Мои нынешние идеи:
1) клонировать квадрадерево, добавьте не-статические объекты, а затем использовать его для raycast
2) добавить нестатические объекты текущего квадрадерево, с некоторыми флагами, которые в основном чтобы квадранты не раскалывали свои квадратики, даже если в квадрате было больше детей, чем разрешено. Квадрат затем должен был «очистить» после себя после завершения raycast
3) после определения ближайшего столкновения статического объекта (с использованием квадранта), просто перебирайте все нестатические объекты и смотрите, сталкивается ли луч с ними, а затем проверить, находится ли точка столкновения ближе, чем ближайшая точка столкновения статического объекта.
Все эти идеи кажутся немного громоздкими, поэтому я ищу любые альтернативные идеи, которые могут быть более эффективными
В случае, если это имеет значение, я использую Java