Exemplo n.º 1
0
            public void FixedUpdate()
            {
                foreach (var boid in collection.Boids)
                {
                    if (UPhysics.Raycast(boid.Position, boid.Direction, anticipationDistance))
                    {
                        Debug.DrawLine(boid.Position, boid.Position + anticipationDistance * boid.Direction, Color.red);
                        foreach (var dir in maneuvers)
                        {
                            var globalDir = boid.Rotation * dir;

                            if (!UPhysics.SphereCast(new Ray(boid.Position, globalDir), 1f, maneuverDistance))
                            {
                                Debug.DrawLine(boid.Position, boid.Position + maneuverDistance * globalDir, Color.green);
                                boid.Acceleration += globalDir * intensity;
                                break;
                            }
                            else
                            {
                                Debug.DrawLine(boid.Position, boid.Position + maneuverDistance * globalDir, Color.red);
                            }
                        }
                    }
                    else
                    {
                        Debug.DrawLine(boid.Position, boid.Position + anticipationDistance * boid.Direction, Color.green);
                    }
                }
            }