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.