Como puedo hacer para que se cree algunas esferas y encima un texto en cada una al momento que le doy a ejecutar, aqui un ejemplo de como seria al momento de ejecutar(lo hice a mano). Gracias
(//<fileStore.core_Attachment>/monthly_2018_01/1.PNG.a1f955ac06c059a7a9a8b3b99ed5ef3a.PNG)
Las esferas son objetos, los textos son objetos, podés instanciarlos y posicionarlos donde quieras, revisá esto (https://docs.unity3d.com/ScriptReference/Object.Instantiate.html). O podés ya tener un prefab de un par esfera-texto e instanciar eso. Para la esfera podrías tener un objeto en tu proyecto, y usar esto (https://docs.unity3d.com/ScriptReference/Resources.Load.html) para cargarlo en escena, o usar directamente esto (https://docs.unity3d.com/ScriptReference/GameObject.CreatePrimitive.html).
Cita de: lightbug date=1516054756Las esferas son objetos, los textos son objetos, podés instanciarlos y posicionarlos donde quieras, revisá esto (https://docs.unity3d.com/ScriptReference/Object.Instantiate.html). O podés ya tener un prefab de un par esfera-texto e instanciar eso. Para la esfera podrías tener un objeto en tu proyecto, y usar esto (https://docs.unity3d.com/ScriptReference/Resources.Load.html) para cargarlo en escena, o usar directamente esto (https://docs.unity3d.com/ScriptReference/GameObject.CreatePrimitive.html).
Me podrias indicar en codigo como sería, porfavor, lo que pasa que soy nuevo en Unity y me gustaria conocer la forma en la que codifican los expertos como tu jjj, gracias por tu tiempo.
Cita de: Stalin date=1516055088y me gustaria conocer la forma en la que codifican los expertos como tu jjj
Jajaja ...aaa...bueno....hablando en serio, aca te dejo una version maso y muy improvisada (la hice aca mismo no se si anda!). Tu trabajo sería escalar todo bien (modificar fuente, posiciones, o escalas del texto y esfera), quizás poner algunas variables publics para dar estas opciones. Y además repetir el proceso este para la cantidad de objetos que quieras (teniendo en cuenta tu criterio a la hora de posicionarlos)
void Awake()
{
//ESFERA ----------------------------------------------------------------------------------------------
//Creas la esfera y la posicionas (puse la misma pos que la del objeto que tiene este script)
GameObject esfera = GameObject.CreatePrimitive(PrimitiveType.Sphere);
esfera.transform.position = transform.position;
//TEXTO ----------------------------------------------------------------------------------------------
//Creas el gameObject VACIO y lo posicionas (puse la misma pos que la del objeto que tiene este script)
GameObject textGo = new GameObject("Pepito");
textGo.transform.position = transform.position + transform.up;
// Agregás a textGo el componente TextMesh
TextMesh textMesh = textGo.AddComponent<TextMesh>();
//Te metés al componente TextMesh y modificas el campo de texto
textMesh.text = "Texto de Pepito";
}
Con TextMeshPro puedes incluir un gameobject de texto. Basta con colocarlo siempre encima de la posición que tenga la esfera...
Cita de: pioj date=1516100535Con TextMeshPro puedes incluir un gameobject de texto. Basta con colocarlo siempre encima de la posición que tenga la esfera...
Me podrias poner un ejemplo porfavor, gracias
Cita de: lightbug date=1516057102Jajaja ...aaa...bueno....hablando en serio, aca te dejo una version maso y muy improvisada (la hice aca mismo no se si anda!). Tu trabajo sería escalar todo bien (modificar fuente, posiciones, o escalas del texto y esfera), quizás poner algunas variables publics para dar estas opciones. Y además repetir el proceso este para la cantidad de objetos que quieras (teniendo en cuenta tu criterio a la hora de posicionarlos)
void Awake()
{
//ESFERA ----------------------------------------------------------------------------------------------
//Creas la esfera y la posicionas (puse la misma pos que la del objeto que tiene este script)
GameObject esfera = GameObject.CreatePrimitive(PrimitiveType.Sphere);
esfera.transform.position = transform.position;
//TEXTO ----------------------------------------------------------------------------------------------
//Creas el gameObject VACIO y lo posicionas (puse la misma pos que la del objeto que tiene este script)
GameObject textGo = new GameObject("Pepito");
textGo.transform.position = transform.position + transform.up;
// Agregás a textGo el componente TextMesh
TextMesh textMesh = textGo.AddComponent<TextMesh>();
//Te metés al componente TextMesh y modificas el campo de texto
textMesh.text = "Texto de Pepito";
}
No me consigue salir, que el texto me aparezca en cada esfera, estoy creando una esfera y una caja de texto dentro de un for para que cree un limite de esferas y texto, pero no puedo hacer para que cada texto se valla a cada esfera,, ayuda porfa
La posición absoluta de cada texto/esfera ha de estar asignada en el update, para que se vea siempre.
En este video te explica cómo añadir un gameobject de tipo TextMeshPro (o sea, que no es de Canvas, sinó de World)
eature=oembed" width="480">
Cita de: Stalin date=1516278199No me consigue salir, que el texto me aparezca en cada esfera, estoy creando una esfera y una caja de texto dentro de un for para que cree un limite de esferas y texto, pero no puedo hacer para que cada texto se valla a cada esfera,, ayuda porfa
Con ese script que te pase no tenés que hacer nada (bueno, casi), se lo ponés a un gameobject vacío y te aparece
una esfera con un textMesh encima (bueno no tan así, depende de la fuente del text y del tamaño de la esfera, por eso te puse que eso lo veas vos). Es más a modo de que veas como podés instanciar por código un objeto e ir construyéndolo.
//aqui añado un texto
public GameObject texto;
for (i = 0; i < nEsferas; i++)
{
//con esto creo cada texto dependiendo del numero de esferas que tengo
GameObject textoo = Instantiate(texto, pRed, Quaternion.identity);
textoo.GetComponent<Renderer>().material.color = Color.blue;
//Aqui tengo un string
string cosa = "a" + i;
//y aqui pongo el texto en la posicion de cada esfera
textoo.transform.position = destino.transform.position;
//Como hago para que el string que tengo se muestre en el textoo que tengo, que pondria aqui
}
Que tengo que hacer para poder mostrar ese string en el texto, me podrian ayudar con el codigo porfavor, me salvaran la vida, gracias.
Lo tenés resuelto en el anterior post que te contesté, si revisás bien fijate donde pongo la string "Texto de Pepito" y te vas a dar cuenta de qué componente tenés que pedir... a parte tener un GameObject a mi no me dice nada (eso que ponés aquí "añado un texto", técnicamente no es así), podés tener "texto" en un componente de TextMeshPro, en un TextMesh(Unity), en un Text de la UGUI de Unity, en un Text de NGUI, en un componente inventado mio, etc etc ... si yo tuviera que contestarte con código estaría adivinando de a qué hacer GetComponent ya que no conozco tu GameObject "texto" (supongo será un prefab).
Cita de: lightbug date=1516057102Jajaja ...aaa...bueno....hablando en serio, aca te dejo una version maso y muy improvisada (la hice aca mismo no se si anda!). Tu trabajo sería escalar todo bien (modificar fuente, posiciones, o escalas del texto y esfera), quizás poner algunas variables publics para dar estas opciones. Y además repetir el proceso este para la cantidad de objetos que quieras (teniendo en cuenta tu criterio a la hora de posicionarlos)
void Awake()
{
//ESFERA ----------------------------------------------------------------------------------------------
//Creas la esfera y la posicionas (puse la misma pos que la del objeto que tiene este script)
GameObject esfera = GameObject.CreatePrimitive(PrimitiveType.Sphere);
esfera.transform.position = transform.position;
//TEXTO ----------------------------------------------------------------------------------------------
//Creas el gameObject VACIO y lo posicionas (puse la misma pos que la del objeto que tiene este script)
GameObject textGo = new GameObject("Pepito");
textGo.transform.position = transform.position + transform.up;
// Agregás a textGo el componente TextMesh
TextMesh textMesh = textGo.AddComponent<TextMesh>();
//Te metés al componente TextMesh y modificas el campo de texto
textMesh.text = "Texto de Pepito";
}
Gracias!!! no todos los herores llevan capa jaja. Si me funciono, pero no puedo cambiarle el color ni que se vea mas claro el texto, tal vez sabes como configurarle eso mendiante el codigo. De verdad que te vas a ganar el cielo
Cita de: Stalin date=1516840159Gracias!!! no todos los herores llevan capa jaja. Si me funciono, pero no puedo cambiarle el color ni que se vea mas claro el texto, tal vez sabes como configurarle eso mendiante el codigo. De verdad que te vas a ganar el cielo
Jajaj bueno mejor así . Las propiedades o variables de un componente que son accesibles las podés modificar a gusto (es casi la idea de pedir un componente en primer lugar). Por ej este es el componente de un TextMesh (sacado del manual):
https://docs.unity3d.com/Manual/class-TextMesh.html (https://docs.unity3d.com/Manual/class-TextMesh.html)
Si te fijas en la parte de "properties" tenés el Color (el último), este es de tipo "Color", podés crear el color que quieras basandote en RGBA (red green blue alpha). Los creas así (por ej):
tuTextMeshReferenciado.color = new Color(1,0,1,0.5f); //violeta transparente al 50%
Lo mismo con lo que quieras del TextMesh (fuente, tamaño de fuente, texto, color, etc)
Hola. He unido los 2 hilos por tratarse del mismo problema.
Se le han ofrecido varias soluciones al autor, aunque parece que no acaba de entenderlo, por falta de conocimientos, o lo que sea...
Ruego a la Comunidad que le prestéis un poco más de atención y le atendáis de forma que el usuario pueda resolver su duda y cerrar este tema con éxito.
Muchas gracias.
El Admin
Cita de: lightbug date=1516844445Jajaj bueno mejor así . Las propiedades o variables de un componente que son accesibles las podés modificar a gusto (es casi la idea de pedir un componente en primer lugar). Por ej este es el componente de un TextMesh (sacado del manual):
https://docs.unity3d.com/Manual/class-TextMesh.html (https://docs.unity3d.com/Manual/class-TextMesh.html)
Si te fijas en la parte de "properties" tenés el Color (el último), este es de tipo "Color", podés crear el color que quieras basandote en RGBA (red green blue alpha). Los creas así (por ej):
tuTextMeshReferenciado.color = new Color(1,0,1,0.5f); //violeta transparente al 50%
Lo mismo con lo que quieras del TextMesh (fuente, tamaño de fuente, texto, color, etc)
Muchas gracias de verdad :D, espero que te vaya bien en tus proyectos, solo puede haber RGBA o también se puede con RGB, y si es asi, como sería?