c# - Unity 中的 UI 按钮是否有位置?
问题描述
我想做一个游戏,你点击一个按钮,它会影响另一个按钮。我做了一个网格。如果我单击此网格中的一个按钮,我希望它影响另一个按钮的图像。但是我需要一些排序标识符来告诉我哪个按钮是哪个。
我将预制件用作按钮,然后制作了这些预制件的 5x10 网格预制件。即使没有回答问题,任何朝着正确方向的指导都会有所帮助,谢谢。
解决方案
这可以很容易地完成
首先让我们编写一个脚本
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
}
推荐阅读
- angular - Angular text binding on multiple condition
- c# - 撤销 IdentityServer4 中特定会话的访问令牌(参考)
- hive - 使用当前日期进行 Hive 分区
- javascript - 如何对使用“compose”构建的自定义元素进行单元测试?
- python - 如何从 Python 中的原始文本转换熊猫数据框?
- c# - Enterprise Architect API for Adding Image to Image Manager
- asp.net-mvc - Html Helper 不包含 Highsoft 的定义
- c++ - 解析为 time_point 时格式化的时间字符串给出了一个小时的差异
- android - 将对象旋转为全屏
- javascript - 无法显示更新状态(REACT-NATIVE)