【发布时间】:2019-10-03 00:34:31
【问题描述】:
这个应用程序的面板带有一组按钮,这些按钮在“播放”状态下被禁用。目标是利用 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);
}
}
【问题讨论】:
标签: c# arrays unity3d gameobject