unity官方资源包CarAIControl理解

这篇博客主要探讨Unity的官方资源包CarAIControl,深入解析如何理解和应用该资源包进行AI车辆控制,帮助开发者了解相关AI控制技术。

    接上一篇,这篇讲AI控制。

using System;
using UnityEngine;
using UnityEngine.AI;
using Random = UnityEngine.Random;

namespace UnityStandardAssets.Vehicles.Car
{
    //添加关联脚本
    [RequireComponent(typeof (CarController))]
    public class CarAIControl : MonoBehaviour
    {
        //枚举刹车条件
        public enum BrakeCondition
        {
            NeverBrake,                 // the car simply accelerates at full throttle all the time.汽车一直以最高速度行驶
            //车会根据在朝着目标方向的即将发生的变化刹车,在转向时减速,在基于路线的AI
            TargetDirectionDifference,  // the car will brake according to the upcoming change in direction of the target. Useful for route-based AI, slowing for corners. 
            
            //车会在接近目标时刹车,不管目标的方向,对如果你想前往一个静止的目标,当到达那里时休息
            TargetDistance,             // the car will brake as it approaches its target, regardless of the target's direction. Useful if you want the car to
                                        // head for a stationary target and come to rest when it arrives there.
        }
        //该脚本以与用户控件脚本相同的方式为控制器提供输入,正因如此,它实际是“驾驶”汽车,没有特殊的物理和动画技巧,使得汽车的行为正常。
        // This script provides input to the car controller in the same way that the user control script does.
        // As such, it is really 'driving' the car, with no special physics or animation tricks to make the car behave properly.

        //“漫游”是用来给汽车一个更人性化,更少的机器人感觉。它们在向目标方向行驶时,速度和方向都有轻微的抖动。
        // "wandering" is used to give the cars a more human, less robotic feel. They can waver slightly
        // in speed and direction while driving towards their target.

        //[Range(0,1)]使得变量范围为0~1;
        //最谨慎的时候使用最大速度的百分比

        //[SerializeField] private BoxCollider Check;
        [SerializeField] [Range(0, 1)] private float m_CautiousSpeedFactor = 0.05f;               // percentage of max speed to use when being maximally cautious    
        //接近转弯的角度去当作保证最大的谨慎去处理
        [SerializeField] [Range(0, 180)] private float m_CautiousMaxAngle = 50f;                  // angle of approaching corner to treat as warranting maximum caution
        //最大安全距离
        [SerializeField] private float m_CautiousMaxDistance = 100f;                              // distance at which distance-based cautiousness begins
        //AI应该考虑它的角速度(例如旋转时放开加速度)谨慎使用
        [SerializeField] private float m_CautiousAngularVelocityFactor = 30f;   // how cautious the AI should be when considering its own current angular velocity (i.e. easing off acceleration if spinning!)
        //AI如何使用转向输入转向期望的方向。
        [SerializeField] private float m_SteerSensitivity = 0.05f;                                // how sensitively the AI uses steering input to turn to the desired direction
        //AI如何使用加速器达到当前所需的速度
        [SerializeField] private float m_AccelSensitivity = 0.04f;                                // How sensitively the AI uses the accelerator to reach the current desired speed
        //AI如何使用制动器达到当前所需的速度
        [SerializeField] private float m_BrakeSensitivity = 1f;                                   // How sensitively the AI uses the brake to reach the current desired speed
        //汽车将朝着目标的方向移动多远?
        [SerializeField] private fl
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值