使用Unity3D 自主实战开发的赛车游戏实例,关键点记录 (四)之道路监测点

一.综述

对于赛车游戏来说,最关键的就是对赛车的实时监测,从而进行实时排名、比赛完成判断、行进方向判断。只有有了实时监测,才能实现游戏的可控性、实现对赛车游戏的管理,才算得上是一款赛车游戏。
今天我主要记录的就是我的赛车游戏制作道路监测点的过程。

二.什么是道路监测点

道路监测点,就是道路赛车碰撞检测点,监测点会密布在整条赛道上,尽量的均匀散开。用来实时记录赛车当前位置、计算排名、检测赛车行进是否正常等。

三.道路监测点的制作

1.制作长方体碰撞对象

1)长方体要足够长足够扁足够高的长方体

足够长:能够检测到道路上所有车辆的过往
足够扁:能够检测到车辆就够了,没必要宽
足够高:太低可能会碰不到车辆的碰撞体

2)模型要够简单

我觉得可能我用的Cube模型都有些复杂

3)我的游戏实例

下图中的灰色长板就是一个 道路监测点,在使用时需要将Mesh Renderer钩去掉,达到只能检测不能看见的目的,其中重要的就是Box Collider组件了,用来检测碰撞,同时勾选Is Trigger选项。那么勾选和不勾选有什么区别呢?不勾选这就是一个含有物理碰撞的碰撞体,不勾选这就是一个只能检测出碰撞却不能实际发挥物理作用的检测体。
碰撞检测板
图中就是道路上的一串检测体,基本均匀分布在道路上,并且所有的碰撞体都是Z轴朝向汽车前进方向,作用就是方便到时对汽车行进方向进行检测及对自动运行车辆进行方向导航
碰撞检测组
下图中绿色的横线就是游戏所有道路上的所有碰撞体
所有碰撞体

2.管理道路监测点

1)一般情况下,道路监测点统一放置在一个列表中即可

2)将起点终点的道路监测点使用Tag标记成如:StartTag、EndTag

3)每条路线都需要一个列表管理该路线所有道路监测点

4)我的实例

(1)道路监测点的管理

我一共有两条路线,不过两条路线有重叠的一部分,于是我将所有道路划分成了四段

  1. RoadColliderGroup00(包含一组道路监测点)
  2. RoadColliderGroup01(包含一组道路监测点)
  3. RoadColliderGroup02(包含一组道路监测点)
  4. RoadColliderGroup03(包含一组道路监测点)
    与道路监测点对应的就是四段道路

    1. RoadGroup00(包含一组道路网格)
    2. RoadGroup01(包含一组道路网格)
    3. RoadGroup02(包含一组道路网格)
    4. RoadGroup03(包含一组道路网格)

    我的路线一采用了(RoadColliderGroup00、RoadColliderGroup01、RoadColliderGroup03)
    道路监测点也就是(RoadGroup00、RoadGroup01、RoadGroup03)
    一块儿构成了下图中的红色标注的一圈内围城市公路赛道,
    RoadGroup01
    我的路线二采用了(RoadColliderGroup00、RoadColliderGroup02)
    道路监测点也就是(RoadGroup00、RoadGroup02)
    一块儿构成了下图中的蓝色标注的一圈外围景观草皮赛道
    RoadGroup

每次进入游戏时,读配置文件,得知当前是哪条赛道,然后取出该赛道的若干组监测点,装载到当前赛道监测点数组中,供当前游戏使用
如我使用

//所有路段合集(部分子路段可组合成一个新的赛道,每个路段对象都含有一组道路监测点)
public GameObject[] AllRoad = null;
//当前赛道所有道路监测点集合
public List<GameObject> RoadColliderGroup = 
  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity3D赛车游戏可以通过使用Unity引擎的功能和脚本来创建。你可以使用Unity的物理引擎来模拟赛车的运动和碰撞,使用Unity的渲染功能来创建逼真的赛车场景和特效。 在游戏中,你可以创建赛车模型,并将其添加到场景中。你可以使用脚本来控制赛车的移动和操纵,例如使用键盘或触摸控制赛车的方向和速度。 你还可以创建赛车道路和赛道障碍物,使用Unity的碰撞检测功能来检测赛车与障碍物的碰撞,并实现相应的物理效果。 此外,你可以使用Unity的粒子系统来创建火花、烟雾和爆炸效果,以增加游戏的视觉效果。 综上所述,通过使用Unity引擎的功能和脚本,你可以创建一个逼真的赛车游戏,包括赛车模型、赛道、碰撞检测、物理效果和特效。希望这些信息能对你有所帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [使用Unity3D 自主实战开发赛车游戏实例关键点记录 (一)之赛车游戏总体介绍](https://blog.csdn.net/narutojzm1/article/details/51308894)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Unity3D赛车游戏+脚本基础](https://blog.csdn.net/m0_58367586/article/details/127901530)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值