一番近いオブジェクトのカラーを変更する

Unity
2018年10月14日

こんにちわ(・。・ノ
いろいろあって久々の更新になってしまいました。

今回はスクリプトのアタッチされたオブジェクトを基点に一番近いオブジェクトのマテリアルカラーを変更する手法を記載したいとおもいます。

 

まず、適当にオブジェクトを配置します。

今回のスクリプトはメインカメラに設定しますので、メインカメラに一番近いのはcube型のオブジェクトが一番近いので、このcube型のオブジェクトのカラーが変更されればOKです。

距離の比較対象となるオブジェクトに以下のように任意のタグを付与します。※今回はTargetとしました。

以下、メインカメラに設置したスクリプトの中身です。
Targetタグのついた各オブジェクトとメインカメラとの距離をループの中で比較しています。

distance関数の返り値が一番小さかったオブジェクトが最後まで残るのでループ後、そのオブジェクトのマテリアルカラーを青に変更しています。

 

以下、実行結果です。

他にも効率的な手法あるかもしれませんが、よかったら、参考にしていただければと思います。m(。。m