Exemple #1
0
        public static Waypoint GetNearest(Vector3 pos)
        {
            Waypoint closest = null;
            float    cdist   = 1000000;

            foreach (var wp in all)
            {
                float dist = PersoController.Dist(pos, wp.pos);
                if (dist < cdist)
                {
                    cdist   = dist;
                    closest = wp;
                }
            }
            return(closest);
        }
Exemple #2
0
        public void ApplyZDRCollision()
        {
            if (perso == null || !perso.HasCollisionType(CollideType.ZDR))
            {
                return;
            }

            foreach (var p in PersoController.GetPersos(typeof(PersoController)).Where((x) => x.HasCollisionType(CollideType.ZDR)))
            {
                var zdr1 = perso.GetCollisionSphere(CollideType.ZDR);
                var zdr2 = p.GetCollisionSphere(CollideType.ZDR);

                float dist    = PersoController.Dist(zdr1.position, zdr2.position);
                float maxDist = zdr1.radius + zdr2.radius;

                if (dist < maxDist)
                {
                    perso.pos += (zdr1.position - zdr2.position).normalized * (maxDist - dist);
                }
            }
        }