Jump to content

Chaskarron

Registrados
  • Content Count

    30
  • Joined

  • Last visited

  • Days Won

    1

Chaskarron last won the day on February 6 2018

Chaskarron had the most liked content!

Community Reputation

9 Neutral

About Chaskarron

  • Rank
    Usuario

Profile Information

  • Especialidad
    Coder

Recent Profile Visitors

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

  1. OnEnable es para cuando el GameObject se activa en la jerarquia de la escena y comienza a estar activo, que funciona indistintamente en el editor y en la compilacion. Por otro lado, y el cual seria mas factible de usar, seria el metodo Update, que se llama cada frame de la aplicacion, pero tenemos el dilema que mientras exista un bucle en dicho metodo, unity quedara congelado mientras el bucle no se rompa. Quedaria la opcion de usar una corrutina o agregar un "listener" a cada boton con la funcion a ejecutar en caso de ser pulsado. Te recomiendo intentar algo mas sencillo antes de abarcar temas complejos sin conocer un minimo las librerias del engine. ¡¡Saludos!!
  2. Tienes que leer la propiedad "rect" del RectTransform del contenedor, cuyos valores width y height son las dimensiones en pixels respectivamente, y modificarlo mediante la propiedad "deltaSize" del RectTransform, ya que todo lo que quieras hacer mediante el GameObject no resultara. Espero que sea esa la solucion a tu dilema. ¡¡Saludos!!
  3. Trabajar en los elementos de interfaz puede ser quiza lo mas complejo en el desarrollo de un videojuego, mas aun cuando hay que rellenar dinamicamente algun elemento. Tienes que calcular unitariamente cada elemento que agregas al contenido del scrollview, para determinar su altura, ancho, y manejar la posicion relativa que ocupa dentro del contenedor del que debe ser "hijo" usando dichos valores de ancho y altura para no solapar los elementos dentro del contenedor, asi como su orden de insercion para determinar su posicion relativa. Y a su vez controlar dinamicamente el tamaño del contenedor para que permita el scroll, ya sea horizontal, vertical, o ambos, alterando el valor de este mediante su "deltaSize". Espero haberme hecho entender y que te sirva de ayuda. ¡¡Saludos!!
  4. Todos y cada uno de los bloques de codigo son herramientas de la programacion, su funcionalidad radica en el conocimiento y aplicacion de dichas herramientas, por lo tanto, ahi estan, pero hay que saber utilizarlas correctamente. No se puede decir que algo no funciona por los inconvenientes que se producen de su incorrecta aplicacion.
  5. Si se congela unity, entonces no esta bien, y no esta bien precisamente porque estas intentando hacer que funcione en el metodo Start, por lo tanto jamas de los jamases funcionara correctamente. Puedes consultar la documentacion de los metodos propios del Monobehaviour en la documentacion de la API de unity ¡¡Un saludo!!
  6. En la carpeta de tu proyecto, donde hayas importado los assets, deberian estar los sprites, que puedes abrir directamente con un editor de imagenes sin necesidad de exportar nada, o copiarlos a otra carpeta accediendo desde el explorador de windows.
  7. Pues me apunto al carro, aunque de momento mi portfolio es bastante escueto y mas simple que el mecanismo de un chupete. Perfil de itch.io Perfil de gamejolt Espero terminar el que tengo entre manos y seguir mejorando poco a poco para hacer juegos mas serios. ¡¡Saludos!!!!
  8. Pues ya me contaras que te parece ahora que he actualizado recientemente el juego, el tema de los efectos de disparo creo que ya tengo una solucion mas sencilla y que ocupa menos recursos, sin necesidad de instanciar nada mas en la escena, aunque obviamente no estara disponible hasta la siguiente actualizacion. Saludos y gracias por jugar y los consejos, siempre se agradecen para ir mejorando.
  9. Por dios y por la virgen!!!! Ese juego hay que pillarlo cuando la economia lo permita!! En cuanto entre a steam ya lo estoy añadiendo a favoritos. Mucha suerte con el lanzamiento y espero que sea todo un exito. ¡¡Saludos!!! Edito: Acabo de echar un ojo a la pagina de steam y creo que es una maravilla. Lo dicho, cuando tenga pasta sera mio.
  10. Si lo has encontrado entrenido entonces vamos bien, esa es la idea. Respecto a la pantalla de los creditos iniciales, efectivamente tengo que hacer algo ahi. Los menus y todo el diseño de momento es provisional hasta que encuentre algo mejor y termine el tema de la jugabilidad que es en lo que estoy centrado actualmente ya que creo que es lo principal de un juego, el tema diseño de momento lo considero secundario. Al ser la demo solo has escuchado el tema del primer nivel, y aun no he subido la actualizacion pero el tema del jefe de final de fase es mas cañero. El dilemade los disparos aun no se como lo voy a apañar, pero me lo anoto. En la proxima actualizacion estara incluida la mecanica de los logros, y no se si habras terminado el primer nivel que te lleva a la tienda en la que puedes gastar los puntos obtenidos en mejorar la nave. Y no se que tan bien funcionara el tema de guardar la partida en la version jugable de browser de la actualizacion, espero que funcione bien para no tener que reprogramarlo de nuevo. Muchisimas gracias por jugarlo y me alegro que te haya gustado. ¡¡Saludos!! ¡¡¡Tiembla Ubisoft!!!
  11. Puede resultar ironico que sea programador y aun no sepa como insertar imagenes en el post, pero es un hecho Cuando tenga un rato editare el post para intentar insertar alguna, aunque muera en el intento. Muchisimas gracias por jugarlo. Si entretiene y tiene buena jugabilidad entonces merece la pena ponerle enfasis para terminarlo. Saludos!!!!
  12. Muy buenas, quisiera presentar mi primera demo publicada y lista para jugar en el navegador en la plataforma de itch.io y en gamejolt. Esta basado en los juegos antiguos como el Aero Fighters de la antigua Super Nintendo. Aunque ya tengo 10 niveles implementados en la demo solo esta disponible el primer nivel. Ya que aun tengo que crear mas tipos de enemigos e ir comprobando la dificultad. Bueno, sin mas dilaciones, si quereis echarle un ojo y probarlo, podeis hacerlo en el siguiente link. Edito: Dejo un pequeño video de apenas 1 minuto con los añadidos de la actualizacion que he subido recientemente. No se si se pueden insertar videos, y si se puede ya mirare como se hace, asi que dejo el link a palo seco. Video promo Saludos!!!!
  13. Ya sabiendolo estare al tanto de twitch para otra clase magistral de programacion, creo que las 20:00 es una hora razonable para que el stream dure hasta la hora de cenar y poder digerir bien el contenido mientras se hace la digestion de la cena. Aunque personalmente yo espero con ansia viva que expliques lo de los timers, mas que nada para poder prescindir de las corrutinas de C# y aprender a hacer las cosas bien. No obstante tambien me parece muy interesante lo de las 300 balas con un drawcall y sin gameobjects, esta claro que cada stream que haces es como poco interesante y explica muy buenas tecnicas para adquirir buenas practicas y metodologias de programacion. Sea como sea y expliques lo que expliques sera de agradecer. Estoy ahorrando para regalarte un jamon del bueno en agradecimiento a tus magistrales clases. Muchas gracias por tu tiempo y por pensar en nosotros genio. Saludos!!!
  14. Ok, entonces fallo mio al no enterarme bien. De momento no tengo la mas minima intencion de usar hilos salvo que no me quede otra que usarlos, pero si unity se pasa los hilos por el forro entonces es tonteria de la buena. Antes de todo eso ya habia observado que cuando el hilo peta, el debbuger no te dice ni pio, simplemente no se ejecuta y te quedas viendolas venir. De momento es lo que te decia, hacer uso de esto unicamente para salvar la partida en segundo plano mientras el juego sigue en ejecucion, aunque si peta estamos en las mismas. Lo de los mundos procedurales aun es demasiado para mi, hay mucho camino por aprender e investigar todavia. Me ha parecido interesante esto de los hilos y liarla unas cuantas veces antes de publicarlo, no obstante lo dejo aparcado, te hago caso y me espero al siguiente stream. Un saludo!!!!
  15. Muy buenas de nuevo @Eskema, pues resulta que despues de la magistral clase de anoche estuve hasta las tantas haciendo pruebas y buscando info. Resulta que C# si tiene multihilos, algo que solo habia usado en Java muy por encima para bloquear consultas a las bases de datos mientras estuviesen en uso. Y bueno, no me lio mas de la cuenta que me conozco XD A diferencia con Java los hilos en C# no necesitan heredar de una clase abstracta como ocurre en Java y se hace algo mas sencillo manejarlos. Luego en Java estaba el inconveniente que las clases singleton que se consultaban creaban nuevas instancias de la clase, lo que me ha llevado a hacer una prueba con todo lo que explicaste ayer para hacer el singleton de nuestro core y me he llevado la sorpresa mas grata de mi vida. Eres un jodido maquina @Eskemalas instancias del core consultadas desde los hilos consevan el hashCode y no crea nuevas instancias que consumen memoria. Dejo el ejemplo bastante comentado de las pruebas que he estado haciendo con los hilos de C# para aquellos inquietos como yo que les gusta hacer experimentos aunque la maquina termine explotando. using System.Collections; using System.Collections.Generic; using UnityEngine; using System.Threading; // la libreria de los Threads de C# // cada uno que importe el espacio de nombres de su core using CKN.core; public class TestThreads : MonoBehaviour { private Thread _th1; // hilo 1 private Thread _th2; // hilo 2 private ThreadStart _delegado; // un delegado para hacer el hilo 1 sin lambda private bool _threadKey = false; // para asegurarme que no lanza el hilo mas de una vez void Awake() { _delegado = new ThreadStart(Metodo1); // Thread.Start() inicia el hilo // Thread.Join() espera a que el hilo finalice // realizo la prueba de fuego pintando el hashcode del Singleton Debug.Log("Awake: " + Core.GetInstance().GetHashCode().ToString()); } void Start () { // Dentro de los hilos que se ejecuten en el metodo Awake // lanzara un error al obtener el GetInstace del core _th2 = new Thread( () => { // este hilo es de unica ejecucion for(int i = 0; i < 100; i++){ Thread.Sleep(10); } // esto es curioso, conserva el hashCode de la clase Singleton // cuando en Java hay que sincronizar los hilos // para evitar sobrecargar la memoria // ya que el hilo termina pero la instancia permanece cargada Debug.Log("Lambda: " + Core.GetInstance().GetHashCode().ToString()); }); // segunda prueba de fuego con el hashcode, no deberia haber diferencias // ya que se ejecuta fuera de un hilo Debug.Log("Start:" + Core.GetInstance().GetHashCode().ToString()); _th1 = new Thread(_delegado); _th1.Start(); } void Update(){ Debug.Log("Hilo 1 IsAlive: " + _th1.IsAlive.ToString()); Debug.Log("Hilo 2 IsAlive: " + _th2.IsAlive.ToString()); if(Input.GetKeyDown(KeyCode.A) && !_threadKey) { _threadKey = true; // impido lanzar de nuevo el hilo ya que arrojaria error _th2.Start(); }else if(Input.GetKeyDown(KeyCode.A) && _threadKey && !_th2.IsAlive){ _th2 = new Thread( () => { for(int i = 0; i < 100; i++){ Thread.Sleep(10); } // nuevamente conserva el hashCode todas las veces que se ejecute Debug.Log("Lambda2: " + Core.GetInstance().GetHashCode().ToString()); }); _th2.Start(); } if(Input.GetKeyDown(KeyCode.B) && !_th1.IsAlive){ _th1 = new Thread(_delegado); _th1.Start(); } } void Metodo1(){ for(int i = 0; i < 100; i++){ Thread.Sleep(10); } Debug.Log("Metodo1: " + Core.GetInstance().GetHashCode().ToString()); } } Lo unico que se me ocurre para usar los hilos es para guardar la partida con autosave como hacen los juegos actuales mostrando el icono en la esquina o esperar la carga de datos complejos. Espero que este post le resulte interesante a alguien. Seguire investigando mientras espero con ansia viva la siguiente clase magistral. Un saludo!!!!
UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...