美文网首页
RPG/ MMORPG游戏动态寻路指示标

RPG/ MMORPG游戏动态寻路指示标

作者: 游戏程序猿 | 来源:发表于2019-06-28 19:53 被阅读0次

相信大家都玩过RPG或者MMORPG类型的游戏,就算没有玩过,也应该见过别人玩,这种游戏其中就有一些寻路的模块。比如新手指引任务,你点击了新手指引,然后就会自动寻路过去,为了让游戏更加有体验感,那么我们可以看到有寻路的指示标会出现,并且它会指引我们玩目的地走去。而且你中途停下,或者去做其他事情,它还是会指示你往任务的目的地去,除非取消任务。并且随着你的移动,你的位置发生变化,指示标也会自动的改变角度啊,距离啊这些。那么这就是RPG/MMORPG游戏非常有特色的一个功能了,这个功能应该怎么做呢?用unity能做出来吗?我们今天就要在unity里面来实现这样的一个功能。

话不多说,先上图:

效果图

这就是一个简单的寻路指示标的demo,素材比较简陋,而且指示标方向也有点问题,换个纹理就可以了,问题不大,不要介意,哈哈。好了,那么我们怎么把它实现呢?不要着急,先说下原理,再上代码。

寻路的方法有很多种,A*,unity导航网格等等的都可以,我这里用的是unity自带的导航网格寻路组件。OK,我们一步一步来看。首先,搭建一个场景,这个就不说了,很简单。嗯,寻路指示标的原理就是需要得到寻路起点,然后得到终点。最后在这两点之间来弄一些指示的地标,来让玩家知道这是我们移动的方向。这个的实现的方法也有多种。找到适合自己的就是最好的,哈哈。好了,首先手图中的粉色的线条,很明显,大部分朋友应该能看出来,这是用unity的线渲染器组件(LineRender)来绘制的,那么这是怎么画出来的呢。OK,我们知道unity寻路组件里面可以获取你烘焙过后的地图里你要导航的路径点,其中的一些关键的拐点,都可以获得,那么我们就可以用线渲染器来把它们绘制出来,这样粉色的路径路线就呈现在我们眼前了,关键代码如下:

我这里用的是射线检测来获取目的地,然后用导航网格组件里的函数移动,那么如果我们的路径点个数大于1个,我们就开始来获取所有的点,再一一的连接起来。为什么可以这么做呢,因为线渲染器可以画多条线,把他们连接起来。好了,这个粉色的路径线搞定,非常简单吧。然后我们再说下比较难一些的指示标,这个其实也很简单。OK,先说下需求,因为大部分的游戏中,指示标都是可以动态改变长度和角度的,所以我们要做的就是这样的,那么方法也有很多,我这里用的是一个Plane(俗称地板),然后给它上材质,这里要注意一点,我们需要把它做成预制体,然后plane的大小要调小点,和Cube一样大就可以了,这个看大家不一样的需求。然后把它渲染组件里的材质里面的shader改成Mobile/Particals/Alpha Blending。这个就是Alpha通道的常规颜色混合,在这里不细说,选这个就对了。OK,原理是怎么样的呢?就是我们在我们得到了起点和终点的距离后,我们就需要生成一个这样的预制体,然后把这个距离给它的图片的纹理的X和Y的比例,也就是Tiling属性里面的值,根据自己实际的情况赋值即可,我这里是把距离赋值给Y,然后这个距离怎么得到的呢,方法很多种,

这里用的一手勾股定理,数学不会的同学可能都忘了这个了是吧,很正常哈哈。上代码:

很简单吧,这个也不会的就去看看高中的数学吧。好了,再来说角度,这个稍微复杂一点,不过也难不倒我们。上代码:

看到这里,估计有很多朋友心态崩了对吧。早知道要好好学数学了。问题不大哈,这还是很简单的数学方面的东西,学了Shader后才知道数学的重要性!注释我都写了,应该没什么问题。这是关键的两步,好了,然后有了这两个,我们就需要把指示标画出来了,怎么弄呢。注释都有,上代码:

关键的显示代码如上所示,其他的都很简单。然后我们的需求就搞定了,没毛病!大概就是这样的一个操作过程,当然这是一部分代码,不能实现效果的,需要完整的代码的朋友可以私信我哦,免费给大家,同时这个方法并不是很简洁的,我这里还有更加优化的方法,大家需要的话可以交流学习哦

unity学习交流群

相关文章

  • RPG/ MMORPG游戏动态寻路指示标

    相信大家都玩过RPG或者MMORPG类型的游戏,就算没有玩过,也应该见过别人玩,这种游戏其中就有一些寻路的模块。比...

  • unity斗地主洗牌发牌算法实现

    如果你要问游戏行业什么游戏开发起来难度小,周期短?是RPG,MMORPG,Moba?亦或是FPS,赛车游戏?...

  • Unity如何制作技能冷却UI

    技能的使用,在很多的游戏里面都会有用到,比如RPG游戏,MMORPG,Moba游戏等,都会用到技能,那么有技能,就...

  • Unity内置寻路算法-导航网格

    寻路算法非常重要,因为绝大部分的游戏都需要用到,比如RPG游戏中的任务系统,任务点击任务后需要自动寻路到目标位置,...

  • Unity内置寻路算法-导航网格

    寻路算法非常重要,因为绝大部分的游戏都需要用到,比如RPG游戏中的任务系统,任务点击任务后需要自动寻路到目标位置,...

  • Unity内置寻路算法-导航网格

    寻路算法非常重要,因为绝大部分的游戏都需要用到,比如RPG游戏中的任务系统,任务点击任务后需要自动寻路到目标位置,...

  • 九天青云志-大型3D国风仙侠角色扮演游戏

    梦幻修仙题材动作MMORPG手游 《九天青云志》是一款仙侠题材的梦幻RPG手游巨作,游戏以即时战斗为主要玩法,提供...

  • 游戏名词

    角色扮演(RPG) (包括A.RPG和S.RPG) RPG游戏是最能引起玩家共鸣的游戏类型。其诞生以ENIX的《勇...

  • #RPG、MOBA、卡牌游戏分析

    RPG游戏 RPG(角色扮演游戏)类游戏是一个庞大的游戏分类,在游戏的不断发展中百花齐放,但是各种rpg类游戏的游...

  • [老游新评][FC] 魔神英雄传:瓦塔路外传【B+】

    本魔神英雄传:瓦塔路外传 平台:FC 类型:RPG+动作 FC的众多RPG游戏放在今天看硬伤较多,其中最关键的还是...

网友评论

      本文标题:RPG/ MMORPG游戏动态寻路指示标

      本文链接:https://www.haomeiwen.com/subject/obtycctx.html