Problème Codage (Débutant)

Pour les scripts écrits en Javascript (UnityScript). :!: Obsolète :!:
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
Phrito
Messages : 4
Inscription : 31 Août 2017 17:58

Problème Codage (Débutant)

Message par Phrito » 31 Août 2017 18:10

Bonjour,
Tout d'abord je tiens à dire que je suis débutant.
Bon, j'ai un problème dans le codage qui m'empêche d'avancer. J'ai regardé un tuto pour m'aider a faire un AI (Zombie) sur UNITY, je n'ai pas eu de bug jusqu'à présent :

Code : Tout sélectionner

 moveDirection = transform.forward;
 move Direction *= moveSpeed;

 moveDirection.y -= gravity * Time.deltaTime;
 controller.Move(moveDirection * Time.deltaTime);
}
Voici un bout du script, sur la deuxième ligne de code(move Direction *=moveSpeed;), UNITY me dit qu'il manque un point virgule à la fin de cette ligne, qui faudrait le rajouter, quel est le problème s'il vous plaît ? Merci.
Voici mon script entier :

Code : Tout sélectionner

	#pragma strict

var Distance;
var Target : Transform; 
var LookAtDistance : float = 100;
var chaseRange : float = 100;
var attackRange : float = 2.2;
var moveSpeed : float = 3;
var Damping : float = 6;
var attackRepeatTime : float = 1;

var TheDammage : float = 12; 

private var attackTime : float;

var controller : CharacterController;
var gravity : float = 20;

private var MoveDirection : Vector3 = Vector3.zero;

function Start () {
AttackTime = Time.time;
FindHealth();
}

function Update () {
Distance = Vector3.Distance(Target.position, transform.position);

	if(Distance < LookAtDistance){
	 lookAt();
	}

	if(Distance < attackRange){
	  attack();
	}

	else if(Distance < chaseRange){
		chase(); 
		}

}


function lookAt(){
	var rotation = Quaternion.LookRotation(Target.position - transform.position);
	tranform.rotation = Quaternion.Slerp(transform.rotation, rotation,Time.deltaTime * Damping);
}

function chase (){
 GetComponent.<Animator>().Play("walk");

 moveDirection = transform.forward;
 move Direction *= moveSpeed;

 moveDirection.y -= gravity * Time.deltaTime;
 controller.Move(moveDirection * Time.deltaTime);
}

function attack(){
	if(Time.time > attackTime){
	 GetComponent.<Animator>().Play("attack");

	 Target.SendMessage("ApplyDammage", TheDammage); 
	 Debug.Log("The enemy has attacked");
	 attackTime = Time.time + attackRepeatTime;
	}

}

function ApplyDammage(){
	chaseRange += 20;
	moveSpeed += 2; 
	lookAtDistance += 40;
}

function FindHealth(){
	Target = GameObject.Find("PlayerStats").GetComponent(PlayerStats).transform;
}
 ! Message de : Max
Les balises code SVP
De plus, essais de faire un effort sur le titre, pour qu'il soit plus précis. On se doute qu'en postant dans cette section, il s'agit d'un problème de code.
Merci de lire la Netiquette.

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

Re: Problème Codage (Débutant)

Message par Max » 31 Août 2017 18:24

Bonsoir,

un soucis de relecture ?
tu écris:

Code : Tout sélectionner

 move Direction *= moveSpeed;
alors que tu aurais certainement plutôt du écrire:

Code : Tout sélectionner

 moveDirection *= moveSpeed;
non ?
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

Phrito
Messages : 4
Inscription : 31 Août 2017 17:58

Re: Problème Codage (Débutant)

Message par Phrito » 01 Sep 2017 03:45

    Je l'ai déjà fait, mais ça me donne beaucoup plus d'erreurs qu'il n'y en avait.

    En fait, l'erreur que ça me met quand j'écris ce code est : "Assets/AI/ZombieAI.js(53,6): UCE0001: ';' expected. Insert a semicolon at the end."

    Une idée ?

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

    Re: Problème Codage (Débutant)

    Message par Max » 01 Sep 2017 08:19

    Bonjour,

    ce code, c'est un code tu as écrit toi même, ou qui vient d'un tuto ? Il comporte encore pas mal d'erreurs.
    Tu as des variables qui ne sont pas définis, comme par exemple moveDirection, ou lookAtDistance, ou encore AttackTime (que tu init dans start et qui ne semble jamais employée), tu as encore des erreurs de syntaxe (on voit tranform au lieu de transform par exemple), etc...

    Bref, reprend tout cela à tête reposée, ligne par ligne, en décryptant bien les messages d'erreur fournis dans la console, c'est important de savoir le faire. Et puis essais de prendre le temps d'acquérir les bases en terme de prog, qui semble visiblement te manquer.

    PS: quitte aller plus loin, et c'est un conseil qui ressortira pas mal ces prochains temps, essais plutôt de voir du coté du C#, qui sera très bientôt le seul langage supporté par Unity (le JS étant en fin de vie).
    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

    Avatar de l’utilisateur
    evereal
    Messages : 109
    Inscription : 06 Nov 2015 18:46

    Re: Problème Codage (Débutant)

    Message par evereal » 01 Sep 2017 15:06

    Hello,

    Pour ton erreur, Max ta donné la bonne solution.
    Je l'ai déjà fait, mais ça me donne beaucoup plus d'erreurs qu'il n'y en avait.
    Après avoir bcq pleuré en voyant ça je vais y répondre.

    Les erreurs suivantes ne sont pas causées par la réparation de la première erreur, c'est juste que le compilateur ne comprend pas ce que tu fais et te demande une correction avant d'évaluer la suite de ton code.

    J'ai pas le temps de tout regarder mais j'ai vu des problèmes de minuscule/majuscule également, attention a la casse en programmation.
    “La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !”

    Phrito
    Messages : 4
    Inscription : 31 Août 2017 17:58

    Re: Problème Codage (Débutant)

    Message par Phrito » 03 Sep 2017 14:28

    Les gens, j'ai trouvé comment résoudre, sauf que là j'ai encore une erreur que dont je ne sais pas c'est quoi le problème. L'erreur c'est :
    Assets/AI/Zombie/AI2.js(84,2): BCE0044: unexpected char: 0xFEFF.

    Help ?

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

    Re: Problème Codage (Débutant)

    Message par Max » 03 Sep 2017 14:43

    bonjour,
    Phrito a écrit :
    03 Sep 2017 14:28
    L'erreur c'est :
    Assets/AI/Zombie/AI2.js(84,2): BCE0044: unexpected char: 0xFEFF.
    pars du principe que nous ne sommes pas devin. Donc poste ton code, qui ne semble pas être le même que précédemment.
    Merci.
    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

    Phrito
    Messages : 4
    Inscription : 31 Août 2017 17:58

    Re: Problème Codage (Débutant)

    Message par Phrito » 03 Sep 2017 15:29

    Désolé, voici mon script :

    Code : Tout sélectionner

    #pragma strict
    
    var Distance : float ;
    var Target : Transform;
    var LookAtDistance : float = 20;
    var ChaseRange : float = 10;
    var AttackRange : float = 2;
    var MoveSpeed : float = 3;
    var Damping : float = 6;
    var AttackDammage : float = 10;
    var AttackRepeatTime : float = 1;
    var TheDammage : float = 10;
    
    private var AttackTime : float;
    
    var controller : CharacterController;
    var Gravity : float = 20;
    private var MoveDirection :  Vector3 = Vector3.zero;
    
    
    function Start () {
    
    AttackTime = Time.time;
    FindHealth();
     
    }
    
    function Update () {
    
    Distance = Vector3.Distance(TargetPosition, transform.position);
     if(Distance < LookAtDistance){
     lookAt();
     }
    
     if(Distance < AttackRange){
     attack();
     }
    
     else if(Distance < ChaseRange){
     chase();
     }
     
    }
    
    function lookAt (){
     var rotation = Quaternion.LookRotation(Target.position - transform.position);
     transform.rotation = Quaternion.Slerp(transform.rotation, rotation,Time.deltaTime * Damping);
    
    }
    
    function chase () {
     GetComponent.<Animator>().Play("walk");
    
     MoveDirection.transform.forward;
     MoveDirection *= MoveSpeed;
    
     MoveDirection.y -= gravity * Time.deltaTime;
     controller.Move(moveDirection * Time.deltaTime);
    }
    
    
    function attack () {
     if(Time.time > AttackTime){
     GetComponent.<Animator>.Play("attack");
    
     Target.SendMessage("ApplyDammage", TheDammage);
     attackTime = Time.time + attackRepeatTime;
     }
    
    }
    
    function ApplyDammage(){
     ChaseRange += 30;
     moveSpeed += 2;
     LookAtDistance += 500;
    }
    
    
    function FindHealth(){
     Target = GameObject.Find("PlayerStats").GetComponent.transform;
    
    
    
    }
    
    Et le bug :
    Assets/AI/Zombie/AI2.js(84,2): BCE0044: unexpected char: 0xFEFF.

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

    Re: Problème Codage (Débutant)

    Message par Max » 03 Sep 2017 15:54

    Bonjour,

    Déjà, deuxième rappel sur l'emploi des balises code lorsque tu postes un script (la prochaine fois, je supprime ton message sans autre forme d'avertissement).

    En suite, pour l'erreur dont tu fais état dans ton dernier post (unexpected char: 0xFEFF.) cela vient visiblement d'un caractère bizarre en fin de script. Supprime ton dernier '}' ainsi que les sauts de ligne et réécrit la fin. Cela devrait régler le problème.

    Pour le reste, c'est toujours truffé d'erreurs, donc relis mon second message ainsi que celui d'Evereal, en particulier concernant les variables qui sont utilisées mais non définis, ainsi que les problèmes de minuscule/majuscule (la casse).
    De plus, lit la doc (et ses exemples) pour les fonctions de l'API.

    Par exemple cette ligne: MoveDirection.transform.forward;, tu cherches à faire quoi quand tu écris cela ?
    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

    Verrouillé

    Revenir vers « (Js) Javascript »