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.