Unity中如何编写GameObject脚本检查Toggle状态实现点击立方体变色?
实现对应Toggle开启时点击立方体变色的方案
步骤1:确保立方体具备交互条件
每个立方体默认自带BoxCollider,检查Inspector面板中该组件是否启用(无需勾选Is Trigger),这是触发鼠标点击事件的必要条件。
步骤2:编写立方体控制脚本
创建名为CubeColorChanger的C#脚本,代码如下:
using UnityEngine; using UnityEngine.UI; public class CubeColorChanger : MonoBehaviour { // 在Inspector面板拖入对应的Toggle组件 public Toggle correspondingToggle; // 可自定义目标变色,也可以用随机颜色 public Color targetColor = Color.red; private Renderer cubeRenderer; void Start() { // 获取立方体的Renderer组件用于修改颜色 cubeRenderer = GetComponent<Renderer>(); } // 鼠标点击立方体时触发的方法 void OnMouseDown() { // 校验Toggle引用有效且处于开启状态 if (correspondingToggle != null && correspondingToggle.isOn) { // 切换为目标颜色,若要随机颜色可替换为下一行 cubeRenderer.material.color = targetColor; // cubeRenderer.material.color = new Color(Random.value, Random.value, Random.value); } } }
步骤3:绑定脚本与对应Toggle
- 将
CubeColorChanger脚本分别挂载到三个立方体上 - 在每个立方体的Inspector面板中,把UI面板里对应的Toggle拖入脚本的
Corresponding Toggle字段(例如Cube1绑定Toggle1,以此类推)
补充说明
- 如果需要点击时在初始色和目标色之间切换,可以在脚本里添加变量保存初始颜色,点击时判断当前颜色再执行切换逻辑
- Toggle Group的单选/多选设置不影响核心逻辑,只要对应Toggle处于开启状态,点击立方体就会触发变色
内容的提问来源于stack exchange,提问作者lime lemonade
相关产品推荐
相关产品推荐

