Jump to content

Midgard

Fosiles
  • Content Count

    14
  • Joined

  • Last visited

Community Reputation

5 Neutral

About Midgard

  • Rank
    Iniciado

Recent Profile Visitors

428 profile views
  1. Tienes que tener algún problema en el momento justo cuando desactivas los scripts de movimiento cuando están vivos. Hay a lo mejor estás imponiendo que la velocidad siga a 0 o que se "mueva" a 0. Checkea bien el momento en el que los desactivas.
  2. Correcto y bien explicado, funciona perfectamente. Mil gracias Adngel !
  3. He posteado algo parecido pero más simple para que no cree confusión.
  4. En c#. Quería hacer un minimapa para mi juego que indique la posición del jugador y de algunos elementos en él (en 2d). Pero no quiero usar una vista de cámara. si no dibujar un panel cuadrado en una esquina de la pantalla que represente la escena por ejemplo y unos cuadraditos que se posicionen relativamente y representen los objetos de la escena y su posición. Postee un tema parecido pero algo complejo así que lo borro. ¿Alguna ayuda?
  5. Hola gente. Llevo rondando esto durante varios días. Tengo una línea indicadora donde quiero que salga un iconito con la posición relativa de mi personaje en la escena, un minimapa horizontal de izquierda a derecha. Debido a que estamos en un escenario tridimensional, marco el punto 0,0,0 con un objeto, y el punto 100,0,0 con otro, para poder referenciar en este espacio infinito. Mi Screen mide 1280 de ancho. Entonces quiero que salgan representados en la linea indicadora, en el GUI, con unos márgenes de 20 pixeles a sus lados, para que no quede justo en los límites de la pantalla. Quiero que cuando el GameObject "Personaje", el cual se mueve de izquierda a derecha, se mueva, el iconito rosa en mi imagen, se mueva respectivamente por la línea indicadora en la posicion relativa que le corresponde. El código que estoy utilizando de momento. Pero no lo consigo. Vector3 p1 = Camera.main.WorldToScreenPoint(punto0.transform.position) ; //Calculo el punto 0,0,0 Vector3 p2 = Camera.main.WorldToScreenPoint(pj.transform.position) ; // calculo la posicion del personaje var distance = Vector3.Distance(p1, p2); //calculo la distancia entre el punto 0 y el personaje GUI.Box(new Rect( distance , Screen.height - 270, 60, 60) , " --cursor " ); // este es el iconito del personaje en el minimapaLlevo tiempo con esto y no lo consigo porque no me coinciden las distancias. ¿Conocéis alguna forma de hacer esto? ¿Debería utilizar UI en vez de GUI?... ¿Algún ejemplo? Gracias.
  6. Si duda lo que necesitas es aprender a usar objetos UI, es lo que estoy usando yo para los menús. Puedes crear un prefab con alguno configurado con texto e imágenes y scriptearlo para moverlo, además de activarlo o desactivarlo a gusto.
  7. ¿Cómo puedo obtener el nombre de una variable? Si tengo int vida = 5;Cómo puedo conseguir que se me devuelva el nombre de la variable.
  8. ¿Me puedes poner un ejemplo sobre lo que acabas de exponer iRobb ?, no hace falta que sea con mi código...empecé C# de manera autodidacta y hay cosas que pueden ser de parbulario y no se hacer...
  9. Hola chicos. ¿Hay alguna manera de almacenar los argumentos de una clase dentro de un array, para poder cargarlos despues mediante un bucle de manera sistematizada? En mi ejemplo son sólo 4 argumentos pero podrían ser 40. Tengo una clase de objeto, "objeto_class" para mi inventario de mi juego. Esta clase contiene los argumentos y el construcctor necesario para generar cualquier objeto. Como veis, tengo 4 argumentos en mi clase "objeto_class" public class objeto_class{ public int id; //1º argumento public string nombre;//2º argumento public string descripcion;//3º argumento public int cantidad;//4º argumento public objeto_class(int idd,string nom,string desc,int cant){ id = idd; nombre = nom; descripcion = desc; cantidad = cant; } }Los "objetos_class" los tengo almacenados dentro de una array de objeto_class llamada "array_objeto_class". Las casillas de mi inventario estan creadas con un prefab con un UI objeto que contiene 4 hijos, el cual lo instancio con un "for" 16 veces, dándome 16 casillas. casilla_prefab-------tiene 4 hijos donde quiero que carguen los argumentos > 1º hijo TEXTO ID del objeto (esto cargaría el valor del argumento int id) >2º hijo TEXTO Nombre del objeto (esto cargaría el valor del argumento string nombre ) >3º hijo TEXTO Descripcion del objeto (esto cargaría el valor del argumento string descripcion) >4º hijo TEXTO Cantidad del objeto (esto cargaría el valor del argumento cantidad ) Su tag es "casilla_estadisticas" Las casillas las busco con sus TAGs y las meto dentro de un array de GameObject. GameObject[] array_cas = GameObject.FindGameObjectsWithTag("casilla_estadisticas");// Busco todas las casillas con el mismo tag, y las meto en un array de GameObject for(int i = 0; i < array_cas.Length; i++){ //con este for quiero poner valor a los hijos de las casillas que leen esos valores de los argumentos de las clases objeto_class almacenadas en array_object_class array_cas[i].transform.GetChild(uno de los 4 hijos).GetComponent<Text>().text = array_objeto_class[i].ARGUMENTO ; //<<---¿como puedo acceder a los argumentos de manera ciclica?, ya que no puedo poner "ARGUMENTO[i]" }; Gracias por todo.
  10. Hola uniteros. Estaba estudiando la forma de crear un inventario para mi juego. Es un inventario grande, y subdividido en muchas categorias. Carga datos de archivos XML, al menos en la primera vez, quedando esta información guardada en memoria. Detecta el estado "Hover/Encima de", en sus botones para que muestre información con el puntero del mouse. Elejí hacerlo con elementos UI, ya que me permiten entre muchas cosas, detectar el estado Hover. Cargo alrededor de 50 casillas con la información de sus distintos objetos y 5 pestañas que me llevan a otros inventarios, destruyendo los anteriores y generando los posteriores. El caso que quizas lo vea pesado en rendimiento, ya que el juego pega un bajón de FPS aunque solo sea en un segundo, cuando lo invoco y/o cuando destruye todos los objetos. - Quería saber la mejor forma de optimización, con inventarios complejos. (UI...GUI...etc..) - ¿Cuando cierro el inventario, o cambio de pestañas, es mejor destruir los objetos o desactivarlos? - La información obtenida de todos los objetos, ¿es mejor tenerla en memoria una vez cerrado el inventario? En algunos casos no necesito retener en memoria toda la información de los objetos y he pensado que cada vez guarde esa info en un XML para su posterior leida. Un saludo.
UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...