Описание
Вызывается каждый кадр, когда указатель мыши находится над Collider.
Вызов OnMouseEnter Происходит в первом кадре, когда мышь находится над выбросом. Затем OnMouseOver вызывается в каждом кадре до тех пор, пока мышь не уйдет, после чего OnMouseExit называется.
Эта функция не вызывает протеста для объектов, слою их игнорирование Raycast.
Эта функция реакции для коллайдеров, помеченных как триггер, тогда и только тогда, когда Physics.queriesHitTriggers имеет значение true.
OnMouseOver может быть сопрограммой, просто використовуйте оператор yield в функции. Это событие отправляется всем скриптам, прикрепленным к Collider.
//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;
}
}