Why collider is not triggered when the object is already inside its range?

I have turret with sphere collider. If I place object inside the range of the sphere and hit Play (I mean the the game starts the object is already inside the range of the collider) the OnTriggerEnter of the turret is NOT called. But, if I place the object outside the sphere collider so OnTriggerEnter of the turret is called once the object enters the sphere collider. Why in the first case OnTriggerEnter is not called and what I should do?

As the API says, this function is only called when your object ENTERS the turret sphere collider. Since your object is already inside it is not called. Use Collider.OnTriggerStay if you want to get notified of objects that are inside your turret sphere already.

Although it works, depending on your archetecture you might consider another approach which does not require the OnTriggerStay(hits every frame while there is a collision in place)

What you can do is initialize your game objects first position apart from each other.
Then move them to the position you need them to be. You’ll be able to get an OnTriggerEnter this way.