试图为棋盘游戏编写通用代码

时间:2015-02-27 00:54:24

标签: c# generics unity3d

我实际上正在使用统一的棋盘游戏。这是一个棋盘游戏,玩家必须通过声称空的六边形情况来连接两个相反的边界。边界在开始时分配给玩家。

我选择用宝石代表我的空箱子,无人认领时为白色,玩家为红色或蓝色。所以我为所有宝石制作了一个预制件。

为了检查宝石本身和边框之间的连接,我为它们分配了稍大的盒子对撞机,因此它们与其他对象发生碰撞(触发),因此我可以检测声明的宝石是否已连接(直接或不连接)到边框。我一般编写这段代码,因为宝石是一个单一的预制件,天真地认为每个实体都会运行自己的脚本版本。但事实并非如此。

所以我正在寻找另一种检测边界连接的方法,但一般来说,因为电路板的大小是可变的。

提前致谢!

1 个答案:

答案 0 :(得分:2)

您的问题与如何在Unity3D上的游戏对象和组件中打破游戏密切相关。

首先,使用脚本来定义组件。例如,你的宝石可能有一个包含与其状态相关的数据的脚本(你的白色,红色和蓝色宝石意味着空,玩家A和玩家B)。

您可能需要一个游戏对象(通常称为GameManager)来处理与游戏规则相关的所有行为,例如哪个玩家正在玩,玩家是否可以选择特定的宝石以及玩家是否赢得了游戏。根据游戏的复杂程度,最好还有一个带有组件(脚本)的游戏对象来保持你的棋盘状态,而不是简单地从gems对象变换组件中获取它。

在构建游戏后,您不需要碰撞器来检测连接。每次必须检查连接时,只需迭代您的宝石或使用您的电路板状态对象。

修改

帮助您开发游戏的参考资料: