【Unity】指定したCollider2Dへの最短座標を求める
今回は指定したCollider2Dへの最短座標を求める機能について紹介します。
指定したColliderへの最短距離の問題
オブジェクトから指定したColliderへの最短距離を求めようと思った時、これが実は意外と面倒な事になります。
例えば下のようにTargetからパンダのColliderへの最短距離を求める時、Colliderの形状によって最短距離は変わってしまいます。大雑把な計算で良いならば中心点からRaycastでも撃てば十分なのですが、地形に沿って…のような場合には余り上手くありません。
指定したColliderへの最短距離を求める
指定したColliderへの最短距離を求めます。
これはrigidbody2D.Distanceが使えます。
これで対象のColliderとの距離が求められます。
それで、これは何に使えるのかな?
さて、コレを紹介して疑問に思うことそれは「コレが何に使えるのか」という点です。とりあえずAPIが目について使い方がパっと分からなかったのでサンプルコード込で紹介しましたが、これの用途は今ひとつ分かりません。
引数に対象のColliderを要求するので、直近のColliderを検索…みたいな用途には使用できません。
貫通しないように移動先のColliderを~…みたいな用途であれば、移動ベクトル見てRaycat飛ばすのが正解です。
かと言って、Colliderの形状で最も近い所を検出する必要のあるような項目は…うーん。
強いて思いついたのを上げるなら、溶岩ステージ等で溶岩のColliderに近づくと熱が上がっていき一定でダメージ…みたいな感じでしょうか。
もしくは近づくと電流が流れる仕組みで、触れる前にビビビーみたいな(以前、子ども科学館で、こんな感じのを見た気がする)
と中々に用途の難しい機能です。
…まぁ、誰かがきっと何かに使うでしょう(結論
関連
コレ以外の何の役に立つのかよく分からんシリーズ