Version: 2017.3

描述

当鼠标悬停在 GUIElementCollider 上时,每帧调用一次。

OnMouseEnter 在鼠标处于该对象上方的第一帧调用。 然后,每帧都调用 OnMouseOver,直到移开鼠标 - 此时,调用 OnMouseExit

在属于 Ignore Raycast 层的对象上,不调用该函数。

This function is called on Colliders marked as Trigger if and only if Physics.queriesHitTriggers is true.

OnMouseOver 可以作为协同程序使用 - 在函数中使用 yield 语句即可。 该事件将发送到附加到 ColliderGUIElement 的所有脚本。

//Attach this script to a GameObject to have it output messages when your mouse hovers over it.
using UnityEngine;

public class OnMouseOverExample : MonoBehaviour { void OnMouseOver() { //If your mouse hovers over the GameObject with the script attached, output this message Debug.Log("Mouse is over GameObject."); }

void OnMouseExit() { //The mouse is no longer hovering over the GameObject so output this message each frame Debug.Log("Mouse is no longer on GameObject."); } }
//This second example changes the GameObject's color to red when the mouse hovers over it
//Ensure the GameObject has a MeshRenderer

using UnityEngine;

public class OnMouseOverColor : MonoBehaviour { //When the mouse hovers over the GameObject, it turns to this color (red) Color m_MouseOverColor = Color.red; //This stores the GameObject’s original color Color m_OriginalColor; //Get the GameObject’s mesh renderer to access the GameObject’s material and color MeshRenderer m_Renderer;

void Start() { //Fetch the mesh renderer component from the GameObject m_Renderer = GetComponent<MeshRenderer>(); //Fetch the original color of the GameObject m_OriginalColor = m_Renderer.material.color; }

void OnMouseOver() { //Change the color of the GameObject to red when the mouse is over GameObject m_Renderer.material.color = m_MouseOverColor; }

void OnMouseExit() { //Reset the color of the GameObject back to normal m_Renderer.material.color = m_OriginalColor; } }