Where to attach a script?

So I have a game with a bunch of gameObjects that essentially operate as coin-ups. Right now I have the same script attached to each of the gameObjects so that when the character collides the script activates. I am working through Goldstones book, and I think it is saying that rather than having the script attached to the gameObject, I should swap the tagging and attach to the script to the character, instead. Does it really make a difference? Although it is attached to a couple dozen gameObjects, it is still the same script, so if I need to change it, I can still change one script, instead of having to change all 2 dozen.

Here is the script, though I don’t know if matters on this questions:

var Body : GameObject;

var Sound : AudioClip;

function Start () {

Body = GameObject.Find("Body");

if (Body == null) {
	Debug.Log ("No Object Named Body");


function OnTriggerEnter(collisionInfo : Collider) {

if(gameObject.tag == "Body");
   AudioSource.PlayClipAtPoint(Sound, transform.position);
   Game.Timer +=1;
   Destroy (gameObject);

Its indeed better to place it on the character or something because you only have 1 script indeed. Now 2 dozen of object are checking if they collide. if you place it on your player only 1 object/script is checking that collision. you can just ask up the colliding object and then activate the sound effect on that object so you will have everything the same except 1 object with 1 script causing delay instead of alot of objects.

When you are using update’s its really recommended not placing them on to many object but on less as possible.

I think you ment that?