Search Unity

rotate bullet 360 once

Discussion in 'Scripting' started by Nabil_fx, Apr 18, 2015.

  1. Nabil_fx

    Nabil_fx

    Joined:
    Nov 9, 2013
    Posts:
    124
    Hi, i have this script, how can i add a 360 rotation Y axis, to (bala) and (bala2) gameobject, just once on shot.

    Code (JavaScript):
    1. var Local : Transform; //Aqui vai Ser onde a Bala ira sair
    2. var Bala : GameObject; //A Bala no Caso a Estrela
    3. var Bala2 : GameObject;
    4. var Forca : int = 100; //Forca com que a bala sera lançada
    5. var Municao : int = 30; //E de sua preferencia
    6. var Time_shot : float = 0.3; //Tempo de cada tiro
    7. private var reset_time : float; //Reset para o tempo do tiro
    8. var shot: AudioClip;
    9.  
    10.  
    11. function Start(){
    12.     reset_time = Time_shot;     //Pegando o tempo do tiro quando o jogo iniciar
    13. }
    14.  
    15. function Update(){
    16.     if(Time_shot > 0){                     //Caso Tempo do tiro for maior que 0
    17.         Time_shot -= Time.deltaTime;     //Diminuindo o tempo ate chegar à 0
    18.     }
    19.     /*
    20.         Fire1 = Botão Esquerdo do Mouse
    21.         Fire2 = Botão Direito do Mouse
    22.     */
    23.     if(Input.GetButtonUp("Fire1")){
    24.         if(Time_shot <= 0 && Municao > 0)     //Quando Tempo do tiro for menor ou igual à 0 e Munição Maior que 0
    25.             Shot();            //Chamando a função Shot
    26.     }
    27. }
    28.  
    29. function Shot(){
    30.     var bala : GameObject = Instantiate(Bala, Local.position, Local.rotation);     //Instanciando a Bala
    31.     if(!bala.rigidbody)        //Caso a Bala não tenha RigidBody
    32.         bala.AddComponent(Rigidbody);        //Adicionando o Rigidbody a bala
    33.     bala.rigidbody.velocity += Local.forward * Forca;    //Aplicando a forca sobre a bala
    34.     Time_shot = reset_time; //Resetando o Tempo do tiro
    35.     Municao--; //Diminuindo a Munição
    36.  
    37.  
    38.  
    39.     var bala2 : GameObject = Instantiate(Bala2, Local.position, Local.rotation);     //Instanciando a Bala
    40.     if(!bala2.rigidbody)        //Caso a Bala não tenha RigidBody
    41.         bala2.AddComponent(Rigidbody);        //Adicionando o Rigidbody a bala
    42.     bala2.rigidbody.velocity += Local.forward * Forca;    //Aplicando a forca sobre a bala
    43.     Time_shot = reset_time; //Resetando o Tempo do tiro
    44.     Municao--; //Diminuindo a Munição
    45.     audio.clip = shot;
    46.      audio.Play();
    47.  
    48. }
     
  2. flonch

    flonch

    Joined:
    Aug 20, 2014
    Posts:
    63
    You could use transform.localEulerAngles and increment the y rotation like so.
    Code (JavaScript):
    1.     function FixedUpdate() {
    2.         bala.transform.localEulerAngles+=new Vector3(0, rotationRate, 0);
    3.         bala2.transform.localEulerAngles+=new Vector3(0, rotationRate, 0);
    4.     }
    You'll have to add some conditions so the rotation only occurs when you want it to though.
     
    Nabil_fx likes this.
  3. Nabil_fx

    Nabil_fx

    Joined:
    Nov 9, 2013
    Posts:
    124
    thanks