41. CLASE MONOBEHAVIOUR (I)




Como podréis deducir de un mero vistazo a las funciones contenidas en esta clase, estudiarla nos va a llevar un buen rato. La clase Monobehaviour es uno de los miembros destacados del top ten de la API de Unity, así que es vital dominarla con una cierta solvencia.

MonoBehaviour es la clase base de la que derivan todos los scripts. Ni más ni menos. Al ser clase base, salvo en C# no hace falta escribirla expresamente cuando llamemos a alguna de sus funciones, pues Unity la da por sobreentendida. Dicho de otra manera, para Unity es lo mismo esto


MonoBehaviour.Invoke()


que esto


Invoke()



Vamos ya a empezar con las funciones de MonoBehaviour:


FUNCIONES:


Invoke:

function Invoke (methodName : String, time : float) : void


Llama a la función que le pasemos como primer parámetro en el tiempo contado en segundos que le indiquemos como segundo parámetro.

Aunque creo que el funcionamiento de esta función es bastante evidente, nada mejor que verlo con un ejemplo. Y previamente a empezar a diseñar el mismo, vamos a reorganizar nuestra escena en la interfaz de Unity siguiendo estos pasos:

1.- Eliminamos el Gameobject Cube.
2.- Ubicamos el Gameobject Cubo en -2,0,0.
3.- Eliminamos el script vinculado a la esfera.
4.- Colocamos la esfera en 2,0,0.
5.- Asignamos por la vía de arrastre MiPrimerScript en Project al GameObject
PortaScripts. Si por lo que sea no has seguido todas las lecciones y en la
jerarquía no tienes un gameobject con ese nombre, crea un Gameobject vacío y lo
bautizas como PortaScripts.
6.- Doble click en MiPrimerScript para abrir el editor y poder trabajar en él.

Tecleamos esto:


var original : GameObject;

function OtroDeLoMismo() {
Instantiate(original, original.transform.position + Vector3.right,
original.transform.rotation);
}

Invoke("OtroDeLoMismo", 5);


Seleccionamos PortaScripts y en el inspector arrastramos el cubo hasta el valor de la variable Original. Pulsamos el play.

Transcurridos cinco segundos, observaremos que la función Invoke llama a la función OtroDeLoMismo, que a su vez crea una instancia clonada de nuestro cubo una unidad a la derecha. Si queremos, podemos arrastrar la esfera a la variable Original, para que sea ella la clonada.

Un problema que me he encontrado a la hora de hacer este ejemplo, es que no sé si Invoke funciona para llamar a una función que tenga uno o más parámetros, y en caso afirmativo cómo se ha de añadir dicho parámetro al string. Si alguien conoce la respuesta a esto agradecería lo reportara.

Bueno, y como entrante por hoy ya tenemos bastante (yo al menos).

Hasta pronto.

POSTED BY UnityScripts
DISCUSSION 2 Comments

2 Responses to : 41. CLASE MONOBEHAVIOUR (I)

  1. Unknown says:

    hola estoy haciendo un script de movimiento para un juego en unity pero no me funciona,los comandos como MonoBehaviour o input me aparecen como simple texto y sin ninguna funcion he visto en tutoriales y a los demas les aparece resaltado de color azul, pero a mi no me aparece asi y no me funciona el script agraceria su ayuda

  2. Unknown says:

    hola estoy haciendo un script de movimiento para un juego en unity pero no me funciona,los comandos como MonoBehaviour o input me aparecen como simple texto y sin ninguna funcion he visto en tutoriales y a los demas les aparece resaltado de color azul, pero a mi no me aparece asi y no me funciona el script agraceria su ayuda

Leave a Reply

Con la tecnología de Blogger.