如何在 Unity2d 中创建“交互式”网格?

dulongj

我是游戏开发的新手,我正在为这个概念而苦苦挣扎。我正在尝试创建一个网格(我们称之为 4x4),其中一个网格单元格是“活动的”(即有玩家在上面),我希望玩家能够点击相邻的单元格将玩家移动到那里并将该单元格称为新的活动单元格。
最好以编程方式创建这个网格还是我可以使用精灵?我假设我必须使用数组来跟踪活动单元格,但是 Unity 有没有办法为我做到这一点?另外我如何确保玩家正在点击相邻的单元格?

麦卡登

Unity 不会神奇地为您做到这一点。尽管资产商店中可能有一些专门提供此功能的东西,但您自己实现它并不复杂。

2 建议
的方法 我将采用的方法是为保存正方形数据的数组设置一个中心位置。方块需要知道它们在数组中的索引,或者您需要一种方法来根据它们的物理坐标进行数学计算。放置棋盘的中心位置还将跟踪玩家所在位置的索引。然后,您可以在单击一个图块时,检查该图块的索引是否与玩家的索引相邻。如果你使用一维数组来跟踪的平方,你可以使用基本的数学运算,如添加/减去rowSizeindex检查立即高于/低于它,index % rowSize-它比较为零或rowSize-1确保您的指数计算不会覆盖板的左侧/右侧。您可以为此使用 2D 数组,但我发现 1D 更容易做到这一点。我个人在几个棋盘游戏中采用了这种方法。它独立于网格的大小,如果您通过脚本动态生成板,很容易用适当的索引标记方块。

另一种选择是使用光线投射。当一个图块被点击时,从该图块的中心向各个方向创建一个 RayCast,看看它是否击中了玩家。

老实说,第二种解决方案听起来简单得多,但我会采用第一种方法。这样您就可以更深入地了解棋盘的状态以及以更大的灵活性操纵棋盘的能力。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何让 Unity2D 中的对象顺利交互?

如何降低Unity2D中的实例化频率

如何在Unity2D中进行网格捕捉时检查gameObject

如何在Unity2D中以永久的速度移动角色

如何在Unity2D中强制拖放对象

如何在Unity2D中改变玩家的水平移动方向?

如何在unity2D中为枪支制作射击场?

如何在Android中创建交互式地图

如何在Oracle Apex的交互式网格中单击保存按钮时创建警告弹出窗口

在unity2d中如何在碰撞后向对象添加力,以模拟用蝙蝠击打棒球

在Unity2D中,如何检测完全被其他精灵隐藏的精灵?

Unity2D 中的实时实现

Unity2D 中的输入问题

如何在APEX中访问交互式网格的各个单元?

如何在两列之间的交互式网格中应用计算

如何限制和夹紧线渲染器 unity2d 中两点之间的距离

向上,向下,向左或向右滑动时,如何调用另一个类中的方法?Unity2D

如何在 Jupyter (IPython, rpy2) 中获取交互式 R 输出,例如用于进度条?

如何在我的React JS应用中创建交互式复选框?

如何在Angular中创建交互式Google图表(UI事件)?

如何在 ggiraph 的工具提示中插入 R(交互式或非交互式)图形?

如何让 Mandatory 在 apex oracle 的交互式网格中至少添加一行

如何根据某些列值在交互式网格中隐藏行?

如何基于Oracle Apex中的选择列表编写交互式网格查询

Oracle Apex-如何增加交互式网格中数据的字体大小

d3图表库中如何放置交互式按钮控件?

如何将鼠标悬停到D3中的线形图交互式

Unity2D如何使Ai运行随机方向

Unity2D如何忽略与特定对象的碰撞?