精华内容
下载资源
问答
  • unity 车轮碰撞器

    2021-02-01 20:24:05
    车轮碰撞体 (Wheel Collider)专门用于创建汽车或其他移动交通工具。 车轮碰撞体是一种针对地面车辆的特殊碰撞体。它有内置的碰撞检测、车轮物理系统及有滑胎摩擦的参考体。除了车轮,该碰撞体也可用于其他的游戏对象...

    一、简介

    车轮碰撞体 (Wheel Collider)专门用于创建汽车或其他移动交通工具。

    车轮碰撞体是一种针对地面车辆的特殊碰撞体。它有内置的碰撞检测、车轮物理系统及有滑胎摩擦的参考体。除了车轮,该碰撞体也可用于其他的游戏对象。

    二、相关属性

    1、Mass

    质量。该项用于设置车轮碰撞体的质量。

    2、Radus

    半径。该项用于设置车轮碰撞体半径大小。

    3、Suspension Distance

    悬挂距离。该项用于设置车轮碰撞体悬挂的最大伸长距离,按照局部坐标来计算。悬挂总是通过其局部坐标的Y轴延伸向下。

    4、Center

    中心。该项用于设置车轮碰撞体在对象局部坐标的中心。

    5、Suspension Spring

    悬挂弹簧。该项用于设置车轮碰撞体通过添加弹簧和阻尼外力使得悬挂达到目标位置。

    Spring:弹簧。弹簧力度越大,悬挂到达目标位置也就越快。

    Damper:阻尼器。阻尼器控制着悬挂的速度,数值越大悬挂弹簧移动速度越慢。

    Target Position:目标位置。悬挂沿着其方向上的静止时的距离。其值为0时悬挂为完全伸展状态,值为1时为完全压缩状态,默认值为0,这与常规的汽车悬挂状态相匹配。

    6、其他属性

    Forward Friction:向前摩擦力。当轮胎向前滚动时的摩擦力属性。

    Extremum Slip:滑动极值。

    Extmmum Value:极限值。

    Asymptote Value:滑动渐进值。

    Asymptote Va!ue:渐近值。

    Stiffness Faction:刚性因子。

    Slidways Friction:侧向摩擦力。当轮胎侧向滚动时的摩擦力属性。

    三、说明

    车轮的碰撞检测是通过从局部坐标竹由向下投射一条射线来实现的。车轮有一个通过悬挂距离向下延伸的半径,可通过脚本中不同的属性值来对车辆进行控制。这些属性值有motortorque(马达转矩)、brakeTorque(制动转矩)和SteerAngle(转向角)。车轮碰撞体与物理引擎的真佘部分相比,是通过一个基于滑动摩擦力的参考体来单独计算摩擦力的。这会产生更真实的互动行为,但是车轮碰撞体就不受标准物理材质的影响了。

    1、车轮碰撞体的没置

    不需要通过调转或滚动带有车轮碰撞体的游戏对象来控制车辆,因为绑定了车轮碰撞体的游戏对象相对于汽车本身而言是固定的。然而若要调转或滚动车轮,最好的方法就是将车轮碰撞体和可见的车轮分开来设置。

    2、碰撞体的几何结构

    由于行驶的车辆具有一定的速度,因此创建合理的赛道碰撞集合体就显得尤为重要。特别是组成不可见模型的碰撞网格不应当出现小的凹凸不平现象。一般赛道的碰撞网格可以分开来制作,这样会使其更加平滑。

    四、技巧

    可通过在时间管理器中减少物理时间步长来使得汽车的物理系统更加稳定,尤其是针对高速的赛车而言,为了防止容易翻车的情况,可通过脚本降低刚体质量的中心点并应用下压力(该力取决于汽车的速度)。

    展开全文
  • Unity 车轮碰撞器的入门使用(一)

    千次阅读 2018-08-09 23:24:32
    Unity 车轮碰撞器的入门使用(一) 在Unity中,有专门针对载具类的碰撞器,也就是车轮碰撞器( WheelCollider) 本节就专门讲一下官方的操作流程,在这里当然做一些小小的变动,官网传送:...

    Unity 车轮碰撞器的入门使用(一)

    在Unity中,有专门针对载具类的碰撞器,也就是车轮碰撞器( WheelCollider)
    本节就专门讲一下官方的操作流程,在这里当然做一些小小的变动,官网传送:https://docs.unity3d.com/Manual/WheelColliderTutorial.html
    好了,接下来我们来进行操作:
    1.新建项目,在资源商店里面下载一个车辆的模型:
    这里写图片描述
    2.新建一个场景,把刚才的那个车辆的场景拉进去,然后取走车辆和地面:
    这里写图片描述
    3.在车辆里面新建一个空物体,然后拉出来,作为车辆的父物体,改名字为Car,给Car加上刚体,把Mass质量改为1500,然后给车辆模型加上普通的Box Collider,再在Car里新建一个空物体,取名为Wheels,在Wheels下面新建一个空物体,取名为frontLeft,用来做车辆的左前轮碰撞器,调整位置,再复制front Left,移动到右边,注意不要移动Y轴,后轮的两个也可以复制前轮进行简单的移动,这样四个车轮碰撞器就做好了。如下图:
    这里写图片描述
    4.接下来新建一个名为car的脚本,脚本如下:

    using UnityEngine;
    using System.Collections;
    using System.Collections.Generic;
    
    public class Car: MonoBehaviour
    {
        public List<AxleInfo> axleInfos; //车轮的数据链表
        public float maxMotorTorque; // 最大马力
        public float maxSteeringAngle; // 最大转弯角度
    
        public void FixedUpdate()
        {
            float motor = maxMotorTorque * Input.GetAxis("Vertical");//获取前进或者后退的输入
            float steering = maxSteeringAngle * Input.GetAxis("Horizontal");//获取水平轴的转弯输入
    
            foreach (AxleInfo axleInfo in axleInfos)//遍历车轮
            {
                if (axleInfo.steering)//如果前轮或者后轮可以进行转弯
                {
                    axleInfo.leftWheel.steerAngle = steering;//赋予输入的角度
                    axleInfo.rightWheel.steerAngle = steering;//赋予输入的角度
                }
                if (axleInfo.motor)//如果前轮或者后轮可以发动马达
                {
                    axleInfo.leftWheel.motorTorque = motor;//赋予输入的马力大小
                    axleInfo.rightWheel.motorTorque = motor;//赋予输入的马力大小
                }
            }
        }
    }
    
    [System.Serializable]
    public class AxleInfo
    {
        public WheelCollider leftWheel;//左车轮
        public WheelCollider rightWheel;//右车轮
        public bool motor; // 是否可以发动马达
        public bool steering; // 是否进行转弯操作
    }

    5.把脚本拖给Car,然后进行以下赋值:
    这里写图片描述
    然后运行游戏,就可以启动车辆了,如果出现汽车弹跳或者抖动,可以回到车辆模型,看一下有没有加碰撞器,还有就是车轮碰撞器的位置有没有在一个水平线。

    展开全文
  • Unity 车轮碰撞器的入门使用(二)

    千次阅读 2018-08-13 22:39:51
    Unity 车轮碰撞器的入门使用(二) 这节来分析一下车轮碰撞器里面的参数:如图 Mass:车轮的质量大小 Radius:车轮的半径大小 Wheel Damping Rate:车轮的阻尼值大小,必须要大于0。可以控制车辆抖动,减少震动 ...

    Unity 车轮碰撞器的入门使用(二)

    这节来分析一下车轮碰撞器里面的参数:如图
    这里写图片描述

    Mass:车轮的质量大小
    Radius:车轮的半径大小
    Wheel Damping Rate:车轮的阻尼值大小,必须要大于0。可以控制车辆抖动,减少震动
    Suspension Distance:官方翻译为:车轮悬挂的最大伸长距离,在局部空间测量。悬架总是通过局部Y轴向下延伸
    Force App Point Distance:这个参数定义了车轮力的作用点。可以预见从车轮底部静止的部位沿悬挂器方向运动范围。当PrimeAppPosikTosiff= 0时,力将被施加在轮盘底座上。一个更好的车辆将有力量施加在车辆质心以下。
    Center:中心,设置车轮碰撞体在对象局部坐标的中心
    Suspension Spring :悬挂弹簧设置
    Spring:弹簧,数值越大,弹簧力度越大,弹簧弹得也越快,悬挂到达目标位置的速度越快
    Damper:阻尼器,数值越大,悬挂弹簧移动速度越慢,起到降低悬挂到达目标速度的作用,当然对减震,平稳也有作用
    Target Position:目标位置,悬挂沿着其方向上的静止时的距离。其值为0时悬挂为完全伸展状态,值为1时为完全压缩状态,默认值为0,这与常规的汽车悬挂状态相匹配。

    这里还有一些不常用的其他参数
    Forward Friction:向前摩檫力,当轮胎向前滚动时的摩擦力属性。
    Extremum Slip:滑动极值。
    Extmmum Value:极限值。
    Asymptote Slip:滑动渐进值。
    Asymptote Value:渐近值。
    Stiffness:刚性因子。
    Slidways Friction:侧边摩擦力。当轮胎侧向滚动时的摩擦力属性。

    展开全文
  • unity 车轮碰撞器 (一)

    千次阅读 2019-02-21 16:35:34
    using UnityEngine; using System.Collections; using System.Collections....//教程网址 https://docs.unity3d.com/Manual/WheelColliderTutorial.html [System.Serializable] public class SimpleCarControlle...
    using UnityEngine;
    using System.Collections;
    using System.Collections.Generic;
    
    //教程网址 https://docs.unity3d.com/Manual/WheelColliderTutorial.html
    [System.Serializable]
    public class SimpleCarController : MonoBehaviour
    {
        public List<AxleInfo> axleInfos; // the information about each individual axle
        public float maxMotorTorque; // maximum torque the motor can apply to wheel 车轮上的最大动力
        public float maxSteeringAngle; // maximum steer angle the wheel can have  最大转角
    
        public void FixedUpdate()
        {
            float motor = maxMotorTorque * Input.GetAxis("Vertical");
            float steering = maxSteeringAngle * Input.GetAxis("Horizontal");
    
            foreach (AxleInfo axleInfo in axleInfos)
            {
                if (axleInfo.steering)
                {
                    axleInfo.leftWheel.steerAngle = steering;
                    axleInfo.rightWheel.steerAngle = steering;
                }
                if (axleInfo.motor)
                {
                    axleInfo.leftWheel.motorTorque = motor;
                    axleInfo.rightWheel.motorTorque = motor;
                }
                ApplyLocalPositionToVisuals(axleInfo.leftWheel);
                ApplyLocalPositionToVisuals(axleInfo.rightWheel);
            }
    
        }
        // finds the corresponding visual wheel
        // correctly applies the transform
        public void ApplyLocalPositionToVisuals(WheelCollider collider)
        {
            if (collider.transform.childCount == 0)
            {
                return;
            }
    
            Transform visualWheel = collider.transform.GetChild(0);
    
            Vector3 position;
            Quaternion rotation;
            collider.GetWorldPose(out position, out rotation);
    
            visualWheel.transform.position = position;
            //visualWheel.transform.rotation = rotation;
        }
    }
    //侧轮轱辘
    [System.Serializable]
    public class AxleInfo
    {
        public WheelCollider leftWheel;//左轮
        public WheelCollider rightWheel;//右轮
        public bool motor; // is this wheel attached to motor? 是否提供动能
        public bool steering; // does this wheel apply steer angle?  是否能转向
    }
    
    
    

    创建车子,模型和车轮碰撞器分开,方便操作

    在Car上挂载脚本,配置如下:

    运行,俺wasd即可移动转弯,在地面上放些障碍物,还可实现颠簸效果

    展开全文
  • Unity组件_车轮碰撞器

    2019-05-09 15:06:58
    Wheel Collider Mass 车轮重量 Radius 轮胎半径 Wheel Damping Rate 轮胎阻力 Suspension Distance 悬挂 Force App Point Distance 车轮发力点偏移(一般不...Center 车轮碰撞器的位置(一般也不动) Suspe...
  • Unity学习日志_车轮碰撞器简介 1. 简介: 车轮碰撞器是一种针对地面车辆的特殊碰撞体。他有内置的碰撞检测、车轮物理系统和有滑胎摩擦的参考体。除了车轮,该碰撞体也可以用于其他游戏对象。 属性: Mass:车轮...
  • 拿到汽车模型后,我们要给它的四个轮子分别添加车轮碰撞器。调整好碰撞器的大小和悬挂,要和轮胎一样大。 给汽车添加碰撞器和刚体,设置汽车质量,碰撞器底部和汽车底盘一样高。 在代码中我们要设置两个容器,分别...
  • 准备 在创建好项目目录的基础上 导入一个第三方的资源包,在Project面板里面 ...easy_touch.unitypackage 导入完成后,会发现菜单栏多了一个Hedgehog Team Hedgehog Team---->Easy Touch---->Ad...
  • unity3D Collider 碰撞器

    千次阅读 2018-08-02 09:34:54
    unity3D Collider 碰撞器 碰撞器的种类: 1、盒碰撞器(Box Collider...4、车轮碰撞器(Wheel Collider)专用于车辆 5、网格碰撞器(Mesh Collider) 6、地形碰撞器(Terrain Collider) 盒碰撞器(Box Co...
  • unity3d 】碰撞器类型

    千次阅读 2018-06-21 17:30:12
    车轮碰撞器6.地形碰撞器二:盒子碰撞器1、Center设置碰撞器中心位置 默认为 0,0,02、Size 设置碰撞器大小 默认 1 1 13: IsTrigger打钩是取消碰撞器,变成触发器,此时物体就直接穿透地板 (有重力)掉下去碰撞器和...
  • BOX Collider(盒子碰撞器) Capsule Collider(胶囊碰撞器) ...Wheel Collider(车轮碰撞器) 碰撞器与触发器的区别 碰撞器是触发器的载体,而触发器只是碰撞器身上的一个属性。 当Is Trigger=Fa...
  • Unity 物理系统:***Collider(碰撞器

    千次阅读 2018-12-01 19:54:59
    Box Collider(盒子碰撞器) Capsule Collider(胶囊碰撞器) Mesh Collider(网格碰撞器) Sphere Collider(球...Wheel Collider(车轮碰撞器) 碰撞器与触发器的区别 碰撞器是触发器的...
  • 碰撞器 碰撞体类型 Box Collider:方形或者类方形物体,如墙壁、地面、桌子等 Sphere Collider:圆形或者类圆形物体,如球、近圆形角色等 Capsule Collider:柱形或者类人形物体,如人物角色、柱子等 Mesh ...
  • 项目中用到对小车的控制,于是找到Unity Standard Assets中的Car示例进行学习,主要用到的脚本便是小车的主控制器CarController和轮子碰撞器WheelCollider。由于项目需求,还涉及到车轮的控制和对障碍物的碰撞等,...
  • Unity中的车辆控制

    千次阅读 2019-09-02 22:05:32
    Unity3D的车辆控制车轮碰撞器WheelCollider的属性控制车辆刹车         WheelCollider(车轮碰撞器)是一种特殊的地面车辆碰撞器,它具有内置的碰撞检测、车轮物理引擎和一个基于滑移的轮胎摩擦...
  • 真实赛车游戏车轮碰撞器 车轮碰撞器 首先我们要知道车轮碰撞器里面的一些数据,给大家看一张表; 1、我们可以去资源商店里面找一个车子的模型下载下来,要车身和轮胎是分开的。WheelCollider 2、我们要对车子的车身...
  • 注意车轮不要添加别的碰撞器只要wheel collider 另外wheel collider添加在空物体上如 添加完毕后将wheel collider 与车轮模型对齐如 全部处理完成后为车辆添加刚体并将质量调大否则会出现乱跳或者飞出取的情况 ...
  • Unity制作赛车游戏相关技术

    千次阅读 2020-04-03 18:24:37
    一般制作一款赛车游戏,赛车是由车身(车的碰撞器),四个轮子和四个轮子的碰撞器组成 二:WheelCollider组件 ——Mass:车轮的质量 ——Radius:车轮的半径 可能遇到的问题 ——车抖动或者发生奇怪的现象:车身...
  • unity 简单的学习笔记Wheel Collider组件

    千次阅读 2019-02-19 11:18:20
    今天学习的时候发现还有这好玩的一个组件 Description 描述 ...用于车轮的特殊碰撞器。 Wheel collider is used to model vehicle wheels. It simulates a spring and damper suspension setup, and uses a slip...
  • 任务6: 关于WheelCollider车轮碰撞器% ^2 O% b' E" ?; U) K7 L1 O 06:10 任务7: 给车子添加车轮 05:29 任务8: 控制车子的前后行进 任务9: 控制车子的左右转向 04:51 # C6 v5 _/ O1 V& q5 c 任务10: 控制摄像...
  • //拿到车轮碰撞器。 public WheelCollider[] WheelCollider; //拿到车轮。写完这两个程序,需要到unity里关联一下。 public Transform[] WheelTrans; //是否在刹车,保存刹车状态 pri...
  • 欢迎来我博客使用UNITY的WheelCollider车轮系统,该系统自带碰撞检测,和物理摩擦功能,能物理方式实现汽车运行。 祝生活愉快! 2020.05.26 一 ;使用Wheelcollider制作的晒车游戏 1.实现了物理漂移功能。 2.实现了...

空空如也

空空如也

1 2
收藏数 26
精华内容 10
关键字:

unity车轮碰撞器