Bien, te paso cosas que debes sabes muy bien antes de cualquier proyecto NetWorking1- Diseñar una aplicación : Fundamental, ya que esto sera el éxito del desarrollo.2- Aprender a desarrollar aplicaciones simples, donde todo funcione bastante bien si ningún problema, aprendiendo el funcionamiento de Rutina, Corrutinas, Delegados, Eventos, Enumeradore, y Otras millones de cosas mas relacionadas a la programacion.3- Para aprender como funciona un NetWorking entonces trata de hacer el mismo juego pero en ves de MultiPlayer LAN o Online trata de hacerlo por Turnos, es decir, crea un Gestor que te permita manejar uno o varios jugadores de forma independientes. esto te ayudará a resolver todos los problemas que se presenta por errores de conceptos e implementacion.4- Estudia cómo funciona el NetWorking y trata de programar chat con .Socket .Net para entender cómo funciona realmente el networking ¡De esto existe muchisima informacion en internet, con millones de ejemplos prácticos!5- Cuando creas que tengas todo dominado, entonces diseña una Aplicación o Juego Simple, cuando lo tengas piensa como se implementa el modo MultiJugador, en esta etapa trata de optimizar a tal punto de que cuantos menos datos se manda es mejor, es decir, para la Sincronización del jugador trata de enviar los datos necesarios y bien serializados, y por ultimo, desarrolla la aplicación en Un Jugador, y cuando todo funciona de maravillas haz un BackUp y empiezas a implementar el Networking.Esos pasas te sirven para lograr el éxito en cualquier aplicación tanto NetWorking o no No te olvides de pasar por mi canal de YT un abrazo y Suerte!.
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.
#707
General (Antiguo) / SQLite + Unity3D
Octubre 26, 2015, 02:10:06 AM
[quote author=iRobb" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="32985" data-ipsquote-contentcommentid="121289 date=1445708274]Para tu tratamiento de datos siempre local, create una lista con el tipo de registro que quieras y utiliza linq para acceder.No necesitas una bbdd.[/quote]No se en que te basas para decirme que no la necesito, creo que una base de datos es algo muy útil, y de echo mi proyecto si lo necesita, no es que quiera armar problemas, pero pregunté si existía una solución o alternativa de base de datos (SQL), justamente por que ya pase la etapa de Diseño, donde se opto por una base de datos como la solución más óptima. Otra cosa, ¿Listas? usando ¿LINQ? Te das una idea de lo lento que puede ser esto cuando generas solo 3000 registros, dependiendo de qué datos están almacenando puede servir, pero que los datos no sean externo no quiere decir que la aplicación no va a generar nuevos registros de echo estimamos unos varios registros topes que se pueden generar solo en un apartado de la aplicación. De todos modos muchisimas gracias por comentar, un saludos a todos, luego subo la solucion al foro.
#708
General (Antiguo) / Cambiar variable "global"
Octubre 26, 2015, 01:58:24 AM
Necesitas hacerlo con Eventos...Por Ejemplo al Apretar "P" se llama al evento Edición, luego compruebas en cada script o componente las llamadas del evento.Practica, en nuestro Script o Componente "Manager" hacemos lo siguiente1 -Creamos el delegado de tipo void.
2 -Luego creamos una instancia de ese delegado para nuestro evento
comprobamos cuando se llama el evento ChangeMode en nuestro Script "Manager" y luego llamamos una función Lambda que nos va a cambiar el valor de nuestra variable IsEditable
Te invito a pasar por mi Canal de Youtube donde podes encontrar varios cursos sobre Unity3D y programacion.
public delegate void CambiarModo();
2 -Luego creamos una instancia de ese delegado para nuestro evento
public static event CambiarModo ChangeMode;3 -Luego tendríamos que comprobar cuando es llamado este evento. Dijimos al apretar "P"
if(Input.KeyDown(GetKeyCode.P))if(ChangeMode != null)ChangeMode();4 -Ya tenemos el evento creado, ahora necesitamos saber cuando es este llamado desde nuestra Camara y Desde el Jugador.!Importante¡ Hacer lo siguiente solo en nuestra función Start , Awake o cualquier otra que solo se llame una vez.
comprobamos cuando se llama el evento ChangeMode en nuestro Script "Manager" y luego llamamos una función Lambda que nos va a cambiar el valor de nuestra variable IsEditable
Manager.ChangeMode += ()=> {IsEditable = !IsEditable;}; Te dejo el Código de este ejemplo para que lo analicespublic class Manager : MonoBehaviour
{
public delegate void Event_ChangeMode();
public static event Event_ChangeMode ChangeMode;
void Update()
{
if(Input.GetKeyDown(KeyCode.P))if(ChangeMode != null)ChangeMode();
}
}
public class Player : MonoBehaviour
{
public bool IsEditable = false;
void Start()
{
Manager.ChangeMode += () => {IsEditable = !IsEditable;};
}
}
public class Camara : MonoBehaviour
{
public bool IsEditable = false;
void Start()
{
Manager.ChangeMode += () => {IsEditable = !IsEditable;};
}
}
public class Otro : MonoBehaviour
{
public bool IsEditable = false;
void Start()
{
Manager.ChangeMode += () => {IsEditable = !IsEditable;};
}
}
Te invito a pasar por mi Canal de Youtube donde podes encontrar varios cursos sobre Unity3D y programacion.
#709
General (Antiguo) / SQLite + Unity3D
Octubre 24, 2015, 06:25:10 PM
Si
private static string FilePath = Application.dataPath + "/StreamingAssets/Datos.s3db" ;Esto es como supuesta mente tendría que estar para su funcionamiento en Android
public static string GetFilePath
{
get
{
#if UNITY_ANDROID
if(!File.Exists(FilePath))
{
WWW loadDB = new WWW("jar:file://" + Application.dataPath + "!/assets/Datos.s3db");
while(!loadDB.isDone) {}
File.WriteAllBytes(FilePath,loadDB.bytes);
}
#endif
return "URI=file:"+FilePath;
}
}
#710
General (Antiguo) / Cambiar variable "global"
Octubre 24, 2015, 05:57:51 PM
Usar eventos seria tu solución, o bien no entendí nada...
#711
General (Antiguo) / SQLite + Unity3D
Octubre 24, 2015, 05:08:52 PM
Estaría entre el 1 y el 2, es decir, necesito la base de datos con valores ya cargados, estos mismos desde el Editor y pero una vez compilado el juego la base de datos es Local y su gestión es interna.¿Se entiende?El Problema solo radica en que Android y la Compilación de Unity3D no están funcionando como pensé que debería, o como en un tiempo funcionaba.
#712
General (Antiguo) / Networking Consulta variables en el servidor
Octubre 24, 2015, 02:51:59 PM
Nunca va a funcionar, primero por que no estas sincronizando absolutamente nada, segundo por que tenes muchos errores de conceptos y varios fallos de implementacion.La explicación de Pioj es perfecta "SERVER AUTORITATIVO" es decir, para un juego de mesa no necesitas ni siquiera una predicción por parte del usuario algo que te facilita en un 90% el desarrollo del networking. Ahora debes saber como utilizar SyncVar y Command es decir, como hacer llamadas al servidor, ya que en este momento toda la lógica del juego esta siendo interpretada por el cliente, el servidor aun no esta actuando como tal.Empieza por leer la documentación y seguir los pasas para convertir el juego Offline en Online que se encuentra dentro del ScriptReference de Unity3D, cuando vengas con problemas un poco mas estudiados te daremos una mano. ¡Networking es el Área mas DIFICIL en lo que respecta la programación de Juegos, que Unity3D tenga una herramienta para "Facilitar" la implementacion no quiere decir que este mismo haga magia, tenes que leer y saber muchísimo para lograr algo decente!
#713
General (Antiguo) / SQLite + Unity3D
Octubre 24, 2015, 02:42:07 PM
Buenas a todos.
Estoy con un problema, no soy de preguntar mucho pero me he encontrado con un problema o "BUG" dentro de Unity3D. Lo que quiero lograr es compilar un APK para android y empaquetar un Base de Datos SQLite, hace un tiempo lo implemente y todo funciono de maravillas, pero ahora no funciona, quizás me estoy olvidando de algo.Intento 1: Agregar la extencion ".db" para que sea Compilada como un recurso. <- No funciona Intento 2: Mover la base de datos a la carpeta "Resources", Tampoco funciona.Bien, lógicamente estas dos primeras no tendrían por que funcionar, ya que la base de datos si se crea dentro del APK, pero luego al ser instalada en el dispositivo la misma no se copia, es decir solo queda empaquetada en el APK.Intento 3: Cada vez que el juego inicia pasa por la siguiente comprobación ¿Existe la base de datos en /Ruta/Datos.db?, de no ser, utilizamos la carpeta "StreamingAssets" para poder cargar en RunTime la base de datos y copiarla a la ruta que deseamos. !ANDROID no deja que copiemos o movamos estos archivos a ninguna parte del telefono¡, algo bastante raro ya que programando nativamente jamas tuve esta clase de problemas. Esto es todo, pero tengo unas preguntas...
¿Alguien sabe como hacerlo de una mejor manera?¿Existe una alternativa SQL para utilizar con Unity?¿Cual de los 3 intentos parece mas factible? PD: El "bug" es que en versiones anteriores los archivos puesto dentro dela carpeta Resources se copiaban a la ruta de instalación de la aplicación. Verificando con Root Explorer en android, pude ver que esto no se estaba haciendo si bien el APK tenia el archivo, en la instalación este pasaba por alto.Un Abrazo a todos.
Estoy con un problema, no soy de preguntar mucho pero me he encontrado con un problema o "BUG" dentro de Unity3D. Lo que quiero lograr es compilar un APK para android y empaquetar un Base de Datos SQLite, hace un tiempo lo implemente y todo funciono de maravillas, pero ahora no funciona, quizás me estoy olvidando de algo.Intento 1: Agregar la extencion ".db" para que sea Compilada como un recurso. <- No funciona Intento 2: Mover la base de datos a la carpeta "Resources", Tampoco funciona.Bien, lógicamente estas dos primeras no tendrían por que funcionar, ya que la base de datos si se crea dentro del APK, pero luego al ser instalada en el dispositivo la misma no se copia, es decir solo queda empaquetada en el APK.Intento 3: Cada vez que el juego inicia pasa por la siguiente comprobación ¿Existe la base de datos en /Ruta/Datos.db?, de no ser, utilizamos la carpeta "StreamingAssets" para poder cargar en RunTime la base de datos y copiarla a la ruta que deseamos. !ANDROID no deja que copiemos o movamos estos archivos a ninguna parte del telefono¡, algo bastante raro ya que programando nativamente jamas tuve esta clase de problemas. Esto es todo, pero tengo unas preguntas...
¿Alguien sabe como hacerlo de una mejor manera?¿Existe una alternativa SQL para utilizar con Unity?¿Cual de los 3 intentos parece mas factible? PD: El "bug" es que en versiones anteriores los archivos puesto dentro dela carpeta Resources se copiaban a la ruta de instalación de la aplicación. Verificando con Root Explorer en android, pude ver que esto no se estaba haciendo si bien el APK tenia el archivo, en la instalación este pasaba por alto.Un Abrazo a todos.
#714
General (Antiguo) / ¿como crear un hipervinculo en Unity?
Octubre 20, 2015, 12:29:16 PM
Para eso necesitas modificar un poco el componente Text de UI, entonces podrias agregar etiquetas como HTML Ej. <a href= "URL">El Link </a>.
Otra forma seria partir el texto, y que cada palabra que es un hipervinculo sea un UI Text independiente. Espero te de una idea... Un abrazo hasta pronto.
Otra forma seria partir el texto, y que cada palabra que es un hipervinculo sea un UI Text independiente. Espero te de una idea... Un abrazo hasta pronto.
#715
General (Antiguo) / Warcher Defenders
Octubre 15, 2015, 07:07:28 PM
¡ME ENCANTA!, Es perfecto, Gracias por compartir
#716
General (Antiguo) / Trazar una linea sobre un terreno
Octubre 08, 2015, 06:31:46 PM
Quel, creria que lo mejor seria un Proyecto, ya que de otra manera seria un poco complicado, aun que tenga desventajas es lo que quedaría mejor.
#717
General (Antiguo) / ¡Sistema de Armas! Tutorial [APORTE]
Septiembre 22, 2015, 10:33:34 PM
Por su puesto, Dime, ¿Que necesitas?[quote author=daniele_kiro" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="22561" data-ipsquote-contentcommentid="110711">Te he intentado dejar un mensaje pero no me deja... y no tiene nada que ver con este tema, es por un tutorial de Conexion, MySQL de youtubete he dejado allí un comentario por si me podrías echar un cable ...
https://drive.google.com/file/d/0BxMzdzgtFA-CSDRXeDRNTUJRTXM/view?usp=sharing
https://drive.google.com/file/d/0BxMzdzgtFA-CSDRXeDRNTUJRTXM/view?usp=sharing
#718
General (Antiguo) / ¡Sistema de Armas! Tutorial [APORTE]
Septiembre 14, 2015, 08:22:26 PM
Ya Se Puede ROTAR,,,Con el Botón derecho del Mouse le decís a que punto ir, luego si mantienes "Q" el CUBO(Player) rota siempre mirando al mouse. Creo que es eso
#719
General (Antiguo) / ¡Sistema de Armas! Tutorial [APORTE]
Septiembre 14, 2015, 07:58:54 PM
[quote author=iRobb" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="22561" data-ipsquote-contentcommentid="110378 date=1442252378]Vas a hacerlo rotar con el mouse la base y el cañòn?[/quote]¡No entendí!Explícame Mejor, y si quieres modifico un poco el GamePlay.
#720
General (Antiguo) / ¡Sistema de Armas! Tutorial [APORTE]
Septiembre 14, 2015, 07:18:20 PM
eature=oembed" frameborder="0" allowfullscreen="true"> YA ESTA DISPONIBLE LA 5 Entrega, podes verla y descargar el proyecto completo desde la descripción del vídeo.