Unity赛车游戏之移动
这个赛车游戏真是让我费劲脑汁啊。尤其是写这种系统化的东西。
目前漂移还没找到更好的算法,不过基本的移动还是可以做到的。
别看就光是个移动,其实也是很费事的。
Unity给了个对于赛车系统很好的碰撞组件WheelCollider.
把这个给四个轮子一套就好了,

这个组件能调节一些汽车的相关参数,神马悬挂系统,前后摩擦左右摩擦等。或许你看到这会发现,也没有这么难么。。那你就大错特错了
我在移动的方式中试了很多方法,纯刚体控制,纯WheelCollider控制,和混合控制。在我看来混合控制是比较好的选择。
一个一个说吧。
首先是纯刚体控制:
说到刚体就想到力,我力学学的是不太好啊,但是刚体的控制能达到非常真实的效果,而且在后期的漂移上也是比较容易实现的,但是不好弄得是抓地力,用刚体驱动的车很容易就翻车,所以我感觉可以调整重心或者是加一个下压力,来避免翻车的可能,当然并不是只有这一个问题才让我弄别的方式,我用的转向方式是MoveRotation,这就需要很多的条件控制,车向后移动时就应该是反向转向,还有车在静止的状态时应该是不能旋转的。等等问题,让我放弃了纯刚体驱动。
然后是纯WheelCollider控制:
我感觉这个是最坑的,这个组件本身就有很多的问题,首先就是组件的重力问题,会导致在加其他碰撞其的时候出现互相碰撞的问题,调整一下Layer就好了,或者直接把重力改没。其次的他的那些横向摩擦力和纵向摩擦力,看起来是能达到漂移的效果的,其实不然,对于数值的修改得经过很多次的尝试才能调整出来很好的效果,我是没有尝试。而且直接用扭力控制汽车,你的扭力越大对赛车的影响越小,所以启动速度会很慢。因为我的赛车是加入刚体的,因为这个系统也会导致赛车的侧翻,所以就需要把赛车的重心调低一些。从而就衍生出了最后一种混合式。
混合式控制:
我感觉这是目前最合理的控制方式,首先WheelColllider组件,能方便的达到我们想要的赛车真实移动效果,然后我们用刚体控制赛车的重心然后给他加一定的力来控制车的速度,在贴吧上问了个大神,感觉比较好的达成方式就是,用WheelCollider控制前轮的转向,用刚体来给后轮加力使其运动,这样看起来也比较真实,同时方便写出漂移效果。
目前漂移还在测试之中,并没有完全写好。。。等写出来在写一篇文章吧。
Unity赛车游戏之移动的更多相关文章
- Unity的赛车游戏实现思路
unity目前版本实现赛车的技术方案主要有3种: 1.wheelCollider,设置motorTorque.brakeTorque.steerAngle来实现车子的推动和转弯,优点是上手简单,而且很 ...
- Unity创作赛车游戏的四款插件
本文,我们将介绍其中4款:Racing Game Starter Kit.GeNa 2 .NWH Vehicle Physics.Curvy Splines. Racing Game Starter ...
- 使用Unity3D的设计思想实现一个简单的C#赛车游戏场景
最近看了看一个C#游戏开发的公开课,在该公开课中使用面向对象思想与Unity3D游戏开发思想结合的方式,对一个简单的赛车游戏场景进行了实现.原本在C#中很方便地就可以完成的一个小场景,使用Unity3 ...
- 使用Unity3D引擎开发赛车游戏
Car Tutorial 在Unity3D的Asset Store有一个赛车的Demo —— Car Tutorial,看起来特别酷的赛车游戏Demo,不过我还没有下载下来,因为在公司下载Assets ...
- [生活日记]参与unity非游戏行业开发者大会小结
今天下午花了半天时间公司全体都去人民广场参与了一个unity非游戏行业开发者大会,主要了解到unity这款全球顶尖之一的游戏引擎的一个发展史,从05年三个美国人技术研发开始,一直到12年开始引进中国, ...
- 自制Unity小游戏TankHero-2D(5)声音+爆炸+场景切换+武器弹药
自制Unity小游戏TankHero-2D(5)声音+爆炸+场景切换+武器弹药 我在做这样一个坦克游戏,是仿照(http://game.kid.qq.com/a/20140221/028931.htm ...
- 自制Unity小游戏TankHero-2D(4)关卡+小地图图标+碰撞条件分析
自制Unity小游戏TankHero-2D(4)关卡+小地图图标+碰撞条件分析 我在做这样一个坦克游戏,是仿照(http://game.kid.qq.com/a/20140221/028931.htm ...
- 自制Unity小游戏TankHero-2D(3)开始玩起来
自制Unity小游戏TankHero-2D(3)开始玩起来 我在做这样一个坦克游戏,是仿照(http://game.kid.qq.com/a/20140221/028931.htm)这个游戏制作的.仅 ...
- 自制Unity小游戏TankHero-2D(2)制作敌方坦克
自制Unity小游戏TankHero-2D(2)制作敌方坦克 我在做这样一个坦克游戏,是仿照(http://game.kid.qq.com/a/20140221/028931.htm)这个游戏制作的. ...
随机推荐
- Effective java 第2版 - 笔记(01) 单例(Singleton)的枚举(enum)实现
直接上代码: public enum Boss { INSTANCE; private String name; public void doSomeThing() { System.out.prin ...
- mac:在当前文件夹打开terminal终端
System Preferences -> Keyboard -> Shortcuts -> Services -> New Terminal at Folders/New T ...
- 如何配置多个ssh key
上一篇简单学习了下怎样利用git bash上传文件到指定的github项目中,我们来回顾下.首先在本地安装好git,设置好用户名和邮箱(提交时的显示),接着我们生成SSH key把它添加到该项目own ...
- Bootstrap系列 -- 1. 如何使用Bootstrap
一. Bootstrap 简介 Bootstrap 是一个前端框架,使用Bootstrap可以做出很多漂亮的页面,中文官网:http://www.bootcss.com/ 二. Bootstrap核心 ...
- sFlow
http://www.sflow.org/developers/specifications.php http://www.inmon.com/technology/index.php sFlow s ...
- JAVA内嵌数据库H2的使用入门
H2数据库是开源的,非常适合做嵌入式数据库使用,尤其用java编码的时候. H2的优势: 1.h2采用纯Java编写,因此不受平台的限制. 2.h2只有一个jar文件,十分适合作为嵌入式数据库试用. ...
- mysql 安装失败解决方法
在安装mysql的过程中,出现的最麻烦的问题和解决方法 安装后,启动不成功,就卡了,程序就没有响应. 如何解决: 找到mysql安装目录下的 #Path to the database root da ...
- android-之测试框架的使用AndroidTestCase
Android Manifest.xml中所需要添加的配置 <instrumentation android:name="android.test.InstrumentationTes ...
- 对Ip地址进行验证
依据正则表达式 boolean voliate(String ipString) { // 匹配ip正则表达式 String ip = "([1-9]|[1-9] ...
- ASP.NET杂谈-一切都从web.config说起(2)(ConfigSections详解-中)
我们就接着上一篇继续说,上一篇中介绍了ConfigSection的结构和两个简单的DEMO,本篇就说一下SectionGroup.ConfigurationElementCollection和key/ ...