[RESOLU][DB] Syntaxe JS entre Unity 4 et Unity 5

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
Calcitoro
Messages : 5
Inscription : 21 Fév 2017 12:44

[RESOLU][DB] Syntaxe JS entre Unity 4 et Unity 5

Message par Calcitoro » 21 Fév 2017 18:32

Bonjours à tous,
Voilà j'ai commencer à crée un petit jeux 2D du moins j'apprend via des tutos les bases. J'ai donc créée un script javascript pour faire sauter mon personnage. voici le script :

Code : Tout sélectionner

#pragma strict

function Start () {
	
}

function Update () {

    if(Input.GetKeyDown(KeyCode.Space)){

        'UnityEngine.Rigidbody2D'.AddForce(Vector2(2,50));
    }
	
}
j'ai ensuite glissé le script dans mon personnage, comme dit dans le tutoriel, malheureusement ce message d'erreur apparais :

" Assets/script/move perso.js(11.35): BCE0019: 'AddForce' is not a member of 'string' "

j'ai pourtant suivis le tutoriel à la lettre mais rien n'y fait, je ne comprend pas l'erreur. Je vous remercie d'avance pour vos réponses, qui, je l’espère, m'aiderons à sortir de cette impasse.

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

Re: [DB] Erreur script pour saut personnage 2D

Message par Max » 21 Fév 2017 18:41

Bonjour Calcitoro.

Première chose, quand tu postes un code, place le dans les balises code (voir procédure dans la Netiquette, à lire en tant que nouveau membre, et une p'tite présentation sera appréciée ;) )

En suite, c'est toujours mieux quand tu fournis le lien du tuto que tu suis, cela peut aider à comprendre. Au vu du code, j'ai encore du mal à les reconnaitre comme cela par cœur, mais cela viendra Image

Enfin, je ne suis pas sûr que dans le tuto, il soit écrit:

Code : Tout sélectionner

'UnityEngine.Rigidbody2D'.AddForce(Vector2(2,50));
A la limite plus surement:

Code : Tout sélectionner

UnityEngine.Rigidbody2D.AddForce(Vector2(2,50));
(bien que comme cela ça va pas le faire non plus)
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

Calcitoro
Messages : 5
Inscription : 21 Fév 2017 12:44

Re: [DB] Erreur script pour saut personnage 2D

Message par Calcitoro » 21 Fév 2017 19:07

Comme la souligné Max je n'ai pas mis le lien du tuto que j'ai suivi, voici donc le lien :

https://www.youtube.com/watch?v=-69p_zPLICg&t=774s .

Ensuite, dans le tuto il n'est effectivement pas dit de mettre :

Code : Tout sélectionner

 'UnityEngine.Rigidbody2D'.AddForce(Vector2(2,50));
Mais simplement :

Code : Tout sélectionner

Rigidbody2D'.AddForce(Vector2(x,x));
(x étant une variable changeable)

Tout de fois un message d'erreur d'unity m'indiquer de rajouter " 'UnityEngine.Rigidbody2D' " avant le '.Addforce'

Je m'excuse donc pour se manque de précision.

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

Re: [DB] Erreur script pour saut personnage 2D

Message par Max » 21 Fév 2017 19:13

Les majuscules/minuscule ont leur importance.

Comme montré dans la vidéo, c'est :

Code : Tout sélectionner

rigidbody2D.AddForce(Vector2(x,x));
De plus, il parait bizarre qu'il n'y ai pas un 'GetComponent' quelque part...
(il semblerait que le tuto vidéo soit réalisé avec une version 4 d'Unity)
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

Calcitoro
Messages : 5
Inscription : 21 Fév 2017 12:44

Re: [DB] Erreur script pour saut personnage 2D

Message par Calcitoro » 22 Fév 2017 00:50

Le tuto doit effectivement être top ancien...

En écrivant :

Code : Tout sélectionner

rigidbody2D.AddForce(Vector2(x,x));


J'ai deux messages d'erreur qui apparaisse, à savoir :
  • Assets/script/move perso.js(11,9): BCE0144: 'UnityEngine.Component.rigidbody2D' is obsolete. Property rigidbody2D has been deprecated. Use GetComponent<Rigidbody2D>() instead. (UnityUpgradable)
  • Assets/script/move perso.js(11,21): BCE0019: 'AddForce' is not a member of 'UnityEngine.Component'.
Me voilà donc complètement perdu :/ Je ne voie pas trop comment régler le problème ...

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6187
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: [DB] Erreur script pour saut personnage 2D

Message par boubouk50 » 22 Fév 2017 10:37

depuis la version 5, il faut récupérer le Component avant de l'utiliser:

Code : Tout sélectionner

this.GetComponent <Rigidbody2D> ().AddForce (Vector2 (x, x));
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Calcitoro
Messages : 5
Inscription : 21 Fév 2017 12:44

Re: [DB] Erreur script pour saut personnage 2D

Message par Calcitoro » 22 Fév 2017 13:47

Mmh malheureusement toujours et encore des erreur

Code utilisé :

Code : Tout sélectionner

#pragma strict

function Start () {
	
}

function Update () {

    if(Input.GetKeyDown(KeyCode.Space)){

        this.GetComponent <Rigidbody2D> ().AddForce (Vector2 (0, 50));
	
    }

}
Erreur :
  • Assets/script/move perso.js(11,44): UCE0001: ';' expected. Insert a semicolon at the end.

    Assets/script/move perso.js(11,43): BCE0044: expecting ), found '.'.

    Assets/script/move perso.js(11,42): BCE0043: Unexpected token: ).
[PS.] Je code en javascript, hors en cherchant un peux sur les forum, j'ai vue qu'une personne avais écrit se Script en C#. L'erreur viendrais de la ?

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6187
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: [DB] Erreur script pour saut personnage 2D

Message par boubouk50 » 22 Fév 2017 14:19

Effectivement, ça à l'air d'être une syntaxe réservée pour du C#.
Essaie:

Code : Tout sélectionner

GetComponent (Rigidbody2D).AddForce (Vector2 (0, 50));
ou

Code : Tout sélectionner

GetComponent.<Rigidbody2D> ().AddForce (Vector2 (0, 50));
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Calcitoro
Messages : 5
Inscription : 21 Fév 2017 12:44

Re: [DB] Erreur script pour saut personnage 2D

Message par Calcitoro » 22 Fév 2017 14:55

Et c'est bon, le premier code que tu a mis est le bon ! :-D

Merci beaucoup de vôtres aides (surtout toi boubouk50) je vais à nouveaux pouvoir avancer. :super:

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6187
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: [DB] Erreur script pour saut personnage 2D

Message par boubouk50 » 22 Fév 2017 15:28

Avec plaisir.

Lorsque tu résous un problème, édite le titre de ton premier post en ajoutant [RESOLU] en début de celui-ci, histoire que les suivants savent que la solution est trouvée. Je le fais cette fois-ci.
Merci.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Verrouillé

Revenir vers « (Js) Javascript »