【Unity】11.4 车轮碰撞体(Wheel Collider)
分类:Unity、C#、VS2015
创建日期:2016-05-02
一、简介
车轮碰撞体 (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】11.4 车轮碰撞体(Wheel Collider)的更多相关文章
- 【Unity】11.3 基本碰撞体(箱体、球形、胶囊、网格)
分类:Unity.C#.VS2015 创建日期:2016-05-02 一.简介 碰撞组件(Collider) 是另一种必须随刚体 (Rigidbody) 添加的组件,以便允许它和其他组件发生碰撞.或者 ...
- 【Unity笔记】静态碰撞体的陷阱
概念 静态碰撞体(Static Collider):物体勾选为静态Static,有Collider组件,无Rigidbody组件. 静态碰撞体的陷阱 Unity在游戏初始化时,会把所有的静态碰撞体合并 ...
- 在Unity中使用带碰撞体的TiledMap
虽然最近Unity2018版本推出了自己的瓦片地图,但是这个瓦片地图有点BUG,在场景内把瓦片地图铺好做成预制体,动态生成的时候居然丢失了碰撞体,于是我决定还是使用Tiled软件绘制地图并使用Tile ...
- 【Unity】第11章 第三人称角色控制器和碰撞体
分类:Unity.C#.VS2015 创建日期:2016-05-02 一.简介 第三人称视角控制器涉及的相关概念有: 1.刚体(Rigidbody). 2.碰撞体(Collider).包括球体碰撞体( ...
- 关于Unity中自带摇杆与车轮碰撞器的使用
准备 在创建好项目目录的基础上 导入一个第三方的资源包,在Project面板里面 右键---->Import Package---->Custom Package---->easy_ ...
- [原]Unity3D深入浅出 - 物理引擎之碰撞体(Colliders)
通常Colliders会与Rigidbody一起使用,没有添加碰撞体的刚体会彼此相互穿过. 常用碰撞体有以下几种: Box Collider:盒子碰撞体,是一个立方体外形的碰撞体,可调整为不同大小的长 ...
- 胶囊碰撞体(CapsuleCollider)
胶囊碰撞体 (Capsule Collider) 胶囊碰撞体 (Capsule Collider) 由两个半球体与一个圆柱体相连接而构成.它与胶囊 (Capsule) 基元形状相同. 一堆胶囊碰撞 ...
- unity3d中 刚体(Rigidbody) 碰撞体(Collider) 触发器(Is Trigger)
刚体(Rigidbody)的官方(摘自Unity3d的官方指导书<Unity4.x从入门到精通>)解释如下: Rigidbody(刚体)组件可使游戏对象在物理系统的控制下来运动,刚体可 ...
- 【Unity探究】物理碰撞实验
这几天为了准备面试,所以决定对平时学习中的盲点扫盲一下,首先想到的就是物理碰撞.以前没有好好研究过,一直模糊不清,到底什么条件下才可以产生物理碰撞呢?只要其中一个有Rigidbody就可以了吗?所以进 ...
随机推荐
- 7216:Minecraft
总时间限制: 1000ms内存限制: 65536kB 描述 Minecraft是一个几乎无所不能的沙盒游戏,玩家可以利用游戏内的各种资源进行创造,搭建自己的世界. 在Minecraft中,基本的建筑元 ...
- Quartz.NET开源作业调度框架系列(二):CronTrigger-转
CronTriggers比SimpleTrigger更加的灵活和有用,对于比较复杂的任务触发规则,例如"每个星期天的晚上12:00"进行备份任务,SimpleTrigger就不能胜 ...
- 关于Thinkpad的立体声麦克风输入
一直在纠结为什么把mic接上thinkpad后录制的都是单声道. 做了一些功课, 避免后来人走弯路. 1. Thinkpad 内置的声卡是支持立体声输入的, 在Recording Devices里点内 ...
- servlet保存数据的几种方式
In Servlets you have 4 scopes where you can store data. Application Session Request Page
- timerTask任务定时器
简单的一个定时器,异步任务 Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void ru ...
- 细说PHP中strlen和mb_strlen的区别(转)
在PHP中,strlen与mb_strlen是求字符串长度的函数,但是对于一些初学者来说,如果不看手册,也许不太清楚其中的区别.下面通过例子,讲解这两者之间的区别. 先看例子: <?php // ...
- log4j(四)——如何控制不同风格的日志信息的输出?
一:测试环境与log4j(一)——为什么要使用log4j?一样,这里不再重述 二:老规矩,先来个栗子,然后再聊聊感受 import org.apache.log4j.*; //by godtrue p ...
- php性能分析工具xhprof
安装方法: wget http://pecl.php.net/get/xhprof-0.9.x.tgz cp xhprof-0.9.x.tgz /home/www/xhprof.tgz tar zxv ...
- mvc 缓存页面 减轻服务器压力
方法: using System; using System.Collections.Generic; using System.Linq; using System.Web; using Syste ...
- SpringBoot多跨域请求的支持(JSONP)
在我们做项目的过程中,有可能会遇到跨域请求,所以需要我们自己组装支持跨域请求的JSONP数据,而在4.1版本以后的SpringMVC中,为我们提供了一个AbstractJsonpResponseBod ...