Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation since 08/02/2020 in Posts

  1. 5 points
    He escrito una pequeña guía/hoja de ruta para alguien que quiere empezar en el desarrollo de videojuegos, o seguir mejorando en los primeros niveles. La idea es que sirva de referencia para orientarnos un poco ya que cuando empezamos puede ser difícil saber por dónde empezar y cómo seguir avanzando. Aquí os dejo la versión en texto con más detalles: https://thepowerups-learning.com/como-empezar-en-el-desarrollo-de-videojuegos/ Y aquí abajo la versión en vídeo: ¡Espero que os sirva! ¡Un abrazo! Dani.
  2. 4 points
    Ostia! Vine a actualizar el hilo del asset, y me di cuenta que nunca lo había creado 😅 ... bueno aquí va... Links: Asset store Demo (Desktop) Demo (webGL) Features Documentación (en ingles) Breve descripción: Character Controller Pro es un controlador de personaje (o character controller) de tipo dinámico que funciona con físicas 2D/3D, y tiene forma de cápsula. El paquete se separa en 3 partes: Core: El character controller con todo lo necesario para que exista y funcione por si solo [Lógica no implementada] Implementation: incluye un sistema construido encima del controlador que ayuda a 1) administrar inputs (sin importar su origen, viejo sistema de Unity, nuevo sistema, Rewired, etc) para luego convertirlas en acciones, y 2) proveer de una maquina de estados (FSM). [Lógica no implementada] Demo: Dentro del paquete se incluyen escenas de demostración, estados (implementaciones de lógica de gameplay), acciones predefinidas (movement, jump, crouch, etc), y más. [Lógica implementada]
  3. 4 points
    Hola a todos, les presento mi más reciente proyecto Bubbles and Puzzles, espero que sea de su agrado y puedan apoyarme con su feedback, les estaré muy agradecido. Se trata de un juego tipo fruit cut, pero en vez de cortar las frutas, tienes que cortar las burbujas y rescatar las frutas de su interior para completar el nivel y así poder avanzar. El rescate tiene que ser en el orden indicado ya que de lo contrario iras perdiendo vida hasta el punto del Game Over. La meta es llegar lo más lejos posible y conseguir la mejor puntuación para posicionarte en el Tablero de Ranking, tienes la oportunidad de compartir tu dispositivo con hasta 5 jugadores para así hacerlo más competitivo. Sin más les dejo estas imágenes del juego. Disponible en la Play Store.
  4. 4 points
    Hola, he creado un pequeño curso de introducción a los MLAgents. En total son nueve vídeos, donde se crean dos proyectos y un minijuego. El primer proyecto es muy sencillo, para no perder tiempo en nada que no sea el funcionamiento / configuración de MLAgents. Como seguir estas cosas por las listas de reproducción de youtube se me hacen complicadas me he liado la manta a la cabeza y he creado una pequeña WEB donde se puede seguir el curso, como si de una academia online se tratara, y acceder a los scripts y ficheros necesarios. La URL del curso es: https://cursos.uadla.com/curso/introduccion-al-machine-learning-con-ml-agents-para-unity/ Si alguien lo sigue por aquí, por favor, que me comente si el sistema funciona correctamente y es como de de usar. Os dejo también el vídeo de presentación: Espero que os guste, la verdad es que es un tema que me ha gustado de siempre, espero tener tiempo para ir haciendo cursos para tratarlo en más detalle y con entornos más complejos. También hay que tener en cuenta que ahora los MLAgents empiezan a estar mas o menos maduros, y sí que veo que empiezan a ser una forma de entrenar NPC's que podemos usar en nuestros juegos.
  5. 3 points
    Muchos lo sabréis y otros no, pero hay una lista de recursos bastante tocha hecha en zeef.com de recursos para el desarrollador de videojuegos. Espero que os sea de utilidad! https://game-development.zeef.com/daniel.cuadrado.gonzalez Notion. Espacio todo en uno para productividad (Tablero Kanban, wiki, notas rápidas...): https://www.notion.so/ Adobe Color. Elección de colores: complementariedad, análogos...: https://color.adobe.com/es/create/color-wheel GifCam. Programita para crear Gifs: http://blog.bahraniapps.com/gifcam/
  6. 3 points
    Yo sinceramente creo que un foro es muchísimo mejor para tratar dudas, todo queda mejor organizado y no se pierde entre tanto mensaje. Lo bueno que sí le veo es quizás la inmediatez de las respuestas. En lugar de tener tantos discords, telegrams e historias deberíamos de intentar aunarlos todos aquí. Suerte con el Discord!
  7. 3 points
    Buenos días compañeros!!, por fin he solucionado mis problemas con el Animator, aunque no del todo, pero quiero dejar aquí la solución para que no le pase a nadie mas. Unity tiene un orden de transiciones, pero ese orden al menos en la versión 4.7.2 que es la que uso yo, no funciona correctamente hasta que no aprendes a utilizar "Atomic", que es una casilla que por defecto viene marcada, pero que al desmarcarla significa "NO PASAR A ESTA ANIMACIÓN SI ANTES ESTÁ EJECUTANDOSE OTRA QUE ESTÉ PRIMERO EN EL ORDEN DE TRANSICIONES". Quiere decir, que si le damos a correr y a saltar al mismo tiempo, Unity podría intentar hacer la animación de correr y después la de saltar creando una pose extraña, mientras que si destildamos la casilla Atomic y colocamos en la lista de transiciones la pose de saltar en primer lugar, Unity antes de iniciar la animación de correr iniciará la de saltar porque tiene prioridad. Esto me ha solucionado el 90% de los errores de animación, pero aún hay otros como que por ejemplo esté realizando una transición y quieras interrumpirla, que creo que lo voy a tener que hacer con programación, porque esta versión de Unity no tiene el Has Exit Time. Saludos.
  8. 3 points
    Todo eso me suena a que no estás haciendo 2 cosas: Seteando la prioridad de las transiciones, Selecciona un estado y fijate que en el inspector te figuran en order, de arriba (más prioridad) a abajo (menos). Configurando la fuente de interrupción de cada estado (https://docs.unity3d.com/Manual/class-Transition.html#TransitionInterruption), ya que se puede dar que una transición esté pasando, pero un estado (el actual o el siguente) tenga una transición valida al mismo tiempo. Respecto a 2, esto dice la doc: Value Function None Don’t add any more transitions. Current State Queue the transitions from the current state. Next State Queue the transitions from the next state. Current State then Next State Queue the transitions from the current state, then queue the ones from the next state. Next State then Current State Queue the transitions from the next state, then queue the ones from the current state. Ejemplo de un personaje que está en el estado "caida" y pasa a "suelo" al caer (isGrounded = true). En plena transición le das a la tecla de salto, es decir, deberías pasar de "suelo" a "salto". Volviendo al isGrounded = true, un trigger se llama, ahora está en plena transicion a "suelo". Vamos a suponer que todavía no estás en "suelo" (que es el proximo estado, el "next"), entonces sigues en "caida" (el actual o "current"), por lo que si presionas la tecla de salto no pasa nada (a nivel animación, probablemente el objeto físico salte, eso no nos importa de momento). La cosa que la animación no cambia, todo termina en "suelo" eventualmente. Si configuras que la fuente de interrupción sea "Next", lo que va a pasar es lo siguiente: Hay una transición que require accionarse ya mismo ("suelo -> salto" dió válida) Dicha transición pertenece al estado siguiente "suelo" (next). Recordar que los estados contienen a las transiciones si tienen su cola (no su punta). En este caso suelo contiene "suelo -> salto", salto tendrá "salto -> caida", caida tendra "caida -> suelo" , y así... El estado actual (caida) tiene como fuente de interrupción el estado Next ("suelo", quien contiene la transición a salto y encima es válida) El sistema suma dos más dos y termina interrumpiendo la transición actual de inmediato, en base a la "interruption source" de arriba. Todo esto no hubiera terminado bien si tuvieras current como fuente de interrupción. Si no estás seguro metele "Current state then next state". Documentación. Como dijiste, esas son las dos más usadas, Play reproduce de una, Crossfade te da una transición de donde estés hacia el estado target. Pasa que eso es muy confuso, que pasa si estás saltando (que se yo, 100 metros en el aire) y a los 3 segundos (llegaste al pico) no presionas nada? tenés que andar leyendo el estado actual, y en base a eso determinar si das Play/Crossfade a X animación... terminas creandote la misma herramienta dentro del código. Creeme que yo vengo puteando con Mecanim desde hace años, y todos los problemas (excepto los más estúpidos y fáciles de solucionar) tienen su vuelta. Te recomiendo lo de las prioridades y las fuentes de interrupciones.
  9. 3 points
    tienes que buscar un poco antes de preguntar, probar si puedes hacerlo mínimo 2 días y sino preguntas, tu pregunta esta en el manual lee un poco. URL: https://docs.unity3d.com/ScriptReference/Rigidbody-isKinematic.html Controla si la física afecta al cuerpo rígido. Si isKinematic está activado, las fuerzas, colisiones o articulaciones ya no afectarán al cuerpo rígido. El cuerpo rígido estará bajo control total de animación o control de script cambiando transform.position. Los cuerpos cinemáticos también afectan el movimiento de otros cuerpos rígidos a través de colisiones o articulaciones. Eg. puede conectar un cuerpo rígido cinemático a un cuerpo rígido normal con una articulación y el cuerpo rígido se restringirá con el movimiento del cuerpo cinemático. Los rigidbodies cinemáticos también son particularmente útiles para hacer personajes que normalmente son impulsados por una animación, pero en ciertos eventos se pueden convertir rápidamente en un ragdoll estableciendo isKinematic a false. using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { public Rigidbody rb; void Start() { rb = GetComponent<Rigidbody>(); } // Let the rigidbody take control and detect collisions. void EnableRagdoll() { rb.isKinematic = false; rb.detectCollisions = true; } // Let animation control the rigidbody and ignore collisions. void DisableRagdoll() { rb.isKinematic = true; rb.detectCollisions = false; } } este es un ejemplo básico solo para la colisión y estado muerto del enemigo, si quieres chocar al enemigo y que las físicas interactúe con el enemigo muerto tienes que hacer un Ragdoll del enemigo para desactivar la animación del enemigo y que cuando tenga 0 de vida se caiga y lo puedas mover cuando colisionas con el. public void Ejemplo(float amount) { if (health < 5) //este valor depende de cuanto daño le haces al enemigo., lo que dice es si vida es menor a 5 pasa a estado de muerte. { muerte(); } } void muerte() { Destroy(GetComponent<NavMeshAgent>()); // aca se desactiva la inteligencia Artificial. anim.enabled = false; //aca desactiva la animacion quedando solo el Ragdoll. } sino sabes que es un Ragdoll acá te dejo un link :"" https://www.youtube.com/watch?v=DInV-jHm9rk&t=1s¨
  10. 3 points
    necesito ayuda! no se si esto funcionara foreach (User _user in UnitySpainUserList) { _user.addMessage("felices fiestas"); }
  11. 3 points
    Hola! @Megadok para hacer ese uso es muy simple. Lo enums son tratados no solo con los nombre que les des(espada, arco,etc) sino que por defecto tiene un index asociado comenzando desde 0. Por lo que si queres que tu variable _arma sea igual a lanza por ejmplo solo tendrías que castear el tipo armas delante del index correspondiente a lanza(que sería 2). Te dejo un ejemplo. public enum armas { espada, //0 arco, //1 lanza, //2 hacha //3 } public armas _armas; private void Start() { //el casteo se hace poniendo entre parentesis el tipo que te interesa obtener _armas = (armas)1; //esto hara que _armas sea "arco" } //Con tu codigo seria asi string[] r = System.Enum.GetNames(typeof(armas)); for(int i=0;i<r.Lenght;i++){ _armas = (armas)i; }
  12. 3 points
    Este código lo hicimos en otro post. Pásale una List de elementos y te los posicionará de manera aleatoria: public void shuffle<T>(IList<T> list) { System.Random random = new System.Random(); int n = list.Count; for (int i = list.Count - 1; i > 1; i--) { int rnd = random.Next(i + 1); T value = list[rnd]; list[rnd] = list[i]; list[i] = value; } }
  13. 3 points
    hola a todos. acabo de subir un nuevo trailer a Youtube
  14. 3 points
    Acabo de subir el siguiente capitulo: Lógica y ciclos. En este video vemos la sentencia if, junto con else. Ademas vemos el ciclo for y el ciclo while. Y por ultimo vemos las sentencias continue y break para ciclos Edit: No quería spamear mucho el post así que agrego el siguiente episodio aqui. En este cuarto capitulo vemos varias cosas: Función Update, Físicas de Unity, Input del jugador, la función GetComponent, framerate-independence y como detectar colisiones entre objetos.
  15. 2 points
    Bolsillo: Simulador de Dios Hola a todos, antes de empezar, me gustaría aclarar que ES MI PRIMER JUEGO , por lo tanto, es un proyecto que va a llevar tiempo. Cuanto mas lo avanzo, mas aprendo nn Pocket : God Simulator es un simulador de Dios, dándote la posibilidad de construir un mundo y poder ver como crece tu civilización! PGS: 0.0.4 (Les debo el Video, en la brevedad cuando el juego este mucho mejor pulido) Actualmente, el juego se encuentra en desarrollo. En un estado muy básico. La descarga estará disponible en la versión 0.1.0 Tan para Windows. --------------------------- Cualquier tipo de ayuda (PixelArt, Ambientación, Beta testers) es recibida con los brazos abiertos! -
  16. 2 points
    Tan solo haz un endpoint en php para que te liste la información en formato JSON mediante una url. En unity lees el JSON mediante la URL y creas las clases que necesites para transformar el JSON a un objeto de c#. Es algo muy sencillo pero necesitas tener conocimientos web.
  17. 2 points
    Update #2 - Añadio enemy Spider. - Añadido Tank Spider. - Añadido Bong Spider. - Añadido boss #2. - Fixed Spawner bullet . - Mejora en la interfaz.
  18. 2 points
    hola a todos. cansado (desesperado) de que le costase tanto entrar al play mode al final decidi formatear el PC e instalar de nuevo windows10 (el mismo que tenia) y unity 2018.1.7f (el mismo que tenia) con visual studio 2017 (el mismo que tenia) y ahora en vez de cosatarle mas de 23 segundos entrar al "play mode" le vuelve a costar 5 segundos (lo mismo que le costaba antes) o sea que he solucionado el problema si a alguien le pasa esto, que de repente todos los proyectos les cuesta mucho mas entrar al play mode, sin haberles hecho cambios, pues que sepan que reinstalando todo (todo) se soluciona el problema. creo que a mi el problema me empezo al instalar un juego que pedia instalar una version mas nueva de C++ redistribuible (creo que fue por eso) ...no se si esa instalacion cambio algo del registro, o que paso, pero el caso es que aunque desinstale esa version e instale encima la vieja no se soluciono. ahora SI lo he solucionado, formateando e instalando windows otra vez, ya va bien. solucionado.
  19. 2 points
    Suerte y ha ganar dinerito xD
  20. 2 points
    Hola. Aqui os dejo un demo de un juego que creaba cuando estaba en la Universidad por alla por el 2012. Que tiempos!!!!! En la descripcion del video esta el enlace de descarga del demo para android. SALUDOS!!!!! https://youtu.be/x-R51CWVlVM
  21. 2 points
    Pos diria que este efecto lo puedes conseguir con shaders que usen el "Stencil Buffer", en youtube hay tutos.
  22. 2 points
    Le pones por encima un raw image con una textura que sean divisiones y le modificas el tileX para el numero de divisiones que quieres
  23. 2 points
    Perdón por responder tan tarde! No, no es requerido, las referencias a componentes se buscan automaticamente. La estructura que yo propongo es una estructura óptima, es decir que puedes hacer varias cosas interesantes separando la parte visual de la parte física (collider + rigidbody). Lo que sí o sí es requerido es que todo lo relacionado al personaje esté contenido dentro de un "root" u objeto maestro (padre). No, de hecho CCP no hace referencia a los huesos de ninguna manera. En la "Demo" mi personaje es un humanoide, gracias a esto puedo usar el avatar que Unity ofrece para acceder a los IK (por ejemplo). Por ejemplo (estado LadderClimbing ) public override void UpdateIK( int layerIndex ) { if( !useIKOffsetValues ) return; UpdateIKElement( AvatarIKGoal.LeftFoot , leftFootOffset ); UpdateIKElement( AvatarIKGoal.RightFoot , rightFootOffset ); UpdateIKElement( AvatarIKGoal.LeftHand , leftHandOffset ); UpdateIKElement( AvatarIKGoal.RightHand , rightHandOffset ); } void UpdateIKElement( AvatarIKGoal avatarIKGoal , Vector3 offset ) { CharacterStateController.Animator.SetIKPositionWeight( avatarIKGoal , 0f ); Vector3 originalRightFootPosition = CharacterStateController.Animator.GetIKPosition( avatarIKGoal ); CharacterStateController.Animator.SetIKPositionWeight( avatarIKGoal , 1f ); CharacterStateController.Animator.SetIKPosition( avatarIKGoal , originalRightFootPosition + offset ); } Ahora mismo el método usado para movimiento es muy pero muy simple, un MoveTowards que modifica la velocidad linealmente con el tiempo. El base speed limit indica el target del MoveTowards (función de Vector3) del walk (no de run). Este valor será el valor final de velocidad obtenido, es decir que técnicamente no es posible, ya que mayor límite de velocidad + aceleración implica obtener una velocidad mayor. Ya que es un MoveTowards (incluso si fuese un Lerp), quizás lo que más te importe a la hora de modificarlo es su "t factor" (el tercer argumento de este método). Si tienes el control de "t" entonces puedes controlar la velocidad como quieras, independientemente de sus límites. En mi caso uso acceleration/deceleration como variables "t". Jugar entre los valores de velocidad y los umbrales (threshold) del animator es fundamental. Quizás tratar de cubrir varios tipos de movimiento (parada, arranque suave, trote, correr, etc) todos al mismo tiempo (usando una simple funcion lineal) no sea una buena solución en tu caso. Si realismo en las animaciones es lo que necesitas se pueden hacer dos cosas: Mejorar el script de movimiento. Meter curvas para lograr un movimiento menos lineal y más personalizable es algo que voy a introducir en 2.0.0. Ya esto pasa por el lado de la implementación de la lógica (por parte del usuario) y escapa al alcance del asset. De todas formas siempre trato de meter este tipo de cosas, de manera de facilitar un poco la parte del gameplay. Usar root motion, piensa en GTA 4/5 por ejemplo. No hay scripts ni nada de eso, el clip contiene la información de movimiento y solamente se lee el input del player. Con 1.3.3 puedes usar root motion para planar velocity y seguir usando la gravedad de NormalMovement.
  24. 2 points
    Gracias francoe1 Les comparto un pequeño video para ver de que va el juego
  25. 2 points
    Mil gracias, tu post me ayudo muchísimo, tanto que ya solucione el problema jejejej, yo pensaba que la función OnMouseDown era común para todo, el plan que tenias que configurar con condicionales si clicabas en un sitio o otro. Por si no quedo claro soy nuevo en esto de unity jejejej XD pero muchas gracias por tu ayuda
  26. 2 points
    hola, he visto este "trailer" de un proyecto que esta en kickStarter me parece una pasada y una locura. solo queria compartirlo porque me ha alucinado. os dejo tambien el enlace de kickStarter por si teneis mas curiosidad, salen mas cosas ahi. https://www.kickstarter.com/projects/esbenkongorange/vokabulantis
  27. 2 points
    Y aquí vendría el artículo de esta semana. He estado liando con animaciones procedimentales. https://oniria.world/2021/03/22/devlog-2-animaciones-procedimentales/ ¿Sois de los que en español decís procedural o procedimental?
  28. 2 points
    Buenísimo el vídeo!! gracias por el aporte
  29. 2 points
    Si quieres acceder a él desde otro script tiene que ser publico. El otro problema es que no puedes sumar un float a un vector, no existe esa operación vectorial. Puedes multiplicar ese float por Vector2.One (1,1) y entonces sumarlo. ¡Un saludo!
  30. 2 points
    Si quieren aprender a hacer un menu en Unity, vayan a verlo!! Espero que les sirva! saludos
  31. 2 points
    Ya conseguí hacer el video. Añadido el link de Youtube. Saludos.
  32. 2 points
    Buenas tardes, como dice Francoe1 estás confundiendo términos o quizá los entiendes pero no del todo. Renderizar es dibujar en pantalla. Blender tiene su propio motor de renderizado y Unity tiene su propio motor de renderizado también, uno mas orientado a la renderización de video (como es el caso de Blender) y otra enfocada a la renderización en tiempo real. Cada motor tiene su propio sistema de iluminación, materiales y efectos por lo que a menudo lo que crees en programas como Blender se perderá al exportarlo a Unity quedando básicamente el modelado 3D con su texturizado UVW y las animaciones. Deberás de recrear tu escena lo mas parecida a como se vea en Blender pero desde Unity, creando materiales nuevos, iluminación, etc... En internet hay videos donde utilizan shaders para utilizar V-ray desde Unity, pero nunca lo he probado... Si alguien sabe mas del tema y puede ayudar que lo diga. Saludos.
  33. 2 points
    Hola, tienes que editar el sprite una vez lo has importado, al ser una imagen pixel tienes que decirle que no tenga compresión y sin filtro. En su inspector cambia la configuración, dile que en: [Compresión] - None Y en [Filter mode] - Point (no filter) Y aplica los cambios. Espero que te sirva, un saludo.
  34. 2 points
    Chequea el modificador decimate (creo que significa diezmar):
  35. 2 points
    Curioso que muestres la imagen que aparece en el manual, donde realmente está la solución: https://docs.unity3d.com/Packages/com.unity.ugui@1.0/manual/script-SelectableNavigation.html La opción Visualize está activa. Unity Learn para el UI Navigation: https://learn.unity.com/tutorial/ui-navigation#
  36. 2 points
    Creo que no te responden porqué la pregunta es demasiado genérica y sin pistas más detalladas de lo que estás haciendo. Tal vez poniendo ejemplos del código y explicando qué haces puedas conseguir respuestas.
  37. 2 points
    @francoe1 si, tienes razon. es muy sencillo, ademas en los "i wanna be" los "rectangulos" son siempre del mismo tamaño asi que no haria falta tampoco usar los "bounds" de la camara... bastaria con saber cuanto mide el rectangulo y hacer unos sencillos calculos (usando la posicion del player) para saber en que rectangulo estas y colocar la camara en la posicion correspondiente. lo del box collider que dije antes fue lo primero que se me ocurrio. pero es mejor igual hacerlo "matematicamente"
  38. 2 points
    Super profesional!!, si señor, mola mucho.🤠 Solo le veo una pega y es que cuando la bola queda oculta no sabes muy bien hacia donde tienes que rotar el cubo, porque no la ves, pero supongo que será parte de la complejidad del juego. Saludos!!.
  39. 2 points
    Buenas! soy Augusto de Chime Ayer comencé un canal dedicado a Unity y C# y largue con una serie de introducción a la programación en Unity. En el primer episodio simplemente vemos como instalar UnityHub y Visual Studio para dejar todo listo para el siguiente episodio: En el segundo creamos nuestro primer Hola Mundo en Unity, y vemos el concepto de variables con varios ejemplos. Ademas hice otro video suplementario que cubre varios temas básicos como para tener una buena base en Unity antes de empezar la serie Espero que les guste el contenido, voy a estar subiendo los siguientes capitulos a lo largo del mes!
  40. 2 points
    ¡Hola! Sé que debería pasarme por aquí más a menudo (no me regañéis ^^). Tenía pendiente presentar Oniria Crimes en Unity Spain desde hace tiempo. Ahora que ya está el juego terminado y solo estamos esperando a ultimar un par de post, creo que es el momento perfecto. Como podéis ver es un juego en isométrico y con una presentación muy basada en un formato visual novel, aunque la mecánica principal es la investigación a través de point&click. La mayoría de los objetos de los escenarios son interactivos (hay unos 50 por cada escenario). El modelado voxel lo hemos hecho con Magica Voxel. Deja la malla muy sucia así que después hay que hacer un pequeño proceso de limpieza. De todos modos casi todo es estático. La iluminación está hecha con lightmaps principalmente y una buena capa de post procesado. Para los textos hemos usado el plugin de ink (de inkle studios) que es un parseador bastante majo. Si queréis ver el trailer, está en la página de steam, que he enlazado al principio. Saldremos el 3 de diciembre para PC, Mac, Linux, consolas y móviles, y con traducción a 8 idiomas. Nuestro publisher es Badland. El tiempo de desarrollo ha sido año y medio, y son 6 casos de investigación y unas 12 cinemáticas. ¡Creo que eso es todo! La demo está gratuita en la página de steam, por lo que si os causa curiosidad, nos gustaría mucho que lo probáseis y nos diéseis vuestro feedback 😄 Si queréis preguntarnos cualquier cosa a mí o al equipo de desarrollo, estaremos encantados de responder. ¡Un abrazo!
  41. 2 points
    Lo bajé también, pinta muy lindo de momento. No he jugado mucho, solo 2 minutos (y sin querer salté la intro por apretar escape, pensando que me iba a llevar al menú xD). Feedback: La pantalla de configuración de Unity puede quedar algo meh, no se si es solo para la demo. Todo tiene un estética pixelada/voxelizada, incluso hasta para la fuente de texto, que es genial! Aquí, mi problema, en el menú principal las tres opciones que aparecen tiene una fuenta suavizada, cuando el resto del juego no. Se nota mucho si pasas de menú principal a settings. Hubiera preferido un "outline" para los objetos en vez de un "fill", pero bueno eso ya pasa por gustos/diseño (y quizás hasta por gameplay también, no lo se de momento). Digo esto porque si quiero saber (de forma visual) qué es lo que estoy tocando con el cursor debo salir del objeto. La música me encanta, acompaña muy bien. Los gráficos también muy bien logrados.
  42. 2 points
    No lo sé, pero San Google me dice que ... https://stackoverflow.com/questions/6435099/how-to-get-datetime-from-the-internet
  43. 2 points
    En tal caso puedes buscar la hora y la fecha a través de la red, ya sea un servidor propio o uno público.
  44. 2 points
    Primero: no uses // para cada linea, si quieres comentar un un metodo u otro texto largo, usa /* .... */. Segundo: En respuesta a tu pregunta. Deberías manejar el inventario y pickup objects desde el jugador, porque si vas a implementarlos en cada objeto 'Item', que pasará cuando quieras instanciar 1K items en la escena?, Tendrás 1K scripts ejecutando funciones de eventos en cada frame innecesariamente?. Usa un único sistema que manejé los eventos de colisión, entonces, cuando tu jugador este cerca a un objeto, se active un método que verifique si hay o no, espacio en el inventario. Y cuándo digo "UN" es solo uno, en tu primer script hay un método (RecogerObjeto ()) que se activa cuando se cumple un if, Fatal! Que pasa si ese if nunca cambia de estado? Seguirías llamando el método una, otra y otra vez, usando innecesariamente la CPU. En su caso, usa los eventos de colisión para preguntar una vez si hay espacio en el inventario. Si la respuesta es falso, evita hacer una nueva llamada a la función, entonces cuando el usuario elimine un item de su inventario, lanza otra función que diga algo como "Inventario actualizado, realiza una llamada a los triggers a ver si hay items para recoger", esto sería un optimización drástica al la manera en que está planteada tu actual idea.
  45. 2 points
    Tal vez el error este aquí. Calle.transform.position = new Vector3( transform.position.x, piezaAux.GetComponent<Renderer>().bounds.size.y + piezaAux.transform.position.y, piezaAux.transform.position.z); La coordenada x debería ser Calle.transform.position.x en lugar de transform.position.x
  46. 2 points
    Yo después de leer este hilo:
  47. 2 points
    Muy buenas a todos, abro este post para exponer una problemática que lleva azotando a este foro hace tiempo ya. Soy consciente de que muchos de vosotros lo pensáis, pero no decís nada por medio a represalias, pero ya estamos hasta las narices y no nos callaremos mas, no me importa sacrificarme por esta causa... y es que estamos hartos de los memes de los Simpson, en serio... ay miles de cosas mejores... rick y morty, south park, futurama... incluso los memes de bob esponja, pero por dios... ya basta de los Simpson. Gracias por vuestra atención
  48. 2 points
    en este foro obedecemos las leyes de la termodinamica!!!
  49. 2 points
    Hola, se me ocurren dos formas: 1. Usando un evento de Unity. En cada botón tenés eventos disponibles, pero solamente on click (presionar primero, luego al soltar se dispara el evento). Podés implementar algunas interfaces útiles para estos casos como las "IPointerXXXXX". Vas a tener que implementar dos, IPointerUpHandler e IPointerDownHandler. En donde querés usar el estado del botón (usé el componente "Target", en tu caso será el que tenga que ser): class Target : Monobehaviour { bool pulsado = false; public void Pulsar( bool pulsado ) { this.pulsado = pulsado; } //... } Donde esté el elemento UI, agregás este componente (lo llamé "UIButton"): //... using UnityEngine.EventSystems; //<--- public class UIButton : MonoBehaviour , IPointerUpHandler , IPointerDownHandler { public Target target; public void OnPointerDown(PointerEventData eventData) { if( target == null ) return; target.Pulsar( true ); } public void OnPointerUp(PointerEventData eventData) { if( target == null ) return; target.Pulsar( false ); } } También lo podés hacer desde el inspector, con un evento público creo. 2. La otra forma es simular un input directamente usando el nuevo input system. Para esto vas a tener que instalar el paquete del InputSystem, crear las acciones correspondientes con sus bindings (conexión entre accion y dispositivo de entrada), y agregar donde tengas el elemento UI un componente que basicamente simula uno de estos bindings (perdón no me acuerdo su nombre). Luego en tu "Target" usas el estado de esta acción. Puede sonar a mucho de golpe, si estás familiarizado con el nuevo input system debería ser fácil.
  50. 2 points
    Hola, He incoporado un vídeo nuevo a la serie. En este entreno dos agentes a la misma vez, el segundo agente tienen unas pequeñas modificaciones que hacen que se dedique a empujar y molestar al player. Es decir, no tan solo intenta llegar al premio, sino que tambien intenta impedirle al player llegar. Me ha sido mucho mas facil entrenar a un segundo agente que crear la logica de programación de un NPC que se dedicase a lo mismo. Empiezo a verle cosilla a esto de los MLAgents.
×
×
  • Create New...