Renderer.isVisibleで判定した場合
Renderer.isVisibleというプロパティがあります。
「Unity カメラ 映っているか」などで検索すると大量にヒットします。
検索結果
公式ドキュメント
しかしこちらは「オブジェクトがいずれかのカメラの領域に入っているか」を示すもので、
「いずれのオブジェクトにも遮られていない」ことを示すものではありませんでした。
レイキャストで判定した場合
オブジェクトのコライダに対してレイキャストも試したのですが、
図のようにレイを飛ばした部分以外がカメラから見えている場合を判定できませんでした。
要件
要件としては、オブジェクトが他のオブジェクトに完全に隠れているか = オブジェクトが他のオブジェクトから少しでもはみ出しているか
が判定できればよいと考えています。
まとめ
要件としてはカメラに映っているかどうかなのですが、
ステルスゲームなどでよくある「体の一部でも遮蔽物からはみ出ていたら敵に見つかる」という挙動も近いかなと思っています。
現在のアプローチではRendererやColliderを使用してうまくいっていないので、
描画パスを取得したりシェーダーから判定したりもできないか? とも考えています。
なにかよい知恵やベストプラクティス、アイデアのようなものはございますでしょうか。
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。