编写初衷:

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

unity3d CarWaypoints插件的更多相关文章

  1. unity3d 游戏插件 溶解特效插件 - Dissolve Shader

    unity3d 游戏插件 溶解特效插件 - Dissolve Shader   链接: https://pan.baidu.com/s/1hr7w39U 密码: 3ed2

  2. 出售 unity3d串口插件

    出售unity3d串口插件 利用C++编写,解决了mono库 serialport的bug. serialport串口的bug地方在于: 1.有一些数据无法收到. 2.会丢失第一个字节. 3.延迟 我 ...

  3. Unity3D框架插件uFrame实践记录(一)

    1.概览 uFrame是提供给Unity3D开发者使用的一个框架插件,它本身模仿了MVVM这种架构模式(事实上并不包含Model部分,且多出了Controller部分).因为用于Unity3D,所以它 ...

  4. Unity3D 常用插件

    1.FX Maker FX Maker是一款制作特效的工具,它专为移动操作系统做了优化.FX Maker包括300种Prefab特效,300种纹理结构.100种网格.100种曲线效果.支持英文和韩文, ...

  5. Unity3D 集合插件目录

    http://unity3d.9ria.com/?p=2171 这个基本上很全 下面自己觉的还不错的,当然那些大众的就不列出来了 一.KGFMapSystem Quick Start : http:/ ...

  6. Unity3D TouchScript 插件教程一

    只是个人学习小记,谈不上教程,但是为了命中搜索引擎关键词,只好装逼了:),可能对于大家来说太简单了吧,网上中文教程没搜到 ,只好自己摸索了. 插件资源下载地址:https://www.assetsto ...

  7. [Unity]Unity3D编辑器插件扩展和组件扩展

    1. 插件扩展 1.1. 命名空间 using UnityEditor; using UnityEngine; //非必需,常用到 1.2. 使用语法 [MenuItem("Assets/M ...

  8. 【狼】unity3d iTween插件的学习

    之前在一个三消游戏项目中接触到iTween,最近又要用到,发现iTween真的是一个很好用,省事的插件,有很多函数里包括 Hashtable的他都用一个函数很简单的完成了, 举几个例子 void Lo ...

  9. 反混淆、反编译unity3d动画插件DFTweenLite得到源代码

    出处:http://blog.csdn.net/u010019717 author:孙广东      时间:2015.3.17   23:00 我为什么要得到这个源代码.由于有洁癖! 对于Itween ...

随机推荐

  1. Bootstrap入门(二)栅格

    Bootstrap入门(二)栅格 Bootstrap入门(二)栅格 全局CSS样式--栅格 先引入本地的CSS文件(根据自己的文件夹,有不同的引入地址,我是放在一个新建的名为css的文件夹中) con ...

  2. MySQL基础学习(一) 命令行命令

    1. 命令行登录 mysql -uroot -p 按照提示输入密码 常用登录选项 -u 指定用户 -p 密码 -h 数据库所在主机 -P 端口 -D 指定数据库 2.命令行退出 exit quit \ ...

  3. java 判断两个时间相差的天数

    1.实现目标 输入:两个日期 输出:两个日期相差的天数 2.代码实现 方法1: 通过Calendar类的日期比较.注意:这里需要考虑一下: 日期是跨年份的,如一个是2012年,一个是2015年的   ...

  4. URL编码知识摘抄备忘

    网页工具 http://www.107000.com/T-UrlEncode/ 参考: 维基百科http://zh.wikipedia.org/zh/%E7%99%BE%E5%88%86%E5%8F% ...

  5. 在一周内学会使用 AUTO CAD

    学习目的: 1.使用AUTO CAD绘制电路板外框.元器件封装: 2.借助软件使用,对产品结构有更深入的体会. 学习过程: 1.由于本人急需在短时间内具备简单的二维绘图能力,故没有借鉴.对比网络上其他 ...

  6. System V进程间通信

    一)Linux环境进程间通信(一)管道及有名管道http://www.ibm.com/developerworks/cn/linux/l-ipc/part1/二)Linux环境进程间通信(二): 信号 ...

  7. Hibernate批量处理数据、HQL连接查询

    一.批量处理操作 批量处理数据是指在一个事务场景中处理大量数据.在应用程序中难以避免进行批量操作,Hibernate提供了以下方式进行批量处理数据: (1)使用HQL进行批量操作     数据库层面 ...

  8. 用jsmooth + inno生成exe并制作简单安装包

    思路: 先由 Jsmooth把jar和相关资源打包生成exe,再由Inno把exe和资源文件打成安装包 一  Jsmooth 1 下载 安装 Jsmooth   地址:jsmooth.sourcefo ...

  9. 如何在Actionbarsherlock中一直显示overflow效果?

    对Android开发一致性有一定考虑的程序员应当或多或少对Actionbarsherlock这个库有一定的了解.Actionbarsherlock的产生是因为Android在3.0(API 11)之后 ...

  10. http协议(八)请求首部字段

    请求首部字段 定义:请求首部字段是从客户端到服务器发送请求报文中所使用的字段,里面包含了附加信息.客户端信息以及对响应内容相关的优先级等内容 1.Accept 通知服务器用户代理可处理的媒体类型及媒体 ...