Jump to content

AngelFG

Registrados
  • Content Count

    32
  • Joined

  • Last visited

  • Days Won

    2

AngelFG last won the day on May 31 2020

AngelFG had the most liked content!

Community Reputation

15 Good

About AngelFG

  • Rank
    Usuario

Profile Information

  • Especialidad
    Coder

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Bueno. Me respondo a mi mismo 馃檪 Al final encontr茅 que la versi贸n API 30 de Android acepta programas con arquitectura ARM: https://developer.android.com/studio/releases/emulator En Unity 2020 ya solo deja compilar para Arm por lo que no queda otra que emplear esta versi贸n de emulador. Eso si, mi equipo no es ninguna maravilla aunque hasta ahora mov铆a todo con tiempos aceptables. Para compilar una tonter铆a me llev贸 20 minutos 馃槥 Habr谩 que actualizar equipo 馃檪
  2. Buenas. Yo acabo de hacer la prueba y a mi me funciona bien. Deja de hacer la animaci贸n y cae.... 驴 Est谩s seguro que los cubos no tienen la animaci贸n ?
  3. Si. Parece que es de pago. Ese ya lo hab铆a visto.... Gracias por el aporte.
  4. Buenas. Estoy empezando a investigar sobre AR y despu茅s de ver las especificaciones de diversos SDK麓s me he decantado por aprender AR Foundation. Tengo la esperanza de que en un futuro, no muy lejano, implementen todas las funcionalidades de las HoloLens2 y por lo que veo, a parte de ser gratuita, permite el desarrollo de aplicaciones para m煤ltiples devices sin necesidad de cambiar el c贸digo. Ahora tengo el problema de buscar emuladores que permiten realizar pruebas con dicho entorno (AR Foundation) y que no tenga que emplear un dispositivo f铆sico (por lo menos al principio, para ir programando lo b谩sico). Mirando las especificaciones de ARCore (https://developers.google.com/ar/discover/supported-devices) se indica que es posible emplear un emulador Google API 27 basado en x86 o x64. El problema que me estoy encontrando es que Unity, en su versi贸n 2019 ya no genera el c贸digo para x86 o x64 y s贸lo lo genera para arm. 驴 Sab茅is de alg煤n emulador que se pueda utilizar ? PD: Ya s茅 que existe un emulador para Hololens2, de hecho lo he instalado y corriendo, pero a parte que para hacer pruebas es necesario hacer dos pasos (generar en Unity y cargar en VStudio el proyecto) me come toda la CPU de mi ordenador, por eso estoy buscando alternativas que consuman menos recursos. Un saludo y gracias de antemano.
  5. Gracias por las correcciones. Siempre se aprende. En la soluci贸n que doy yo es verdad que se puede modificar el contenido de la lista desde cualquier parte. Simplemente comentarte que la soluci贸n que das t煤 lleva un error (mira el mensaje de quien inici贸 el hilo). Yo puse 'una posible mala soluci贸n' que no la 煤nica. 驴 Podr铆a valer esta ? private static List<Enemy> m_instanceEnemys { get; set; } = new List<Enemy>(); public static ReadOnlyCollection<Enemy> Instances { get { return m_instanceEnemys.AsReadOnly(); } } Aunque no es parte del hilo, podr铆a 'abusar' de tu conocimiento y me podr铆as aconsejar sobre lo siguiente: En lo de no llevar la gesti贸n de los enemigos a un 'GameController' dices que es un error. 驴 Me podr铆as confirmar si llevarlo a un GameObject que lleve asociado un script con dicha gesti贸n es lo adecuado ?. Estoy acostumbrado a decir que todo se lleva el GameController ya que vengo de Libgdx y es desde dicha clase desde donde se gestiona (llama) al resto de m茅todos que controlan el comportamiento del juego. Por otro lado, 驴 no consideras que el uso de variables public static es un recurso que se debiera evitar ? En este caso, 驴 no ser铆a m谩s l贸gico tener una clase de GestionEnemigos (la que digo como GameController) en la que se encuentre definidos los m茅todos add(Enemigo) y remove(Enemigo) y cuya lista sea privada y de instancia y dicha clase lleve la gesti贸n de c贸mo deben comportarse los enemigos en funci贸n de su n煤mero como preguntaba nomoregames ? Un saludo y gracias por compartir tu conocimiento.
  6. Esa Instances entiendo que est谩 definida para restringir el acceso a m_instanceEnemys y que desde 'fuera' de la clase no se pueda modificar. Para solucionar ese error tienes la opci贸n de: public static ReadOnlyCollection<string> Instances { get { return new ReadOnlyCollection<Enemy>(m_instanceEnemys); } } que no la veo muy 贸ptima ya que crea una nueva colecci贸n cada vez que accedes a Instances. Yo pondr铆a la opci贸n: public static List<Enemy> m_instanceEnemys { get; private set; } = new List<Enemy>(); y de esta forma tambi茅n proteges de cambiar la lista desde otro sitio. Ahora s贸lo trabajas con Enemy.m_instanceEnemys. Podr铆as cambiar el nombre. Yo que conste que soy m谩s de llevar esto (el arrray) a la clase controladora (GameController) y gestionarlo desde all铆....
  7. Ya lo coment茅 en un post anterior, pero si no lo viste, puedes mirar este curso que he puesto para los alumnos de ciclos de FP: https://wiki.cifprodolfoucha.es/index.php?title=Prog._Fundamentos_Programaci贸n_Orientada_a_Objetos_(POO) https://wiki.cifprodolfoucha.es/index.php?title=Prog._Aprendiendo_POO Es una parte de un curso m谩s completo: https://wiki.cifprodolfoucha.es/index.php?title=Programaci贸n_Java Parte de la base que ya sabes crear proyectos con NetBeans (esa parte la damos en clase).
  8. Si comentas la l铆nea anim.SetTrigger("Hurt"); Supongo que te puedes mover ? Si es as铆, una opci贸n que se me ocurre es que est茅s permanentemente ejecutando la animaci贸n de Hurt y como es de tipo trigger... Por eso te comentaba lo de la m谩quina de estados en ejecuci贸n....Si despu茅s de PlayerHurt pasas a Player Idle o se mantiene siempre en PlayerHurt....
  9. Al ejecutar el juego puedes ver en 'tiempo real' el AnimatorController para ver en qu茅 estado te encuentras y puedes modificar los par谩metros mientras est谩s en ejecuci贸n.... 驴 Lo comprobaste para ver si te da alguna pista ?
  10. Por si quieres mirarlo para un futuro, yo he creado un curso de POO. A lo mejor te ayuda en algo: https://wiki.cifprodolfoucha.es/index.php?title=Prog._Fundamentos_Programaci贸n_Orientada_a_Objetos_(POO) https://wiki.cifprodolfoucha.es/index.php?title=Prog._Aprendiendo_POO
  11. Buenas. No s茅 a que te refieres con el problema de 'animaci贸n pegado a la pared'. Yo lo que hago cuando tengo varias animaciones y ya tienes el AnimatorController con los diferentes estados (animaciones) es utilizar como par谩metro la velocidad a la que se mueve el personaje (una propiedad de tipo float dentro del script). Paso el valor de dicha variable al animator y el AnimatorController pasa de un estado a otro (parado, andando, corriendo) en funci贸n de la velocidad.
  12. AngelFG

    XML guardar datos

    Buenas. El problema lo tienes (si no me equivoco) en que cuando guardas el archivo de puntuaciones para Android lo haces en la ruta Application.persistentDataPath : https://docs.unity3d.com/ScriptReference/Application-persistentDataPath.html que se corresponde con /storage/sdcard/Android/data/com.prueba.es/files/ Pero cuando lo lees, lo sigues leyendo de Resources.Load, por lo tanto vuelves a leer el archivo original.Por lo tanto s贸lo te va a guardar el 煤ltimo. Si sabes de Android y manejas el Android Studio, puedes crear un emulador y exportar el proyecto de Unity a un proyecto Android y desde el Android Studio puedes acceder al amulador y acceder a sus carpetas para ver lo que se crea....(https://klevshova.wordpress.com/2017/02/24/how-to-test-unity-app-for-android-platform-in-emulator-in-android-studio/) PD: Yo haciendo pruebas tuve que crear a mano el directorio Resources en la tarjeta SD de Android, ya que no existe inicialmente. Supongo que t煤 ya lo tienes creado previamente pero no se muestra en tu c贸digo.
  13. Si el objeto es 2D (de tipo UI) puedes utilizar el componente Event Trigger. Una vez a帽adido, debes de coger el tipo de evento pulsando el bot贸n Add New Event Type (en tu caso puede ser Pointer Down). Una vez a帽adido el tipo de evento, debes de pulsar el bot贸n + y arrastrar un GameObject con un script asociado y una funci贸n a la cual quieras llamar cuando se pulse. Dicha funci贸n puede llevar par谩metros y aqu铆 pondr铆as el valor de dichos par谩metros. Si el objeto es 3D, la 煤nica forma que yo conozco es la de utilizar un rayo que viene a ser como un vector que va desde el sitio donde pulsas sobre la pantalla y direcci贸n hacia el interior de la misma, capturando los puntos de intersecci贸n con los GameObjects que haya en su camino. Tienes un ejemplo de uso en este enlace
  14. AngelFG

    ANSWERED IA

    Prueba a poner el c贸digo que est谩 comentado como NUEVO a ver si te funciona....
  15. AngelFG

    ANSWERED IA

    Adem谩s, mi consejo es que mires como realizar el movimiento de cuerpos con RigidBody en los que no se emplea el componente transform. Si quieres mover por transform (como tienes en el ejemplo) lo normal es que utilices el transform.forward de los GameObjects para que se muevan hacia adelante, multiplicando por la velocidad y TIme.deltaTime de la forma: transform.position += transform.forward* velocidad * Time.deltaTime; o bien con transform.Translate. Tienes en este enlace para qu茅 es necesario Time.deltaTIme. Si quieres dirigirlos hacia un destino, necesitas lo que yo llamo 'vector direcci贸n', y creo que se llama as铆. Puedes comprobar como funciona en este enlace. El componente NavMesh de Unity est谩 genial para darle 'inteligencia' a los enemigos ya que puedes hacer que se dirijan hacia un punto (normalmente contra el jugador) esquivando los obst谩culos que haya por el medio.
×
×
  • Create New...