やること
物体がカメラに映されているというのはその物体が全部または一部カメラの視錐台の中にあることで、
それを判定するために物体の形とカメラ視錐台との交差判定をすることだ
物体の形とカメラ視錐台との交差判定
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
となっている
物体の形状を求める
物体の形 bounds
は Collider.bounds
、Mesh.bounds
、Renderer.bounds
から取得できる