首页 > 解决方案 > Unity 中的 UI 按钮是否有位置?

问题描述

我想做一个游戏,你点击一个按钮,它会影响另一个按钮。我做了一个网格。如果我单击此网格中的一个按钮,我希望它影响另一个按钮的图像。但是我需要一些排序标识符来告诉我哪个按钮是哪个。

在此处输入图像描述

我将预制件用作按钮,然后制作了这些预制件的 5x10 网格预制件。即使没有回答问题,任何朝着正确方向的指导都会有所帮助,谢谢。

标签: c#unity3d

解决方案


这可以很容易地完成

首先让我们编写一个脚本 GridController.cs

在顶部添加对 UI 命名空间的引用using UnityEngine.UI;

现在将所有网格项目放在父容器中(可以是空的游戏对象)

现在让我们开始编码

//Reference parent gameobject
[SerializeField]
private GameObject gridContainer;

//List of all child elements
private List<Button> gridObjects = new List<Button>();

private void Start(){
  //Loop through all children
  for(int i = 0; i < gridContainer.transform.childCount; i++){
    //Add button to list
    gridObjects.Add(gridContainer.transform.getChild(i).gameObject.GetComponent<Button>());
  }

  //Set listeners for buttons

  for(int i = 0; i < gridObjects.Count;i++){
    gridObjects[i].onClick.AddListener(delegate{
      DoSomething();
    });
  }
}

private void DoSomething(){
  //Do Something
}

推荐阅读