C# 转换武器的方法?
我正在用PhotonNetworking开发我在Unity3D中的第一个多人游戏。你可以把它想象成一个2D竞技场游戏,基本上是“在2D中守望” 我已经到了玩家可以通过英雄菜单在不同英雄之间切换的地步(可在繁殖点访问) 这是通过以下方式实现的: 游戏开始:C# 转换武器的方法?,c#,networking,unity3d,multiplayer,photon,C#,Networking,Unity3d,Multiplayer,Photon,我正在用PhotonNetworking开发我在Unity3D中的第一个多人游戏。你可以把它想象成一个2D竞技场游戏,基本上是“在2D中守望” 我已经到了玩家可以通过英雄菜单在不同英雄之间切换的地步(可在繁殖点访问) 这是通过以下方式实现的: 游戏开始: 从我的SQL数据库加载表“hero_data”,并将值存储在我的字典中,其中“data”是一个结构{int-ID,healthpoints,weaponType…} 从SQL db加载表“武器数据”,将其存储在Dict中。。。。。(同一过程)
- 从我的SQL数据库加载表“hero_data”,并将值存储在我的
字典中,其中“data”是一个
结构{int-ID,healthpoints,weaponType…}
- 从SQL db加载表“武器数据”,将其存储在Dict中。。。。。(同一过程)
- 武器数据(字典)包括
int“伤害”、“射程”、“弹药库”、“射击频率”、“飞溅伤害”…
- 我认为<>强>至少3种武器类型强>:光线投射(激光)、射弹实例化(火箭弹)、近战(碰撞检查)
- 武器类型共享公共字段,如
“伤害”、“射程”、“弹药库”…
- 游戏包含大约10个英雄
- 基类
它继承了一个武器:单行为{}
虚拟射击(){raycast firing?}
projectleshooting:warms{}
使用override Shoot(){projectle实例化?}
- 提到的RPC“SwitchHero”可能包含一行类似于
if(hero.weaponType=1){weaponObject.AddComponent();}
- 还是应该使用一个方法实例化ProjectleShooting类
- 或者为每个英雄创建一个包含武器的阵列?(我个人不喜欢这种方法,因为大约有10个英雄,但其中一些拥有相同的武器类型,只是不同的伤害和弹匣值)
你认为这些方法怎么样?您如何设计多人游戏(英雄+)武器切换?我认为每个英雄都有自己的武器集合没有任何问题,因为他们需要单独跟踪弹药数量等信息。这种方法会给你带来问题吗?在这里使用继承/接口也是必须的,因为你当然不想在开火时检测武器的确切类型-让武器决定当它被告知开火时它将如何行动。我只是对接口做了一些研究(不知道它们和它们的逻辑)。如果我错了,请纠正我:你建议我为每个英雄创造一件武器(每个英雄只有一件独特的武器),也许是作为一种尝试?英雄有武器火箭发射器。Rocketlauncher附带有“Rocketlauncher.cs”:
Rocketlauncher:arm,IShootable,IReloadable{…}
?我甚至可能建议多个游戏对象,一个英雄下的每种武器一个-然后禁用/启用它们,并在为英雄切换武器时更新对活动对象的引用。然后是的-你只需要通过它的接口与主动武器交互,所以你不需要知道它是什么类型来告诉它射击/重新装弹/等等。