How to recalculate the position of an object when adding using Instantiate?

I’m completely confused about the local and world coordinates of objects. I have a hierarchy of objects like this:


I add LeftTargetPrefab with the previously saved position (for example Vector3(10f, 10f, 10f)) to BallsPath and it is set correctly. But if I try to add LeftTargetPrefab to BallTargets, then the position is also set to Vector3(10f, 10f, 10f). If, while starting the game, I create a clone of LeftTargetPrefab and drag it into BallsTarget, the coordinates are converted to local coordinates correctly. How can I make sure that when adding to BallsTarget via Instantiate, the LeftTargetPrefab(Clone) position is immediately correctly recalculated to the local one?

Use false in Instantiate() function, for prefabs position being considered local coordinates.

The code will look like that:

GameObject InstantiatedLeftTargetPrefab = Instantiate(LeftTargetPrefab, BallTargets.transform, false);