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)这个游戏制作的. ...
随机推荐
- 【传递智慧】C++基础班公开课第六期培训
11月11日 二 213 进程间关系和守护进程 11月12日 三 213 信号 11月13日 四 11月14日 五 213 线程(创建,销毁,回收) 11月15日 六 213 线程同步机制 1 ...
- 必须要会的技能(一) 如何实现设计时Binding
今天我们来分享一个主题:DesignTime Binding设计时绑定. 这一项技术可以使用在所有包括WPF及其衍生出来的技术上,比如Sliverlight,当然也包括UWP 先来说明一下设计时Bin ...
- 深入理解Java:注解(Annotation)自定义注解入门
转载:http://www.cnblogs.com/peida/archive/2013/04/24/3036689.html 元注解: 元注解的作用就是负责注解其他注解.Java5.0定义了4个标准 ...
- XML的总结学习
XML 指可扩展标记语言(eXtensible Markup Language). XML 被设计用来传输和存储数据. HTML 被设计用来显示数据. (一切都是为了数据:采集.整理.存储.传输.显 ...
- A query was run and no Result Maps were found for the Mapped Statement 'user.insertUser!selectKey'. It's likely that neither a Result Type nor a Result Map was specified.
使用mybatis时出现异常问题: 有如下的错误 Error querying database. Cause: org.apache.ibatis.executor.ExecutorExceptio ...
- 爱上MVC3系列~Html.BeginForm与Ajax.BeginForm
Html.BeginForm与Ajax.BeginForm都是MVC架构中的表单元素,它们从字面上可以看到区别,即Html.BeginForm是普通的表单提交,而Ajax.BeginForm是支持异步 ...
- [转]Spring——jar包详解
原文地址:http://my.oschina.net/huhaoren/blog/300856?p=1 spring.jar是包含有完整发布的单个jar包,spring.jar中包含除了 spring ...
- NSMutableURLRequest和NSURLConnection用Post方式上传照
需求:上传一张照片和内容,内容包括:用户编辑的内容.经纬度.地点等等,就是类似发一个说说.这就是一个很平常的功能,实现的方式想必各位能想到很多. 接下来我想用系统的NSURLConnection来实现 ...
- 【BZOJ 1178】【APIO 2009】CONVENTION会议中心
http://www.lydsy.com/JudgeOnline/problem.php?id=1178 这道题想了好久没想明白,倍增数组通过看题解很快就明白了,但是一小段区间内应有的最多线段数一直不 ...
- 【BZOJ 1043】【HNOI 2008】下落的圆盘 判断圆相交+线段覆盖
计算几何真的好暴力啊. #include<cmath> #include<cstdio> #include<cstring> #include<algorit ...