// Update is called once per frame void Update() { if (PSO == true) { partic.UpdateParticleProgram(); } foreach (FlockAgent agent in agents) // update ke seluruh agent { List <Transform> context = GetNearByObjects(agent); Vector2 move; if (PSO == true) { move = behaviorMono.CalculateMove(agent, context, this, partic.targetBestGlobalPos); } else { move = behaviors.CalculateMove(agent, context, this); } move *= driveFactor; if (move.sqrMagnitude > squareMaxSpeed) { move = move.normalized * maxSpeed; } agent.Move(move); //Debug.Log(Vector2.SqrMagnitude(this.transform.position - agent.transform.position)); //Debug.Log(this.ToString() + " " + agent.ToString()); //AddRecord(this.ToString(), agent.ToString(), Vector2.SqrMagnitude(this.transform.position - agent.transform.position), "floflo.csv"); //for (int i = 0; i < moveArray.Length; i++) //{ // if (moveArray[i].sqrMagnitude > squareMaxSpeed) // { // moveArray[i] = moveArray[i].normalized * maxSpeed; // } // agent.Move(moveArray[i]); //} } epoch++; //using (System.IO.StreamWriter file = new System.IO.StreamWriter("AlingmentNew2.csv", true)) // Debug.Log((int)Time.fixedTime); }
// Update is called once per frame void Update() { if (PSO == true) { partic.UpdateParticleProgram(); } foreach (FlockAgent agent in agents)// update ke seluruh agent { List <Transform> context = GetNearByObjects(agent); Vector2 move; if (PSO == true) { move = behaviorMono.CalculateMove(agent, context, this, partic.targetBestGlobalPos); } else { move = behaviors.CalculateMove(agent, context, this); } move *= driveFactor; if (move.sqrMagnitude > squareMaxSpeed) { move = move.normalized * maxSpeed; } agent.Move(move); //for (int i = 0; i < moveArray.Length; i++) //{ // if (moveArray[i].sqrMagnitude > squareMaxSpeed) // { // moveArray[i] = moveArray[i].normalized * maxSpeed; // } // agent.Move(moveArray[i]); //} } }