# 制作用于控制多个游戏对象开启/关闭状态的开关 ### 制作开关 我们创建一个 Toggle(开关) ,为其添加 **Udon Behaviour**。 创建一个 Udon Graph Assembly 脚本,命名后点击 Open Udon Graph 以打开节点编辑界面。 [![66f0f83761b1a78ab14e52e193ae636e.png](https://docs.vrcd.org.cn/uploads/images/gallery/2024-09/scaled-1680-/sKsk1dbv5IwVtefl-66f0f83761b1a78ab14e52e193ae636e.png)](https://docs.vrcd.org.cn/uploads/images/gallery/2024-09/sKsk1dbv5IwVtefl-66f0f83761b1a78ab14e52e193ae636e.png) 我们准备两个变量,两个变量全部设置为公开(Public): - 一个 **GameObject\[\]** 类型,充当 `Target`(目标游戏对象)。 - 一个 **Toggle** 类型,充当 `Toggle` (开关)。 > 实际上这里的 **Toggle 类型变量** 无需设置,在这个案例用不到,仅作参考。 我们准备了一个 Custom Event ,在这一节点的输入框中输入 `IsTrigger` 充当接收事件。 我们再将 Target 变量拖入面板中,利用 GameObject 的 Get activeSelf 获取游戏对象的开启/关闭状态,再用 Boolean 的 UnaryNegation 反转 bool 变量(`true->false`,`false->true`),我们最终得到的 bool 将会是目标游戏对象(在此例中为后处理游戏对象)开启/关闭状态的相反值。 我们创建一个 GameObject 的 **SetActive** 节点,这个节点可以在接收事件以后将 instance(实例)的开启/关闭状态设置为下方 **value bool** 的数值。
`true`打开游戏对象
`false`关闭游戏对象
[![b34c8397ae17295c28e9d23e183392f6.png](https://docs.vrcd.org.cn/uploads/images/gallery/2024-09/scaled-1680-/uxLFR7eEvHBZJZhR-b34c8397ae17295c28e9d23e183392f6.png)](https://docs.vrcd.org.cn/uploads/images/gallery/2024-09/uxLFR7eEvHBZJZhR-b34c8397ae17295c28e9d23e183392f6.png)