分享免费的编程资源和教程

网站首页 > 技术教程 正文

Unity3D三分钟实现简单的赛车漂移

goqiw 2024-10-03 23:35:25 技术教程 9 ℃ 0 评论

提到赛车游戏,大家最关心的应该就是漂移吧?!

从学Unity开始,我就一直在断断续续的研究赛车,因为自己技术太烂、悟性太差等原因,我走了不少弯路。也许你会说,网上那么多资料,你不会查啊?是啊!网上一搜一大把Unity赛车例程,还有好几篇被转发了很多次的赛车漂移实现思路!

wheelcollider:自己技术太烂搞不定

赛车例程几乎都是用wheelcollider来实现的,我一直以为wheelcollider的参数简直就不是人能调的,直到上个星期我才听我好朋友阿亮说wheelcollider的参数不是随便调的,它是按照真实赛车来实现的,所以参数也要按照真实赛车来调

比如赛车车轮的间距、赛车重量、悬挂高度......

就好比小轿车使用了大货车的悬挂参数、大货车使用了小轿车的车轮参数。好吧,我承认我自己也是听得迷迷糊糊!

反正总而言之一句话:wheelcollider的参数的确是非常难调,但是懂的人还是能一下子就调好的(好像说的是废话,我是不懂的- -)

实现思路的文章:自己悟性太差搞不定

然后是关于赛车漂移实现思路的文章,有几篇被转发了很多次的文章,被转发了那么多次,那么漂移应该就是这个实现思路吧?可是大家的实现方式都不一样。我根本不知道漂移的实现是否有一个唯一的标准,如果有,那这个标准又是什么呢?

看了这些文章,漂移我还是没有研究出来,还是一点思路都没有,后来我偶然得到了一份商业赛车游戏的代码,然后漂移就实现出来了~

听我说起来好像挺容易的!其实研究那份代码的过程特别煎熬!唉,不说了,都是泪啊!!!

声明:下文中我要实现出来的漂移仅仅是个简单的漂移,非常简单!!!一个思路而已,并没有用到那份商业赛车游戏中的任何一句代码!

注意:请使用Unity4.X版本,5.X版本的wheelcollider参数又变了,要哭了...

准备工作:

1、下载CarWaypoint插件,使用插件中的demo。点击原文链接查看下载地址~

2、easytouch插件。

导入CarWaypoint插件和easytouch插件,打开CarWaypoints/demo/Car Physics 场景,可以看到一辆车。

Hierarchy面板除了前四项其余全部隐藏,运行起来跑一下,还是挺有漂移的感觉的,这是调wheelcollider参数调出来的。我们现在需要做的是用摇杆操作赛车,用另外一个思路让赛车转弯时会漂移。

创建一个虚拟摇杆取名为:MoveJoystick,InteractionType选择Event Notification

新建一个C#脚本:RockerController,复制以下代码~





RockerController挂到MoveJoystick上。

新建一个脚本:FollowCamera并复制以下代码~



将MainCamera上的SmoothFollowA脚本删除,替换为刚才新建的FollowCamera脚本

打开CarController脚本,添加几个变量

在Start中设置赛车质量中心(越低越不容易翻车)和摇杆回调。

最后,在FixedUpdate中加入三句代码。

看到这里,是不是吓了一跳,这漂移也太简单了吧!一句代码搞定漂移、一句代码搞定动力。

原理是根据摇杆旋转的角度车身也相对应的旋转,加上动力有惯性,就产生圆弧形的漂移了。

思路就是这么简单,也许你认为这实在是太简单得离谱了,可我却花费了一年多的时间才明白。

现在,你只需要花几分钟看看这篇没什么高深技术的文章,就能知道漂移实现的思路。

运行跑一下,有漂移效果,但是似乎不怎么明显,不够顺是不是?

解决方法很简单,在后面两个车轮处加一个向前推的力,在加一个目标方向侧推的力,就能每次都画出完美的漂移弧度。

文章标题叫“三分钟实现简单的赛车漂移”,写的过程中才发现三分钟更本做不完,因为我自己在做的时候,很多代码都是之前写好了的,直接实现漂移部分的代码就可以了,所以感觉三分钟应该够了,就几句代码~

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表