1

我想使用 Unity for mobile 创建一个 Magic Jewelry 克隆(俄罗斯方块 + match 3)。到目前为止,我已经使用了 UI 元素,例如UIImage,它们用作单独的块。我创建了一个脚本,它会为盒子提供随机颜色。然后,我将三个块添加到一个名为GameObjectParent.

对于运动,我创建了另一个脚本,每秒减去GameObjectParent' 。anchoredposition.y在碰撞方面,我创建了一个透明的 UI 图像,作为地面触发器,GameObjectParent一旦进入,它就会停止移动。

我现在的问题是颜色块的匹配,更重要的是,实例化GameObjectParent. 我试过用

RectTransform gRect = theCanvas.GetComponent<RectTransform>();
     var groupH = Instantiate(GameObjectParent, new Vector3(0,0,0) , Quaternion.Euler(0,0,0));
     groupH.transform.parent = theCanvas.transform;
     groupH.transform.localScale = new Vector2(1, 1);

但它有点不合时宜。我有一个“起始块”,当前锚定在画布上(50, 810),这是生成的块应该开始的地方。但是,当我尝试这个时:

var groupH = Instantiate(GameObjectParent, new Vector2(80,810) , Quaternion.Euler(0,0,0));

新克隆和生成GameObjectParent的不合适(21392,8712398)。我不知道发生了什么。即便如此,如果我将Instantiate方法附加到按键上,它会一次产生两个GameObjectParents,另一个稍微倾斜。

我也不知道如何匹配其他块的颜色。我尝试寻找类似的游戏概念以求统一,但无济于事。也没有教程/指南/指针等,所以我真的必须自己去发现它。对这些家伙有什么想法吗?有什么建议、指南或任何可以给我的吗?

非常感激!

4

1 回答 1

1

首先,我不建议将 UI 元素用作游戏对象。我们只将 UI 元素用于 UI。考虑改用精灵或四边形。您可以查看 Unity制作 2d 游戏的教程。

对于匹配,您可以为每种颜色分配一个代码。我通常使用枚举和位掩码。

于 2018-08-13T14:01:50.560 回答