Game object pickup using mouse click

How can I pick up a game object like a key that is hanging on a wall using a mouse click?

Maybe I should be using a raycast for this or something? I've been hunting all over hells half acre to try and figure the best way to have my FPS player pick up a key hanging on a wall and use it later to open a locked gate.

My key has a box collider that is set to trigger. Right now if I click on it my shotgun goes off because it also uses the mouse button to fire. I would prefere an on mouse action to retrieve the keys from the wall as it's a bit more deliberate and less likely to be picked up accidentally if you know what I mean.

I'm using this script on my Key object, it's incomplete as I'm trying to figure out how to get it to work:

var keyPickupSound : AudioClip;

function OnMouseDown (){

//Play Key Pickup Sound
if (keyPickupSound)
    AudioSource.PlayClipAtPoint(keyPickupSound, transform.position);

    Destroy(gameObject, audio.clip.length);

}

1 Answer

1

The gameobject (Key) needs to have a collider of any type( in this case a box collider is advised). Then use the function OnMouseUp to receive the mouse input on that gameobject. You can either destroy it or deactivate it.

See this is the part that always confuses me, would a script for this go on the FPS player or would it go on the game object being picked up?

Its better to be an individual script attached to your key gameObject.