質問: ### 前提・実現したいこと unityで画面内にロックオン範囲を設定し、その範囲内の敵を取得するプログラムを作ろうとしています。 ### 発生している問題・エラーメッセージ 上記の画像のような、アーマードコアのロックオンをイメージしています ### 試したこと OnWillRenderObject関数は、この関数が入ったスクリプトがついているオブジェクトがCamera内に表示されると一度だけ呼ばれるコールバック関数だそうです。 まず、この関数をロックオンされる対象(Enemy)に入れておく。 関数が呼ばれたときにロックオンする側(Player)に自身のオブジェクトを渡す。 Player側では受け取ったオブジェクトの座標をワールド座標からスクリーン座標に変換する。 最後にスクリーン座標がロックオンサークル内か判断する仕様で作っていました。 ですが、OnWillRenderObject関数が呼ばれることがなく、MonoBehaviourが機能していることという注意書き以外ありませんでした。なにか見落としがあるでしょうか? 一応オンラインプレイを想定したゲームなので、今のこの方法だとEnemy側でどのPlayerのカメラか判断せねばならないくなると思うので、できればプレイヤー側でカメラ内の敵を取得したいのが本心です。 ### 補足情報(言語/FW/ツール等のバージョンなど) Unityは最新バージョンの5.4.1を使っていて、以前のバージョンでは動作確認していません。 バージョンによるものでしょうか。 宜しくお願いします。
回答: OnWillRenderObject関数の入ったスクリプトがアタッチされたオブジェクトにskinnedmeshrendererがアタッチされている必要があったみたいです。 アタッチしたところコールバックされました。