How to store the position of an object at the start of a scene

Hello,
What I want from my game is when the player collides with an object(let’s call it A), A is set inactive for 3 seconds and another object(a UI slider) it is spawned in the same location. I can’t use Instantiate(object,transform) so I use just Instantiate(object) and I set the position through a script. The problem is the script is run after A is set inactive so I can’t get A’s position. Is there any way to store A’s position at the start of the scene and make that variable unmodifiable?

Which script are you using to instantiate the object? I think you should be storing the position there before inactivating the first object and then instantiate the next object and pass the position.

public GameObject firstObject; //game object that becomes inactive. Place the object on the field of the script in the inspector.
public GameObject objectToInstantiate;
Vector3 positionToSave;

//if you want to store the position at the beginning, do it in the start method, but if the object moves, this is useless.
void Start(){
positionToSave = firstObject.transform.position;
}

void Update(){

//you can save position before setting object to inactive
positionToSave = firstObject.transform.position;
firstObject.SetActive(false);
Instantiate(objectToInstantiate);
objectToInstantiate.transform.position = positionToSave;
}

Is there a reason that you can’t do it this way??