negitamago
5/19/2018 - 9:38 AM

MoveToRandomTarget

ランダムにターゲットを選び、ターゲットに向かって移動する (解説記事 http://negi-lab.blog.jp/MoveToRandomTarget

using UnityEngine;

// ランダムにターゲットを選び、ターゲットに向かって移動する
// 解説記事 http://negi-lab.blog.jp/MoveToRandomTarget
public class MoveToRandomTarget : MonoBehaviour
{
    // シーン上に配置されているすべてのFoodオブジェクト
    private GameObject[] foods;

    // 向かう先
    private Transform target;       

    private void Start ()
    {
        // シーン上の、"Food"タグが付けられたオブジェクトをすべて取得する
        foods = GameObject.FindGameObjectsWithTag ( "Food" );

        SelectRandomTarget ();
    }

    // ランダムにターゲットを選ぶ
    private void SelectRandomTarget ()
    {
        target = foods[Random.Range ( 0, foods.Length )].transform;
    }

    private void FixedUpdate ()
    {
        GoToTarget ();

        // 左クリック
        if ( Input.GetMouseButtonDown ( 0 ) )
        {
            SelectRandomTarget ();
        }
    }

    // 移動する
    private void GoToTarget ()
    {
        // 線形補間で移動する
        transform.position = Vector3.Lerp ( transform.position, target.position, 0.01f );
    }
}