首页 > 解决方案 > 无法通过脚本更改导入的搅拌机对象材质颜色

问题描述

我正在尝试应用一个脚本,当光标位于对象顶部时更改材质颜色。这是脚本:

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);
    }

}

此代码在应用于使用统一创建的立方体时完美运行,但是当我尝试在导入的网格上使用它时,它不起作用。

这是脚本不起作用的导入对象之一的示例: 在此处输入图像描述

有人可以帮我理解我该如何解决这个问题吗?谢谢

标签: c#unity3dblender

解决方案


您导入的网格还没有鼠标检测所需的对撞机。

添加一个,对于像球体这样的简单网格,只需使用Sphere Collider.

编辑:此外,如果您需要经常访问它,您通常应该存储参考。

private Renderer rend;

private void Awake()
{
    rend = GetComponent<Renderer>();
}

推荐阅读