C# Can';t按脚本更改导入的混合器对象材质颜色
我正在尝试应用一个脚本,当光标位于对象顶部时,该脚本会更改材质颜色。以下是脚本:C# Can';t按脚本更改导入的混合器对象材质颜色,c#,unity3d,blender,C#,Unity3d,Blender,我正在尝试应用一个脚本,当光标位于对象顶部时,该脚本会更改材质颜色。以下是脚本: using System.Collections; using System.Collections.Generic; using UnityEngine; public class ChangeColor : MonoBehaviour { public Color startColor; public Color mouseOverColor; bool mouseOver = fa
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);
}
}
使用系统集合;
使用System.Collections.Generic;
使用UnityEngine;
公共类改变颜色:单一行为{
公共色startColor;
公共色鼠标颜色;
bool mouseOver=false;
void onmouseinter(){
Log(“启动”);
mouseOver=true;
GetComponent().material.SetColor(“\u Color”,mouseOverColor);
Debug.Log(“TESTE”);
}
void OnMouseExit(){
mouseOver=false;
GetComponent().material.SetColor(“\u Color”,startColor);
}
}
这段代码在应用于使用unity创建的立方体时非常有效,但当我尝试在导入的网格上使用它时,它不起作用
下面是脚本无法工作的一个导入对象的示例:
有人能帮我理解我该如何解决这个问题吗?
谢谢您导入的网格还没有用于鼠标检测的碰撞器 添加一个,对于像球体这样的简单网格,只需使用
球体碰撞器
编辑:
此外,如果需要经常访问引用,通常应该存储引用
private Renderer rend;
private void Awake()
{
rend = GetComponent<Renderer>();
}
private渲染器rend;
私人空间
{
rend=GetComponent();
}
这就是问题所在,谢谢!还有一件事:它与球体碰撞器一起工作,但当我使用网格或立方体碰撞器时,它就不工作了。这是为什么?@vasco\u t如果没有更多的信息,我就说不出来了。我建议用一些工作/非工作对象的截图来回答这个问题。一般来说,它们都能工作。我用网格对撞机做了一个小测试,没有问题。