Está en la página 1de 7

18/12/2016

Qusonlosmtodos?Iris3DGamesStudios

ac
m
ra
og
Pr

Back to Top

Buscar

n
i

Search...

Lo ltimo

Go

Opiniones

Cielo en Unity
mayo 3rd | by Yue

RigidBody en Unity
mayo 3rd | by Yue

Published on abril 29th, 2016 | by Yue

Qu son los mtodos?

Mtodo Awake y Start en la Clase


mayo 3rd | by Yue

Los mtodos y los objetos en Unity

Movimiento y Giro de un
GameObjetc
mayo 3rd | by Yue

Los mtodos especican que es lo que hace determinado objeto, por ejemplo podemos pensar en un
objeto coche, el cual tiene un mtodo que se dene como ArrancarMotor, el cual incluye tares como
ingresar la llave en la ranura de encendido, girarla y encender el coche, otro mtodo puede ser
Avanzar, el cual se estipula al presionar el pedal del coche, y que bajo ciertas circunstancias se

La Clase Input en Unity


mayo 3rd | by Yue

efecta o no ese mtodo, por ejemplo que el coche este en buen estado y que tenga combustible.
Las clases por defecto traen mtodos prefabricados, como son el mtodo Awake, Start o Update,
entre otros, estos mtodos estn escritos en el ncleo de Unity, as que para un ejemplo de un objeto
Coche, veamos el siguiente ejemplo.
C#
1
2
3
4

public class Coche{

Creamos una clase denominada coche, la cual es publica, dentro de la misma se declaran los
mtodos respectivos, en este caso Encender Y Mover.

Declaracin de mtodos en C#
Los mtodos se declaran inicialmente especicando el tipo de datos que retornan, un mtodo que no
retorna nada, se declara con la palabra reservada void (Vacio), luego se establece el nombre del
mtodo y de forma opcional un mtodo entre parntesis puede tener o no parmetros, que son
variables que son de uso exclusivo dentro del mtodo, ya entre las llaves se dene el cuerpo del
mtodo. Algo que anotar es que los mtodos pueden ser o no pblicos, en este caso para que asea
accesibles desde otra clase los declaramos como pblicos, ya que si se declaran como Privados, solo
se tendrn acceso a los mismos nicamente desde la clase donde se han declarado.
C#
1
2
3
4
5
6
7
8
9
10
11
12

public class Coche{

// Mtodo Encender.
Public Void EncenderMotor()
{

// Mtodo Mover.
Public void MoverCoche()
{

http://iris3dgames.mihostgratis.com.co/quesonlosmetodos/

1/7

18/12/2016

Qusonlosmtodos?Iris3DGamesStudios

13 }
14
15 }

Pero para hacer esto un poco mas dinmico usaremos dos variables privadas de tipo verdadero o
falso, que se declaran en la cabecera del cuerpo de la clase y los respectivos mtodos pasarn a un
estado verdadero si el coche esta encendido o en movimiento.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

public class Coche{

private bool motorEncendido = false;


private bool cocheEnMovimiento = false;

Public void EncenderMotor()


{
motorEncendido = true;

Public void MoverCoche()


{

cocheEnMovimiento = true;

Pero en este caso para que el coche se mueva, se debe establecer una condicin lgica, que es
vericar que primero este encendido, esto lo hacemos mediante una sentencia condicional conocida
como IF.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

public class Coche{

private bool motorEncendido = false;


private bool cocheEnMovimiento = false;

Public void EncenderMotor()


{
motorEncendido = true;

Public void MoverCoche()


{
// El coche se mueve si el
// motor esta encendido.
if(motorEncendido==true)
cocheEnMovimiento = true;

Ahora bien en otro Script, el cual es asignado a un objeto de juego, creamos un objeto coche en base
de la clase anteriormente estipulada.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

using UnityEngine;
using System.Collections;

public class GameCoche : MonoBehaviour {

// Se define y se crea el objeto Automovil.


public Coche Automovil = new Coche();

void Start () {

}
void Update () {
}

Ya dentro de los mtodos Start encendemos el motor del Automvil al llamar el respectivo Mtodo.
C#
1
void Start () {
2
3 Automovil.EncenderCoche();
4 Debug.Log("Motor Encendido");

http://iris3dgames.mihostgratis.com.co/quesonlosmetodos/

2/7

18/12/2016

Qusonlosmtodos?Iris3DGamesStudios

5
6
7
}

Y dentro del mtodo Update, usamos el mtodo para mover el coche.


C#
1
void Update () {
2
3 Automovil.MoverCoche();
4 Debug.Log ("Coche en Movimiento");
5
6
}

Esto hasta el momento no deber tener ningn sentido, sin embargo esto es programacin orientada
a objetos y de forma abstracta usted en su mente debe visualizar ese coche que es creado, ahora
bien, puede crear varios coches de la clase Coche, con diferentes nombres donde esos objetos se
diferencian unos de otros por su ese nombre nico, por ejemplo CocheDeportivo, CocheTaxi etc,
donde todos van a tener esos dos mtodos de la clase que son construidos, el que enciende el motor
y el que mueve el auto.
Ahora Asigne ese Script GameCoche a un Objeto de Juego, y ver el resultado en la consola de
depuracin de Unity. Ahora bien si desea recuperar el dato de las variables desde la clase que crea el
objeto Automovil, simplemente cambie la denicin de dichas variables a publicas.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

public class Coche{

public bool motorEncendido = false;


public bool cocheEnMovimiento = false;

public void EncenderMotor()


{
motorEncendido = true;

public void MoverCoche()


{

cocheEnMovimiento = true;

Y desde el Script GameCoche, puede recuperar ese dato por ejemplo de la siguiente manera.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

using UnityEngine;
using System.Collections;

public class GameCoche : MonoBehaviour {

public Coche Automovil = new Coche();

void Start () {
Debug.Log (Automovil.motorEncendido); // Coche apagado.
Automovil.EncenderMotor ();
Debug.Log ("Motor Encendido");
Debug.Log (Automovil.motorEncendido); // Coche Encendido.
}

void Update () {

Automovil.MoverCoche ();
Debug.Log ("Coche en Movimiento");
Debug.Log (Automovil.cocheEnMovimiento); // Coche en movimiento.
}
}

Ahora piense que este coche nunca se va a detener, as que sera bueno crear un Mtodo que detenga
el coche, dentro de la clase coche agregue la siguiente variable y el mtodo respectivo para detener el
coche.
C#
1
2
3
4
5
6
7
8
9

public class Coche{

public bool motorEncendido = false;


public bool cocheEnMovimiento = false;
public bool cocheFrena = false;

public void EncenderMotor()


{

http://iris3dgames.mihostgratis.com.co/quesonlosmetodos/

3/7

18/12/2016
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

Qusonlosmtodos?Iris3DGamesStudios
motorEncendido = true;
}
public void MoverCoche()
{
cocheEnMovimiento = true;
}
public void DetenerCoche(){

cocheFrena = true;
cocheEnMovmiento = false;

Ya dentro de el cuerpo de la clase que crea el objeto Automvil, puede detener el coche.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

using UnityEngine;
using System.Collections;

public class GameCoche : MonoBehaviour {

public Coche Automovil = new Coche();

void Start () {
Debug.Log (Automovil.motorEncendido); // Coche apagado.
Automovil.EncenderMotor ();
Debug.Log ("Motor Encendido");
Debug.Log (Automovil.motorEncendido); // Coche Encendido.
}

void Update () {

Automovil.MoverCoche ();
Debug.Log ("Coche en Movimiento");
Debug.Log (Automovil.cocheEnMovimiento); // Coche en movimiento.

// Detener Coche.
if (Input.GetKey (KeyCode.Space))
Automovil.DetenerCoche ();
}
}

El coche se detiene hasta que el usuario presiona la tecla espacio, donde es activado el mtodo
DetenerCoche, y las variables cambian dentro del mtodo, una para indicar que el coche ya no se
mueve y otra para indicar que se ha detenido.

Variables en relacin con los Mtodos


Hasta el momento hemos declarado unas variables, que se denen dentro de una clase, estas
variables tienen un mbito de trabajo diferente de acuerdo a su punto donde han sido declaradas.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

using UnityEngine;
using System.Collections;

public class GameCoche : MonoBehaviour {

private int numero = 100;

void Start()
{

Debug.Log (numero);
}

void Update()
{
Debug.Log (numero);

En este caso la variable declarada e iniciada como numero, es accesible desde cualquier otra funcin o
mtodos, sea personalizada o las predenidas en el motor Unity, como son Start o Update, sin
embargo si una variable se declara dentro de un mtodo, solo ser accesible su contenido dentro de
ese mtodo en que se declaro e inicio.

http://iris3dgames.mihostgratis.com.co/quesonlosmetodos/

4/7

18/12/2016

Qusonlosmtodos?Iris3DGamesStudios
C#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

using UnityEngine;
using System.Collections;

public class GameCoche : MonoBehaviour {

private int numero = 100;

void Start()
{
numero2 = 50;
Debug.Log (numero);
Debug.Log(numero2);
}

void Update()
{
Debug.Log (numero);

En este caso la variable declarada dentro de el mtodo Start, solo es posible acceder a su dato
contenido dentro de esta misma funcin y no se puede recuperar dentro del mtodo Update.

Variables en los parmetros de los Mtodos


Los mtodos pueden de forma opcional recibir parmetros en medio de los parntesis, y pude poner
cuantos crea necesario separando sus nombres por una coma, dando la posibilidad de iniciarlos en
ese momento o cuando creamos conveniente.
C#
1
2
3
4
5
6
7
8
9
10
11

void Start(){

MostrarNumero(50);

void MostrarNumero( numero )


{
Debug.Log( numero );

Como se puede observar creamos un mtodo personalizado dentro de la clase, y el cual es usado
dentro del mtodo Start, donde se le pasa el parmetro, el dato que queremos que se muestre en el
depurador de Unity, as que al momento de usar este mtodo personalizado es obligatorio pasar ese
parmetro, o en tal caso en el momento de declarar la variable parmetro iniciarla con un dato
especico que en ausencia del mismo al usar la funcin es el que se muestra.
C#
1
2
3
4
5
6
7
8
9
10
11

void Start(){

MostrarNumero(); // No se pasa el parmetro.

void MostrarNumero( numero=1520 )


{
Debug.Log( numero ); // Por defecto se muestra 1520

Veamos un ejemplo de un mtodo con varias parmetros.


C#
1
2
3
4
5
6
7
8
9
10
11
12
13

void Start()
{
Suma(50,50); // Se realiza una Suma.

void Suma(numero1=0,numero2=0)
{

Debug.Log(numero1 + numero2);
}

Nuestro mtodo personalizado realiza una suma y muestra el resultado en el depurador de Unity, la
suma se realiza al recibir dos parmetros, que por ausencia de los mismos en el momento de usar la
funcin Suma, se establece un valor por defecto que es cero en esas variables.

http://iris3dgames.mihostgratis.com.co/quesonlosmetodos/

5/7

18/12/2016

Qusonlosmtodos?Iris3DGamesStudios

Mtodos que retornan datos


Haste el momento hemos visto mtodos que no retornan nada, y son denidos mediante la palabra
reservada void que signica vacio. Ahora bien podemos declarar mtodos que retornen algn tipo
de dato, por ejemplo un dato de tipo entero para el retorno de una funcin o mtodo personalizado
se declara con la palabra reservada int alucivo a un nmero entero, o si deseamos que retorne un
tipo de dato cadena de texto usamos string, existen varios tipos de datos fuera de estos que pueden
usar en el retorno de un mtodo.
C#
1
2
3
4
5

string RetornarMensaje(string Mensaje)


{

En este mtodo personalizado llamado RetornarMensaje, se estipula que lo que retorne la funcin al
ser usada, es un dato de tipo cadena de texto, pero es necesario desde el cuerpo de este mtodo usar
la palabra reservada Return ( Retornar ), para especicar lo que se se saca de este mtodo y tiene
que ser un tipo de dato cadena de texto.
C#
1
2
3
4
5
6

string RetornarMensaje(string Mensaje)


{

return Mensaje;

Ahora bien cuando usamos la funcin en este caso es obligatorio pasar el parmetro a la variable
interna de el mtodo.
C#
1
2
3
4
5
6
7
8
9

void Start()
{

string MensajeAMostrar;

MensajeAMostrar = RetornarMensaje("HOLA MUNDO");


Debug.Log(MensajeAMostroar);

Dentro de el mtodo Start usamos el mtodo personalizado RetornarMensaje que almacena en


una variable el retorno desde este mtodo personalizado, que es el mismo parmetro que le hemos
pasado en la variable respectiva al hacer uso del mtodo. Ahora tenga en cuenta que todo lo escrito
tras la palabra reservada return, jams ser ejecutado ya que se sale de el mtodo personalizado.
ya para nalizar pensemos en que este mtodo no recibe ningn parmetro, solo se declara una
variable desde adentro de su cuerpo entre las llaves y con el return se recupera ese dato desde
afuera de la funcin personalizada.
C#
1
2
3
4
5
6

string RetornarMensaje()
{
mensaje = "Hola";
return mensaje;
Debug.Log("Oro Hola"); // Esto jams se ejecuta.
}

Ya nos veremos en otra entrada.


Tags: Clases, funciones, Mtodos, parmetros, retornos, Script, Unity, variables

About the Author


Yue

Related Posts

Mtodo Awake y Start

Sentencias

Variables en C# Unity

http://iris3dgames.mihostgratis.com.co/quesonlosmetodos/

Qu es una clase en

6/7

18/12/2016

Qusonlosmtodos?Iris3DGamesStudios

Mtodo Awake y Start


en la Clase

Sentencias
Condicionales en C#

Variables en C# Unity

Qu es una clase en

SCript

C#?

0Comments

Sortby Oldest

Addacomment...

FacebookCommentsPlugin

Nos gusta crear vdeo juegos, y pensamos


que la mejor opcin para el desarrollo es
Unity Engine, por lo cual compartimos el
conocimiento con personas que estn
interesadas en ingresar a al desarrollo de
productos de entretenimiento usando
este poderoso motor, con el cual podrs
llevar su imaginacin al limite. Aqu
encontraras material que puede ser de su
inters en el aprendizaje.

Iris3D Games Estudios 2007-2016 Todos los Derechos Reservados


Back to Top

http://iris3dgames.mihostgratis.com.co/quesonlosmetodos/

7/7

También podría gustarte