Unity3d 如何使一个开关在另一个开关打开时关闭
我正在联合制作一个2d游戏。我正在使用UI切换方法,希望在另一个打开时关闭其中一个。我尝试的方法是执行以下代码(InfiniteMode和ActivityMode是两个切换的名称):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
我能为实现这一点提供的任何帮助都将是非常好的。您可以向切换中添加侦听器,如下所示:
[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
}