我想使用Unity移动版创建一个魔法珠宝克隆(俄罗斯方块+三消(。到目前为止,我已经使用了 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
方法,它一次生成两个GameObjectParent
,另一个略微倾斜。
我也不知道如何匹配其他块的颜色。我尝试搜索类似的游戏概念以实现统一,但无济于事。也没有教程/指南/指针等,所以我真的必须自己发现它。对这家伙有什么想法吗?有什么指示、指南或任何你能给我的吗?
非常感谢!
首先,我不建议将UI元素用作游戏对象。我们只将UI元素用于UI。考虑改用精灵或四边形。您可以查看制作 2D 游戏的 Unity 教程。
为了匹配,您可以为每种颜色分配一个代码。我通常使用枚举和位掩码。