欢迎光临散文网 会员登陆 & 注册

RTS游戏建筑放置机制

2022-09-28 16:31 作者:游戏开发RAIN  | 我要投稿

在RTS游戏中,典型的就是魔兽世界冰封王座,还有红警等比较经典的。那么我们在游戏中可以创建英雄祭坛来创建英雄,然后建造兵营来创建小兵等。但是我们建造建筑物的时候,有些地形不能建造,有些已经建造过的地方上也不能再建造其他的建筑物。而且能够直观的显示出来,哪些地方可以建造,哪些地方不能建造。这就有很好的游戏体验感了。这里我也做了一个这样的建筑物放置的Demo,先来看看效果吧

我们从图中就可以看到这个效果非常的不错了。首先创建建筑的时候,如果当前地形没有已经生成的建筑,那么就可以进行创建,如果当前选中的区域有其他的建筑存在,就显示范围,看看能不能在它附近创建,然后不能创建的地方我们显示红色,可以创建的地方显示绿色。这个效果就出来了。那么是怎么做的呢?接下来我们相信的讲解下。

首先创建建筑这方面的就很简单,没什么难度,不多说。主要说创建建筑时的细节显示。原理也是比较容易理解。首先我们把整个地形用一个二维坐标系模拟出来。因为不需要高度,所以只需要2个坐标就可以了。分别是X和Z。我这里用Gizmos绘制出来。


然后我们就通过鼠标点的位置,再和整个模拟地图对应点的位置进行对比,如果这个位置附近有建筑那么就会显示红色,同时按键不能进行创建建筑,如果这个位置附近没有建筑就会显示绿色,也能创建。那么这个附近是怎么算的呢?这个就需要提前设置好你的建筑类型了。在这里我画个图来说


灵魂画手,不要介意。我们以这个建筑为例,这个建筑我把它认为是占地9个单位的。然后把它勾勒出来。如上图手绘。黑色是这个建筑,然后把它分为9块,然后我们第一次创建是觉对可以创建的,创建好了以后,绿色部分就不现实了,但是它的占地区域我已经记录在脚本里面了,第二次创建新的建筑时,如果在它旁边进行创建,那么就会和它上面的脚本里面的占地数据进行对比,如果都在同一地点,就会显示红色,否则就是绿色。而且是9个区域逐一检测。有多少就检测多少。最终我们就可以实现想要的效果了。这里最后把核心的代码附上

代码很容易理解,就是对比坐标值就行了。这里只截图了关键代码,其他的无关紧要的没有截图。篇幅有限。需要Demo的朋友可以来找我

RTS游戏建筑放置机制的评论 (共 条)

分享到微博请遵守国家法律