コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】四分木(Quadtree)による空間分割を使用して当たり判定を実装できる「Unity3d-QuadTree-Collision-Detection」紹介

はじめに

「Unity3d-QuadTree-Collision-Detection」を Unity プロジェクトに導入することで
四分木(Quadtree)による空間分割を使用して当たり判定を実装できるようになります

検証

今回は Unity 標準の当たり判定を使用した場合と
四分木による当たり判定を使用でどちらが高速化調べてみました

Unity 標準の当たり判定を使用

https://img.gifmagazine.net/gifmagazine/images/3043520/original.gif

2,000 個の Cube で当たり判定を行ってみたところ、
60 FPS がキープできる状態になった

四分木による当たり判定を使用

https://img.gifmagazine.net/gifmagazine/images/3043521/original.gif

2,000 個の Cube で当たり判定を行ってみたところ、
FPS が 15 ~ 20 くらいに落ちてしまった

検証結果

今回の検証では四分木による当たり判定よりも Unity 標準の当たり判定の方が高速だった

  • 自分の四分木の使い方になにか間違いがあった?
  • Unity 標準の当たり判定はとても高速?

参考サイト様

https://forum.facepunch.com/f/unity/bswzj/Collision-Detection-QuadTree-systems-for-Unity/1/