unity3d CarWaypoints插件
编写初衷:
1、网上没有现成的好用的waypoints插件
2、自己在做一个赛车游戏,如果没有这款插件的话在制作游戏的过程中会被累成狗
3、从来没有接触过插件方面的东西,所以想自己尝试一下
插件用途:
1、顾名思义,赛车游戏专用的插件(本人目前还是个初学菜鸟,等以后接触的游戏类型多了会增强)
2、提供了现成的方法可直接copy传入参数即可做出你想要的酷炫效果。这些方法没写入到插件中,而是单独的写出来让大家可自由延伸扩展
3、圈数检测:一个waypoints data文件通通搞定!绝对不会误判圈数
4、复位点检测:当撞墙、掉水坑里、冲出赛道、卡在近到里……,这个时候通过计算复位点可以获得正确的位置
5、反向检测:想想如果刘翔在比赛的时候跑反赛道了,那是多么悲剧的事!精确检测反向让它往南,绝不往北
6、计算赛道总长度:这个不用解释了。。。
7、插件用途暂且举例这么多,我提供的这些方法基本的赛车游戏已经够用了,总不能让我帮你做一个游戏出来是吧,那样就没有意义了,自己继续扩展
插件优点:
1、快速精确设置路标点
2、可视化编辑
3、Xml储存路标点数据
4、完美结合子物体路标点和数据路标点
5、可扩展性强
6、多平台支持
7、自动对齐地面
8、支持路径读取和数据读取两种方式
9、支持单圈和多圈编辑
......
同样的功能,不用插件之前一个简单的地图我最快也要半个小时
而且路标点不是很精确
用了插件一个地图五分钟搞定,且精确
我这里有一百多个地图,如果不用插件的话我真要累成狗了
插件缺点:
1、一大堆,我都不好意思说,丢人!好歹第一次写插件,不足的地方还望告知
插件截图:
使用说明:
1、创建路标点
菜单栏——CarWaypoints——CreateWaypoints(快捷键:Alt + C)
2、新建路标点数据文件
Project面板右键——Create——Waypoints Data
3、设置参数
选择Hierarchy面板中的Waypoints,拖动新创建的New Waypoints Data到Waypoint Message脚本的第一个参数
Refresh button:刷新路标点
当前路标点被编辑得乱七八糟的时候可以刷新路标点恢复数据库中的路标点
Max Waypoint Dis:两点间最大距离
两个路标点距离太远会影响玩家体验。建议使用默认设置
Line Color:线颜色
设置路标点连线和方向线的颜色
Line Width:线宽度
设置路标点方向线与路标点的距离
Show Waypoint:显示隐藏路标点连接线
如果感觉看花眼了,可以选择隐藏此项
Show Waypoint Dir:显示隐藏路标点方向线
如果感觉看花眼了,可以选择隐藏此项。可更精确的预览设置好的路标点
Align Ground:对齐地面
路标点是否与地面保持一定高度,取消选择则Dis Ground项无意义
Dis Ground:路标点离地面距离
每个路标点距离地面的高度,决定赛车复位后从多高的位置下落!根据所需调整。建议使用默认
Is Around Circle:是否绕圈
地图是单圈还是多圈,如果是单圈则不勾选,如果是多圈则编辑完路标点后在勾选,不然线会看起来非常乱。切记!!!
4、开始编辑路标点
首先,我们把地面碰撞的tag改为:Map_ground。这一步一定要设置,很重要
将编辑器视角移动到赛道起点,然后选择菜单栏——CarWaypoints——Add Waypoint(快捷键:Alt + A)
强烈建议使用快捷键添加,效率很高
添加以后你会看见一条蓝色的线,调整到赛道中央
然后旋转它将他蓝色的轴面对着赛车行驶的方向,如下图:
调整完成后Alt + A继续添加一个新的路标点,如果你上一步没有设置错的话,我们可以看见一个三角形
如果新添加的路标点被地面遮挡住了,那么就向上移动,保证他在地面之上即可
如法炮制继续添加路标点
在弯道处时,我们调整两点之间的距离,以缩短保证精确性
添加时注意方向箭头是不是对准赛道中央,且蓝色的轴对着正确的形式方向
蓝色轴是自动对齐的,你只需要注意当前添加的路标点蓝色轴即可
我们选中并放大一个路标点查看,可以看见路标点下有一条红线,如果你勾选了对齐地面的话,就可以看见
继续添加路标点,让他围地图一圈,添加完成后勾选Waypint Messages的Is Around Circle
这个时候就可以看见最后一个路标点和第一个路标点连接上了
5、保存路标点
路标点编辑完成了,当然要保存,不然我们怎么使用
菜单栏——CarWaypoints——Save Waypoints(快捷键Alt + S)
看见右下角调试输出保存成功的提示就说明保存成功了
6、路标点数据文件的使用
Waypoint Message只是编辑模式中使用的
编辑完成后可以直接删除创建的Waypoints
插件包中我提供了demo,那个demo是网上下载的Car Physics,一个赛车演示
因为我自己的模型涉及版权问题,所以就不能提供给大家,很抱歉
赛车部分的代码和CarWaypoints完全不冲突
我单独写了一个脚本CarController.cs,里面演示了一些基本CarWaypoints功能,这里我就不多解释了
那几个方法我打算抽时间在单独解释一下原理,如果看不懂的到时候看我博客就知道了
路标点数据文件是用XML储存的
解析我提供了路径读取和数据读取两种方式
拖动刚才保存的Waypoints Data文件到CarControl脚本的waypoints data参数上
运行游戏,就可以看见效果了
R键复位,反向行驶和圈数计算会以debug的形式输出
毕竟第一次写插件,插件帮助文档也是第一次写
不足的地方还请包涵指正
CarWaypoints插件演示视频:http://v.youku.com/v_show/id_XODk1NDQyOTg0.html
CarWaypoints插件演示视频下载地址:链接: http://pan.baidu.com/s/1dD9GwjJ 密码: mj4c
CarWaypoints v1.0插件下载地址(包含demo):链接:http://pan.baidu.com/s/1c0yTc0g 密码:v743
本文链接:http://www.cnblogs.com/shenggege/p/4295616.html