(Unity6 BRP)シンプルなカーレースゲームの作成(AIカーの作成・WayPoint+Position移動)

(サンプルコード)

using UnityEngine;

public class AIDriver : MonoBehaviour
{
    public Transform[] waypoints;
    public float speed;
    public float turnSpeed;
    public float goalDistance;
    private int num = 0;

    private void Update()
    {
        if (waypoints.Length == 0)
        {
            return;
        }

        Transform target = waypoints[num];

        // 方向の計算
        Vector3 direction = (target.position - transform.position).normalized;

        // 向きをゆっくり回転
        Quaternion targetRotation = Quaternion.LookRotation(direction);
        transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, turnSpeed * Time.deltaTime);

        // 前進
        transform.position += transform.forward * speed * Time.deltaTime;

        // Waypointに近づいたら次へ
        float distance = Vector3.Distance(transform.position, target.position);
        if (distance < goalDistance)
        {
            num = (num + 1) % waypoints.Length;
        }
    }
}