C贸mo escribir un texto Text Mesh Pro desde Script en Unity

Introducci贸n

En este art铆cu颅lo vamos a ver c贸mo tra颅ba颅jar con los com颅po颅nentes Text Mesh Pro des颅de un Script, conc颅re颅ta颅mente vamos a crear un obje颅to tex颅to en un Can颅vas y otro Text Mesh para el espa颅cio 3D y creare颅mos un Script den颅tro del cual mod颅i颅fi颅care颅mos el tex颅to que mues颅tran estos com颅po颅nentes, como extra tam颅bi茅n le mod颅i颅fi颅care颅mos el col颅or por c贸digo.

Ima颅gen 1: El com颅po颅nente Text se ha trasla颅do a la sec颅ci贸n "Lega颅cy".

Antes de seguir avan颅zan颅do dejo el v铆deo que cubre la infor颅ma颅ci贸n de este art铆culo

ACERCA DE ESTE V脥DEO

En este v铆deo vemos c贸mo con颅fig颅u颅rar Text Mesh PRO, c贸mo mostrar un tex颅to en pan颅talla y c贸mo escribir el tex颅to a trav茅s de c贸di颅go en Unity.

MI LISTA DE REPRODUCCI脫N DE BLENDER
馃憞馃徑

RECUERDA SUSCRIBIRTE AL CANAL

Crear objetos Text Mesh Pro para World Space y Canvas

Comen颅zamos cre颅an颅do los obje颅tos Text que pos颅te颅ri颅or颅mente mod颅i颅fi颅care颅mos des颅de un Script, vamos a crear dos tipos de obje颅tos Text Mesh Pro, uno para usar en la inter颅faz gr谩颅fi颅ca y otro para usar como un obje颅to 3D de la escena.

Creaci贸n de Text Mesh Pro Text para la interfaz gr谩fica

En Uni颅ty los obje颅tos Text Mesh Pro que est谩n en la sec颅ci贸n UI deben colo颅carse como hijos de un obje颅to Can颅vas, por lo que vamos a asumir que ya ten颅emos uno de estos obje颅tos en la esce颅na. Para crear un nue颅vo obje颅to Text Mesh Pro vamos a la jer颅ar颅qu铆a, hace颅mos clic dere颅cho sobre el Can颅vas (o alg煤n obje颅to hijo del Can颅vas), vamos a la sec颅ci贸n UI y elegi颅mos la opci贸n "Text 鈥 Text Mesh Pro", como se obser颅va en la ima颅gen 2.A.

Ima颅gen 2.A: Opci贸n para crear un nue颅vo tex颅to Text Mesh Pro para la inter颅faz gr谩fica.

Creaci贸n de Text Mesh Pro Text para el World Space

La otra opci贸n para escribir tex颅to en pan颅talla es usar un com颅po颅nente Text de Text Mesh Pro como un obje颅to 3D y por lo tan颅to que se encuen颅tre en una posi颅ci贸n del mun颅do, este obje颅to lo encon颅traremos en la ven颅tana de creaci贸n den颅tro de la sec颅ci贸n 3D, como se obser颅va en la ima颅gen 2.B.

Ima颅gen 2.B: Opci贸n para crear un nue颅vo tex颅to Text Mesh Pro como un obje颅to 3D de la escena.

MIRA ESTE DESCABELLADO EXPERIMENTO

Primera vez usando Text Mesh Pro

En caso de que a煤n no hayamos con颅fig颅u颅ra颅do Text Mesh Pro nos sal颅dr谩 la ven颅tana de la ima颅gen 3 donde nos d谩 la opci贸n de impor颅tar los com颅po颅nentes nece颅sar颅ios para usar Text Mesh Pro, le damos clic en "Import TMP Essen颅tials", como se obser颅va en la ima颅gen 3. El segun颅do bot贸n para impor颅tar ejem颅p颅los y extras es opcional.

Ima颅gen 3: Vetana para impor颅tar paque颅te Text Mesh Pro en Unity.

Resultado de la creaci贸n de los objetos

Una vez crea颅d颅os los obje颅tos, les hice unas pocas mod颅i颅fi颅ca颅ciones en el inspec颅tor (tama帽o de fuente, text) y el resul颅ta颅do es el siguiente:

Ima颅gen 4.a: Obje颅tos Text Mesh Pro en la jerarqu铆a.
Ima颅gen 4.b: Obje颅tos Text Mesh Pro visu颅al颅iza颅dos en la escena.

Una vez crea颅d颅os los obje颅tos e impor颅ta颅do Text Mesh Pro ya podemos comen颅zar a usar el com颅po颅nente Text Mesh Pro Text des颅de el inspec颅tor o escribir颅lo a trav茅s de un Script. En la ima颅gen 5 vemos el com颅po颅nente Text en la ven颅tana Inspec颅tor, tiene muchas m谩s opciones de con颅fig颅u颅raci贸n com颅para颅do con la antigua solu颅ci贸n para textos.

IMPORTANTE

En la ima颅gen 5 vemos el cam颅po para edi颅tar el tex颅to que aparece en pan颅talla, actual颅mente tiene escrito el val颅or "Can颅vas Text", ese es el cam颅po que quer颅e颅mos edi颅tar por c贸di颅go y para hac颅er颅lo ten颅dremos que edi颅tar la vari颅able "text" de ese componente.

Ima颅gen 5: Com颅po颅nente Text de Text Mesh Pro vis颅to des颅de el inspector.

Script para escribir texto en componente Text Mesh Pro

Para poder escribir un com颅po颅nente Text Mesh Pro por c贸di颅go voy a crear un script y asig颅narlo a alg煤n GameOb颅ject de la jer颅ar颅qu铆a, como se obser颅va en la ima颅gen 6. En este caso mi Script se lla颅ma "Mod颅i颅fy颅TextMesh颅Pro", den颅tro de este script voy a mod颅i颅ficar los textos.

Ima颅gen 6: Creamos un script y lo asig颅namos a alg煤n obje颅to de la jerarqu铆a.

Importar namespace TMPro en nuestro Script

Para poder usar los com颅po颅nentes Text Mesh Pro c贸moda颅mente es con颅ve颅niente impor颅tar el name颅space "TMPro" agre颅gan颅do en la cabecera de nue颅stro script la l铆nea "using TMPro;" como que se obser颅va en la ima颅gen 7.

Ima颅gen 7: Declar颅amos que vamos a uti颅lizar el name颅space "TMPro" en la cabecera de nue颅stro script.

Declaraci贸n de las variables a utilizar

Vamos a declarar dos vari颅ables de tipo "TMP_Text" donde estar谩n alo颅jadas las ref颅er颅en颅cias de los com颅po颅nentes Text que quer颅e颅mos mod颅i颅ficar, en este casos los nom颅bres de mis vari颅ables ser谩n "can颅vas颅Text" y "world颅Text" en estas vari颅ables colo颅car茅 las com颅po颅nentes Text Mesh Pro Text del can颅vas y del espa颅cio respectivamente.

DETALLE

Los nom颅bres "can颅vas颅Text" y "world颅Text" son los nom颅bres que eleg铆 para esas vari颅ables, se puede usar cualquier otro nom颅bre siem颅pre que con颅tenga los car颅ac颅teres permitidos.

Ima颅gen 8: Declaraci贸n de las vari颅ables que se uti颅lizar谩n para mod颅i颅ficar el tex颅to Text Mesh Pro.

Inicializaci贸n de las variables (Asignaci贸n de referencias)

La ini颅cial颅izaci贸n de este tipo de vari颅ables no prim颅i颅ti颅vas es cru颅cial, si no nos encar颅g颅amos de colo颅car den颅tro de la vari颅able el obje颅to pre颅ciso al que quer颅e颅mos referirnos nos dar谩 error de ref颅er颅en颅cia null ("Null Ref颅er颅ence Excep颅tion").

Hay muchas for颅mas de ini颅cializar las vari颅ables, en este caso lo har茅 de una de las for颅mas m谩s sim颅ple que es arras颅tran颅do los GameOb颅jects que con颅tienen los com颅po颅nentes Text que quiero mod颅i颅ficar a los espa颅cios de las vari颅ables en el inspector

Ima颅gen 9: Se arras颅tran los GameOb颅jects apropi颅a颅dos a los espa颅cios en el inspec颅tor para ini颅cializar las variables.

No aparece la variable en el inspector

En el caso de que no aparez颅ca la vari颅able en el inspec颅tor nor颅mal颅mente es porque su vis颅i颅bil颅i颅dad es pri颅va颅da, se puede solu颅cionar declaran颅do las vari颅ables como p煤bli颅cas como se obser颅va en la ima颅gen 8, anteponien颅do la pal颅abra "pub颅lic", o tam颅bi茅n se pueden declarar como pri颅vadas pero indi颅can颅do que sean seri颅al颅izadas por el inspec颅tor, de la sigu颅iente forma:

[Seri颅al颅ize颅Field]
TMP_Text can颅vas颅Text;

O tam颅bi茅n:

[Seri颅al颅ize颅Field]
pri颅vate TMP_Text canvasText;

Otro moti颅vo por el que las vari颅ables no aparez颅can en el inspec颅tor puede ser cuan颅do hay errores en con颅so颅la y los cam颅bios hechos en los scripts no se actu颅al颅izan, para resolver esto deber颅e颅mos solu颅cionar todos los errores que haya en con颅so颅la, una vez hecho esto Uni颅ty com颅pi颅lar谩 y apare颅cer谩n las nuevas modificaciones.

Instrucciones de c贸digo para modificar el texto Text Mesh Pro a trav茅s de Script y pruebas

Una vez que hemos ini颅cial颅iza颅do las vari颅ables podemos uti颅lizarlas, en este caso si quer颅e颅mos mod颅i颅ficar el tex颅to que mues颅tra el com颅po颅nente Text Mesh Pro, deber颅e颅mos mod颅i颅ficar la vari颅able "text" defini颅da en su inte颅ri颅or, para ello usamos el oper颅ador pun颅to que nos per颅mite acced颅er a las vari颅ables y fun颅ciones p煤bli颅cas definidas den颅tro de un objeto,

Ima颅gen 10.A: Escribir un tex颅to Text Mesh Pro des颅de un Script en Unity.
Ima颅gen 10.B: Al pul颅sar play vemos como se mod颅i颅f颅i颅can los tex颅tos en pantalla.

Extra: Cambiar el color de un texto Text Mesh Pro por c贸digo

Ima颅gen 11.A: En las l铆neas 22 y 23 se cam颅bia el col颅or a los tex颅tos Text Mesh Pro a trav茅s de c贸digo.
Ima颅gen 11.B: Al pul颅sar play vemos como cam颅bian los col颅ores de los tex颅tos en pantalla.

YouTube
Scroll al inicio
Secured By miniOrange