Problème Etape7 tuto FPS Basique

Toutes les questions relatives aux tutoriels du site sont à poser à cet endroit.
mustzaied
Messages : 9
Inscription : 07 Août 2012 15:33
Localisation : Tunis

Re: Problème Etape7 tuto FPS Basique

Message par mustzaied » 20 Août 2012 12:39

J'ai enfin trouvé mon erreur, l'envoi des paramètres à l'autre script doit être placé à l’extérieur de la condition

Code : Tout sélectionner

if(hit.rigidbody){}
pour que ça marche :) ...... merci pour tout :)

Avatar de l’utilisateur
Franck
Bricoleur
Bricoleur
Messages : 2884
Inscription : 08 Jan 2011 18:43
Localisation : Tours

Re: Problème Etape7 tuto FPS Basique

Message par Franck » 20 Août 2012 20:41

A oui, sinon ils sont "privés" au lieu de static je crois.
Dés fois j'bug, dés fois j'bug pas.

Avatar de l’utilisateur
Shaowkan
Codeur
Codeur
Messages : 319
Inscription : 30 Sep 2012 12:37
Localisation : Marseille
Contact :

Re: Problème Etape7 tuto FPS Basique

Message par Shaowkan » 30 Sep 2012 17:15

Je me permet de remonté le topic car j'ai le même problème :/
L'ennemi ne se détruit pas.

Voila les codes mais il n'y a pas d'erreur dans la console d'unity.
shootScrip :

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
	
}


Ennemy Script :

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);
	}
}
Vous pouvez voir que "hit.collider.SendMessageUpwards("makedamage",damage,SendMessageOptions.DontRequireReceiver);" et bien a l'exterieur de "if(hit.rigidbody){}"

Vous pouvez m'aider svp ?

Verrouillé

Revenir vers « Tutoriels du site Unity3D-france »