00:00:00
[Música]
00:00:04
muy buenas en un vídeo anterior te
00:00:06
enseñe cómo hacer un sistema multi
00:00:08
lenguaje en múnich para que el programa
00:00:11
reconociera el idioma del dispositivo en
00:00:13
un juego y cambiar a dicho idioma de
00:00:15
forma automática
00:00:16
todo eso lo hicimos sin programar si no
00:00:19
viste el vídeo te recomiendo que antes
00:00:21
de ver este vayas a ver lo primero
00:00:23
porque te enseño cómo instalar el
00:00:25
sistema de localizaciones de juniti y
00:00:26
vincularlo a nuestros componentes de
00:00:28
texto pero hoy voy a enseñarte cómo
00:00:31
manejarte con sistemas de texto
00:00:33
dinámicos se trata de textos que pueden
00:00:35
ser alterados durante el juego como los
00:00:37
textos que aparecen en una novela
00:00:38
interactiva o una novela gráfica por
00:00:40
ejemplo o el texto que puede aparecer si
00:00:43
tienes un contador de monedas como ese
00:00:45
que acabo de hacer ahí arriba a la
00:00:47
izquierda en un primer vistazo voy a
00:00:48
enseñarte cómo cambiar este texto de
00:00:51
monedas y luego más adelante voy a hacer
00:00:53
un componente de texto dinámico aquí
00:00:54
como el que pudiera tener una novela
00:00:56
interactiva o una novela gráfica y te
00:00:59
voy a enseñar cómo cambiarlo a
00:01:00
diferentes idiomas así que vamos allá de
00:01:04
acuerdo como expliqué en el vídeo
00:01:06
anterior
00:01:07
es instalar todo lo que tiene que ver
00:01:09
con el sistema de localizaciones del
00:01:10
unite y eso ya lo he hecho aquí así que
00:01:13
de nuevo te invito a que veas el primer
00:01:15
vídeo si no lo has hecho para saber cómo
00:01:17
instalar este paquete de localizaciones
00:01:19
pero lo único que tengo que hacer ahora
00:01:20
es venirme aquí a window y abrir mi
00:01:23
ventana de localizaciones que está aquí
00:01:26
voy a crearme una nueva entrada que va a
00:01:28
corresponderse con la de las monedas y
00:01:31
te seleccionado tres idiomas que van a
00:01:33
ser español italiano y el inglés por
00:01:35
ejemplo donde voy a cambiar en cada uno
00:01:37
de ellos este texto y además como es
00:01:40
dinámico es decir como cada vez voy a
00:01:42
tener una cantidad de monedas distintas
00:01:43
esto va a hacerse de una forma un poco
00:01:46
diferente a cómo se haría un texto
00:01:48
tradicional estático de modo que voy a
00:01:51
crearme aquí en la entrada y voy a
00:01:53
rellenar estos textos deben poner un
00:01:55
nombre
00:01:57
a continuación tendría que rellenar
00:01:59
estas casillas con los diferentes tipos
00:02:01
de texto en los diferentes idiomas pero
00:02:03
antes de eso voy a cerrar aquí porque lo
00:02:05
que necesito es crear una variable que
00:02:08
me diga cuántas monedas tengo de modo
00:02:10
que aquí en la carpeta de script voy a
00:02:12
quedarme uno que va a estar asociado a
00:02:14
mi componente de texto es muy importante
00:02:17
que este script que me cree esté aquí
00:02:19
asociado sea un componente de el lugar
00:02:22
donde tengo el texto exactamente aquí
00:02:25
donde tengo este tex-mex prof
00:02:29
[Música]
00:02:31
muy bien no lo tengo no hubiera asociado
00:02:33
y lo voy a abrir para crear me la
00:02:35
variable de las monedas todo esto mes
00:02:37
ahora va a ser algo muy sencillito voy a
00:02:39
crear una variable pública
00:02:43
te lo tengo no necesito nada más me voy
00:02:46
a volver a juniti y ahora es muy
00:02:48
importante que recordemos el nombre de
00:02:51
la clase que hemos creado y el nombre de
00:02:53
la variable porque es lo que vamos a
00:02:54
escribir en la ventana de la tabla de
00:02:57
localizaciones
00:03:06
muy bien fijaos cómo va el formato es
00:03:08
quedó aquí la primera parte en inglés
00:03:09
ihab y luego le he puesto el nombre de
00:03:12
la clase es decir este de aquí y a
00:03:16
continuación el nombre de la variable y
00:03:18
ambos están puestos entre corchetes muy
00:03:21
importante tenemos que poner esta
00:03:23
casilla aquí en el modo
00:03:25
escribiríamos todo lo que está puesto ya
00:03:27
lo tengo escrito y cuando lo hayamos
00:03:29
terminado pulsamos aquí en el botón de
00:03:30
debod y ya está de modo que voy a hacer
00:03:33
exactamente lo mismo para las otras dos
00:03:35
casillas
00:03:44
muy bien pues ya tengo los tres lo tengo
00:03:46
en inglés en español y el italiano no sé
00:03:49
si exactamente se dice así en italiano
00:03:50
espero que me perdonéis quienes sepáis
00:03:53
hablar este idioma y ya tengo puesto
00:03:55
todos los textos ahora sólo tengo que
00:03:57
venirme aquí al texto de las monedas y
00:03:59
dentro de mi componente de texto voy a
00:04:01
abrir estos tres puntitos y voy a
00:04:04
decirle que menos localice me ha abierto
00:04:07
este nuevo componente aquí le voy a
00:04:09
reseñar mi string de tabla de monedas y
00:04:12
muy importante tenemos que bajarnos
00:04:15
hasta esta ventana que tenemos aquí le
00:04:18
vamos a dar a más y voy a bajar hasta
00:04:20
objeto de referencia me pone dos
00:04:23
casillas en la primera de ellas debe
00:04:25
poner el nombre de la clase y en la
00:04:27
segunda de ellas lo voy a arrastrar el
00:04:28
texto que tengo justo aquí arriba de
00:04:31
acuerdo pues aquí lo tengo está en
00:04:33
español si vengo aquí y cambio italiano
00:04:35
va a aparecer el texto dinámico en cada
00:04:38
uno de los idiomas muy bien esta primera
00:04:40
parte ya está finalizada pero ahora voy
00:04:43
a construir me una ventana para colocar
00:04:45
aquí un texto y vamos a probar cómo
00:04:47
podría hacerse esto con un texto
00:04:50
dinámico que cambiará dentro de la
00:04:51
ventana como el que podría aparecer en
00:04:54
una novela gráfica o una novela
00:04:55
interactiva voy a hacerlo pero antes de
00:04:57
que se me olvide os comento un dato muy
00:04:59
importante es posible que os ocurra a
00:05:01
aquellos que estéis utilizando 22.021
00:05:04
fijaos en la versión en la que estoy yo
00:05:06
puede pasar que cuando vayáis a rellenar
00:05:08
este campo el steam reference vale con
00:05:10
la tabla no os aparezca nada parezca
00:05:12
completamente vacío esto pasa en últimas
00:05:15
versiones de unity de acuerdo hay una
00:05:17
forma de solucionarlo y es viniendo aquí
00:05:19
a edit venimos aquí a preferencia y veis
00:05:22
que están aquí estos tres elementos
00:05:24
normalmente están los tres chequeados yo
00:05:26
recomiendo que quitáis este porque os va
00:05:29
a poner una versión anterior para
00:05:31
encontrar estas tablas y lo vais a poder
00:05:32
ver si os hará clara de acuerdo para la
00:05:34
segunda parte de este tutorial voy a
00:05:37
enseñar cómo podríamos colocar dentro de
00:05:39
este scroll view una cantidad de texto
00:05:42
en diferentes idiomas y que este texto a
00:05:45
medida que vayamos pasando por ejemplo
00:05:47
con un botón que todavía no he hecho
00:05:48
pero que haré a medida que vayamos
00:05:50
pasando el texto se vaya colocando pues
00:05:53
el nuevo bloque con el idioma que
00:05:56
tengamos seleccionado esto es un poco
00:05:58
más complejo pero no mucho más he creado
00:06:01
este escribir view y voy a crear aquí un
00:06:03
botón para poder ir cambiando los
00:06:05
diferentes bloques de texto que van a ir
00:06:07
apareciendo para crear un scroll view
00:06:09
donde el texto sea dinámico y se ajuste
00:06:11
a la caja con independencia de su tamaño
00:06:13
voy a dejarte un tutorial justo aquí
00:06:16
arriba donde te explico cómo crear esta
00:06:19
caja de texto de una forma muy fácil y
00:06:21
sencilla el primer paso es crear un
00:06:23
script que va a ser un objeto script
00:06:25
table también tengo un tutorial donde te
00:06:27
hablo en concreto sobre los objetos
00:06:29
script tablets que son una valiosísima
00:06:31
herramienta y unity también te dejo un
00:06:34
tutorial en la descripción para que
00:06:35
puedas echar un vistazo con mayor
00:06:37
detenimiento pero básicamente como veis
00:06:39
es algo muy pequeñito le cambio de su
00:06:42
herencia le da directamente de script
00:06:43
tablet objet aquí arriba le especificado
00:06:46
un create asset menú para poder crear un
00:06:49
script ale o 10 dentro de unity y justo
00:06:51
aquí me he creado tres strings el texto
00:06:53
en inglés el texto en español y el texto
00:06:55
en italiano que están separados por un
00:06:58
espacio de 20 este de aquí y este de
00:07:01
aquí y que cada uno de ellos tiene una
00:07:03
caja un poco más grande una caja que va
00:07:05
a tener un mínimo de tres espacios de
00:07:07
tal modo que si me vuelvo a juniti y
00:07:10
vengo aquí a create voy a poder crearme
00:07:13
mi objeto script table veis tiene esta
00:07:15
apariencia y aquí aparecen las tres
00:07:17
cajas para que yo pueda poner el texto
00:07:19
que quiera en inglés en español y en
00:07:21
italiano
00:07:22
muy bien pues me he creado tres objetos
00:07:23
script tablets aquí lo tengo el texto 1
00:07:25
entonces todo hacia el texto 3 y cada
00:07:27
uno de ellos los he llenado con algunas
00:07:29
frases para que luego puedan verse en la
00:07:32
ventana cada una de ellas en el idioma
00:07:34
que corresponda voy a crearme un nuevo
00:07:36
script que va a ser el que va a
00:07:38
controlar todo esto y que voy a asignar
00:07:40
al contenido de mi scroll view que es
00:07:42
justo donde tengo el text mes pero de
00:07:44
momento completamente vacío de acuerdo
00:07:46
pues ya lo tengo aquí está mi control de
00:07:48
textos que he asignado aquí a mi
00:07:50
contenido y cuando me voy a visual
00:07:52
estudio aquí lo tengo vacío voy a
00:07:54
crearme un par de variables la primera
00:07:56
de ellas va a hacer una referencia al
00:07:58
objeto texto dentro de unity y la
00:08:00
segunda va a ser un array que va a
00:08:02
contener los objetos script tablets que
00:08:04
me he creado
00:08:12
genial ya los tengo voy a irme a hoy uni
00:08:15
para asociarlos y para incluir todos los
00:08:17
elementos de la rai aquí está voy a
00:08:19
asignar el contenido y en la rai voy a
00:08:22
incluir todos los objetos script tablets
00:08:25
el siguiente paso es que me voy a crear
00:08:27
tres variables de tipo string que van a
00:08:29
ser las que correspondan al texto en
00:08:31
español en inglés y en italiano y además
00:08:34
voy a quedar una última variable que va
00:08:36
a ser el índice que va a ir recorriendo
00:08:38
mi arraiga a medida que yo pulse el
00:08:40
botón
00:08:48
el siguiente paso es crearnos el método
00:08:51
que va a corresponder estos strings con
00:08:54
los que tengo creados en mi plantilla
00:08:56
para que se puedan mostrar en pantalla
00:09:09
[Música]
00:09:12
y por último voy a crearme el método que
00:09:14
está enlazado al botón de unit y que
00:09:16
aumentará la cantidad de este índice
00:09:18
para que pueda ir mostrando el siguiente
00:09:21
elemento de la raíz
00:09:26
el siguiente paso se parece un poco lo
00:09:28
que habíamos visto al principio voy a
00:09:30
abrir otra vez mi tabla de
00:09:32
localizaciones y voy a crearme una nueva
00:09:35
que va a corresponderse con nuestro
00:09:38
texto dinámico es decir voy a recurrir a
00:09:41
este script y voy a llamar a estas
00:09:44
variables justo a estas de aquí
00:10:03
ya tengo las referencias y ahora también
00:10:06
como había hecho antes voy a localizar
00:10:08
mi texto vengo aquí desde hoy ya
00:10:11
localicé y voy a hacer las referencias
00:10:15
que había hecho antes junto con las
00:10:17
monedas
00:10:24
fijaos me ha pasado aquí algo muy
00:10:26
interesante me ha dado un error y esto
00:10:28
es porque las variables que estamos
00:10:30
referenciando en nuestras tablas de
00:10:32
localización tienen que ser públicas yo
00:10:35
las he puesto aquí privadas y se
00:10:36
realizadas así que voy a cambiarlas
00:10:41
además he creado el miedo de estar y
00:10:43
estoy llamando al método mostrar textos
00:10:45
para que se muestre el primero de todos
00:10:47
ellos de acuerdo ahora sí me aparece el
00:10:50
texto y si cambio aquí me va a parecer
00:10:52
en italiano y me va a parecer en inglés
00:10:54
y además me está cambiando
00:10:56
aquí también todo esto parece que puede
00:11:00
funcionar pero nos falta un pequeño
00:11:01
elemento y es que queremos cambiar
00:11:03
primero el texto 1 luego el texto 2 y
00:11:05
luego al texto 3 con un botón fijaos lo
00:11:08
que va a ocurrir me he creado un botón
00:11:09
dándole aquí al botón derecho y guay y
00:11:11
aquí en el botón voy a asignarle en la
00:11:14
caja de eventos el método que ya
00:11:17
habíamos creado así que me vengo aquí a
00:11:18
contenido texto que es donde está
00:11:20
nuestro script y aquí voy a buscar mi
00:11:22
clase que es esta y aquí voy a buscar el
00:11:24
método que nos habíamos creado este
00:11:26
método es este de aquí que es el que va
00:11:29
a ir sumando uno más al entero y
00:11:31
mostrarnos el texto no he puesto un
00:11:34
límite así que si vamos más allá del
00:11:36
número de objetos que tenemos dentro de
00:11:38
nuestros ray nos va a dar un fallo pero
00:11:39
para este ejemplo nos va a valer así que
00:11:41
fijaos lo que va a pasar va a ocurrir
00:11:44
algo muy interesante y es que aunque yo
00:11:45
tengo completamente bien asignado esto
00:11:47
se va a mostrar el primer texto aquí en
00:11:49
pantalla pero cuando yo le di a él más
00:11:51
no se va a mostrar nada a pesar de que
00:11:53
realmente me está sumando y fijaos que
00:11:55
aquí ya me ha mostrado el error de que
00:11:57
me he pasado de los límites de la raya
00:11:59
no se está mostrando porque no se está
00:12:02
actualizando el texto de la localización
00:12:04
y eso lo tenemos que arreglar dentro de
00:12:07
nuestro script vamos a intentar
00:12:09
actualizar nuestro texto haciendo un
00:12:12
refresh y para eso tenemos que llamar a
00:12:14
un nuevo espacio de nombres que va a ser
00:12:16
el que está relacionado con los
00:12:17
componentes de las localizaciones
00:12:19
[Música]
00:12:21
ahora voy a crear una variable pública
00:12:23
que va a contener un evento de
00:12:25
localización
00:12:28
este evento es el que va a componer el
00:12:30
componente de localización que tiene
00:12:32
nuestro texto lo vais a ver luego cuando
00:12:34
lleguemos a juniti y aquí al final lo
00:12:35
que vamos a hacer es darle un refresh
00:12:38
muy bien pues ya lo tengo todo me vuelvo
00:12:40
a juniti y aquí en mi contenido que es
00:12:43
donde tengo mi script voy a venirme aquí
00:12:45
fijaos aquí tengo el script no tengo
00:12:46
nada así que voy a arrastrar esto sin
00:12:49
más y en teoría ya debería funcionar
00:12:52
fijaos que voy a darle al play va a
00:12:56
aparecer primero el primer texto y se le
00:12:57
doy a + aparece el segundo y se lo había
00:12:59
más aparece el tercero y por supuesto
00:13:01
puedo cambiar de idioma a italiano le
00:13:04
doy al siguiente e incluso aquí
00:13:06
podríamos dar el melloco y cambiarme
00:13:08
al inglés y cambiaría al segundo texto y
00:13:12
con eso ya estaría nuestro tutorial
00:13:14
sobre cómo hacer un tipo de texto
00:13:16
dinámico con el sistema de
00:13:18
localizaciones de juniti muchas gracias
00:13:20
y nos vemos la semana que viene con un
00:13:22
nuevo vídeo sobre desarrollo de
00:13:24
videojuegos chao