c# - Unity GameObject Array 可以用来模拟 ToggleGroup 的行为吗
问题描述
这个应用程序有面板,其中包含禁用“播放”的按钮集合。目标是利用 GameOject 数组来管理这些按钮,以便一次只能启用一个按钮。在 ToggleGroup 中,可以在任何时候强制只选择一个 Toggle 对象。
尽管在 Unity c# 技能方面有所增长,但我很容易承认在技能方面比中级更初级。因此,非常感谢任何指导。
第一步是测试 ToggleGroups 的使用,但 Toggles 不能接受与按钮关联的 c# 脚本,启用该脚本时,会从 AssetBundle 加载 Prefab。
一旦 ToggleGroups 被取消,我就一直在研究如何使用 GameObjects 数组。几个来源显示了如何以简单的方式创建按钮数组,并在 Start() 时使按钮处于非活动状态。但我不清楚如何在数组中模拟 ToggleGroup 功能。
这是我的“buttonMgtArray”脚本的基础
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class buttonMgtArray : MonoBehaviour
{
public GameObject[] button;
// Start is called before the first frame update
void Start()
{
button[0].SetActive(false);
button[1].SetActive(false);
button[2].SetActive(false);
}
}
目前没有错误,因为我正在尝试确定如何在 GameObject Array 的上下文中模拟所需的行为。
为了更好地说明我试图调用的行为,这个屏幕截图可能有助于解释目标。
我很高兴地报告@Stanley 有一个非常优雅的解决方案,可以提供切换仿真。关键是将脚本应用于启用隐藏按钮的按钮,即数组引用。这是最终的代码。非常感谢@Stanley
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class buttonMgtArray : MonoBehaviour
{
public GameObject[] buttonArray;
public void DisableAllButtonsExcept(int i)
{
foreach (GameObject buttonGameObject in buttonArray)
{
buttonGameObject.SetActive(false);
}
buttonArray[i].SetActive(true);
}
}
解决方案
推荐阅读
- sql - SQL listagg 和 concat,删除重复项
- python - 数据集 Python 散景的时间轴滑块
- c++ - 运行无效命令 C++ 时优雅退出
- kotlin - Kotlin 可为空的递归泛型边界。如何?
- php - 编码问题 - PHP,MySQL - 奇怪的行为
- asp.net-core - ASP.NET Core 3.1 基础控制器获取当前用户过期
- javascript - 如何使用公钥加密并使用 Javascript(NodeJS 等)使用 Base64 进行编码
- docker - 没有路由到 docker 容器上托管
- sql - 将变量分配给会话nodejs
- r - 修改 R 中的对象,使其与绘图兼容