Search Unity

Mouse position and shoot...how?

Discussion in 'Scripting' started by Andre_Santos, Dec 18, 2012.

  1. Andre_Santos

    Andre_Santos

    Joined:
    Dec 12, 2012
    Posts:
    3
    Hello guys!
    Please, can some one help me...?
    I want to shoot a projectile in the direction of mouse position.
    I want that the player can shoot anyware.
    Here is the code...

    function Shoot(){

    ray = Camera.mainCamera.ScreenPointToRay(Input.mousePosition);

    //Casta a raycast all the time, so after i will make a check to see what the player had shooted
    Physics.Raycast(ray, hit, Mathf.Infinity);

    //when shoot...
    if(Input.GetButtonDown("Fire1")){
    var instance : GameObject = Instantiate(bullet, bulletSpawnPoint.transform.position, Quaternion.identity);
    Physics.IgnoreCollision(instance.collider, bulletSpawnPoint.collider);

    //HOW CAN I MAKE THE PROJECTILE GOES INTO THE MOUSE POSITION?!
    instance.rigidbody.useGravity = false;
    instance.transform.LookAt(hit.point);
    instance.rigidbody.velocity = instance.transform.forward * 10;

    //Destroy the projectile
    Destroy(instance, 4);

    //Debug
    clicks++;
    Debug.Log("Voce acertou um: " + hit.transform.name.ToString() + " com " + clicks + " balas ate agora...");

    }
    }

    EDIT 1: Here is my new code, a got what a want. :)
    What do you think about it? Is it good?

    function Shoot(){

    ray = Camera.mainCamera.ScreenPointToRay(Input.mousePosition);

    if(Physics.Raycast(ray, hit, Mathf.Infinity)){
    //Debug.Log("Voce esta acertando um: " + hit.transform.name.ToString());

    if(Input.GetButtonDown("Fire1")){
    var instance : GameObject = Instantiate(bullet, bulletSpawnPoint.transform.position, Quaternion.identity);
    Physics.IgnoreCollision(instance.collider, bulletSpawnPoint.collider);

    //Instancia o projectil e ascelera-o para a direção do mouse
    instance.rigidbody.useGravity = false;
    instance.transform.LookAt(hit.point);
    instance.rigidbody.velocity = instance.transform.forward * bulletSpeed;

    //DestroI o projetil
    Destroy(instance, bulletLifeTime);

    Debug.Log("Acertou " + hit.collider.gameObject.tag);

    //if(hit.collider.gameObject.tag == "Enemy"){
    // Debug.Log("Acertou " + hit.collider.gameObject.tag);
    //}
    }
    }
    }
     
    Last edited: Dec 18, 2012