LoginSignup
1
1

More than 1 year has passed since last update.

Unityである物体がカメラに映されているかの判定方法

Posted at

やること

物体がカメラに映されているというのはその物体が全部または一部カメラの視錐台の中にあることで、
それを判定するために物体の形とカメラ視錐台との交差判定をすることだ

物体の形とカメラ視錐台との交差判定

Unityではそれをするために便利なメソッドが用意してくた
GeometryUtility.TestPlanesAABB

GeometryUtility
public static bool TestPlanesAABB (Plane[] planes, Bounds bounds);

そのメソッドが二つ引数が必要で、第一引数にカメラの視錐台を渡して、第二引数に物体の形を渡す
交差がある場合trueが返され、交差がない場合はfalseがか返される

カメラの視錐台を求める

それもUnityが便利なメソッドを用意してくた。
GeometryUtility.CalculateFrustumPlanes

GeometryUtility
public static Plane[] CalculateFrustumPlanes (Camera camera);

戻り値のPlane[]がカメラの視錐台で、その中に
[0] = Left, [1] = Right, [2] = Down, [3] = Up, [4] = Near, [5] = Far
となっている

物体の形状を求める

物体の形 boundsCollider.boundsMesh.boundsRenderer.boundsから取得できる

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1