- Home /
C# separation code help
im in to boids right now and steering behaviours and im triyng to make the separation between boids but i cant get the code to work can someone plz help with this ?
static public Vector3 separation(GameObject boid, float maxseparation, float separationradius)
{
Vector3 force = new Vector3();
float SEPARATION_RADIUS = separationradius;
float MAX_SEPARATION = maxseparation;
int neighborCount = 0;
List<Enemy1> boids;
boids = new List<Enemy1>();
for (int i = 0; i < boids.Count; i++)
{
Enemy1 b = boids[i];
if (b.skin != boid && Vector3.Distance(b.skin.transform.position, boid.transform.position) <= SEPARATION_RADIUS)
{
force.x += b.skin.transform.position.x - boid.transform.position.x;
force.y += b.skin.transform.position.y - boid.transform.position.y;
neighborCount++;
}
}
if (neighborCount != 0)
{
force.x /= neighborCount;
force.y /= neighborCount;
force = force * -1;
}
force.Normalize();
force = force * MAX_SEPARATION;
return force;
}
Answer by Adamcbrz · Oct 22, 2016 at 12:26 AM
It looks like you are creating a new List but never adding any content to it. Then you loop through that list which would have a count of 0. Which means neighborCount would always == 0. Thus it seems this method could only ever return Vector3.zero
Your answer
![](https://koobas.hobune.stream/wayback/20220612095140im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
How to make the tower shoot at the one who is closer to the finish line? 0 Answers
Manipulating the location of the VR controllers (Vive/SteamVR) in script 0 Answers
Help with rotation. 1 Answer
Need to Include a file in the build and use it in the runtime 0 Answers
Clear gaps/cuts in trail renderer 0 Answers