Menú

Mostrar Mensajes

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.

Mostrar Mensajes Menú

Mensajes - OldGuy

#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
Scripting / Tiempo Corre de Forma Real
Febrero 06, 2019, 08:50:34 AM
Cita de: MotoSierraProducciones date=1549339656Disculpa mi ignorancia, pero no se como hacerlo, no se como usar un archivo php.... podrias ayudarme un poco mas con eso??
   


 
 
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);
  }
}

 
 
 
 
 
Cita de: Casum date=1549352722Buenas!


      Sino quieres/puedes llamar a un servidor, siempre puedes usar la última hora local, y comprobar la diferencia entre la última fecha global guardada y la nueva:
   
   
       
   
   

DateTime time = DateTime.Now;

   
      Saludos!
   


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
Otros / ¿Target API 26 en Unity 5.5? (Solucionado)
Febrero 01, 2019, 10:29:00 PM
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
Scripting / Tiempo Corre de Forma Real
Febrero 01, 2019, 08:54:30 AM
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
Cita de: WiTiJi date=1548935683Ahora he probado hacerlo en un nuevo proyecto y ahí si que no da error. Será cosa de mi proyecto que hay un bug o algo.
   


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
Otros / Conectar con mysql
Enero 11, 2019, 09:25:21 AM
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
General (Antiguo) / Cliente/Servidor mas eficiente
Diciembre 09, 2018, 12:50:05 PM
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
General (Antiguo) / Guardar datos en servidor.
Septiembre 16, 2018, 11:04:02 AM
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
General (Antiguo) / Puntuacion, gol
Noviembre 07, 2017, 09:04:24 PM
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
General (Antiguo) / Ayuda, crear forma
Noviembre 05, 2017, 07:04:42 PM
 
 
Cita de: juguefre date=1509804847No uso max pero cuando haces un extrude a un poligono terminas con algo igual al problema que el muestra pues el poligono deja caras en todos los edges que tiene, haciendo extrude en el edge solo crea el poligono correspondiente a ese edge y nada mas.
   
   
      Básicamente lo que el tiene es un NO-problema, es mas desconocimiento de como funciona la herramienta 3D que un problema realmente.
   
   
       
   


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
General (Antiguo) / Facebook With Unity
Noviembre 04, 2017, 10:39:43 AM
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
General (Antiguo) / Ayuda, crear forma
Noviembre 04, 2017, 10:35:11 AM
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
General (Antiguo) / ayuda para dibujar
Octubre 29, 2017, 09:53:07 AM
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.