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 - francoe1

#421
El gran problema de usar directamente un cliente como servidor para juegos Online fue todas las variantes que existen, router, SO, FireWalls, IPS que bloquean puertos, IP no publicas y otros factores que hicieron que nacieran los Relay Server.
 
Un Relay Server es un servidor corriendo en una IP pública que se encarga de manejar los datos que se envían y reciben. Algo parecido a Hamachi.
 
Si tienes una IP publica y quieres montar un servidor de tu juego sin MASTER SERVER entonces los clientes deberán de especificar la IP y Puerto del server, de lo contrario sería imposible.
 
 
 
Para entender un poco el tema podrias programar un Chat por consola con TcpListener y TcpClient e intentar establecer conexiones. para aplicaciones es algo no tan complejo pero en la rama de los Videojuegos su complejidad es bastante elevada, metodos de compresion/descompresion, encriptación, protección de inyección, osfucación de la capa de transporte.
 
 
 
Pero para contestar la pregunta en concreto seria.
 
Si necesitas que cualquier jugador independientemente de si tiene o no ip publica pueda crear un server y registrarlo para que este se visible por cualquier cliente entonces requieres de un Master Server - por ejemplo UNET, PHOTON ...
 
Si quieres realizar un proyecto de prueba y poder jugar con tus amigos, deberás tener IP publica (Solo el servidor), abrir los puertos del server en tu router, eh iniciar el servidor.
#422
General (Antiguo) / Asset para creacion/gestion de Quest ?
Septiembre 08, 2017, 04:13:15 PM
El problema que un sistema de este tipo esta muy atado a la logica del juego, sus componentes y eventos..
 
No es algo complicado de realizar cuando tienes toda la logica del juego bien armada.
 
 
#423
General (Antiguo) / transform.parent sin escalar
Septiembre 05, 2017, 01:52:35 PM
Cita de: lightbug date=1504573877y se mueve tambien con el padre?
   
   
      lo probaria pero ni ganas de dar click al icono de Unity que tengo aca a 47 pixels de distancia
   


ni idea jajajaj despues pruebo jajaaj, supongo que sigue el patron de escala y rotación.
#424
General (Antiguo) / transform.parent sin escalar
Septiembre 05, 2017, 03:08:02 AM
Cita de: lightbug date=1504563307Estas seguro Franco? yo pense que si ponias "true" te hacia el parent de toda la vida, y si le dabas "false" jerarquicamente te hacia el parent pero nada mas, sin modificar pos,rot y scale respecto al nuevo objeto. Osea si solo quiere NO modificar scale pero si el resto no se si funcionaria. Nunca lo use en false por eso tambien te  consulto.
   


Con el tema de UI estuve usando mucho la función, pero me hiciste dudar y probe...
 
Si pones false, el componente transform no se modifica, por lo cual si emparentan a un objeto que tenga como escala (2,2,2) el resultado del transform sería el mismo que antes de emparentar por lo que este se escalará por su jerarquía.
 
Si pones true, el componente transform se modifica, por lo cual si emparentan a un objeto que tenga como escala (2,2,2) el resultado del transform sería (.5,.5,.5) para mantener la escala del objeto, lo mismo con las rotaciones.
#425
General (Antiguo) / transform.parent sin escalar
Septiembre 04, 2017, 01:32:24 PM



   
      transform.SetParent(target, true);
   

[/quote]
 
 
#426
General (Antiguo) / Ayuda!! Shooter en tercera persona
Agosto 27, 2017, 06:44:37 PM
Necesitas hacerlo con IK,, mira este apartado de la documentación te puede ser de mucha ayuda.
 
https://docs.unity3d.com/es/current/Manual/InverseKinematics.html
 
 
#427
Los eventos no pueden llamarse desde otra clase distinta a la que lo encapsula, deberias crear una función que accione el evento.
 
Por otra parte, hasta Unity5 no se puede utilizar ? en los eventos, debido a que esto fue integrado en versiones mas nuevas de .NET, deberias hacer la comprobación (evento == null)? ... 
 
 
#428
General (Antiguo) / Streaming de audio de la web
Agosto 16, 2017, 03:19:54 PM
El problema es que no esta descargando todo el audio. la class WWW se utiliza dentro de un enumerador, esto hace que se pueda descargar el archivo de manera "Asincrónica", para poder realizar esto deberias hacerlo de la siguiente manera.
 

private IEnumerator DownloadAudio(string url, Action<AudioClip> callback)
{
  WWW www = new WWW(url);
  yield return www; //Esperar que el motor de corrutine evalue que la clase WWW ha terminado con la descarga.
  if(!string.IsEmptyOrNull(url))
  {
     callback(null);     
  }
  else
  {
     callback(www.GetAudioClip(false, true, audioType));
  }
}

 
Para utilizarla.
 

private void Start()
{
StartCorrutine(DownloadAudio("http://www.mipagina.com/audio.mp3", OnPlayAudio));
}
private void OnPlayAudio(AudioClip ac)
{
if(ac == null)return;
audiosource.PlayOneShot(ac);
}

 
Ahora si dispondras del audio completo.
#429
Cita de: lightbug date=1502392352Es un buen punto, ahora, es como si estas sentado en el asiento del conductor, ajustas los espejos y luego desplazas el asiento hacia adelante, el ajuste de espejos tiene que rehacerse. Uno entiende que si tenes pensado un codigo expansible esta claro que tengas un cierto alcance, una vez llegado a ese punto se deberá optimizar, esta claro que todo junto no se puede lograr.
   
   
      Yo no quiero decir nada pero todo esto es culpa de @pioj
   
   
       
   


Y mi culpa por queres hacerme el sabio... 
 
Mierda :( ....
 
Este mundo esta poblado de inutiles como YO! ... Disculpas al Foro por tener que llevar este peso... 
#430
Cita de: Arthure date=1502391934Creere que soy el "NOOB"
   
      Sin embargo eres tu mismo quien dijo cosas como "olvidaros de utilizar Monobehaviour", "nunca hay que utilizar SendMessage", "estas muy equivocado en como entiendes Unity".
   
   
      Nadie dijo nada de delegates, hasta que alguien quiso darse de listo con el tema de los delegates porque queda muy "PRO" ... y al final para poner un ejemplo que mas que quedar pro quedó bastante de "NOOB"
   
      En realidad la pregunta era : Como enviar dos variables en un SendMessage ? El que no tiene ni idea, solo por sentido comun y viendo que las dos variables se encuentran dentro de un mismo objeto, contesto "enviando el transform".
   
   
      Pues yo volveria a leer el comentario de Arthure porque me parece que te perdiste algo ... utilizo Unity para uso personal a ratos, empiezo un proyecto y cuando cierro unity borro el proyecto. Unity lo utilizo para desconectar del trabajo; donde da a entender que quiera hacer algo grande y revolucionario con Unity, cuando dejo claro que no intento hacer ni algo pequeño ?
   
   
      Nooo porfavor !!!!!
   
      Con un tio podria hacer una comparacion de haber quien los tiene mas grandes, entiendase los huevos pero para eso no hay que sacarselos ni tocar ni nada por el estilo.
   
   
      Pero medirse a ver quien tiene el rabo mas grande ????? Sinceramente, prefiero que me de su opinion cualquier tia ... pero tu te imaginas una colla de tios sacandose la polla y ponerse a medirla ???? Que pensarias tu si entras en un cuarto y te encuentras con esa imagen ????
   
   
      Ya se que es una frase hecha, que no es literal ... pero hay cosas que quedan un poquillo ... del ambiente digamos


Solo para decir que no te dije "NOOB" ... 
 
 ...
 
 
 
...
 
 
 
 
 
...
#431
Cita de: Igor date=1502391778limpia, optimizada y expansible.
   
   
      Segun mi experiencia a veces estas estas tres cosas son totalmente incompatibles
   
   
      Si quieres optar por un codigo "expansible" para poder ahorrarte escribir y modificar codigo en el futuro, para crear un codigo que valga para todo.... estas seguramente perdiendo optizacion
   


¡Vivan las API poco optimizadas!
#432
Cita de: lightbug date=1502390782Me da gracia porque si preguntan "q son los delegates? como usarlos en eventos? que es un evento? Componentes?" nadie constesta nada, ahora si preguntas "como envio la posicion y rotacion?" termina en delegates, eventos, componentes ...
   
      Los programadores y su lucha de ego... tratando de resolver problemas que probablemente no se van a encontrar nunca ... mientras tanto un recien llegado saca un juego exito hitaso con unos if's, eso si, "esa delegate no va ahi" ,"guarda estas faltando el respecto al paradigma bla bla bla" ....ah no me canso.
   


Jajaja, es la realidad, uno va tratando de perfeccionarse y llega un "NOOB" y destruye todos tus paradigmas!!!.. Nadie conoce la verdad, siempre hay una forma diferente de hacer las cosas, a veces mejor o peor, pero a fin de cuentas diferente.
 
 
 
Viva la ley de la relatividad.. jajaja
 
 
 
 
#433
Cita de: Kvashir date=1502390025venga, vamos a sacarnos todos el rabo a ver quien lo tiene mas grande XD
   


Jajajajajajaja  ... el comentario de @Arthure me hizo recordar a un usuario TheCode de hace un tiempo que quería programar un sistema revolucionario en unity.
#434
@Arthure La manera en la que piensas de cómo deben comportarse los componentes no es la correcta, este error surge de utilizar Unity, se trata de ver todo como un "Único", cuando en realidad tratamos de manejar todo de manera arbitraria. 
 
El decir, en Pro evolution, cuando se acciona el evento del botón "X" ¿De qué manera un componente podría interpretar la acción?, es decir, que a partir de un evento se accionar diferentes decisiones arbitradas por un "Entidad" de mayor jerarquía. 
 
Dejemos de lado un poco los eventos y vayamos a otro ejemplo. ¿Programaste alguna vez un juego fuera de Unity, comenzando de cero?, si es así te darás cuenta que la programación basada en componentes es algo chocante, no termina de convencerte y por lo general da más problemas que soluciones, Unity hace que lo "recién llegados" lo vean de manera equivocada... Ejemplo...
 
Crear un juego 2D (hablando en simples palabras, sin entrar a la parte técnica en cuanto a "gráfica" API como DirectX, OpenCL, etc), primero comenzamos a diseñar un sistema de almacenamiento para "slot", lo que llamaríamos grilla, técnicamente un arreglo de tipo entero (o cualquier otro tipo que nos sirva para indexar la información necesaria), luego, por cada frame, estaríamos dibujando el escenario.
 
Jerarquía de función : CORE->Draw(GRID) ... El núcleo de nuestro juego, dibuja el mapa, basándose en los datos de nuestro arreglo.
 
Qué sucede con Unity, nos "obliga" a trabajar con "Componentes", por lo que, cada "tile" estaría siendo una instancia de un GameObject que contiene un Componente encargado de renderizar un "sprite", esto hace que la aplicación deje de tener "armonía", porque no solo dependemos de los datos de la grilla si no tambien, de los componentes que componen el "mapa del juego".
 
No digo que Unity está mal diseñado, pienso que basar toda una aplicación en componentes es poco práctico.
 
Me gusta debatir sobre técnicas, por lo general se aprende mucho... 
 
 
#435
Cita de: lightbug date=1502377461Buen punto, mi alcance nunca fue el multiplayer pero es cierto puede resultar en catastrofe, primero porque como lo tengo yo cualquier muerte daria lugar a la llamada del unico evento, epic fail.
   
   
       
   
   
       
   


Aun así, no lo vería como un "Error"... Pero la mejor forma de pensar es que en nuestra aplicación debe existir un árbitro, alguien que diga esto si esto no... pero si pensamos en que cada objeto lleve los eventos entonces pensamos en referencias, y si tenemos 20000 objetos lanzando eventos entonces tenemos un problema, no es lo mismo llamar un evento 20000 veces que instanciar 20000 eventos y capturarlos, y si él objetos se destruye se pierde la referencia