Unity 6.3
0 онлайн 54 гостей 3 в системе
Вход

MonoBehaviour.OnMouseOver()

Описание

Вызывается каждый кадр, пока мышка находится над Collider.

Призыв к OnMouseEnter происходит в первом кадре, когда мышка находится над объектом. OnMouseOver затем вызывает каждый кадр до тех пор, пока мышь не отойдет, в этот момент OnMouseExit называется.

Это событие отправляется во все скрипты, присоединенные к Collider. Эта функция не вызывается для объектов, принадлежащих слою Ignore Raycast.

Эта функция вызвана на коллайдерах и 2D Коллайдеры, помеченные как триггеры, когда следующие свойства установлены на true:

OnMouseOver может быть короутин.

Примечание: Новые проекты, созданные с этой версией Unity предварительно настроены для использования версии Input System чтобы поддерживать этот обратный вызов в вашем проекте, измените Активная обработка ввода установка в Настройки плеера либо Оба или Диспетчер ввода (старый). Использование только старого менеджера ввода не рекомендуется для новых проектов. Дополнительные сведения см. в Вводимые ресурсы.

//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; } }