the answer to this is probably pretty obvious but would it be a better idea to use vector 2 instead of vector 3 if you aren’t going to alter the z axis? as in would it result in a lower performance cost?
I think This might help. The general theme is the same, concepts remain the same even if implementation is different (XNA V2, Unity3d V2, etc)
try instantiating a Vector2 and performing some operations in a loop, wrapped in a System.Diagnostics.Stopwatch
Then do the same with a Vector3 and compare results
using System.Diagnostics;
// ...
Stopwatch sw = new Stopwatch();
sw.Start();
// ...
sw.Stop();
Console.WriteLine("Elapsed={0}", sw.Elapsed);