unity gameObject set id before instantiation

Hi guys so Im creating an multiplayer game and i need to instantiate a gameobject called ship

the ship has a script that containes the ships ID, the script is called shipsettings

the thing is I would like to set the ID of the ship in the shipsettings before ship object is being instantiate, is there any way to do that?

thanks in advance

Gal

And so what’s the problem?

If it is a prefab then just load it from somewhere to object:

Object myPrefab = Resources.Load("myPrefab");

Do whatever you want with it and then:

Object afterInstantiation = Instantiate(myPrefab, myPosition, myRotation);

And do something afterwards if you need.

In the ShipSettings script make the ID variable public and static (for example “public static int ID;”).

Then right before you instantiate the ship, you can say

ShipSettings.ID = 0; //Whatever int you use to set the ID here

and then instantiate the ship.

This won’t work, all the prefabs will have the latest ID, that is if you change the prefab ID then all instantiated objects get it as well.
In my test I have an ID variable in the prefab code, I have a counter in the main game code, every time I instantiate I increment the counter, before I instantiate a new prefab I set the prefab ID to the counter.
But when I look at the prefab ID it’s incrementing all the time as each new instantiate happens.
I’m looking for exactly the same solution…I’ll post here when I find it!
Ok so here it is!

Works perfectly for me, I now have all prefabs with unique IDs.