ゲームクリエイターのkinaです。

今日はUnityのオブジェクト同士の距離の取り方を書きます。
 
2つのオブジェクトが範囲内に入ったらアクションを起こす。

これを実装しようとすると、ColliderつけてTriggerチェックして、OnCollisionEnterやってと。。。
当たり判定は便利ですが、簡単な処理なら使わずに済ませたい&マウスポチポチがめんどくさいです。

そこで、2つのオブジェクトの距離を取ることができる関数を紹介します。

Vector3.Distanceです。


実際のコードを書いてみましょう。
public GameObject objA;
public GameObject objB;

void Update(){
        Vector3 Apos = objA.transform.position;
        Vector3 Bpos = objB.transform.position;
        float dis = Vector3.Distance(Apos,Bpos);
        Debug.Log("Distance : " + dis);
}
 簡単に書くとこんな感じです。
実はこの関数を知らずに最初は計算しようとしていました・・・

絶対値を取って計算して差分を調べてとか。

その時、ちょっと息抜きでライブラリ辞典を 見たら書いてました。
まさに取りたかった値です。

まだ知らない便利な関数がたくさんあると思うので、暇な時は辞典を見るようにします。

みなさんも意外と知らない便利な関数があるかもしれないですよ。 

ブログを引っ越しました。

Unity,cocos2dxを中心とした、ゲーム制作の技術メモ。沖縄のゲームアプリ開発会社・ブリブサーのブログです。
ほぼ毎日更新中!下記リンクよりどうぞ。
ブリブサー開発戦線〜僕らはあの戦いを忘れない〜