Page 1 sur 1

Etape 4 FPS BASIQUE

Publié : 23 Avr 2013 10:06
par lth
Bonjour,
Après compilation du script, Unity me renvoie une erreur : MissingMethodException: Method not found: 'UnityEngine.Physics.RaycastHit'.
Je ne parviens pas à réparer cette erreur, voici le code:

Code : Tout sélectionner

var fireRate = 0.30;
var impact: GameObject;
var canFire = true;

function Update () {
	if(Input.GetButton("Fire1")){
	Fire();
	}
}

function Fire(){
	if(canFire==true){
	canFire = false;
	FireOneShot();
	}
}

function FireOneShot(){
	var direction = transform.TransformDirection(Vector3.forward);
	var hit: RaycastHit;
	
	if(Physics.RaycastHit(transform.position,direction,hit,100)){
	tempRot = Quaternion.FromToRotation(Vector3.up,hit.normal);
	Instantiate(impact,hit.point,tempRot);
	}
	yield WaitForSeconds(fireRate);
	canFire=true;
}
Merci de votre aide.

Re: Etape 4 FPS BASIQUE

Publié : 23 Avr 2013 10:15
par Max
Normal, il ne faut pas écrire Physics.RaycastHit mais plutôt Physics.Raycast.
Quand tu tombe sur ce genre d'erreur, essais de vérifier la syntaxe dans la doc, on arrive en général à trouver l'origine du soucis ;)

Re: Etape 4 FPS BASIQUE

Publié : 23 Avr 2013 11:48
par lth
Merci beaucoup,
Désolé, je suis débutant.
Ça fonctionne, sauf que les "farbs" sont continues...

Code : Tout sélectionner

var fireRate = 0.30;
var impact: GameObject;
var canFire = true;

function Update () {
	if(Input.GetButton("Fire1")){
	Fire();
	}
}

function Fire(){
	if(canFire==true){
	canFire = false;
	FireOneShot();
	}
}

function FireOneShot(){
	var direction = transform.TransformDirection(Vector3.forward);
	var hit: RaycastHit;
	
	if(Physics.Raycast(transform.position,direction,hit,100)){
	tempRot = Quaternion.FromToRotation(Vector3.up,hit.normal);
	Instantiate(impact,hit.point,tempRot);
	}
	yield WaitForSeconds(fireRate);
	canFire=true;
}