1.) Those changes are very helpful and have increased performance dramatically, thank you. However, on overlapping rather than behaving as solid, when I change the units to divide their distance equally within their group, is that going to stop other units in other groups from crossing individual units within the first group?
2.) The collsion checks don't need to be checked for every instance on the map, providing collision isn't an impassable (cliff/building) and would prevent pathfinding to detect it which would cause units to either go over/through it (with overlapping) or go to it and then need to recalculate pathfinding to go around it, which would look horrible and be inefficient.
Sorry, I read these questions multiple times, but still don't understand them.
Could you explain what all these triangle objects will be doing in your game? And why do you need to check if they collide with each other.
3.) Although your solution works well, is my original method feasable? And if it is, I'm sure it could combind it with your solution.
How did you learn about the skipping unnecessary checks?
My solution is basically the same as your method. On tick 1 collision is checked for the first 20 instances. On tick 2 - for the next 20 instances. And so on.
Run the project in Debug Mode. You'll see the number of collision checks is much lower when instances are spread and increases when they all move to the same point.