環境
UE4.20.3
距離の計算方法
数学的な計算方法は調べれば沢山出てくるので割愛してUE4での使い方の話をします。
C++側であれば下記のように求め
const float Distance = (GetActorLocation() - PlayerPawn->GetActorLocation()).Size();
Blueprintでは下記のように求めているという例をよく目にします。
例えば敵とPlayerの距離とかアイテムとプレイヤーの距離とかですね。
Get ** Distance To
今回は分かりやすい例として何かしらのActorとプレイヤーの距離を求めるというケースです。
先程の計算をわざわざ書かなくともUE4.0の頃からActor内に便利な関数が複数用意されています。
GetDistanceTo
Actor間の距離を取得する便利関数です。
最初の例で書いたものと同様の結果を得ることができます。
GetHorizontalDistanceTo
高さ(Z軸方向)を無視した距離を取得することができます。
平面での距離の取得なので、俯瞰視点のゲームやレーダーに使えそうですね。
GetVerticalDistanceTo
先程と逆で高さ(Z軸方向)の距離のみを取得することができます。
float - floatなので一番計算コストが低いですね。
GetSquaredDistanceTo
この関数だけはUE4.11から追加されたものです。
この関数ではベクトルの2乗の長さを取得します。
意外と知られていないノードがたくさんあると思うので、気が付いたらいろんな人がシェアしてくれると嬉しいです。