Jump to content

OldGuy

Registrados
  • Content Count

    40
  • Joined

  • Last visited

  • Days Won

    4

OldGuy last won the day on March 4 2019

OldGuy had the most liked content!

Community Reputation

18 Good

About OldGuy

  • Rank
    Usuario

Profile Information

  • Especialidad
    Coder

Recent Profile Visitors

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

  1. La manera más sencilla en Unity, es usar una corutina. También puedes tener una clase para manejar el tiempo, y pasar de corutinas, pero para ir aprendiendo te vendrá bien. public IEnumerator TakeDamage(int danyo) { yield return new WaitForSeconds(0.2f); health -= daño; source.PlayOneShot(golpeSound); } // Y para llamarla: StartCoroutine(TakeDamage(cantidadDanyo));
  2. Buenas, hay muchas formas de llamarlo, una podría ser algo así: void Start() { StartCoroutine(GetTime()); } public IEnumerator GetTime() { UnityWebRequest www = UnityWebRequest.Get(URL_SERVER); // URL_SERVER, es la dirección donde está alojado el archivo .php: http://servidor.com/archivo.php yield return www.SendWebRequest(); if (www.isNetworkError || www.isHttpError) { // Ha habido un error al obtener el tiempo } else { Debug.Log("La hora del servidor es: " + www.downloadHandle.text); } } Eso sirve si solo necesitas mirar la hora, pero para un juego que funciona según el tiempo que pasa, se podría romper muy fácil solo cambiando la hora del dispositivo. Por ejemplo en los juegos tipo Clash of Clans, que construyes algo y tiene que pasar 5 horas para que se termine de construir, podrías ir a configuración de tú móvil, adelantar tu reloj 5 horas, y volver al juego y el juego detectaría que ya han pasado esas 5 horas, por lo que el juego estaría roto...
  3. Buenas, la API 26 la puedes utilizar a partir de Unity 5.6.6, quizá no sea tan problemático pasar de 5.5 a 5.6.6 como seguramente si que lo sería a la 2018. También puedes forzar desde el manifest, en el targetSdkVersion para que utilice la API 26, aunque esto no sé si te funcionará. Otra posible solución es abrir el proyecto exportado con Android Studio, y desde ahí actualizar la versión del SDK y compilar desde Android Studio.
  4. Buenas, La mejor forma de hacer lo que dices es checkear la hora en un servidor. Un llamada a un .php con algo así ya te serviría: <?php date_default_timezone_set('Europe/Madrid'); $currenttime = date("m-d-Y H:i:s"); list($ddd,$ttt) = split(' ',$currenttime); echo "$ddd $ttt\n";
  5. Tal como lo he puesto funciona en cualquier proyecto. No entiendo lo de proyecto con bug, si te compila todo los scripts correctamente, eso funciona sí o sí.
  6. Hola, no estás inicializando bien el array: float[] numeros = new float[] { 1.5f, 3f, 2f, 0.3f, 21f }; Debug.Log(numeros[0]); numeros[0] = 3.0f; Debug.Log(numeros[0]); Muestra 1.5 y 3 en consola.
  7. Buenas, No hace falta ningún plugin de pago, en c# tienes librerías especifícas para conectar con mysql. Si no te quieres complicar también puedes usar php con WWW o UnityWebRequest.
  8. No soy ningún experto en redes, pero hablaré desde la experiencia que yo he tenido. Nunca he utilizado Navmesh pero los algoritmos para encontrar caminos son costosos y requieren de muchos cálculos. Yo cuando he tenido que utilizar algo de este tipo, han sido en juegos sencillos, y me ha valido con A* básico, y sí que consume. Sobretodo como tengas que estar calculando varios caminos a la vez. No sé cual es la idea de juego, o cuantos jugadores puede tener por partida o servidor. Lo que comentas de ir de un punto a otro y que si minimiza seguro que se puede solucionar de varias formas. No sé si has probado Run in Background y no te ha servido (desconozco si se puede utilizar esto en juego en red o con navmesh), pero también se podría crear un sistema basado en el tiempo y en el que calcule la ruta antes de empezar y de está manera calcular donde debería estar el jugador al volver al juego. También se le puede mandar esta info al servidor una vez calculada (los checkpoints por los que debe pasar) y que sea el servidor el que se encargue después de lo necesario, de está forma ya se ahorra todo el cálculo de la ruta, que es lo más pesado. Después el tema de que todo el movimiento lo lleve el servidor, puede hacer que no responda de forma instantanea a las ordener del jugador, y depende del tipo de juego puede ser frustrante. Al final cuantos más cálculo lleve el servidor, más potencia (dinero) vas a necesitar y menos jugadores por servidor podrá aguantar.
  9. Yo no utilizaría Unity para lo que deseas hacer, se puede hacer está claro, pero no creo que sea el sitio más óptimo para sacar una app con un buen rendimiento de cpu y batería. Unity está bien para juegos 2D/3D o aplicaciones que requieran 3D (realidad virtual o similares), para programas como el que deseas yo tiraría más por algo un poco más nativo y orientado a aplicaciones dependiendo a la plataforma que vaya dirigido. En caso de que Unity es la mejor opción porque vas a necesitar algo del motor, para lo que necesitas yo tiraría por bases de datos en un servidor, si vas a trabajar con pedidos y clientes, y cada uno va a tener la app esos datos van a tener que estar en algún sitio en red a los que poder acceder. Una forma fácil es con peticiones a archivos php que se comunican con sql normal y corriente, es sencillo. Ya si quieres algo más currado pues te puedes crear un backend con laravel o node y hacer request con sus bodys, headers, jwt, etc... Tiene un poco más de trabajo al principio para construir todo el backend, pero después todo viene más rodado, ya que tienes todo controlado y sabes lo que vas a recibir o necesitas enviar. Yo tengo algún proyecto con el backend en node.js y para db utilizo MongoDB todo metido en un VPS. Para realizar los request, utilizo Best Http Pro, te da muchas opciones para trabajar con request (Get, post, put). Puedes recibir las respuestas en Json y en unity parsear. También puedes trabajar con websockets y muchas opciones que para mi lo hacen indispensable en Unity si trabajas en algo un poquito más serio y necesitas mucho más control de lo que permite WWW de unity. Para trabajar con clientes necesitaras algún sistema de login, hay algunos assets en unity, yo probé un par en el pasado, estaban basados en php y sql, no me terminaron de convencer (aunque no estaban mal), y al final yo me decidí también por hacerlo también con Node, y tengo un sistema creado con identificación con jwt, que utilizo para hacer todas las peticiones después del login. También tengo integrado login con Google para hacerlo un poco más fácil al usuario final, aunque sea un sistema que a mi no me gusté utilizar, sí que es bastante usado. Bueno, más o menos, es todo, espero haberte ayudado un poco, todo dependerá de lo grande que sea el proyecto o de las necesidades del cliente.
  10. Pon un tag a la pelota y detecta en la colisón que tag está colisionando, algo así: void OnTriggerEnter(Collider other) { if(other.tag == "Pelota") { // Sumar puntuación } }
  11. Lo siento, pero estás equivocado, lo que el tiene es el resultado de ir juntado formas (en este caso cubos) sin unir vértices ni quitando las caras interiores. Si te fijas en la figura que pone, no está realizada a partir de extrude, ya que los segmentos (edges) no siguen a los anteriores. A no ser que solo haya extruido una cara, y esté escalada para que coincida con la forma. Cuando haces un extrude, no se queda ninguna cara interior entre ellos. Por supuesto si que quedan los segmentos y vértices, resultantes del extrude. Además, que yo me refiero a hacer extrude a un poligono, no a un edge. PD: Edito con una imagen, para mostrar mejor a lo que me refiero. Con cara me refiero a quad o polígono.
  12. Creo que es cosa de Same-origin policy: https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy Básicamente son distintos protocolos, y te va a fallar. Puedes cambiar tú pagina a https, por ejemplo. Aquí tienes más info: https://stackoverflow.com/questions/4032104/http-ajax-request-via-https-page
  13. Con 3ds Max es sencillo, eliminas las caras que quieras y haces weld (soldar) a los vertices. Claro que necesitas crear edges que pasen justo por los edges de las otras formas para que coincidan los polígonos. Para formas sencillas como la que muestras, casi que es mejor hacer extrude a un poligono e ir creando la forma. De esta forma no dejas caras interiores.
  14. Hay muchos, Photoshop, Gimp, Affinity Photo, si tiras por Vectorial, tienes Illustrator, InkScape, Affinity Designer, también hay para pixel art, etc... Al final no son más que una herramienta, como el pincel y lienzo de un pintor, usa con el que más a gusto te encuentres, y a crear. Para dibujos animados, puede ir muy bien los orientados al dibujo vectorial, pero hay tantas formas y modos de crear...
  15. Sí, puedes comprobar cada vez que pases por el collider con un IF si has llegado al limite de monedas que deseas. Un par de consejos, este es el foro de presentaciones, aquí tu duda será más difícil de ser encontrada y respondida. Y el título tampoco ayuda, es muy abierto, ayuda de programación pueden ser mil cosas, es mejor enfocarlo al problema, como por ejemplo, "Problema con los colliders", de está forma enfatizas mucho más, y es más fácil que alguien que sepa del tema te pueda ayudar.
UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...