2020年10月18日日曜日

[Closest] 最も近いオブジェクトを取得する

「 最も近い」っていうと Nearest なのかなぁ。
と、アクションブラウザ、エコシステムで検索しても、それらしいアクションが出てこない。

PlayMaker Extension Action Scripts というPlayMakerの追加アクションを
セットにした少し古いアセットを持っていて、その中に
[ Find Nearest GameObject In Layer ]

というのアクションがあり、これを使うと、指定したオブジェクトから一番近い場所
にあるオブジェクトと、そこまでの距離が取得できました。
指定したレイヤーにあるオブジェクトが感知対象です。


ところが、どうも現在のUnity 2019 では機能しない。

なので、このような基本的なものは(特に今の)標準アクション等にはあるだろうと
検索してみてのことでした。
ですが、ここで使うべきは、Closest だったんですね。Closest で探すと見つかるのが

 [ Find Closest ]

という標準アクション、指定したオブジェクトから一番近い場所
にあるオブジェクトと、そこまでの距離を取得できます。

指定したタグを持つオブジェクトが感知対象です。

更にエコシステムで検索すると、
[ Find Closest2 ]という、レイヤー指定ができるもの。
[ Find Farthest ] という、最も遠くのオブジェクトを取得するもの、も見つかりました。


CloseNear どちらも距離について話すときには同じ意味だと言うことですが、
画面上の座標の距離のような場合、標準的な英語感覚では、Closestを使用する
ほうが自然ということなのか。
アクションに限らず、英語で検索するときは、注意しないといけないんですね。


PlayMaker Extension Action Scripts の他の機能で、リスト内から最も近い
オブジェクトを選ぶ[  Find Nearest GameObject From List ] は今のUnityでも使えました。

PlayMaker Extension Action Scripts のアクション