如何在统一中进行独家切换?
How to have exclusive toggle in unity?
我找不到适合我需要的解决方案,所以这是我的问题。
我下载了一个资产,它提供了很多 现成组件,我使用 8 Toggles,但它们必须是独家,这是我在编辑器中的聊天记录:
首先,我想将脚本附加到每个开关,并使用一个函数在开关上启动 onAction 触发器时关闭每个按钮,然后仅打开启动触发器的开关 。但它不会起作用,因为关闭按钮启动也是 onAction 触发器,所以我进入 无限循环 。
有更好的工作方式吗?
您可以创建一个 class,其中包含所有切换 (GameObject.Find(name)) 作为成员,当您在切换脚本上调用 onAction 时,只需告诉 class 哪个切换按钮被按下。然后在 class 中更新图形用户界面并控制所有切换按钮
您需要使用ToogleGroup 一次只能打开1 个。
查看文档 here
public class Topic : MonoBehaviour
{
public ToggleGroup Topiz;
Toggle maybe1;
// Use this for initialization
void Start ()
{
}
// Update is called once per frame
void Update ()
{
maybe1 = Topiz.ActiveToggles().FirstOrDefault();
}
}
我找不到适合我需要的解决方案,所以这是我的问题。
我下载了一个资产,它提供了很多 现成组件,我使用 8 Toggles,但它们必须是独家,这是我在编辑器中的聊天记录:
首先,我想将脚本附加到每个开关,并使用一个函数在开关上启动 onAction 触发器时关闭每个按钮,然后仅打开启动触发器的开关 。但它不会起作用,因为关闭按钮启动也是 onAction 触发器,所以我进入 无限循环 。
有更好的工作方式吗?
您可以创建一个 class,其中包含所有切换 (GameObject.Find(name)) 作为成员,当您在切换脚本上调用 onAction 时,只需告诉 class 哪个切换按钮被按下。然后在 class 中更新图形用户界面并控制所有切换按钮
您需要使用ToogleGroup 一次只能打开1 个。 查看文档 here
public class Topic : MonoBehaviour
{
public ToggleGroup Topiz;
Toggle maybe1;
// Use this for initialization
void Start ()
{
}
// Update is called once per frame
void Update ()
{
maybe1 = Topiz.ActiveToggles().FirstOrDefault();
}
}