Es que es lo primero que me ha llamado la atención en el código...
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
#47
General (Antiguo) / Problema con gancho
Agosto 08, 2016, 09:18:45 PM
A lo mejor digo una burrada, pero... en el getmousebutton() y getmousseup() no tendrías que ponerle 0? Nunca he probado si no le pones nada, pero a lo mejor siempre se te mete en el if por eso... Es lo primero que probaría.
#48
General (Antiguo) / problema con animación
Agosto 08, 2016, 08:59:31 PM
Hola a todos.
Más que un problema, creo que lo que necesito es un poco de orientación. Para empezar decir que en el tema de animaciones decir que estoy verde es decir poco. Es la primera vez que me meto en esto, ya que soy coder, y más o menos hasta ahora, con mis tropiezos, me había ido saliendo de todo lo que me había metido, y ahora ya más o menos tengo las cosas encaradas y quería empezar ha darle un poquillo de imagen, así que ni corto ni perezoso, empiezo a buscar por el asset store y me encuentro esto, que me parecía una muy buena oferta. En el link podéis ver todos los componentes que lleva.
https://www.assetstore.unity3d.com/en/#!/content/43181
En mi ignorancia, pensaba que como por ejemplo las naves, sería colocar los assets, quizá manejarlos un poquillo, algo de codigo y arreando. A primera vista está todo muy bien, lleva un montón de animaciones incluídas, controles y demás, pero no necesito tanta sotisficación, aparte que si no me salgo con algo básico, menos con algo tan completo, ya que en realidad sólo necesito que hagan por decirlo de alguna forma de figurantes, es decir, que adopten una posición natural y quizá un poco de movimiento para que no den sensación de estático. Así que simplemente cargo en el proyecto, busco el prefab que me interesa, se lo enchufo a la escena, le meto un anim de idle, por ejemplo, y pienso que ya. Que al ejecutar se ejecutará la anim, adoptará la posición idle y listos. Pues no, siguen en T y no hay modo. Les enchufo otra anim y otra y otro, y sólo muy de vez en cuando cogen alguna. He probado a meterle un Animator Controler, y ahí meter la animación y asignarle la animación y las transiciones tanto al Entry como al Any State, y nada, ni modo. He pensado que a lo mejor cada modelo lleva sus propias animaciones y que estaba asignando las que no eran, así que me he pelado el culo probando, pero es que me salen cientos, y por ejemplo con un modelo he probado todos los de unarmed idle, y tampoco, así que no es eso, he buscado la documentación, y no hay ninguna.
Así pues me pregunto, por ejemplo, si es que cuando se hacen Assets hay una serie de convenciones que me estoy saltando por ignorarlas, si estoy saltándome algún paso por desconocimiento, o si simplemente lo estoy haciendo como el culo. No sé si alguien con más experiencia en animaciones o en assets me puede dar una idea.
Como siempre, muchas gracias por vuestro tiempo.
Más que un problema, creo que lo que necesito es un poco de orientación. Para empezar decir que en el tema de animaciones decir que estoy verde es decir poco. Es la primera vez que me meto en esto, ya que soy coder, y más o menos hasta ahora, con mis tropiezos, me había ido saliendo de todo lo que me había metido, y ahora ya más o menos tengo las cosas encaradas y quería empezar ha darle un poquillo de imagen, así que ni corto ni perezoso, empiezo a buscar por el asset store y me encuentro esto, que me parecía una muy buena oferta. En el link podéis ver todos los componentes que lleva.
https://www.assetstore.unity3d.com/en/#!/content/43181
En mi ignorancia, pensaba que como por ejemplo las naves, sería colocar los assets, quizá manejarlos un poquillo, algo de codigo y arreando. A primera vista está todo muy bien, lleva un montón de animaciones incluídas, controles y demás, pero no necesito tanta sotisficación, aparte que si no me salgo con algo básico, menos con algo tan completo, ya que en realidad sólo necesito que hagan por decirlo de alguna forma de figurantes, es decir, que adopten una posición natural y quizá un poco de movimiento para que no den sensación de estático. Así que simplemente cargo en el proyecto, busco el prefab que me interesa, se lo enchufo a la escena, le meto un anim de idle, por ejemplo, y pienso que ya. Que al ejecutar se ejecutará la anim, adoptará la posición idle y listos. Pues no, siguen en T y no hay modo. Les enchufo otra anim y otra y otro, y sólo muy de vez en cuando cogen alguna. He probado a meterle un Animator Controler, y ahí meter la animación y asignarle la animación y las transiciones tanto al Entry como al Any State, y nada, ni modo. He pensado que a lo mejor cada modelo lleva sus propias animaciones y que estaba asignando las que no eran, así que me he pelado el culo probando, pero es que me salen cientos, y por ejemplo con un modelo he probado todos los de unarmed idle, y tampoco, así que no es eso, he buscado la documentación, y no hay ninguna.
Así pues me pregunto, por ejemplo, si es que cuando se hacen Assets hay una serie de convenciones que me estoy saltando por ignorarlas, si estoy saltándome algún paso por desconocimiento, o si simplemente lo estoy haciendo como el culo. No sé si alguien con más experiencia en animaciones o en assets me puede dar una idea.
Como siempre, muchas gracias por vuestro tiempo.
#49
General (Antiguo) / Cuestion de magnitudes
Julio 28, 2016, 10:28:13 PMCita de: Braltor date=1469454686mira en este proyecto:
el creador tiene sus modelos en alta calidad y apenas le van en su tarjeta grafica... da una buena idea del "tope"
Uffff... vaya, gracias, pero ando tan perdido en esto, que no se como comparar... Tendré que comprarlos e ir poniendo a ver si me aguanta o no...
De todas formas, muchas gracias.
#50
General (Antiguo) / Dudas sobre qué métodos usar
Julio 28, 2016, 10:24:27 PM
Para el punto 1, una cosa que me parece muy elegante es crear una matriz con la parte entera de las coordenadas de los objetos (Transform) que quieres chequear. En tu caso si son varios enemigos y un sólo jugador incluso más fácil, no necesitas la matriz, simplemente puedes que el jugador informe de la parte entera de sus coordenadas en alguna parte publica y accesible a los enemigos. En el update haces la comparación de si está a -1 de diferencia en X, Y y Z en un if. Al ser enteros la comparación es muy rápida, si no cumple, ya no sigue. Si cumple entonces entras en el if y ya ahí haces las comprobaciones "finas".
#51
General (Antiguo) / Cuestion de magnitudes
Julio 25, 2016, 12:30:32 PM
Hola,
Estoy empezando a buscar assets para iniciar la parte gráfica. El problema es que no tengo idea de a partir que punto empezaría a ralentizar. Ahora mismo los modelos que barajo estarían sobre los 10.000 triángulos, aunque habrían varios de estos en escena. También he visto algunos hiperrealistas, que se suben hasta los 200.000 e incluso más, pero los descarto tanto por el número de triángulos como por el precio.
Así que los que más o menos tengan referencias para orientarme de cuantos triángulos puede mover bien una escena por ejemplo a nivel orientativo solamente, estaría agradecido. Decir que sólo considero que funcione en PC.
Muchas gracias a todos.
Estoy empezando a buscar assets para iniciar la parte gráfica. El problema es que no tengo idea de a partir que punto empezaría a ralentizar. Ahora mismo los modelos que barajo estarían sobre los 10.000 triángulos, aunque habrían varios de estos en escena. También he visto algunos hiperrealistas, que se suben hasta los 200.000 e incluso más, pero los descarto tanto por el número de triángulos como por el precio.
Así que los que más o menos tengan referencias para orientarme de cuantos triángulos puede mover bien una escena por ejemplo a nivel orientativo solamente, estaría agradecido. Decir que sólo considero que funcione en PC.
Muchas gracias a todos.
#52
General (Antiguo) / Instanciar
Julio 25, 2016, 08:49:38 AM
Hola, gracias por las respuestas.
Este finde he tenido tiempo y he estado haciendo pruebas, y me he dado cuenta de que el prefab me lo estaba cogiendo como un transform, no me preguntes el por qué, el caso es que he rehecho de cero el transform y he rehecho la referencia también, y así a la primera, así que en algo habría metido la pata.
Nuevamente, gracias a todos.
Este finde he tenido tiempo y he estado haciendo pruebas, y me he dado cuenta de que el prefab me lo estaba cogiendo como un transform, no me preguntes el por qué, el caso es que he rehecho de cero el transform y he rehecho la referencia también, y así a la primera, así que en algo habría metido la pata.
Nuevamente, gracias a todos.
#53
General (Antiguo) / Instanciar
Julio 18, 2016, 06:07:41 PM
Hola nuevamente.
Otra vez atrancado en algo que será una chorrada pero tras un par de días de pelearme con ello, mirar en la ayuda de Unity y el foro, diría que lo estoy haciendo calcado, pero no, hay algo que no me va. Trato de instanciar un prefab, y lo curioso es que me lo genera, así que mal, mal, no lo estoy haciendo, pero algo no "rula". Me explico, al crearlo quiero tener una referencia al objeto instanciado para poder lógicamente modificar sus propiedades. Pero no hay manera. No es mucho problema, podría buscar por tipo, o añadirle un tag, imagino que funcionaría, pero la primera cuestión es que parece más evidente obtener esta referencia en el momento de la creación, es más limpio y consume menos recursos. Segundo, por qué si no lo estoy consiguiendo, es que algún concepto no he entendido bien, y eso puede ser un problema importante más adelante, así que si alguien puede darme una idea de qué estoy haciendo y/o entendiendo mal, estaría muy agradecido.
Empiezo creando la referencia a un GameObject en la declaración de la clase:
Otra vez atrancado en algo que será una chorrada pero tras un par de días de pelearme con ello, mirar en la ayuda de Unity y el foro, diría que lo estoy haciendo calcado, pero no, hay algo que no me va. Trato de instanciar un prefab, y lo curioso es que me lo genera, así que mal, mal, no lo estoy haciendo, pero algo no "rula". Me explico, al crearlo quiero tener una referencia al objeto instanciado para poder lógicamente modificar sus propiedades. Pero no hay manera. No es mucho problema, podría buscar por tipo, o añadirle un tag, imagino que funcionaría, pero la primera cuestión es que parece más evidente obtener esta referencia en el momento de la creación, es más limpio y consume menos recursos. Segundo, por qué si no lo estoy consiguiendo, es que algún concepto no he entendido bien, y eso puede ser un problema importante más adelante, así que si alguien puede darme una idea de qué estoy haciendo y/o entendiendo mal, estaría muy agradecido.
Empiezo creando la referencia a un GameObject en la declaración de la clase:
public GameObject Planeta1GO;
//Y procedo a la instanciación del prefab.
Planeta1GO = Instantiate(PrefabPlaneta, transform.position, transform.rotation) as GameObject;
[/quote]
Me crea el objeto sin problema, lo veo en el juego, en el inspector e incluso puedo mani***rlo manualmente desde la pantalla de diseño. Sin embargo Planeta1GO me aparece siempre como NONE (GameObject), vamos el Null de toda la vida. He probado a crear el objeto en la misma línea de la instanciación como he visto en muchos ejemplos:
GameObject Planeta1GO = Instantiate(PrefabPlaneta, transform.position, transform.rotation) as GameObject;
//También tratando de hacer un cast
GameObject Planeta1GO = (GameObject) Instantiate(PrefabPlaneta, transform.position, transform.rotation);
[/quote]
Y todas las combinaciones que se me han ocurrido.
Como siempre muchas gracias a todos.
#54
General (Antiguo) / Opinión sobre como organizar los eventos del juego.
Abril 30, 2016, 08:44:20 PM
[quote author=iRobb" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="35733" data-ipsquote-contentcommentid="130253 date=1461718454]Es un tema muy interesante y práctico, porqué al inicio de la curva de aprendizaje crees que no lo vas a necesitar, y al final acabas con un montón de componentes dispersos sin orden.El mío lo he hecho en base a un bucle que consulta un hash (es muy sencillo de crear). El componente define el hash, que es lo que le identifica en caso de cambio. No utilizo timers y el 90% de mi código son coroutines, desde el inicio.[/quote]Suena interesante. Podrías dar más detalles así a nivel de concepto? Qué diferencia habría con la suscripción a un evento? Perdón si es pregunta de novato, eh? pero es que muchos de estos conceptos aún son nuevos para mí.
#55
General (Antiguo) / Opinión sobre como organizar los eventos del juego.
Abril 26, 2016, 05:19:40 PMCita de: iRobb date=1461633494" data-ipsquote="" data-cite="iRobbTambién supongo que tendrás que definir dependencias en los eventos. Es decir, no puedes pagar a los funcionarios sino has cobrado los impuestos.O sea, aparte de la fecha, un orden dentro de las acciones.Muchas gracias. Evidentemente si, hay que establecer un orden.Lo siento, ahora viéndolo veo que el título del hilo ya sugiere la respuesta y desvía la cuestión que quería preguntar.Esto viene a ser, teniendo controlado el momento en que se ha de "disparar" las acciones, teniendo en cuenta que afectan a varios tipos de clases diferentes y que tienes todos los elementos controlados por listas, que creéis que es más eficiente, un buce ForEach en las listas que invoque a todas las funciones de los objetos para que chequeen, eventos tal cual, o bien algún otro tipo de implementación.Disculpas a todos por mi poca claridad al formular la pregunta y muchas gracias.
#56
General (Antiguo) / Duda de AI o Tags
Abril 26, 2016, 05:03:07 PM
Yo lo haría por IA, si les programas reacciones a obstáculos, te servirán para cualquier cosa que programes en un futuro.Puedes empezar informándote de PathFinding, que es para que elijan el camino más adecuado. Es complejo, pero te dará una base sólida para todo el resto...
#57
General (Antiguo) / Opinión sobre como organizar los eventos del juego.
Abril 25, 2016, 08:08:51 PM
Bien, para dar una idea, imaginemos que es un juego de estrategía y que ha de lanzar unos eventos periódicos, imaginemos por ejemplo, cada mes, cobrar los impuestos, pagar las nóminas de funcionarios, incorporación de reclutas a filas, incrementos de población, etc.Tengo hecho un timer y un Objeto que es un director de juego, que se encarga de crear las nuevas entidades según conviene, y meterlos en colecciones para tenerlos controlados y esas cosas. Lo tengo resuelto de tal forma que cuando se cumple un mes en el timer, ataca una función del director del juego la cual se encarga de recorrer uno por uno todos los elementos de las colecciones (forearch) y ejecutar a su vez las funciones de "fin de mes" para que cada uno de los pueblos paguen los impuestos, recluten los reclutas, paguen a los funcionarios, incrementen población, etc... y va bien. Ahora, trato más de aprender que no que las cosas funcionen (Aunque cuando lo hacen es un gusto, jejejejeje...) y aún me faltan muchos conceptos por asimilar, así que mi pregunta para el foro es... Se os ocurre un método mejor de hacerlo? Más eficiente? O podríamos decir que el que empleo es el más óptimo para este propósito?Nuevamente muchas gracias a todos.
#58
General (Antiguo) / Duda movimiento de cámara
Abril 10, 2016, 10:18:02 AM
Hola,No me voy a meter con las corrutinas, dado que aún soy principiante y no las domino.El Update si que se lo suficiente para responderte. La opción Update es llamada a cada Frame, por lo que el código será llamado a cada Frame y no necesitas ningún bucle. Al ejecutar el Time.deltaTime, lo que haces es calcular el tiempo pasado desde el último Frame y calcular la posición de la cámara según el tiempo transcurrido.Así pues con colocar el código en el Update, tendrías suficiente, ya se encarga el sistema de llamarlo y el Time.deltaTime * velocidadCamara de regular su velocidad para que sea constante y no realice saltos por las diferencias de fps.
#59
General (Antiguo) / Nueva duda tonta, esta vez con imagen que hago servir de menu
Marzo 16, 2016, 08:34:48 PM
[quote author=gonzalitosk8" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="35336" data-ipsquote-contentcommentid="128083 date=1457711780]te adjunto un codigo rapido que hice para ti. using UnityEngine;
using System.Collections;public class OpenCloseMenu : MonoBehaviour { public GameObject desactivar;
public GameObject activar;
void OnMouseDown(){
activar.SetActive (true);
desactivar.SetActive (false); }
} asigna este código a cada imagen, también agrégale un collider como tag. luego agregas el objeto que queres activar y cual queres que se desactive al hacer click en la imagen. ej:haces click en la imagen 1, y se activa la 2, asi mismo la 1 se desactiva. es buen codigo para crear menu (es asi como lo utilizo) saludosss[/quote]fantástico. Lo pruebo. Muchas gracias también!!!
using System.Collections;public class OpenCloseMenu : MonoBehaviour { public GameObject desactivar;
public GameObject activar;
void OnMouseDown(){
activar.SetActive (true);
desactivar.SetActive (false); }
} asigna este código a cada imagen, también agrégale un collider como tag. luego agregas el objeto que queres activar y cual queres que se desactive al hacer click en la imagen. ej:haces click en la imagen 1, y se activa la 2, asi mismo la 1 se desactiva. es buen codigo para crear menu (es asi como lo utilizo) saludosss[/quote]fantástico. Lo pruebo. Muchas gracias también!!!
#60
General (Antiguo) / Nueva duda tonta, esta vez con imagen que hago servir de menu
Marzo 06, 2016, 08:40:45 PM
Al final lo he conseguido, que nadie me pregunte como... Añadí una función Start en la que desactivaba el panel, y si funcionaba. Pero no conseguía activar, así que he vuelto a rehacerlo todo y me ha funcionado. No me ha hecho falta crear gameObjects vacíos. He empezado con la función Start desactivando, comprobando que funciona y a partir de ahí he asignado otros valores a la pulsación de botón, queda más sucio, pero funciona. Supongo que como me volví haciendo pruebas y más pruebas antes de pedir ayuda, al final lié un pitosfio por algún lado. Copio el código final por si a alguien le sirve.using UnityEngine;
using System.Collections;
using UnityEngine.UI;public class ClsDirectorDeMenus : MonoBehaviour { public int opcion; public GameObject panelImagenSelector;
public GameObject panelImagenPlaneta; void Start()
{
if (opcion == 0)
{
opcion = 2;
panelImagenPlaneta.SetActive(false);
}
} public void botonPulsado(int boton)
{
switch (boton)
{
case 1:
if(opcion == 2)
{
opcion = 1;
panelImagenPlaneta.SetActive(true);
}
break;
}
}
}Nuevamente muchas gracias a todos por vuestra ayuda!!! Sin vosotros seguramente seguiría loco haciendo pruebas y liandolo cada vez más!!!
[quote author=juanma_teso" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="35336" data-ipsquote-contentcommentid="127925">Sigues sin aplicarle el setActive al gameobject. 'panelImagenPlaneta.gameObject.SetActive(true);'[/quote]Gracias por la respuesta. Ya lo he resuelto. En la declaración lo hago como public GameObject panelImagenPlaneta; Imagino que al hacerlo así, al arrastrar la imagen me coge el gameObject directamente. El caso es que me funciona, pero si es por chiripa y estoy equivocado y lo estoy haciendo mal por favor, corrígeme. Prefiero aprender y corregir errores. Algunos conceptos aún me cuestan y si los fijo mal, aunque ahora en esto me funcione, en otras cosas no lo harán y me volveré loco tratando de entender.
using System.Collections;
using UnityEngine.UI;public class ClsDirectorDeMenus : MonoBehaviour { public int opcion; public GameObject panelImagenSelector;
public GameObject panelImagenPlaneta; void Start()
{
if (opcion == 0)
{
opcion = 2;
panelImagenPlaneta.SetActive(false);
}
} public void botonPulsado(int boton)
{
switch (boton)
{
case 1:
if(opcion == 2)
{
opcion = 1;
panelImagenPlaneta.SetActive(true);
}
break;
}
}
}Nuevamente muchas gracias a todos por vuestra ayuda!!! Sin vosotros seguramente seguiría loco haciendo pruebas y liandolo cada vez más!!!
[quote author=juanma_teso" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="35336" data-ipsquote-contentcommentid="127925">Sigues sin aplicarle el setActive al gameobject. 'panelImagenPlaneta.gameObject.SetActive(true);'[/quote]Gracias por la respuesta. Ya lo he resuelto. En la declaración lo hago como public GameObject panelImagenPlaneta; Imagino que al hacerlo así, al arrastrar la imagen me coge el gameObject directamente. El caso es que me funciona, pero si es por chiripa y estoy equivocado y lo estoy haciendo mal por favor, corrígeme. Prefiero aprender y corregir errores. Algunos conceptos aún me cuestan y si los fijo mal, aunque ahora en esto me funcione, en otras cosas no lo harán y me volveré loco tratando de entender.