Question: So I have a button in my game which spawns a "tower" at a given location. The tower, when spawned, acts normally and I can drag it around using my drag script. 

I wonder how can I set the Time.timeScale to 0 when I first spawn the tower (*only* for that prefab) UNTILL I click again to set it's position.

Answer: 
> 
> I wonder how can I set the Time.timeScale to 0 when I first spawn the
>  tower (only for that prefab) UNTILL I click again to set it's
>  position.
> 
> 
> 

You can't, because Time.timeScale is a static variable, so it's globally accessible and not set per-instance. However, stopping time is probably not necessary for what you want to accomplish anyway. Here are two better ways to do what you want:

1. Instantiate a TowerPlaceholder prefab instead of a Tower. A TowerPlaceholder "looks" like a Tower, but does not have the same logic and so does not need to be paused while spawning.
2. Add a flag to Tower that specifies whether it has "spawned" or not yet, and use that to control what updates are applied per frame:

```
public class Tower : MonoBehaviour
{
    bool has_spawned;

    ...
    // called once an object is placed in the world
    public void Spawn()
    {
        has_spawned = true;
    }

    void Update()
    {
        if(has_spawned)
        {
            // whatever your tower does normally
        }
        else
        {
           // whatever your tower should do when it's being dragged into position
        }
    }
}

```
At start you could disable its Rigidbody component or the script that is moving the tower. Then re-enable it when ever you want.