using UnityEngine;

// 多数のボイドを発生させて管理するクラスを表します。
public class BoidSpawner : MonoBehaviour
{
    // 生成するボイドのプレハブを指定します。
    [SerializeField]
    private GameObject boidPrefab = null;
    // 生成するボイドの数を指定します。
    [SerializeField]
    private int count = 100;
    // ボイドを生成する立方体の最小値を指定します。
    [SerializeField]
    private Vector3 minSpawnRange = new Vector3(0, 1, 0);
    // ボイドを生成する立方体の最大値を指定します。
    [SerializeField]
    private Vector3 maxSpawnRange = new Vector3(250, 1, 200);

    // Start is called before the first frame update
    void Start()
    {
        Spawn(count);
    }

    // 指定した数のボイドを生成します。
private void Spawn(int count)
{
    Vector3 position = Vector3.zero;
//    float minSpeed = 2f;
//    float maxSpeed = 5f;
    for (int index = 0; index < count; index++)
    {
        var boid = Instantiate(boidPrefab, transform);
        position.x = Random.Range(minSpawnRange.x, maxSpawnRange.x);
        position.y = Random.Range(minSpawnRange.y, maxSpawnRange.y);
        position.z = Random.Range(minSpawnRange.z, maxSpawnRange.z);
            Debug.Log(position);
        boid.transform.position = position;

        // Rigidbodyコンポーネントに初速度を加える
        //Rigidbody rb = boid.GetComponent<Rigidbody>();
        //Vector3 initialVelocity = new Vector3(Random.Range(-1f, 1f), 0f, Random.Range(-1f, 1f)).normalized * Random.Range(minSpeed, maxSpeed);
        //rb.velocity = initialVelocity;

        boid.transform.rotation = Quaternion.Euler(0, Random.Range(0f, 360.0f), 0);
        //boid.GetComponent<Multicopter>().Parent = transform;
    }
}
}
