在单机游戏开发中,角色的武器是经常可以更换的,角色更换武器的基本原理是将武器挂接到角色的骨骼动画的虚拟点上,这样角色做动作时,武器也会随着骨骼进行运动,完成了角色挂接武器,这个挂接武器流程是固定的。而在网络游戏中,做挂接武器时就要注意了,下面就以Photon服务器为例给读者介绍如何实现在网络游戏中给角色挂接武器,当然其他网络游戏的挂接方式类似。
在网络游戏中更换角色武器需要注意以下几点:
一、玩家自身更换武器,其他玩家NPC更换武器,实现方式是不一样的。
二、玩家更换的武器或者其他玩家NPC更换的武器,彼此都是可见的。
下面开始具体实现:
首先我们程序在写逻辑时,玩家自身的武器一般是存放到背包里面,需要玩家打开背包从里面把武器取出来挂接到角色的骨骼动画的虚拟挂节点上,这个是固定的流程。网络游戏就要涉及到玩家相互之间是可见的,这就要求挂接的武器彼此都能看到。需要对武器挂接脚本。先分析一下,武器挂接到角色的骨骼上后,角色要播放动作,动作上下左右会有一个位移也就是位置的变换,当然不同的招式也会涉及到武器的方向的变换,更有甚者会有武器的大小变换。这些变换对其玩家都是可见的,这就需要我们对武器的实例化模型做一些处理,如下图所示:
这个是武器的实例化模型上面的脚本,一个是Photon View该组件就是实现彼此可见的,另一个是PhotonTransformView脚本,这个是同步武器的位置,方向和大小的。有一点很重要就是