[Problème] Etape 9[Résolu]

Toutes les questions relatives aux tutoriels du site sont à poser à cet endroit.
Jeannen
Messages : 11
Inscription : 14 Oct 2012 17:28

[Problème] Etape 9[Résolu]

Message par Jeannen » 14 Oct 2012 17:33

Salut ! :)
J'en suis à l'étape 9 du tuto pour le FPS, mais j'ai un problème au niveau du script, j'ai une erreur, Assets/Data/Scripts/enemyScript.js(58,21): UCE0001: ';' expected. Insert a semicolon at the end. Sauf que quand je la corrige (ajout d'un ";" , il y a plein de nouvelles erreurs qui apparaissent )
J'ai mis le code que j'ai modifié ou y avais le moins d'erreur , et ça fait plus de 3h que j'essaye de régler ça,je cherche de partout, je vais péter un cable ! ^^
Please aidez moi !
Voici mon script:

Code : Tout sélectionner

#pragma strict

function Start () {

}

var hitPoints=20;
var explosion:Transform;

var characterLayer:LayerMask;
var gravity=20;
private var player:GameObject;
player=GameObject.Find("Player");

var visionAngle:float=45;
var visionRange:float=100;
private var distanceToPlayer:float;
private var canSeePlayer:boolean=false;

var hit:RaycastHit;

function Update(){
seekPlayer();
}

function seekPlayer(){
var directionToPlayer=player.transform.position-transform.position;
var distanceToPlayer=Vector3.Distance(transform.position,player.transform.position);

var playerAngle=Vector3.Angle(directionToPlayer,transform.forward);

if((Mathf.Abs(playerAngle)<visionAngle &&distanceToPlayer<visionRange)||canSeePlayer==true){
Physics.Linecast(transform.position,player.transform.position,hit,~characterLayer.value);

if((hit.collider.name==player.collider.name)){
var MoveDirection=transform.forward;
var tempRot=Quaternion.Slerp(transform.rotation,Quaternion.LookRotation(directionToPlayer),2*Time.deltaTime);

tempRot.x=0;
tempRot.z=0;
transform.rotation=tempRot;
canSeePlayer=true;

}

moveDirection.y-=gravity*Time.deltaTime;
var controller:CharacterController=GetComponent(CharacterController);
var flags=controller.Move(moveDirection*3*Time.deltaTime);



function (makeDamage,damage:float)
hitPoints.damage;

if(hitPoints<=0);
{
Instantiate(explosion,transform.position,transform.rotation):
Destroy(gameObject)}
}
}
Si quelqu'un pourrait me le corriger, ça serait super sympa (Je comprend rien au Java Script, je me contente de recopier bêtement ce qu'il y a d'ecrit, je sais c'est pas bien, mais j'ai pas trouvé de tuto potable pour apprendre je Java Script... :| )
Dernière édition par Jeannen le 14 Oct 2012 19:09, édité 2 fois.

Avatar de l’utilisateur
Max
Messages : 8764
Inscription : 30 Juil 2011 13:57
Contact :

Re: [Problème] Etape 9

Message par Max » 14 Oct 2012 17:56

Bon, si on s'en tient à un plan purement syntaxique, et en survollant vite fait,
il semble manquer quelques } après la ligne var flags=controller.Move(moveDirection*3*Time.deltaTime); , non ?
En suite, attention à la case, car si j'ai bien lu moveDirection n'est pas la même chose que MoveDirection.
Quand à la fonction makeDamage, là c'est zarbi... c'est un carnage ( les ( , les {}, et autre ; .... )

c'est pas plutôt un truc du genre ?

Code : Tout sélectionner

function makeDamage(damage:float) {
	hitPoints=damage;

	if(hitPoints<=0)
	{
		Instantiate(explosion,transform.position,transform.rotation);
		Destroy(gameObject);
	}
}
je sais que coder ça s’apprend pas en un jour, mais si c'est de la recopie par contre, là c'est plus moche Image
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Jeannen
Messages : 11
Inscription : 14 Oct 2012 17:28

Re: [Problème] Etape 9

Message par Jeannen » 14 Oct 2012 18:21

Donc en gros, si je remplace ma portion de code par la tienne ça devrait marcher ? :3

Avatar de l’utilisateur
Max
Messages : 8764
Inscription : 30 Juil 2011 13:57
Contact :

Re: [Problème] Etape 9

Message par Max » 14 Oct 2012 18:30

Jeannen a écrit :Donc en gros, si je remplace ma portion de code par la tienne ça devrait marcher ? :3
pour ce petit bout , oui, tout en corrigeant aussi au moins les points précisé avant (il y a peut-être d'autres erreurs, je n'ai fait que survoler le code fournis, et non pas testé).
Mais attention ceci dit, résorber les erreurs de syntaxes ne signifie pas pour autant que le résultat attendu sera là pour autant.
donc....
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Jeannen
Messages : 11
Inscription : 14 Oct 2012 17:28

Re: [Problème] Etape 9

Message par Jeannen » 14 Oct 2012 18:34

Okay merci :)
Je teste et je te dit si c'est bon

Jeannen
Messages : 11
Inscription : 14 Oct 2012 17:28

Re: [Problème] Etape 9

Message par Jeannen » 14 Oct 2012 18:41

C'est toujours pas bon :/
J'essaye de reproduire le code de la partie 9, la création du mouvement de l'IA

Avatar de l’utilisateur
Max
Messages : 8764
Inscription : 30 Juil 2011 13:57
Contact :

Re: [Problème] Etape 9

Message par Max » 14 Oct 2012 18:46

Jeannen a écrit :C'est toujours pas bon :/
J'essaye de reproduire le code de la partie 9, la création du mouvement de l'IA
Je connais pas ce tuto, du moins je ne l'ai jamais fait.
Si ton code pose toujours problème, alors reposte ta dernière version, au moins on pourra voir...
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Jeannen
Messages : 11
Inscription : 14 Oct 2012 17:28

Re: [Problème] Etape 9

Message par Jeannen » 14 Oct 2012 18:54

Code : Tout sélectionner

function Start () {

}

var hitPoints=20;
var explosion:Transform;

var characterLayer:LayerMask;
var gravity=20;
private var player:GameObject;
player=GameObject.Find("Player");

var visionAngle:float=45;
var visionRange:float=100;
private var distanceToPlayer:float;
private var canSeePlayer:boolean=false;

var hit:RaycastHit;

function Update(){
seekPlayer();
}

function seekPlayer(){
var directionToPlayer=player.transform.position-transform.position;
var distanceToPlayer=Vector3.Distance(transform.position,player.transform.position);

var playerAngle=Vector3.Angle(directionToPlayer,transform.forward);

if((Mathf.Abs(playerAngle)<visionAngle &&distanceToPlayer<visionRange)||canSeePlayer==true){
Physics.Linecast(transform.position,player.transform.position,hit,~characterLayer.value);

if((hit.collider.name==player.collider.name)){
var moveDirection=transform.forward;
var tempRot=Quaternion.Slerp(transform.rotation,Quaternion.LookRotation(directionToPlayer),2*Time.deltaTime);

tempRot.x=0;
tempRot.z=0;
transform.rotation=tempRot;
canSeePlayer=true;

}

moveDirection.y-=gravity*Time.deltaTime;
var controller:CharacterController=GetComponent(CharacterController);
var flags=controller.Move(moveDirection*3*Time.deltaTime);
}


function makeDamage.damage:float; {
hitPoints:damage};
if(hitPoints<=0);
{
Instantiate(explosion,transform.position,transform.rotation):
Destroy(gameObject);
}
}
Au fur et à mesur que je change es trucs, les mêmes erreurs reviennent, comme une boucle , c'est zarb'

Avatar de l’utilisateur
Max
Messages : 8764
Inscription : 30 Juil 2011 13:57
Contact :

Re: [Problème] Etape 9

Message par Max » 14 Oct 2012 18:58

Il manque toujours pour moi un } après var flags=controller.Move(moveDirection*3*Time.deltaTime);.....
Quand à la fonction makeDamage, visiblement tu n'as pas vraiment tenu compte de ce que je t'avais fournis :roll:
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Jeannen
Messages : 11
Inscription : 14 Oct 2012 17:28

Re: [Problème] Etape 9

Message par Jeannen » 14 Oct 2012 19:06

Si, mais j'ai corrigé plusieurs fois, j'ai du enlever au passage.
Je met mon code après toutes tes corrections ;)

Verrouillé

Revenir vers « Tutoriels du site Unity3D-france »