Jump to content

francoe1

Admins
  • Content Count

    1,011
  • Joined

  • Last visited

  • Days Won

    81

francoe1 last won the day on March 31

francoe1 had the most liked content!

Community Reputation

536 Excellent

About francoe1

  • Rank
    Experto

Profile Information

  • Especialidad
    Coder

Recent Profile Visitors

2,805 profile views
  1. Creas una lista de todas las personas, esta puede ser estática y estar dentro del componente "ActorBehaviour" luego con una función de contacto basándonos en la distancia calcularía el nivel de contagio actual. Pseudo código public class ActorBehaviour : MonoBehaviour { public int InfectionAmount => m_infectionAmount; public bool IsInfected => m_infectionAmount > 95; [SerializeField] private LayerMask m_layerMask = 0; [SerializeField] private int m_radiusInfection = 3; [SerializeField] private bool m_usePhysicsMode = true; [SerializeField, Range (0, 100)] private int m_infectionAmount = 0; private void Start () { m_actors.Add (this); } private void OnDestroy () { m_actors.Remove (this); } private void Update () { foreach (ActorBehaviour actor in GetNearestActors ()) actor.Contact (this, Vector3.Distance (transform.position, actor.position)); } private void Contact (ActorBehaviour from, float distance) { m_infectionAmount += Mathf.RountToInt (from.InfectionAmount * (distance / m_radiusInfection)); m_infectionAmount = Mathf.Clamp (m_infectionAmount, 0, 100); } private IEnumerable<ActorBehaviour> GetNearestActors () { if (m_usePhysicsMode) { RaycastHit[] hits = Physics.SphereCastAll (new Ray (transform.position, Vector3.Up), m_radiusInfection, Mathf.Infinity, m_layerMask); foreach (RaycastHit hit in hits) { ActorBehaviour actor = hit.GetComponent<ActorBehaviour> (); if (actor is object) yield return actor; } } else { foreach (ActorBehaviour actor in GetActors ()) { if (Vector3.Distance (transform.position, actor.position) < m_radiusInfection) yield return actor; } } } #region Static Region private static List<ActorBehaviour> m_actors { get; set; } = new List<ActorBehaviour> (); public static IEnumerable<ActorBehaviour> GetActors () { for (int i = 0; i < m_actors.Count; i++) if (m_actors[i] is object) yield return m_actors[i]; } #endregion } Podes elegir si hacerlo mediante colisiones o recorriendo la lista comparando distancias, ambos métodos son un poco lentos, pero son los más fáciles de implementar. Lo mejor en este caso seria implementar QuadTree o similar. Saludos.
  2. @jecfmaatrix Por favor preséntate en la sección correspondiente y podrás realizar las consulta en la categoría de scripting.
  3. @Flauros Te recomiendo veas videos sobre programación en YouTube e intentes aprender a programar al menos lo básico, luego cuando prueba nuevamente crear cosas dentro de Unity3D, la comunidad intenta ayudarte pero estas cosas son muy sencillas y demuestran que no tienes el conocimiento básico. La comunidad es de "Desarrolladores" de videojuegos, no brindamos ayuda de programación básica, los próximos topics con estas características serán eliminados informando al usuario, si la acción se vuelve a repetir tendré que tomar medidas más drásticas.
  4. Te propongo 2 alternativas para poder encontrar una solución a tu problema. 1 - Haz un vídeo, guardalo en to Google drive y compartilo con permisos para ver. 2 - únete a nuestro servidor de discord para tener un contacto más directo.
  5. Esta imagen es tu respuesta. El pivote está en el lugar incorrecto.
  6. francoe1

    ¿Enviar juego?

    1 - Necesitas enviar todo lo que se crea en la carpeta del BUILD. 2 - Solo necesitarás algunas librerías que seguramente ya tendrá instaladas.
  7. Hola,@Flauros no quiero sonar mal, pero basándonos en tus preguntas puedo darme cuenta de que tienes un nivel bajo en cuanto a diseño y desarrollo. Definir los requisitos de sistemas es una tarea un poco complicada de explicar, no tiene una respuesta genérica, depende de la plataforma, la versión de Unity, el modo de compilar, la compresión, los tipos de archivos, si usas file stream, el modo de renderizado, etc. En tu caso lo mejor es probarlo en diferentes dispositivos (tarea que se realiza cuando trabajas para móviles) y utilizar como requerimientos recomendados las características del equipo de menor características que hayas utilizado con el juego corriendo perfectamente.
  8. Si aplicáramos lo mismo para quienes preguntan sobre programación..
  9. Si lo que necesitas es una solución rápida para la introducción al mercado optaría por Photon, de lo contrario, si lo estás realizando para aprender o tienes pensado publicar otros proyectos me basaría en mirror, la ventaja de este ultimo es que se trata de un proyecto Open Source basado en Telepathy (Proyecto de sockets TCP de alto rendimiento para .NET), pero eso no es todo, puedes usar cualquier capa de transporte como "driver" y seguir utilizando mirror para el desarrollo. Por ejemplo Mirror + UNET, Mirror + UDPSockets .. etc
  10. Busca información sobre Networking Mirror.
  11. Primero y más importante. Formatear el código de forma correcta. Este tema puede ser un poco complejo cuando no dominas la matemática básica que lo rodea - 1 - Identificar la normal de la superficie. 2 - Modificar el valor de vector de gravedad basándonos en la normal de la superficie <- Normalizar 3 - Rotar el personaje según el vector de gravedad.
  12. En lo particular me gustan muchos los juegos 2D de naves! - Lo aceleré bastante para el video, de hecho me parece que le falta un poco de velocidad al gameplay, pero en fin, me agrada el proyecto.
  13. Parte 2 de los mejores proyectos de la comunidad.
  14. Nos alegra comentarles que UnitySpain cuenta con un canal oficial en Youtube donde sé ira publicando contenido relacionado con la comunidad y el desarrollo de videojuegos en general. Para estrenar el canal decidimos publicamos un pequeño demo reel de algunos proyectos creados por usuarios de la comunidad. - ¡Los invitamos a participar! comentar, suscribirse y compartir ¡Saludos!
  15. Empecé a escribir una serie sobre este tema. Leer aquí - @Nusijs @leocub58 @Igor ¡Saludos!
UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...