Page 1 sur 2

Problème Etape7 tuto FPS Basique

Publié : 14 Août 2012 14:00
par mustzaied
Bonjour
Je suis nouveau sur le forum et je viens de découvrir Unity3D que je trouve génial.
Tout marchait à merveille pour le tuto FPS Basique jusqu'à l'étape 7 où j'ai écris ce code:

Code : Tout sélectionner

function makeDamage(damage:float){
	hitPoints-=damage;
	
	if(hitPoints<=0){
		Destroy(GameObject);
		}
	
	}
Unity me sort alors le message suivant:

Assets/Scrpts/enemyScript.js(10,24): BCE0023: No appropriate version of 'UnityEngine.Object.Destroy' for the argument list '(System.Type)' was found.

à noter que j'ai bien affecté le script à son objet approprié à savoir "enemy" dans le toto.

Quelqu’un pourra-t-il m'aider à expliquer d'où viens le problème? Merci pour tout :)

Re: Problème Etape7 tuto FPS Basique

Publié : 14 Août 2012 14:05
par Franck
Salut.
Essaye:
Destroy(gameObject);
le gameobject sans majuscule au début.
++

Re: Problème Etape7 tuto FPS Basique

Publié : 14 Août 2012 14:28
par mustzaied
Salut et merci pour la rapidité de la réponse , j'ai déjà essayé ça fonctionne mais ça ne marche pas, l'objet n'est pas détruit bien que la variable damage est à 4 même dans l'éditeur......

Re: Problème Etape7 tuto FPS Basique

Publié : 14 Août 2012 14:47
par Franck
mustzaied a écrit :j'ai déjà essayé ça fonctionne mais ça ne marche pas

heu...

Re: Problème Etape7 tuto FPS Basique

Publié : 14 Août 2012 14:50
par Franck
A oui je viens de percuter.

Peut etre faut-il que l'enemy ait le tag enemy?

Re: Problème Etape7 tuto FPS Basique

Publié : 14 Août 2012 15:03
par mustzaied
non plus :(
je poste le code le code de la fonction FireOneShot au cas où il y aurai une erreur que je ne vois pas......

Code : Tout sélectionner

function FireOneShot(){
	audio.PlayOneShot(shootSound[0]);
	var direction=transform.TransformDirection(Vector3.forward);//renvoi la direction devant la caméra
	var hit:RaycastHit;
		if(Physics.Raycast(transform.position,direction,hit,100)){
		tempRot=Quaternion.FromToRotation(Vector3.up,hit.normal);//---- direction de l'impact
		Instantiate(impact,hit.point,tempRot);
		if(hit.rigidbody){
			hit.rigidbody.AddForce(1000*direction);
			
			hit.collider.SendMessageUpwards("makeDamage",damage,SendMessageOptions.DontRequireReceiver);
		}
		
		}
	yield WaitForSeconds(fireRate);
	canFire=true;
}

Re: Problème Etape7 tuto FPS Basique

Publié : 14 Août 2012 15:15
par cayou66
Je rappelle qu'un debuger sera toujours meilleur que nous, pauvres humains errant sur le forum...
Je t'invite donc à apprendre à t'en servir, monodevelop en propose un qui fonctionne plutôt bien.

Re: Problème Etape7 tuto FPS Basique

Publié : 14 Août 2012 15:25
par mustzaied
heuuuuu.... le débogueur je dis que ton programme est bien écris, il ne te dis pas que c'est le bon programme.... non?? :)

Re: Problème Etape7 tuto FPS Basique

Publié : 14 Août 2012 15:34
par cayou66
mustzaied a écrit :heuuuuu.... le débogueur je dis que ton programme est bien écris, il ne te dis pas que c'est le bon programme.... non?? :)
Non ça c'est juste la syntaxe, c'est la compilation qui s'en charge. Le debugging c'est passer dans ton code pendant l'exécution et voir l'état des variables pas à pas.
En anglais:
http://docs.unity3d.com/Documentation/M ... ugger.html
Je trouve rien en français :)

Re: Problème Etape7 tuto FPS Basique

Publié : 14 Août 2012 15:41
par mustzaied
ahhhh Merci, je ne savais pas que le monoDevelop pouvais faire cela :D