3回答
目前正在使用Unity开发一款RTS游戏,是基于帧同步德邦,在寻路方案的选择上有点没想明白,请教一下大家!
因为使用了帧同步,所以客户端代码分了逻辑层和渲染层
寻路是在逻辑层中进行的,这就要求寻路的一致性和稳定性(浮点)。Unity自带的导航网格方案是没法使用了。查了一些资料,发现有一个AStar* PathFinding 插件。
看了下这个插件的代码发现了两个问题:
1.这个插件的代码是和Unity深度耦合的。给用户的接口都是已MonoBehavior的形式提供的。所以必须挂在GameObject上才能使用。但是我逻辑层的代码实现上是和Unity无关的。这样做是为了让逻辑层的代码能在服务器中运行,用于验证对战的结果(PVE防外挂)。这是否意味着,我要修改这个插件的代码,将其核心寻路逻辑和用的到的unity的数据结构(Vector3)从中分离出来,除去对Unity的依赖?
2.这个插件内部是使用多线程异步寻路的,在帧同步的逻辑层应该只能使用同步的寻路方式吧?否则如何做到不同机器各自的怪物的导航时机是在相同逻辑帧中开始的?这是否意味着我要修改这个插件,提供同步接口???但是,使用同步有带来另一个问题。RTS游戏中的单位很多,每个单位都需要单独寻路。如果使用同步寻路是不是会很卡??
邓涛邓涛
快来消灭0回答吧
腾讯游戏学院公众号
