You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 16:16:04