Code : Tout sélectionner
if(hit.rigidbody){}
Code : Tout sélectionner
if(hit.rigidbody){}
Code : Tout sélectionner
var fireRate=0.30; //...Variable de délai entre chaque tir...
var impact:GameObject; //...Impact lors du tir...
var canFire=true; //...Variable autorisant le tir...
var shootSound:AudioClip;
var damage:float=5;
Screen.showCursor=false;
function Update () { //...Boucle
if(Input.GetButton("Fire1")){ //...Si on clique sur le bouton gauche de la souris...
Fire(); //...On lance la fonction fire()...
}
}
function Fire() {
if(canFire==true){ //...vérifie si on peut tirer...
canFire=false; //...on bloque la possibilité de tirer...
FireOneShot(); //...On lance la fonction FireOneShot()...
}
}
function FireOneShot(){
audio.PlayOneShot(shootSound);
var direction=transform.TransformDirection(Vector3.forward); //..Renvoie la direction devant la camera
var hit:RaycastHit; //...On créé une nouvelle variable Raycast(rayon)...
if(Physics.Raycast(transform.position,direction,hit,100)){ //...On lance un rayon de la camera vers la direction de la vue...
tempRot=Quaternion.FromToRotation(Vector3.up,hit.normal); //...au point d'impact du rayon, on renvoie la valeur de la normale du rayon (une valeur de rotation) dans la variable tempRot
Instantiate(impact,hit.point,tempRot); //...a la position d'impact du rayon, on instantie l'objet impact avec la valeur de rotation tempRot
if(hit.rigidbody){
hit.rigidbody.AddForce(1000*direction);
}
hit.collider.SendMessageUpwards("makedamage",damage,SendMessageOptions.DontRequireReceiver);
}
yield WaitForSeconds(fireRate); //...On créé une pause dans la fonction d'une durée de la valeur de fireRate
canFire=true; //...A la fin de la pause on autorise le prochain tir
}
Code : Tout sélectionner
var hitPoints=20;
var explosion:Transform;
function makedamage(damage:float){
hitPoints=damage;
if(hitPoints<=0){
Instantiate(explosion,transform.position,transform.rotation);
Destroy(gameObject);
}
}