Conversion script Unity V4 vers V5
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
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
Conversion script Unity V4 vers V5
Bonjour a vous, je suis nouveau a utilisé Unity(5.5) et en voulant apprendre je me suis retrouvé face a un problème de "script c#".
Je vous explique, j'ai lancé un tutoriel pour commencé a apprendre un petit peu le fonctionnement de Unity que voici -vous êtes directement placé a la page ou je bloque-
http://pixelnest.io/tutorials/creer-un- ... s-ennemis/
Arrivé a "déplacement joueur" dans le tuto, je bloque sur la mise en place du script, j'ai pourtant bien copié collé le script dans CSharp mais impossible de lancé le "mode jeu" ou déplacé tout simplement le script sur mon joueur, un message d'erreur alors apparaît me disant que il y a des erreurs a corriger mais je trouve pas d'ou cela viens, une version trop récente de mon unity ? une ligne de code mal placé ? aidez moi s'il vous plait je veux apprendre ! :'(
Je vous explique, j'ai lancé un tutoriel pour commencé a apprendre un petit peu le fonctionnement de Unity que voici -vous êtes directement placé a la page ou je bloque-
http://pixelnest.io/tutorials/creer-un- ... s-ennemis/
Arrivé a "déplacement joueur" dans le tuto, je bloque sur la mise en place du script, j'ai pourtant bien copié collé le script dans CSharp mais impossible de lancé le "mode jeu" ou déplacé tout simplement le script sur mon joueur, un message d'erreur alors apparaît me disant que il y a des erreurs a corriger mais je trouve pas d'ou cela viens, une version trop récente de mon unity ? une ligne de code mal placé ? aidez moi s'il vous plait je veux apprendre ! :'(
- boubouk50
- ModoGenereux
- Messages : 6216
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: Débutant, je ne comprend pas tout
Bonjour Balk0r,
Dans l'onglet Console, tu as des messages d'erreur qui s'affichent. Ils te disent quelles lignes de quels scripts sont incriminées. Copie-colle les ici si tu veux qu'on t'aide à les corriger.
+
Dans l'onglet Console, tu as des messages d'erreur qui s'affichent. Ils te disent quelles lignes de quels scripts sont incriminées. Copie-colle les ici si tu veux qu'on t'aide à les corriger.
+
"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
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Re: Débutant, je ne comprend pas tout
Voici le "code" mit sur le tuto:
Première erreur : Severity Code Description Project File Line Suppression State
Error CS0619 'Component.rigidbody2D' is obsolete: 'Property rigidbody2D has been deprecated. Use GetComponent<Rigidbody2D>() instead. (UnityUpgradable)' Assembly-CSharp C:\Users\Pierre\Desktop\Création jeux\New Unity Project\Assets\Script\Playerscript.cs
deuxieme erreur : Severity Code Description Project File Line Suppression State
Error CS1061 'Component' does not contain a definition for 'velocity' and no extension method 'velocity' accepting a first argument of type 'Component' could be found (are you missing a using directive or an assembly reference?) Assembly-CSharp C:\Users\Pierre\Desktop\Création jeux\New Unity Project\Assets\Script\Playerscript.cs
Un problème avec velocity surement car c'est la seule ligne qui veux pas
Code : Tout sélectionner
using UnityEngine;
using System.Collections;
public class movetest : MonoBehaviour {
public Vector2 speed = new Vector2(50, 50);
private Vector2 movement;
void Update()
{
float inputX = Input.GetAxis("Horizontal");
float inputY = Input.GetAxis("Vertical");
movement = new Vector2(
speed.x * inputX,
speed.y * inputY);
}
void FixedUpdate()
{
rigidbody2D.velocity = movement;
}
}
Error CS0619 'Component.rigidbody2D' is obsolete: 'Property rigidbody2D has been deprecated. Use GetComponent<Rigidbody2D>() instead. (UnityUpgradable)' Assembly-CSharp C:\Users\Pierre\Desktop\Création jeux\New Unity Project\Assets\Script\Playerscript.cs
deuxieme erreur : Severity Code Description Project File Line Suppression State
Error CS1061 'Component' does not contain a definition for 'velocity' and no extension method 'velocity' accepting a first argument of type 'Component' could be found (are you missing a using directive or an assembly reference?) Assembly-CSharp C:\Users\Pierre\Desktop\Création jeux\New Unity Project\Assets\Script\Playerscript.cs
Un problème avec velocity surement car c'est la seule ligne qui veux pas
- boubouk50
- ModoGenereux
- Messages : 6216
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: Débutant, je ne comprend pas tout
Voilà comment cela fonctionne:
Error CS0619 'Component.rigidbody2D' is obsolete: 'Property rigidbody2D has been deprecated. Use GetComponent<Rigidbody2D>() instead (UnityUpgradable)' Assembly-CSharp C:\Users\Pierre\Desktop\Création jeux\New Unity Project\Assets\Script\Playerscript.cs
Unity te dit clairement que rigidbody2D n'existe plus tel quel. Il faut utiliser GetComponent<Rigidbody2D>() à la place.
Donc dans ton code tu remplaces rigidbody2D par GetComponent<Rigidbody2D>().
La seconde erreur découle de la première puisque velocity est une variable de rigidbody2D, sauf que comme rigidbody2D n'a pas été correctement récupéré, tu essaies d'accéder à une variable sur une classe nulle. Elle se corrigera donc toute seule lorsque rigidBody2D sera correctement récupéré, donc en corrigeant la première erreur.
Aussi, faire un GetComponent () est lourd, il vaut mieux stocker le rigidbody2D dans une variable:
Error CS0619 'Component.rigidbody2D' is obsolete: 'Property rigidbody2D has been deprecated. Use GetComponent<Rigidbody2D>() instead (UnityUpgradable)' Assembly-CSharp C:\Users\Pierre\Desktop\Création jeux\New Unity Project\Assets\Script\Playerscript.cs
Unity te dit clairement que rigidbody2D n'existe plus tel quel. Il faut utiliser GetComponent<Rigidbody2D>() à la place.
Donc dans ton code tu remplaces rigidbody2D par GetComponent<Rigidbody2D>().
La seconde erreur découle de la première puisque velocity est une variable de rigidbody2D, sauf que comme rigidbody2D n'a pas été correctement récupéré, tu essaies d'accéder à une variable sur une classe nulle. Elle se corrigera donc toute seule lorsque rigidBody2D sera correctement récupéré, donc en corrigeant la première erreur.
Aussi, faire un GetComponent () est lourd, il vaut mieux stocker le rigidbody2D dans une variable:
Code : Tout sélectionner
using UnityEngine;
using System.Collections;
public class movetest : MonoBehaviour {
public Vector2 speed = new Vector2(50, 50);
private Rigidbody2D rigidbody2D;
private Vector2 movement;
void Start () {
//ré&cupération du component Rigidbody2D
rigidbody2D = GetComponent<Rigidbody2D>();
}
void Update()
{
float inputX = Input.GetAxis("Horizontal");
float inputY = Input.GetAxis("Vertical");
movement = new Vector2(
speed.x * inputX,
speed.y * inputY);
}
void FixedUpdate()
{
//Affectation du Rigidbody2D
rigidbody2D.velocity = movement;
}
}
"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
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Re: Conversion script Unity V4 vers V5
De nette amélioration ( je peux toujours pas le lancé en "jeu" mon personne ne bouge pas) mais j'ai encore une erreur :
Severity Code Description Project File Line Suppression State
Warning CS0108 'movetest.rigidbody2D' hides inherited member 'Component.rigidbody2D'. Use the new keyword if hiding was intended. Assembly-CSharp C:\Users\Pierre\Desktop\Création jeux\New Unity Project\Assets\Script\Playerscript.cs 9 Active
Merci beaucoup de ton aide en tout cas, j'apprend la programmation au moment ou on se parle mais le tuto était pour les débutants et les scripts sont déjà écris donc il y aurait du pas avoir de problème ahah
Severity Code Description Project File Line Suppression State
Warning CS0108 'movetest.rigidbody2D' hides inherited member 'Component.rigidbody2D'. Use the new keyword if hiding was intended. Assembly-CSharp C:\Users\Pierre\Desktop\Création jeux\New Unity Project\Assets\Script\Playerscript.cs 9 Active
Merci beaucoup de ton aide en tout cas, j'apprend la programmation au moment ou on se parle mais le tuto était pour les débutants et les scripts sont déjà écris donc il y aurait du pas avoir de problème ahah
- boubouk50
- ModoGenereux
- Messages : 6216
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: Conversion script Unity V4 vers V5
Alors les textes en jaune sont des avertissements (Warning). Ils te donnent une information sur des lignes de code qui pourraient donner un comportement suspect, une variable jamais utilisée, etc. Ils n'empêchent pas le jeu de se lancer. Si tu as toujours le message:
all compiler errors have to be fixed, alors une autre erreur (en rouge) n'est pas corrigée.
all compiler errors have to be fixed, alors une autre erreur (en rouge) n'est pas corrigée.
"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
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Re: Conversion script Unity V4 vers V5
Ah d'accord, sauf qu'au final mon personnage ne bouge toujours pas.. j'ai pourtant mit le code sur mon "personnage"
- boubouk50
- ModoGenereux
- Messages : 6216
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: Conversion script Unity V4 vers V5
Essaie ce code: Et dis moi lorsque tu joues si des erreurs surviennent (en rouge) et ce que te met en console les Debugs (en blanc) lorsque tu appuies sur les touches directionnelles. (Tu devrais avoir mouvement: 50 et vélocité: 50)
Le code doit être mis sur le gameObject qui possède le Rigidbody2D
Code : Tout sélectionner
using UnityEngine;
using System.Collections;
public class movetest : MonoBehaviour {
public Vector2 speed = new Vector2(50, 50);
private Rigidbody2D rigidbody2D;
private Vector2 movement;
void Start () {
//ré&cupération du component Rigidbody2D
rigidbody2D = GetComponent <Rigidbody2D> ();
}
void Update()
{
float inputX = Input.GetAxis("Horizontal");
float inputY = Input.GetAxis("Vertical");
movement = new Vector2(
speed.x * inputX,
speed.y * inputY);
Debug.Log ("mouvement: " + movement);
}
void FixedUpdate()
{
//Affectation du Rigidbody2D
rigidbody2D.velocity = movement;
Debug.Log ("vélocité: " + rigidbody2D.velocity);
}
}
Le code doit être mis sur le gameObject qui possède le Rigidbody2D
"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
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Re: Conversion script Unity V4 vers V5
Re !
Alors aucune erreur rouge mais le personnage ne bouge toujours pas et aucune trace du velocity non plus..
Pourtant j'ai bien mon script dans mon gameobject, il y a toujours une erreur jaune :
Severity Code Description Project File Line Suppression State
Warning CS0108 'movetest.rigidbody2D' hides inherited member 'Component.rigidbody2D'. Use the new keyword if hiding was intended. Assembly-CSharp C:\Users\Pierre\Desktop\Création jeux\New Unity Project\Assets\Script\Playerscript.cs 9 Active
Je savais que ça serait pas facile mais a se point ! Merci encore de prendre le temps pour m'aider ^^
EDIT: Un message d'erreur dans la console:
The referenced script on this Behaviour (GameObject 'player') is missing
Alors aucune erreur rouge mais le personnage ne bouge toujours pas et aucune trace du velocity non plus..
Pourtant j'ai bien mon script dans mon gameobject, il y a toujours une erreur jaune :
Severity Code Description Project File Line Suppression State
Warning CS0108 'movetest.rigidbody2D' hides inherited member 'Component.rigidbody2D'. Use the new keyword if hiding was intended. Assembly-CSharp C:\Users\Pierre\Desktop\Création jeux\New Unity Project\Assets\Script\Playerscript.cs 9 Active
Je savais que ça serait pas facile mais a se point ! Merci encore de prendre le temps pour m'aider ^^
EDIT: Un message d'erreur dans la console:
The referenced script on this Behaviour (GameObject 'player') is missing
- boubouk50
- ModoGenereux
- Messages : 6216
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: Conversion script Unity V4 vers V5
Sur ton gameObject Player, il y a un script manquant, vérifie.
"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
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation