Unity OnMouseEnter无法正常工作

时间:2015-06-09 10:47:54

标签: c# unity3d

我会在这里发布项目的链接我似乎无法弄清楚如何使我的OnMouseEnter功能正常工作(它已经在以前的项目中工作但现在已经赢了) 。

Google Drive - Space Cadets

using UnityEngine;
using System.Collections;

public class MouseHover : MonoBehaviour {

void Start(){
    GetComponent<Renderer>().material.color = Color.black;
}

void OnMouseEnter(){
    GetComponent<Renderer>().material.color = Color.white;
}

void OnMouseExit() {
    GetComponent<Renderer>().material.color = Color.black;
}
}

这个代码附加到主菜单上的5个菜单项,当鼠标悬停在它上面时,它应该使文本颜色从黑色变为白色,我知道脚本的第一部分可以工作,但是OnMouseEnter是它似乎无法识别的部分(我的想法是应该识别鼠标事件的盒子对撞机并不认识它)。

1 个答案:

答案 0 :(得分:1)

场景中的背景游戏对象与菜单项重叠。将Background游戏对象的位置更改为略微落后于菜单项,OnMouseEnter将注册。此外,更改OnMouseEnter内部材质颜色的代码行实际上并未更改文本的颜色,因为字体材质文本颜色设置为黑色,而TextMesh颜色应设置为白色属性是应该像这样切换的属性:

void Start()
{
    GetComponent<TextMesh>().color = Color.black;
}

void OnMouseEnter()
{
    GetComponent<TextMesh>().color = Color.white;
}

void OnMouseExit()
{
    GetComponent<TextMesh>().color = Color.black;
}

这就是我如何让它发挥作用。