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

无法通过脚本修改导入Unity的Blender对象材质颜色

解决Blender导入网格无法触发鼠标悬停变色脚本的问题

Hey there! Let's figure out why your color-changing script works perfectly on Unity's default cube but fails on meshes imported from Blender. I've got a few common causes and fixes for you:


1. 缺失碰撞体(最可能的原因)

Unity的OnMouseEnter/OnMouseExit函数依赖碰撞体来检测鼠标交互。默认立方体自带Box Collider,但Blender导入的网格不会自动添加碰撞体。

  • 解决办法:选中你的Blender导入对象,在Inspector面板点击Add Component,搜索并添加Mesh Collider(用于精确碰撞检测),或者选择更轻量化的Box Collider/Capsule Collider(复杂模型用这个性能更好)。如果用Mesh Collider,静态物体保持非凸状态即可,凸形仅适用于可移动对象。

2. 材质属性名不匹配

你的脚本用_Color来设置颜色,但部分Blender导出的材质(比如用Cycles渲染器导出或自定义Shader的材质)可能使用_BaseColor这类不同的属性名。

  • 解决办法:
    1. 选中Blender对象的材质,查看它使用的Shader类型。
    2. 如果是Unity标准Shader,_Color是正确的;如果是自定义Shader,需要查看Shader代码确认颜色属性的准确名称。
    3. 修改脚本中的SetColor参数,比如改成:
      GetComponent<Renderer>().material.SetColor("_BaseColor", mouseOverColor);
      

3. 层级或射线检测设置问题

有时候导入的对象会被放在忽略射线检测的层级,或者主相机的射线检测没有覆盖该对象所在层级。

  • 解决办法:
    1. 检查对象的Layer设置,确保它不在Ignore Raycast层级。
    2. 打开主相机的Camera组件,展开Culling Mask,确认对象所在的层级处于勾选状态。

4. 多子物体导致的Renderer丢失

Blender导入的对象常以父物体+多个子网格的形式存在,而你的脚本挂在了没有Renderer组件的父物体上。

  • 解决办法:
    1. 查看对象的层级结构,确认Renderer组件是在父物体还是子物体上。
    2. 要么将脚本直接挂在带Renderer的子物体上,要么修改脚本遍历所有子物体的Renderer:
      // 替换原脚本中GetComponent<Renderer>()的代码:
      foreach (Renderer rend in GetComponentsInChildren<Renderer>())
      {
          rend.material.SetColor("_Color", mouseOverColor);
      }
      

附上你提供的原脚本(已格式化):

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ChangeColor : MonoBehaviour
{
    public Color startColor;
    public Color mouseOverColor;
    bool mouseOver = false;

    void OnMouseEnter()
    {
        Debug.Log("START");
        mouseOver = true;
        GetComponent<Renderer>().material.SetColor("_Color", mouseOverColor);
        Debug.Log("TESTE");
    }

    void OnMouseExit()
    {
        mouseOver = false;
        GetComponent<Renderer>().material.SetColor("_Color", startColor);
    }
}

内容的提问来源于stack exchange,提问作者vasco_t

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 10:06:43