Thank you for playing it!
For the fish movement, I implemented a simple flocking algorithm, basically I calculated the cohesion, avoidance and alignment vectors for each fish.
For the photo system, it was quite tricky and I'm not sure this is optimized, but I first used the OnBecameVisible and OnBecameUnvisible Unity functions on each fish to determine which fishes were seen by the camera. Then, each time the player takes a photo, I draw a raycast on each potential target to determine which are actually seen by the camera. And after that, I converted the world position to the screen position to check which fishes are on the picture frame.