Example #1
0
    void FixedUpdate()
    {
        //List<Vector3> positions = new List<Vector3>();
        List <Vector3> rotations  = new List <Vector3>();
        List <Vector3> velocities = new List <Vector3>();

        for (int i = 0; i < xroms.Count; i++)
        {
            //positions.Add(xroms[i].transform.position);
            rotations.Add(xroms[i].GetRotation());
            velocities.Add(xroms[i].GetVelocity());
        }

        Vector3[] headings = FlockingManager.Headings(xroms.ToArray(), velocities.ToArray(), attractorPositions.ToArray(), attractorScales.ToArray(), separatorPositions.ToArray(), separatorScales.ToArray(), transform.position, boundingRadius, 50.0f, 4, debug, debugHeading, debugCohesion, debugSeparation, debugAlignment, debugAttraction, debugBounding);

        for (int i = 0; i < xroms.Count && i < headings.Length; i++)
        {
            xroms[i].Move(headings[i], debug && debugHeading);
        }

        Vector3 avgRotation = FlockingManager.Rotation(rotations.ToArray());

        foreach (IFlocker xrom in xroms)
        {
            xrom.Rotate(avgRotation);
        }
    }
Example #2
0
    // Use this for initialization
    public override void Start()
    {
        manager = GameObject.Find("FlockingManager").GetComponent <FlockingManager>();

        targetPosition = GameObject.Find("Target").transform.position;

        //set the flocking forces to be on
        separationOn = true;
        alingmentOn  = true;
        cohesionOn   = true;

        state = FlockState.Standard;

        base.Start();
    }
Example #3
0
 private void Awake()
 {
     Instance = this;
     SelectFlockingSetting(0);
 }
Example #4
0
 private void Awake()
 {
     instance = this;
 }
Example #5
0
 private void Start()
 {
     fM = FlockingManager.instance;
 }