【问题标题】:Unity OnMouseEnter not workingUnity OnMouseEnter 不起作用
【发布时间】:2018-05-22 16:41:36
【问题描述】:

我将在此处发布项目的链接我似乎无法弄清楚如何使我的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 是它似乎无法识别的部分(我的想法是应该识别鼠标事件的盒子碰撞器没有识别它)。

【问题讨论】:

  • 如果您不在问题中发布代码,我严重怀疑您是否会得到任何帮助...
  • @Thomas 问题出在项目的某个地方,我不确定它是否是我的代码,所以我在那里发布了整个项目的链接,但我可以发布它使用的 c# 代码跨度>
  • 你可以从发布你的事件代码开始,你如何连接事件,你怎么知道它不起作用......
  • @Thomas 是否解释了您需要了解的内容??
  • 请告诉我们调用OnMouseEnter()的代码

标签: c# unity3d


【解决方案1】:

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

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

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

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

这就是我让它工作的方式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多