読者です 読者をやめる 読者になる 読者になる

デジタルフロッグ

Unityのアプリの開発をしながらいろいろと忘れないための備忘録でございます。

3D LookAtを使って敵をこちらに向けさせる Vector3.Lerpを使って動かす

3D C# Unity

using UnityEngine;
using System.Collections;

public class hogehoge : MonoBehaviour {
    [SerializeField] GameObject enemy;

    // Update is called once per frame
    void Update () {
        enemy.gameObject.transform.LookAt (this.gameObject.transform);
    }
}

 

ざっくりと簡単に

karaagedigital.hatenablog.jp

Magica Voxelで作成したひよこを今回使ってます。

一番最初にスクリプトをバンッと書いておきましたが、難しい事は特に書いていません。

LookAtを使うとターゲットとなるenemyというGameObjectを掴んでenemyに対象を向けさせます。

 

Sphereオブジェクトを作ってその中に一番最初に書いたスクリプトを追加します。

f:id:karaagedigital:20160905114444p:plain

そのあとにSphereのある方向に向いてほしいオブジェクトをenemyの中に突っ込みます。そして再生するとこんな感じに

f:id:karaagedigital:20160905114215g:plain

ボールはScene画面から自分でドラッグして動かしてます。動かすとひよこはボールの方向に向きを変えます。

そしてUpdateにこちらを追加して下さい。

enemy.gameObject.transform.position = Vector3.Lerp(enemy.gameObject.transform.position,this.gameObject.transform.position, Time.deltaTime);

そうすると・・・

f:id:karaagedigital:20160905115601g:plain

ボールを追いかけるようになります。

Vector3.Lerpですが、こちらはaとbを結ぶ直線状をt=0~1で考えられていて、0.5fだとちょうどaとbの真ん中にあたります。

Vector3.Lerp(aのポジション, bのポジション, tの値)

となります。久しぶりに3Dをさわりましたが、3Dもやっぱり面白いですよね。