Saltar navegación

Activa JavaScript para disfrutar de los vídeos de la Mediateca.

Curso Unity - Vídeo 4 - Script C# - Contenido educativo

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 3 de diciembre de 2024 por Mario S.

19 visualizaciones

Descargar la transcripción

Vale, ahora lo que vamos es con el tema del script, vale, vamos a asociarle un script a ese botón, entonces para hacer eso pues igual que antes me voy a crear una carpeta que la voy a llamar script y voy a ir ordenando de esa manera mi proyecto, vale, entonces tengo asset, vamos a crearnos una carpeta, botón derecho, folder y le llamamos script, vale, dentro de script, botón derecho, create, 00:00:01
y aquí vosotros en la versión 6 lo tenéis diferente, coger uno que está asociado al mono behavior, ¿vale? 00:00:32
Que es la clase de la que ha heredado siempre Unity, aunque ahora lo haya, lo esté modificando, ¿vale? 00:00:39
Entonces yo aquí le voy a dar a C script, Csat, ¿vale? 00:00:47
Pero vosotros acordaros de coger el que está asociado al mono behavior. 00:00:51
me muestra el ficherito del script y me dice 00:00:55
dale un nombre, pues vamos a ponerle 00:00:58
video 00:01:00
prueba 00:01:01
vale, importante 00:01:03
lo que os he dicho en clase, si le cambio 00:01:13
el nombre al fichero 00:01:15
cuando entráis dentro del script 00:01:16
también le tenéis que cambiar 00:01:18
el nombre a esa clase que nos está 00:01:20
creando, vale 00:01:23
y si lo cambio el nombre en la clase 00:01:24
también se lo tengo que cambiar al fichero 00:01:27
Están vinculados y eso es importante 00:01:29
¿Vale? Acordaros de eso 00:01:32
Vale, yo abro mi script 00:01:33
A ver... 00:01:35
Bueno, y me va a enseñar esto 00:01:44
Me va a enseñar que, por defecto, está usando 00:01:46
El System.Collection 00:01:49
El System.Collection.Generic 00:01:51
Y el UnityEngine 00:01:53
El motor de Unity 00:01:54
Me enseña la clase que me ha creado 00:01:55
Con el nombre del fichero 00:01:58
El nombre que le he dado, que ha sido videoprueba 00:02:00
Dos puntos 00:02:02
Hereda de MonoBehaviour 00:02:04
Y me crea dos métodos, el start y el update 00:02:06
Bueno, el start es como el constructor que conocéis de toda la vida 00:02:14
Y el update es un método que se está ejecutando por FPS 00:02:18
Aunque luego lo puedo hacer por tiempo 00:02:22
Entonces, bueno, esto no lo da por defecto 00:02:25
Hay diferentes métodos como el awake 00:02:30
que podemos utilizar y que los utilizaremos 00:02:33
vale, a la hora de asociar 00:02:38
un código a un 00:02:42
a un botón, vale 00:02:44
siempre tenéis que crear un método que sea público 00:02:47
que es el que luego voy a asociar al botón, si no es público, ese botón no lo va a ver 00:02:54
a la hora de asociarlo vais a ver que no lo ve 00:02:58
Vale, entonces recordad hacerlo público. Y a la hora de hacer el script tenéis que pensar si queréis trabajar con variables públicas o privadas. Ya sabéis que las públicas, pues en tema de seguridad no es nada seguro, ¿vale? Aunque podemos trabajar con variables privadas y luego simular de alguna manera que son públicas, ¿vale? 00:03:01
Entonces, esto es, yo tengo, por ejemplo, quiero ocultar, ¿vale? 00:03:25
Que es lo que hemos hecho en clase, ese panel. 00:03:31
Entonces voy a declarar una variable public, que la voy a llamar de tipo gain object, ¿vale? 00:03:33
Que le voy a llamar, os lo diré, mi panel, ¿vale? 00:03:41
Esto es muy cómodo, porque si yo lo guardo, vengo a mi editor de Unity, 00:03:48
me lo compila, ve que no hay ningún problema, yo asocio ahora este script a un GameObject, acordaros que siempre tiene que estar asociado el script a un GameObject, ¿vale? De alguna manera tiene que estar asociado, bueno, no siempre, pero ahora mismo para nosotros siempre, ¿vale? 00:03:55
Entonces, yo voy a crear un entity, un entity no es nada, es un punto en el espacio, entonces, me es muy cómodo, veis que solo tiene el transform, porque no hay nada, o sea, y el transform es una tontería, bueno, puedo cambiar la posición, pero ni la rotación, ni la escala, porque es un punto. 00:04:18
Entonces, tengo el GainObject, cojo el script, lo arrastro y lo suelto 00:04:33
¿Vale? Y fijaros como al declarar esta variable public GainObject, mi panel 00:04:38
Esto lo que me hace es que me va a crear esta entrada en mi script 00:04:45
¿Veis? Pone mi panel, porque Unity, el mi y luego la p 00:04:50
O sea, cuando metéis las mayúsculas, mete esa separación, ¿vale? 00:04:55
Lo entiende, lo interpreta 00:04:59
Y se queda esperando un GainObject 00:05:00
El GameObject, si yo por ejemplo quisiera meter todo el panel, el GameObject va a tener todas las propiedades que están en la ventana, todos los componentes, mejor dicho, que están en la ventana inspector, ¿vale? Y eso puede ser mucha información, tener en cuenta que un motor de videojuegos al final está trabajando con varios GameObject y que los tenéis todos cargados, entonces hay que andarse con mucho ojo, ¿vale? 00:05:03
Entonces, yo puedo meter este panel con todo lo que es el gain object o a lo mejor solo la parte, un componente que es el image, porque yo, por ejemplo, voy a trabajar con el image, imaginaros. 00:05:31
Entonces, en el script lo que voy a hacer es, en vez de declararlo de tipo gain object, voy a meter y voy a decirle que sea de tipo image y le voy a llamar mi panel componente, ¿vale? Punto y coma. 00:05:44
este image no me lo está reconociendo 00:06:08
¿por qué? porque tengo que 00:06:12
cargarle el using 00:06:13
unity 00:06:15
engine.ui 00:06:17
¿vale? 00:06:19
en el momento en el que le ponéis el .ui 00:06:21
ya empieza a reconocer 00:06:24
vale, esto que es lo que ha hecho 00:06:25
si me vengo otra vez al editor 00:06:28
veo que 00:06:30
me lo ha compilado 00:06:33
no me da ningún error 00:06:36
¿Vale? Que os saldría aquí una línea en rojo 00:06:37
Y si ahora veo mi script 00:06:39
Veo que tengo mi panel 00:06:41
Que es de tipo GainObject 00:06:42
Y otra variable pública que es mi panel componente 00:06:44
De tipo Image 00:06:47
¿Vale? 00:06:49
Si no lo hiciera así 00:06:51
Podría hacerlo también cogiendo 00:06:52
Metiendo un tag 00:06:55
Por ejemplo 00:06:57
Podemos coger en panel 00:06:58
El tag es la etiqueta 00:07:01
¿Vale? Que siempre aparece en los GainObject 00:07:02
Y podemos añadir un tag 00:07:05
Entonces aquí le voy a dar al más, le voy a poner mi panel, ¿vale? Por ejemplo, vuelvo a seleccionar el panel y lo etiqueto con la que acabo de crear, mi panel, ¿vale? 00:07:07
Eso me permite, desde el código, por ejemplo, en el start decir, a ver, tengo una variable que se va a llamar, vamos a ver, tipo gainObject, que la vamos a llamar miPanel2. 00:07:21
Y esto va a ser igual a gainObject.findGainObjectWithTag, por ejemplo, ¿vale? Fijaros que hay dos, uno me va a coger todos los objetos que os pone con object con ese tag y otro solo va a coger el primero que encuentre, que es lo que yo quiero. 00:07:42
Vale, entonces le digo, encuéntrame un objeto cuyo nombre es, le hemos puesto mi tag, mi panel me parece, ¿no? Vale, entonces esto me lo va a encontrar, ¿vale? A ver que no me acuerdo como le hemos taggeado, mi panel, sí. 00:08:06
Esto lo va a coger 00:08:24
Es lo mismo que estáis haciendo cuando arrastráis 00:08:27
¿Vale? 00:08:29
Y por ejemplo aquí podría decirle ahora 00:08:30
Pues mi panel 00:08:33
2.setActive 00:08:34
Igual a falso 00:08:38
¿Vale? 00:08:39
SetActive 00:08:43
Igual a falso 00:08:43
¿Qué va a hacer esto? 00:08:44
Me va a coger el gainObject 00:08:47
Lo va a meter en mi panel y mi panel lo va a desactivar 00:08:49
Y como está en el start es como un constructor 00:08:51
vamos a ver si nos lo hace, vale, entonces me vuelvo a mi editor, me lo está compilando, no me ha dado ningún problema, ejecuto y veis como ha cogido ese panel y lo ha escondido, vale, eso es la forma de trabajar sin utilizar variables públicas, 00:08:54
Que yo quiero ahora, por ejemplo, como hemos hecho aquí abajo, coger ese componente image del panel. Podría poner aquí, por ejemplo, mi panel 2.getComponent, ¿vale? Le digo el componente que quiero coger, que es image, le pongo paréntesis, paréntesis, punto, y vamos a ponerle, por ejemplo, lo que nos está diciendo, el enable igual a falso, ¿vale? 00:09:17
Enable igual a falso 00:09:44
Y esto pues lo voy a comentar 00:09:48
Entonces 00:09:50
Si lanzamos esto 00:09:52
Bueno, lo guardo 00:09:54
Nos lo compila Unity 00:09:56
Expectante 00:09:58
En el 22 00:10:02
A ver, que he hecho yo mal aquí 00:10:04
Esto no sé 00:10:06
Que es esto 00:10:09
En el 22 00:10:10
public class 00:10:13
ah, vale 00:10:20
vamos a ponerle aquí la llave que nos falta 00:10:22
ya está 00:10:27
guardamos, compilamos 00:10:28
y volvemos al editor 00:10:30
vale, nos lo compila 00:10:31
ya no nos da ningún error 00:10:34
le doy al play 00:10:35
vale, y entonces, ¿qué es lo que ha pasado? 00:10:38
vamos a verlo mejor así 00:10:41
en vez de play 00:10:42
maximizado, le vamos a decir 00:10:45
vale, que es lo que ha hecho 00:10:47
ahora mismo nuestro programa 00:10:50
bueno, ha cogido 00:10:52
ha cogido el componente 00:10:54
panel, vale 00:10:56
y ha deshabilitado 00:10:57
esta parte del image 00:11:00
veis que ya no está chequeado 00:11:02
eso es lo que he hecho cuando he cogido 00:11:04
el componente image 00:11:06
y lo he deshabilitado 00:11:07
vale, entonces fijaros que si lo habilito 00:11:10
lo vuelvo a ver igual que antes, pero ahora 00:11:12
desde el código lo he deshabilitado. Entonces, son dos formas de trabajar, ¿vale? Vale, esto os lo voy a dejar aquí comentado y voy a ir trabajando con las funciones públicas 00:11:14
que creo son más fáciles ahora mismo para vosotros, ¿vale? Entonces, voy a crearme un, perdón, las funciones, las variables públicas que son más fáciles para vosotros. 00:11:30
Vamos a crearnos un método público que le voy a llamar botón pulsado, ¿vale? 00:11:42
Estos botones pueden recibir, como siempre, estos botones, estos parámetros pueden recibir, estos métodos pueden recibir parámetros de entrada, ¿vale? 00:11:57
Que por ahora no los estoy usando, pero obviamente, como vosotros ya lo habéis hecho, le podemos pasar toda la información que queramos, ¿vale? 00:12:08
Bueno, yo tengo ese botón, ese método de botón pulsado, y aquí le voy a decir, por ejemplo, ahora que me haga un debug log, para que me muestre el hola mundo, ¿vale? 00:12:19
Y entonces, fijaros que lo pongo en público, mostramos un texto tonto, ¿vale? Lo guardo, volvemos al editor, nos lo compila, no nos da ningún problema, vuelvo al botón, me vengo al componente button y aquí juego con esta parte del onclick. 00:12:35
Aquí le voy a dar al más y me va a pedir o me muestra estos parámetros. 00:12:59
El primero es si solo quiero que funcione el botón cuando está en modo edición o cuando está también arrancado y o cuando está arrancado, ¿vale? 00:13:05
Cuando está en ejecución mi proyecto. 00:13:13
Lo segundo que me pide es ese GameObject en el que tengo asociado ese script, ¿vale? 00:13:15
Que en nuestro caso es este GameObject, era este Entity. 00:13:20
Entonces yo cojo, lo arrastro y lo suelto aquí, ¿vale? 00:13:23
Una vez que lo suelto aquí, el gain object, no el script, ¿vale? Que eso lo haremos todos más de una vez. Bueno, una vez que tengo aquí el gain object, si despliego donde pone no function, aquí tengo un gain object que es el propio gain object en el que está ese script, ¿vale? 00:13:26
Y me permite ya directamente hacer estas modificaciones en el transform en el que me permite hacer, utilizar estos métodos, ¿vale? 00:13:46
Y mi script que es videoprueba y dentro de videoprueba, ¿veis? Yo tengo botón pulsado que es la función que acabo de hacer. 00:13:56
Si yo no hubiera puesto aquí el public, si en el public lo guardo, esto no me da ningún error, como no puede ser de otra manera. 00:14:05
¿Vale? No me da ningún error 00:14:24
Pero si ahora vengo al botón 00:14:27
Tengo asociado el green object 00:14:29
Me vengo a mi script 00:14:32
Ya esa opción de 00:14:34
Mostrar botón o botón prueba 00:14:36
O como le haya llamado 00:14:38
Ya no me aparece aquí 00:14:39
Porque no está como pública 00:14:41
Entonces es muy importante que la pongáis siempre como pública 00:14:43
¿Vale? 00:14:46
Entonces vamos a volver a ponerlo como público 00:14:47
Y ya estaría 00:14:50
Lo guardo, nos volvemos a Unity y le digo, ¿dónde estás? Aquí, el GameNorjet, video prueba, botón pulsado. 00:14:57
Vale, lo ejecutamos, lo lanzamos y ahora cuando pulso en el clic, ya me sale el hola mundo, un debug log que me saca por consola el hola mundo. 00:15:15
Vale, entonces nos está funcionando perfectamente. 00:15:29
Yo lo que quiero es desactivar la imagen del botón, por ejemplo. 00:15:35
¿Vale? Entonces, como hemos metido en el código esta variable pública de tipo image 00:15:42
Vamos a meter ahí ese botón y lo vamos a desactivar 00:15:47
Entonces vamos a meter aquí, por ejemplo, que cuando pulse el botón 00:15:50
Además de decir la tontería del hola mundo 00:15:55
Vamos a poner mi panel componente 00:15:57
A ver, mi panel componente 00:16:04
Punto enable 00:16:06
igual 00:16:10
falso 00:16:12
vale 00:16:14
mi panel componente 00:16:18
punto 00:16:22
enable igual a falso 00:16:24
vale 00:16:26
vamos a guardarlo 00:16:29
vámonos a unity 00:16:32
y ahora lo que voy a hacer es 00:16:36
en el script 00:16:38
voy a asociar 00:16:39
Ese, mi panel componente 00:16:41
Que es el que estoy utilizando 00:16:44
Ese hemos dicho que es el del botón 00:16:45
¿Vale? Entonces voy a coger el botón 00:16:47
Lo voy a soltar aquí 00:16:50
¿Veis? Y ahora me coge 00:16:52
Este, aunque me ponga aquí el botón 00:16:54
Si os fijáis en el logo 00:16:55
No es el cubo 00:16:57
Que es el del GameObject, ¿no? 00:16:59
Es solo el del componente Image 00:17:01
Entonces si 00:17:02
Yo le doy ahora, lanzamos la ejecución 00:17:04
Si pulso encima del botón 00:17:08
ahí no lo he lanzado 00:17:10
a ver, vale, si pulso 00:17:13
encima del botón, veis me 00:17:18
desactiva ese componente image 00:17:20
pero 00:17:22
vamos a ver 00:17:24
si lo paramos 00:17:27
vale, bueno, aquí igual 00:17:32
que antes y si fuerais al 00:17:34
botón veríais que 00:17:36
vamos a ver 00:17:37
vamos a lanzarlo 00:17:39
estoy en el 00:17:41
componente button y ahora cuando yo pulso 00:17:44
veréis que este check que acompaña al componente se desactiva, ¿vale? 00:17:46
Que es lo que le he dicho, ¿vale? Ya estaría, ¿vale? 00:17:50
Entonces, esta es la diferencia entre trabajar con variables públicas o directamente con el código, ¿vale? 00:17:53
En principio lo correcto es directamente trabajar sobre, o sea, no utilizar variables públicas, ¿vale? 00:18:05
También es la idea de trabajar con métodos públicos para poder asociarlos en este caso a los botones, ¿vale? Y jugar con el habilitar y el deshabilitar, que quiero deshabilitar el panel, pues entonces le pone, pues tal cual, mi panel set active falso, ¿vale? 00:18:13
Y esto lo que nos va a hacer es que cuando pulso el botón, además de Hola Mundo y de deshabilitar la imagen del botón, también va a deshabilitar el panel. 00:18:33
Vale, entonces, le doy al botón, ah, perdón, claro, lo que me está diciendo es que no se lo he asignado, no le he asignado qué objeto quiero deshabilitar. 00:18:47
Entonces le vamos a pasar directamente todo el paquete 00:19:00
¿Vale? 00:19:03
Y ahora ya sí 00:19:04
Vale, le doy al botón y entonces lo deshabilito todo 00:19:05
Me pone el hola mundo 00:19:12
¿Vale? Si voy al botón 00:19:13
Veis que el email también lo tengo deshabilitado 00:19:16
¿Vale? Como no puede ser de otra manera 00:19:19
Bueno, pues esto es un poco el tema del botón 00:19:22
De los scripts 00:19:25
Y ahora ya os creo 00:19:26
Ya mañana otros vídeos con el tema de 00:19:29
el sonido, las escenas 00:19:33
todo esto, un saludo chicos 00:19:37
hasta luego 00:19:38
Idioma/s:
es
Materias:
Programación
Niveles educativos:
▼ Mostrar / ocultar niveles
  • Formación Profesional
    • Ciclo formativo de grado básico
      • Primer Curso
      • Segundo Curso
    • Ciclo formativo de grado medio
      • Primer Curso
      • Segundo Curso
    • Ciclo formativo de grado superior
      • Primer Curso
      • Segundo Curso
Autor/es:
Mario S.
Subido por:
Mario S.
Licencia:
Dominio público
Visualizaciones:
19
Fecha:
3 de diciembre de 2024 - 11:28
Visibilidad:
Público
Centro:
IES VILLABLANCA
Duración:
00′ 07″
Relación de aspecto:
1.78:1
Resolución:
1920x1080 píxeles
Tamaño:
57.70 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid