Haven't posted in a while, recently I wanted to learn how to animate a group/flock of fish in Unity.
I ended up using shadergraph to animate the individual fish and created a script to control the group motion at run-time.
The flock simulation is called Boids, and it was originally developed by Craig Reynolds. The code I wrote is relatively simple (has 3 main steps).
Separation:
1) Avoid colliding with other fish
Alignment:
2) keep average alignment of nearby fish
Cohesion:
3) move to the average position of nearby fish
![Image: https://us.v-cdn.net/5021068/uploads/editor/bx/id9r7t3ijnur.gif](https://us.v-cdn.net/5021068/uploads/editor/bx/id9r7t3ijnur.gif)