using System.Collections;
using UnityEngine;

//////////////////////////////////////////////////////////////////
//【いたずら鳥をランダムに移動させるクラス】
// 鳥をランダムなタイミングにランダムな位置へ移動
//////////////////////////////////////////////////////////////////
public class BirdController : MonoBehaviour
{
    /////////////////////////////////
    // 【変数の設定】
    /////////////////////////////////

    //【Unity Editorから設定する変数】
    [SerializeField] Transform[] targetList;  // 鳥の移動位置リスト(配列)
    [SerializeField] Transform target;  // 鳥の移動位置


    /////////////////////////////////
    // 【関数の設定】
    /////////////////////////////////

    //【ゲーム開始時・ゲームオブジェクト生成時に１回だけ動く関数】
    //（Unityの標準関数）
    void Start()
    {
        // コルーチン関数ChangeTargetを呼び出す
        StartCoroutine(ChangeTarget());
    }


    //【毎フレームに１度動く関数】
    //（Unityの標準関数）
    void Update()
    {
        // 鳥を移動位置に向かって一定速度で移動させる
        transform.position =
            Vector3.MoveTowards(transform.position, target.position, 0.03f);
    }


    //【鳥の移動位置を変更するコルーチン】
    IEnumerator ChangeTarget()
    {
        // 鳥の移動位置を移動位置リストからランダムに取得
        target = targetList[Random.Range(0, 5)];

        // 指定範囲内のランダム秒待つ
        yield return new WaitForSeconds(Random.Range(1.5f, 3f));

        // コルーチン関数ChangeTargetを呼び出す
        StartCoroutine(ChangeTarget());
    }
}
