Unity3D – GetMouseButton – PhysicRaycast – Get GameObject script Component

Create a scene with:

– Cube, attach the script ‘BoomScript.js’


#pragma strict

function Start () {
}

function Update () {
}

function Boom(){
Debug.Log("Kaboooom!");
}

– Main Camera, attach the script ‘Raycast.js’


#pragma strict


function Update(){
    // if you press Mouse Button
    if (Input.GetMouseButtonDown(0)){ // if you press Left Mouse Button -> GetMouseButtonDown(0) 
        var hit: RaycastHit;
        var ray = Camera.main.ScreenPointToRay(Input.mousePosition); // it sends a ray from Camera.main
        if (Physics.Raycast(ray, hit)){ // if it hits something          
          
            // Get Script attached to the GameObject 
            var boomScript : BoomScript = hit.collider.GetComponent(BoomScript);

    		if (boomScript != null) {// if it exists
        	boomScript.Boom(); // execute the function Boom() of BoomScript
   	    	}
        }
    }
 
}// End Update()

Play, click over the Cube, in the console the message will be ‘Kaboooom!’.

For italian people: come funziona?

1. Se viene cliccato il tasto sinistro del mouse

2. parte un raggio dalla Main Camera

3. se colpisce qualcosa ottieni il Component ‘BoomScript’, cioè lo script BoomScript.js

4. se non è nullo, cioè esiste, avvia all’interno di BoomScript.js la funzione Boom()

5. function Boom() manda il messaggio ‘Kaboooom!’ alla console di Unity3D.