45. CLASE MONOBEHAVIOUR (V)











OnMouseEnter:

function OnMouseEnter () : void


Esta función es llamada cuando el cursor entra en un collider o un GUIElement.

Veámoslo con un ejemplo muy sencillo. Tecleamos:


function OnMouseOver(){
Debug.Log("El mouse está sobre el objeto " + gameObject.name);
}


Arrastramos el script al cubo. Pulsamos play y observaremos que cuando el cursor está sobre el cubo, se imprime la frase debajo de la ventana game.


Esta función no será llamada en objetos que pertenezcan a Ignore Raycast layer.

OnMouseEnter puede ser una corrutina, siempre que utilicemos una instrucción Yield en la función, y el evento será enviado a todos los scripts vinculados con el collider o GUIElement


OnMouseOver:

function OnMouseOver () : void


Esta función es llamada cada frame en la que el mouse permanezca sobre el Collider o GUIElement, a diferencia de onMouseEnter, que sólo se dispara cuando entra el mouse.

Como esta función se actualiza cada frame, podemos hacer cosas como la del ejemplo:


function OnMouseOver () {
renderer.material.color += Color(0.1, 0, 0) * Time.deltaTime;
}


Si pulsamos play y mantenemos el cursor sobre el cubo, lentamente éste se irá tornando de color rojizo, debido al paulatino aumento del componente R (red) de su RGB.

OnMouseOver puede ser, como OnMouseEnter, una corrutina, simplemente utilizando la declaración yield en la función



OnMouseExit:

function OnMouseExit () : void


Esta función es llamada cuando el ratón ya no esta sobre un GUIElement o un Collider.

Podemos completar con ella el script anterior:


function OnMouseOver () {
renderer.material.color += Color(0.1, 0, 0) * Time.deltaTime;
}

function OnMouseExit () {
renderer.material.color = Color.white;
}


Cuando se retira el mouse del cubo, éste retorna a su color blanco inicial.

Como las precedentes, la función no es llamada en objetos que tienen el Ignore Raycast Layer y puede formar parte de una coroutine.


OnMouseDown:

function OnMouseDown () : void


Es llamada cuando el usuario pulsa el botón del mouse sobre un GUIElement o Collider.

Por seguir con el ejemplo anterior, podríamos añadir al script:


function OnMouseOver () {
renderer.material.color += Color(0.1, 0, 0) * Time.deltaTime;
}
function OnMouseExit () {
renderer.material.color = Color.white;
}
function OnMouseDown () {
renderer.material.color = Color.blue;
}


Al presionar el botón del ratón, el cubo se torna de color azul.

A esta función le es de aplicación lo indicado para las precedentes en relación con Ignore Raycast y la posibilidad de ser una corrutina.

POSTED BY UnityScripts
DISCUSSION 1 Comment

One Response to : 45. CLASE MONOBEHAVIOUR (V)

  1. Ozeotropo says:

    En el ejemplo de OnMouseEnter tienes puesta la función OnMouseOver.
    Enhorabuena por el blog, magnífico trabajo!

Leave a Reply

Con la tecnología de Blogger.