Right click and destroy game object.

Hello,

I’m working on a 2D type platformer game where you have to right click on separate objects to make them disappear. I just want them to be destroyed for now so I tried making an OnMouseOver function to work it, but it isn’t always fool proof. Here’s the code so far:

function OnMouseOver()
{
	if (Input.GetMouseButtonDown(1))
	{
		Destroy(gameObject);
	}

}

Any suggestions? Thanks.

This script should work fine (if attached to the object). The object must be a GUIText, GUITexture or have a collider for OnMouseOver to work. Additionally, if the collider doesn’t match the model shape (as when you have a CharacterController and a humanoid model) you may click on parts of the model without actually hitting its collider - or vice versa, destroying the object when clicking near to the model.

The worst thing about this script is that it must be attached to all destructible objects. If you want a single script to do this job, attach this one to the camera:

function Update(){
  if (Input.GetMouseButtonDown(1)){
    var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
    var hit: RaycastHit;
    if (Physics.Raycast(ray, hit)){
      Destroy(hit.transform.gameObject);
    }
  }
}

Yeah, you had if (Input.GetMouseButtonDown(1)) that will return if you right click.

For left click, you want if(Input.GetMouseButtonDown(0))

Hope this helps!!!

-Grady

Hi,

You can use this code in the objects update method:

public class DestroyPlayAudio : MonoBehaviour
    {
        public AudioSource audioSource;
        public AudioClip clip;
        public float volume=0.5f;
    
        void Update()
        {
             if (Input.GetButtonDown ("1")) 
            {
                Raycast ray=Camera.main.ScreenPointToRay(Input.mousePosition);
                Raycasthit hit;
                if (Physics.Raycast(ray, out hit))
                {
                    Destroy(hit.collider.gameObject);
                    audioSource.PlayOneShot(clip, volume);
                }  
            }
        }
    }

Insert your audiofile in the variable slot in the Monobehaviour.

If you want to create games fast without coding learn and use Playmaker or Game Creator.