对于赛车游戏来说,最关键的就是对赛车的实时监测,从而进行实时排名、比赛完成判断、行进方向判断。只有有了实时监测,才能实现游戏的可控性、实现对赛车游戏的管理,才算得上是一款赛车游戏。
今天我主要记录的就是我的赛车游戏制作道路监测点的过程。
道路监测点,就是道路赛车碰撞检测点,监测点会密布在整条赛道上,尽量的均匀散开。用来实时记录赛车当前位置、计算排名、检测赛车行进是否正常等。
足够长:能够检测到道路上所有车辆的过往
足够扁:能够检测到车辆就够了,没必要宽
足够高:太低可能会碰不到车辆的碰撞体
我觉得可能我用的Cube模型都有些复杂
下图中的灰色长板就是一个 道路监测点,在使用时需要将Mesh Renderer钩去掉,达到只能检测不能看见的目的,其中重要的就是Box Collider组件了,用来检测碰撞,同时勾选Is Trigger选项。那么勾选和不勾选有什么区别呢?不勾选这就是一个含有物理碰撞的碰撞体,不勾选这就是一个只能检测出碰撞却不能实际发挥物理作用的检测体。
图中就是道路上的一串检测体,基本均匀分布在道路上,并且所有的碰撞体都是Z轴朝向汽车前进方向,作用就是方便到时对汽车行进方向进行检测及对自动运行车辆进行方向导航
下图中绿色的横线就是游戏所有道路上的所有碰撞体
我一共有两条路线,不过两条路线有重叠的一部分,于是我将所有道路划分成了四段
RoadColliderGroup03(包含一组道路监测点)
与道路监测点对应的就是四段道路
我的路线一采用了(RoadColliderGroup00、RoadColliderGroup01、RoadColliderGroup03)
道路监测点也就是(RoadGroup00、RoadGroup01、RoadGroup03)
一块儿构成了下图中的红色标注的一圈内围城市公路赛道,
我的路线二采用了(RoadColliderGroup00、RoadColliderGroup02)
道路监测点也就是(RoadGroup00、RoadGroup02)
一块儿构成了下图中的蓝色标注的一圈外围景观草皮赛道
每次进入游戏时,读配置文件,得知当前是哪条赛道,然后取出该赛道的若干组监测点,装载到当前赛道监测点数组中,供当前游戏使用
如我使用
//所有路段合集(部分子路段可组合成一个新的赛道,每个路段对象都含有一组道路监测点)
public GameObject[] AllRoad = null;
//当前赛道所有道路监测点集合
public List<GameObject> RoadColliderGroup =
本文发布于:2024-02-04 14:24:04,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170709264356345.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |