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

#346
General (Antiguo) / Unity 2018.1
Enero 17, 2018, 03:25:23 AM
MonoDevelop no sirve de mucho, es el intento de IDE que nunca funcionó en perfectas condiciones.
 
Respecto a las betas de Unity, creo en el 2012/11 comentaron que trabajan de esta manera el versionado, incluyendo herramientas en desarrollo para que se puedan probar y comentar en las versiones betas, y para las release seguirán una estricta ruta de "NO FALLAR", creo si no me confundo esto fue un tiempo antes del editor X64.
 
Visual Code y Visual Shader es algo fundamental en un motor gráfico, pero tenemos que entender lo siguiente, unity tiene un fallo grave en cuanto a diseño estos no pensaron en algo modular por lo que la actualización o integración de cualquier parte del motor requiere de actualizar por completo el engine y es algo realmente molesto, por ejemplo si se agregan nuevas funciones de físicas aunque sean 2 no tiene sentido actualizar descargando vamos megas, por lo que tiene un ritmo de actualizaciones bastante bajo en cuando a módulos, si bien las release salen bastante rapido tiene que constar con múltiples mejoras para que valga la pena.
 
Por otro lado tambien están faltando herramientas de debug más avanzadas, la consola da lastima ....
 
 
 
Pero mi opinion probando multiples engines el mejor sin dudas es Unity por la simpleza de desarrollo y lo limpio que es para mantener un proyecto grande, pero con esto comentado se me vino a la mente tantos problemas que se me presentaron por no contar con las herramientas suficientes, por ejemplo carpetas distintivas para diferenciar assets, es algo super comodo, pero como dijo @lightbug hasta que no lo integre el motor no cuentan...
#347
Cita de: pioj date=1515954708Sorry @francoe1, es lo mejor que he encontrado. Si consigues un "pastebin" BUENO para IPB 4.1, te lo admito como plugin. Mientras tanto...
   


https://github.com/sketchfab/ckeditor-plugin
 
En el apartado de ejemplos tenes una integración con IPB
#348
General (Antiguo) / contraseña
Enero 13, 2018, 02:36:58 PM
Dinos tu contraseña y probamos ... XD
#349
Lo que tendrias que hacer es realizar una lista con los elementos ya utilizados. 
 

public class Random
{
private Stack<int> _last = new Stack<int>();
public bool Get(int min, int max, out int r)
{
   for(int i = min; i < max; i++)
   {
      r = UnityEngine.Random.Range(min, max);
      if(!_last.Contains(r))
             {
               _last.Push(r);
               return true;
             }
   }      
   r = 0;
   return false;
}
public void Reset()
{
   _last.Clear();
}
}

 
Para utilizarlo haz lo siguiente -
 


private Random myRandom = new Random();
public void Update()
{
int val;
if(myRandom.Get(0,10, out val))
{
   Debug.LogFormat("El valor utilizado es " + val);
}
else
{
   Debug.Log("No se encuentran valores disponibles");
   Debug.Log("Reiniciando");
   myRandom.Clear();
}
}

 
 
 
@pioj Podrías integrar un sistema de CODDING diferente, este es un asco.
#350
General (Antiguo) / Modelos 3D Gratis [Google POLY]
Enero 11, 2018, 03:33:30 PM
https://poly.google.com
 
Una web de google donde descargar/aportar modelos.
 
 
 
 
#351
Cita de: leocub58 date=1515511073El link de la encuesta está caído.
   


No esta caido, el foro lo agrego mal ---
 
Este es el LINK https://goo.gl/forms/HVG0kCEzj5koZJra2
#352
General (Antiguo) / Resetear posicion waypoint
Enero 09, 2018, 04:25:31 PM
Cita de: brok date=1515508688Lo dicho fracoe1 cualquier cosa me la dices ok
   
       
   


Dale, gracias!
 
 
 
El problema que vi es que estas moviendo el Player Por todos los WayPoints, si bien funciona pero el jugador se recorre todos los WayPoints para esto es la función GetNear para solo obtener 1 opción, la más cercana.
 
Pero mientras te funcione no hay problema, yo no lo haria de esa manera pero tu meta es lograr que funcione y si asi es es más que suficiente!
 
¿Eres el mismo de hace 4 años no?, cuando intentaste hacer un juego de lucha ¿Puede ser...?
#353
General (Antiguo) / Resetear posicion waypoint
Enero 09, 2018, 11:36:35 AM
Cita de: brok date=1515478817Esto es lo que tengo echo:
   
   

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
public class VuelcoCoche : MonoBehaviour
{
   
    private Transform player;
    private GameObject[] wayPoints;
    private int Index = -1;
    private Vector3 posicion;
   
    void Start()
    {
        wayPoints = GameObject.FindGameObjectsWithTag("WaypointVuelco");
       
        player = GameObject.FindGameObjectWithTag("Player").transform;
    }
    void Update()
    {
        if (Input.GetKey(KeyCode.R))
        {
            ResetarPosicionCoche(posicion);
           
        }
    }
    void OnTriggerEnter(Collider colision)
    {
        if (colision.gameObject.CompareTag("Terreno"))
        {
            ResetarPosicionCoche(posicion);
           
        }
    }
    Vector3 ResetarPosicionCoche(Vector3 fromV)
    {
       
        int index = -1;
        float distance = 100000;
 
        for (int i = 0; i < wayPoints.Length; i++)
        {
            float tmpdistance = (wayPoints[i].transform.position - fromV).magnitude;
            if (tmpdistance < distance)
            {
                index = i;
                player.transform.position = wayPoints[index].transform.position;
                player.transform.rotation = Quaternion.LookRotation(player.transform.position, transform.position);
                distance = tmpdistance;
            }
           
        }
        return wayPoints[index].transform.position;
    }
   
 
}

   
       
   


Para detectar que el coche esté dado vuelta puedes evaluar el ángulo del mismo, si este supera x limite, lanzar varios rayos de manera estratégica y si alguno colisiona por mas de 5 segundos entonces efectivamente estas dado vuelta, esto porque puedes dar un giro de 360 y no lo deberias contar como que el auto esté dado vuelta. 
 
Por otro lado, la funcion que busca el WayPoint no tiene que tener ningun control sobre el transform, esta solo busca y retorna la posición, lo que podríamos hacer es que te retorna la posición más un predicción de la rotación.
 
para esto modificamos la función de la siguiente manera.
 

bool GetNearPoint(Vector3 fromV, out Quaternion rot, out Vector3 pos)
    {
       
        int index = -1;
        float distance = 100000;
        for (int i = 0; i < wayPoints.Length; i++)
        {
            float tmpdistance = (wayPoints[i].transform.position - fromV).magnitude;
            if (tmpdistance < distance)
            {
                index = i;
                distance = tmpdistance;
            }            
        }
   
   if(index >= 0)
   {
      if(index + 1 < wayPoints.Length)
                 rot = Quaternion.Look(wayPoints[index] - wayPoints[index + 1]);
            else
                  rot = Quaternion.Look(wayPoints[index] - from);
            pos = wayPoints[index]
      return true;
   }
        pos = Vector3.zero;
        rot = Quaternion.Identity;
   return false;
    }

 
La página tabula muy mal :( ---
 
Bien ahora para utilizarlo, tendrias que hacer lo siguiente... desde cualquier función, supongamos que es a través del teclado.
 

private void Update()
{
if(Input.GetKeyDown(KeyCore.R))
{
   Vector3 pos;
   QUaternion rot;
   if(GetNearPoint(transform.position, out pos, out rot))
   {
      transform.position = pos;
      transform.rotation = rot;
   }
   else
   {
      Debug.Log("No exist near point..");
   }
}
}

 
Espero te sirva....
#354
General (Antiguo) / Resetear posicion waypoint
Enero 09, 2018, 01:11:32 AM
Estas implementando todo mal, presta atención, ¿Cómo vas a poner SnapshotControl dentro del Update? -
#355
General (Antiguo) / Asset Store [Encuesta]
Enero 08, 2018, 10:46:16 PM
Cita de: Eskema date=1515445721Yo tengo creado un "core" que es mi libreria base que tiene lo necesario para poder hacer un juego sin pensar en cosas como la gestion de input, el sistema de ventanas, gestion de escenas, carga de tareas al iniciar una escena, timers, audio, traducciones, etc.
   
   
      Para mi crear un juego es pensar en el juego en si mismo y no en como preparo esos subsistemas. 
   
   
      Pero no me planteo poner algo asi en la store.
   


Exacto, yo tambien cuento con una buena librería, entre ellas un propio sistema de Networking que trabaja con Master Server, Relay, por otro lado Librerías para trabajar con Json, ayudas matemáticas, diferentes tipos de pool, etc.
 
Todo esto lo tengo en diferentes proyectos, primero para evitar compartir todo el código en proyectos que no lo utilicen, segundo porque voy actualizando cada x tiempo para solucionar problemas y actualizar..
 
Últimamente estuve luchando con un "Motor de base de datos" basado en Json, va quedando bien, con buen tiempo de respuesta, está basado en la misma lógica que tiene EntityFramework pero lógico, esto más los proyectos activo se va dejando atras ya que lleva muchísimo tiempo de desarrollo - Estoy metiendo casi 16 horas de programación diarias ... hasta más 
#356
General (Antiguo) / Asset Store [Encuesta]
Enero 08, 2018, 09:52:26 PM
Cita de: lightbug date=1515444022ahora que lo pienso y veo tus items me olvidé de muchos elementos para la encuesta  (Networking es uno bien importante).
   
   
       
   
   
      Es cierto, es impresionante ver los paquetes FPS completos que ofrecen.
   
   
      Otra cosa que me sorprende es que hay assets muy buenos que salen monedas, o incluso algunos que son totalmente gratis.
   
   
       
   
   
      A mi me parece que falta un framework completo, algo así como tiene UE4 (https://docs.unrealengine.com/latest/INT/Gameplay/Framework/index.html), una forma de tener ciertos aspectos básicos del juego identificados y así poder gestionarlo mejor. Por ej poder definir reglas de juego, participantes (de Unreal los pawns y los characters), UI (lo que mencionás) además del estado actual del juego, condición para ir escena a escena, etc. Cosa de crear un proyecto, definir estados y reglas básicas, antes de poblar de contenido todo el proyecto, scripts, managers, etc. Y claro que sea reutilizable.
   


Vamos a armar uno ¿? ---- Veo que esto puede tener un buen resultado --- 
 
El motor para mi esta muy bueno, es decir a pesar de la extensa librería que brinda Unity para simples cosas nos da la libertad de hacer todo, es decir, si bien tenemos componentes rara vez los usamos, por lo menos de mi parte, por ejemplo las físicas rarísima vez las he utilizado por que por lo general con 5 líneas soluciono mis problemas de "Fisica" - realice múltiples juegos 2D donde las físicas del motor no me servían y tuve que armar las mías propias, esto indica utilizar PixelCollision que si bien puede ser complejo al inicio, podemos lograr grandes ventajas de rendimiento, pero lógico esto es gracias al motor que nos brinda una total libertad.
 
Pero insisto en que faltan herramientas de diseño, que son muy útiles y la competencia la posee.
 
En cualquier momento me pongo manos a la obra en un Framework de UI basada en UGUI
#357
General (Antiguo) / Resetear posicion waypoint
Enero 08, 2018, 09:49:50 PM
Mira te explico, primero necesitas ir agregando snapshots cada X tiempo, esto lo puedes hacer desde un corrutina, agrega estas dos funciones a la clase SnapshotControl
 

public IEnumerator IRecorder(Transform t)
{
   while(true)
   {
      Register(t);
      yield return new WaitForSecond(.5f);
   }
}
public IEnumerator IPlayback(Transform t)
{
   while(true)
   {
      Snapshot snapshot = Get();
      if(snapshot == null)
         break;
      //Aqui puedes crear una corrutina para la interpolación de los valores.
      t.position = snapshot.Position;
      t.rotation = snapshot.Rotation;
      yield return new WaitForSecond(.5f);
   }
}

 
Luego desde el script del player llamas la corrutina IRecorder cuando quieras grabar y IPlayback cuando quieras volver el tiempo atrás.
 
 
 
 
#358
General (Antiguo) / Resetear posicion waypoint
Enero 08, 2018, 09:06:17 PM
Cita de: brok date=1515441948ya lo tengo
   
   
      


Ahh, disculpa, Queue utiliza Push=Enqueue y Pop=Dequeue
#359
General (Antiguo) / Resetear posicion waypoint
Enero 08, 2018, 09:04:54 PM
Cita de: brok date=1515440014Gracias franco1 voy a probar pero no se muy bien como va todavía mil gracias.
   
   
      Me falta un using y no se cual es no lo encuentro.
   
   
      
   


System.Collections
#360
General (Antiguo) / Resetear posicion waypoint
Enero 08, 2018, 09:01:12 PM
Cita de: brok date=1515440014Gracias franco1 voy a probar pero no se muy bien como va todavía mil gracias.
   


Por otro lado creo que no estas entendiendo el uso de la Corrutinas, estas no tendrian ninguna diferencia con llamar simplemente la función desde Update, es mas es inutil la implementación.
 
Una corrutina simplemente agrega la "Funcion" a una lista, y esta lista es iterada luego de la función update y otra vez luego de la llamada de MGUI para trabajar con la clase WaitEndFrame - Por esta razón lo que estás haciendo es meter la función para que sea evaluada y quitarla inmediatamente de la lista, esto hace que tu función update tengo un costo de ejecución mayor.
 
Otro error es guardar los datos en un player prefab, ¿Sabes como funciona esto? ---