- Home /
Independence for scripts in clones?
Simply put, I am building up a set of tiles, randomly made up of 25 tiles picked from a "pool" of 7 tile types. These are then instantiated from tile prefabs (1 prefab per type). Each tile has a basic "Tile" script that holds things like the ID of the tile, it's color, and so on.
I thought that since each prefab is a clone, that if I put something like
void Update(){
if (Input.GetMouseButtonDown(0)) {
Debug.Log("Tile ID clicked: " + tileID.toString());
}
that each clone would have it's own script instance, and if you clicked on, for instance, tile 10 (tileID=10), the above would produce "Tile ID clicked: 10".
But when I run this, any click, anywhere in the screen seems to call Update() for ALL of the cloned prefabs, in addition to being called even when I am clicking nowhere near the prefabs. So, if I have 5 tiles cloned, I get: "Tile ID clicked: 1 Tile ID clicked: 2 Tile ID clicked: 3 Tile ID clicked: 4 Tile ID clicked: 5"
Is it possible to only call the script on the particular clone that was clicked?
--Gray
Answer by Eric5h5 · May 10, 2011 at 03:36 AM
You're using Input.GetMouseButtonDown, which just tells you if the mouse button is pressed, nothing else. Presumably you're looking for the OnMouseDown function instead.
Your answer
![](https://koobas.hobune.stream/wayback/20220613133114im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Updating Pattern of Prefabs 1 Answer
Please help. I can't stop this light from moving!!! 1 Answer
Im a bit confused on a simple script 1 Answer
How to cycle Vector3 transformations correclty perfomance-wise? 1 Answer
Input versus Event 1 Answer