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); } }
// 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(); }
private void Awake() { Instance = this; SelectFlockingSetting(0); }
private void Awake() { instance = this; }
private void Start() { fM = FlockingManager.instance; }