unity官方资源包CarController理解

    最近要写汽车的控制,发现比人物控制难很多,涉及到汽车的很多知识,自己写了一点不忍直视,各种bug,然后被告知untiy官方资源包里有控制脚本,就去学习了一下,然后借鉴了网上的一些教程,在这里表示衷心感谢,为了方面自己和他人,免得自己弄丢,然后贴在这里:

using System;
using UnityEngine;

namespace UnityStandardAssets.Vehicles.Car//此处可改成自己的car名字
{
    internal enum CarDriveType
    {
        FrontWheelDrive,//前驱
        RearWheelDrive,//后驱
        FourWheelDrive//四驱
    }

    internal enum SpeedType
    {
        MPH,//英里
        KPH//千米/h
    }

    public class CarController : MonoBehaviour
    {
        //[SerializeField]是为了成员变量可以在检视面板上显示
        [SerializeField] private CarDriveType m_CarDriveType = CarDriveType.FourWheelDrive; //四驱
        [SerializeField] private WheelCollider[] m_WheelColliders = new WheelCollider[4]; //存放轮子的数组
        [SerializeField] private GameObject[] m_WheelMeshes = new GameObject[4]; //车轮模型
        [SerializeField] private WheelEffects[] m_WheelEffects = new WheelEffects[4];//存放特效数组,粒子,音效等
        [SerializeField] private Vector3 m_CentreOfMassOffset;//车的重心
        [SerializeField] private float m_MaximumSteerAngle;//最大可转角度
        [Range(0, 1)] [SerializeField] private float m_SteerHelper; // 0 is raw physics , 1 the car will grip in the direction it is facing//初始化为0,1是车被控制面对的方向
        [Range(0, 1)] [SerializeField] private float m_TractionControl; // 0 is no traction control, 1 is full interference///0没有牵引力控制系统,1是完整的干扰
     //所有车轮的扭矩  扭矩越大,加速性能越好;扭矩越小,加速性能越差
     //如某车的1挡齿比(齿轮的齿数比,本质就是齿轮的半径比)是3,尾牙为4,轮胎半径为0.3米,原扭矩是200Nm的话,最后在轮轴的扭矩就变成200×3×4=2400Nm,
     //再除以轮胎半径0.3米后,轮胎与地面摩擦的部分就有2400Nm/0.3m=8000N,即800公斤力的驱动力,这就足以驱动汽车了

        //驱动力公式:驱动力=扭矩×变速箱齿比×主减速器速比×机械效率÷轮胎半径
        [SerializeField] private float m_FullTorqueOverAllWheels;//所有轮胎的扭矩
        [SerializeField] private float m_ReverseTorque;//反向扭矩
        [SerializeField] private float m_MaxHandbrakeTorque;//最大刹车扭矩
        [SerializeField] private float m_Downforce = 100f;//下压力
        [SerializeField] private SpeedType m_SpeedType;//速度类型
        [SerializeField] private float m_Topspeed = 200;//最大速度
        [SerializeField] private static int NoOfGears = 5;//档位数
        [SerializeField] private float m_RevRangeBoundary = 1f;//最大滑动距离
        [SerializeField] private float m_SlipLimit;//轮胎下滑给定的阈值
        [SerializeField] private float m_BrakeTorque;//刹车扭矩

        private Quaternion[] m_WheelMeshLocalRotations;//四元数组存储车轮本地转动数据
        private Vector3 m_Prevpos, m_Pos;
        private float m_SteerAngle; //转向角
        private int m_GearNum;//档位数
        private float m_GearFactor;//挡位因子
        private float m_OldRotation;//用于转动计算
        private float m_CurrentTorque;//当前扭矩
        private Rigidbody m_Rigidbody;//刚体
        private const float k_ReversingThreshold = 0.01f; //反转阈值

        //角色信息访问控制,对外接口
        public bool Skidding { get; private set; }
        public float BrakeInput { get; private set; }
        public float CurrentSteerAngle{ get { return m_SteerAngle; }}//当前车轮角度
        public float CurrentSpeed{ get { return m_Rigidbody.velocity.magnitude*2.23693629f; }}//当前速度
        public float MaxSpeed{get { return m_Topspeed; }}//最大速度
        public float Revs { get; private set; }//转速属性
        public float AccelInput { get; private set; } //加速输入

        
  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Unity官方资源下载非常简单。首先,您需要打开Unity官方网站,网址为www.unity3d.com。在主页的顶部菜单栏上,您会看到一个"资源"选项。单击该选项,然后选择"资源"。这将带您到Unity资源下载页面。 在资源下载页面,您可以找到各种类型的资源括2D和3D艺术资源、动画资源、声音效果资源等等。您可以根据自己的需要选择下载。 一旦您找到了合适的资源,只需单击其名称或封面图像,然后就会显示它的详细信息页面。在此页面上,您可以查看有关资源的详细描述、功能、系统要求和其他详细信息。如果您确定要下载该资源,只需单击页面上的"下载"按钮即可开始下载。 Unity资源通常以压缩文件的形式提供,例如.zip或.unitypackage。一旦下载完成,您可以在计算机上选择一个位置来保存这个文件。 下载完成后,您可以打开Unity编辑器。在Unity编辑器的主界面中,选择"Assets"(资源)选项卡,然后选择"Import Package"(导入资源)。这将打开一个文件浏览器,您可以在其中找到并选择您之前下载的资源文件。单击"导入"按钮即可开始导入资源。 导入资源后,您就可以在Unity编辑器中使用这些资源了。您可以将它们拖动到场景或游戏对象中,使用它们创建游戏元素或进行其他操作。 总之,Unity官方资源下载非常简单。只需打开官方网站,找到适合您的资源并下载,然后在Unity编辑器中导入它们即可开始使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值