【发布时间】:2019-06-20 20:06:09
【问题描述】:
我有一副牌,我将它们作为精灵放置在我的 Unity 游戏中(每张牌都作为单独的精灵)。它们被放置成一堆乱七八糟的东西......我怎样才能确保首先拿起牌堆中的最上面的牌?即我不希望用户选择向下的第 5 张卡片,即使它部分可见...
【问题讨论】:
-
最上面的卡片是否有更高的 z 索引?
-
在您的游戏控制器(或在您的架构中更有意义的其他地方)中有一个字段,用于跟踪顶部的卡片。然后当您检测到对任何卡片的点击时,请参考该字段。
-
谢谢你们两位的cmets。 @RyanWilson 不幸的是,如果我更改 z 索引并不重要,因为它们没有完全相互重叠。我已经做到了,这样你就可以看到其他卡片从下面的牌堆中伸出来。目前,用户可以选择下方卡片的边缘。
-
@Ruzihm 你有我如何实现的代码示例吗?尽管我熟悉 C#,但我才刚刚开始使用 Unity,因此不确定一切是如何联系在一起的! ://
-
创建一个脚本,命名为“GameManager”。给它一个
public GameObject topCard字段。把它放在一个名为“游戏管理器”的空游戏对象上。将场景中的顶部卡片游戏对象拖到检查器中可见的游戏管理器的“顶部卡片”字段中。在点击发生时调用的方法中,获取对游戏管理器组件的引用(缓存GameObject.Find("Game Manager").GetComponent<GameManager>()的结果或使GameManager成为singleton )然后您可以使用gameMan.topCard获取顶级卡片游戏对象。