Classic implementation of flocking boids done as my "getting started with Unity3D" exercise.
Here I'm trying to simulate a bait ball - big gathering of fish in one place trying to protect themselves from predators. The school of 800 fish is divided into smaller groups following 'leaders' (yellow boids) that have predefined targets to follow (yellow boxes).
Basic implementation of collision avoidance for cylinders. Some boids can sometimes get stuck so much more work is required here.
Improved collision avoidance with intermediate goal setting. There are still some issues with followers. Due to very dynamic movement of the leader (yellow) they sometimes hit the obstacles (in this case I color them in red)