Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d 如何使一个开关在另一个开关打开时关闭_Unity3d_Togglebutton_Unity Ui - Fatal编程技术网

Unity3d 如何使一个开关在另一个开关打开时关闭

Unity3d 如何使一个开关在另一个开关打开时关闭,unity3d,togglebutton,unity-ui,Unity3d,Togglebutton,Unity Ui,我正在联合制作一个2d游戏。我正在使用UI切换方法,希望在另一个打开时关闭其中一个。我尝试的方法是执行以下代码(InfiniteMode和ActivityMode是两个切换的名称): 我能为实现这一点提供的任何帮助都将是非常好的。您可以向切换中添加侦听器,如下所示: [SerializeField] private Toggle myToggleVar; private void Start() { // UI event listeners myToggleVar.onVal

我正在联合制作一个2d游戏。我正在使用UI切换方法,希望在另一个打开时关闭其中一个。我尝试的方法是执行以下代码(InfiniteMode和ActivityMode是两个切换的名称):


我能为实现这一点提供的任何帮助都将是非常好的。

您可以向切换中添加侦听器,如下所示:

[SerializeField]
private Toggle myToggleVar;

private void Start() {
    // UI event listeners
    myToggleVar.onValueChanged.AddListener(delegate { onToggleExec(); });
}

private void onToggleExec() {
    Debug.Log("Toggled!") //here you need to manipulate your other toggle
}

据我所知,您希望有两个作为一个组的
UI切换
,当其中一个处于启用状态时,其余项目处于禁用状态。为此,您可以使用
Unity UI
中的
Toggle Group
组件。您可以在此处找到有关此方面的更多信息:

如果查看
切换
组件,则有一个
变量。如果您在画布中创建一个空的
游戏对象
,并向其添加
切换组
组件,然后将该
切换组
对象分配给您想要成为该组一部分的所有
切换

它应该可以工作。

您是否尝试用
InfiniteMode.isOn=false
替换
InfiniteMode.onValueChanged.Invoke(false)
[SerializeField]
private Toggle myToggleVar;

private void Start() {
    // UI event listeners
    myToggleVar.onValueChanged.AddListener(delegate { onToggleExec(); });
}

private void onToggleExec() {
    Debug.Log("Toggled!") //here you need to manipulate your other toggle
}