Um, pretty sure instantiation performance isn’t related to Quaternions! It’s related to the number of scripts, the complexity of the Awake functions of those scripts, the size of models, the number of textures and whether the materials have already been uploaded to the graphics card.
a) Piece of string, depends on the hardware platform and the objects you are creating. Test it.
b) No, not necessarily
c) Partly as mentioned in my intro - it’s about uploading things to the graphics card, creating the physics structures and running your own code.
d) No, you can create a pool at game start (or in the editor) and not destroy objects but put them into a hibernating state until you need it again.
e) Unity is “pretty” single threaded, if you are interacting with Unity objects you will be doing that on the main thread. You can use other threads for your own calculations. That said there is some level of multithreading in scene loading by the built in functions.
B).NO 1500 is quite a low polygon level.Actualy for mobile games for example up to 2500 vertices is perfect.As long as your objects dont have like over 20.000-50.000 vertices and there are alot of them it should not cause serious lag(i had 3 objects with 100-120.000 vertices and it caused little lag(but noticeble).
C). can be but it really depends on your game and how many game objects you have on scene and how much vertices they have
D). in games the lag is not only caused by instantiations… you have to check draw calls too for example
You really should check youtube channel of Unity and there is a optimization video there.
And also you can decrese number of vertices(altough 1500 is very low and if your computer is lagging because instantiating objects of 1500 vertices you should really upgrade )in Blender for example(reducing it too much tho will cause the object to look really bad but you can decrese it at least a little(in my game i decreased from 120.000 vertices to 30.000(didint look bad since the object was small)).