如何检查切换是否已切换,然后激活对象作为响应?

Zac*_*ach 1 c# toggle unity-game-engine

我们正在使用 Unity(对我们来说是一个新环境)以及 C#(对我们来说是一种新语言)开展一个学校项目。

我们在编写切换按钮(Unity UI 的一部分)脚本时遇到问题。本质上,我们想要检查是否单击了切换按钮,然后激活路径对象以使它们变得可见。

我们正在使用Toggle.interactable切换按钮的脚本。我们知道,SetActive(true)如果单击切换按钮,则必须使用它来激活路径,但我们不确定应该使用什么来检查是否是这样。

小智 5

Toggle 会发出一个名为 的事件,onValueChanged每当切换值更改时就会触发该事件。您将监听此事件,检查它是否已变为 true,并将您的游戏对象设置为活动状态。因此,在侦听此事件的脚本中,我们将设置一个侦听器。文档中修改后的示例

public class Example : MonoBehaviour
{
    Toggle m_Toggle;

    void Start()
    {
        //Fetch the Toggle GameObject
        m_Toggle = GetComponent<Toggle>();
        //Add listener for when the state of the Toggle changes, to take action
        m_Toggle.onValueChanged.AddListener(delegate {
            ToggleValueChanged(m_Toggle);
        });
    }

    //Output the new state of the Toggle into Text
    void ToggleValueChanged(Toggle change)
    {
        //Activate your game object
    }
}
Run Code Online (Sandbox Code Playgroud)

  • `onValueChanged` afaik 也会发出当前状态,因此您实际上可以直接添加监听器 `onValueChanged.AddListener(ToggleValueChanged)` 和 `private void ToggleValueChanged(bool isToggle){ someGameObject.SetActive(isToggle);}` (3认同)