[Problème] Modification de variable UI
[Problème] Modification de variable UI
Bonjour à tous !
J'ai un problème ...
Je suis les tutos : http://www.unity3d-dev.com/tuto/debutan ... ndre-unity !
Et j'ai un problème poru l'affichage du score ! vue que le tuto est effectué pour les version 4.3, nous sommes en 4.6 et le système de GUI a bien changé ! Et du coup je me retrouve bloqué. Alors j'ai essayé plusieurs choses, notament ceci : http://unity3d.com/learn/tutorials/proj ... ing-points
Le problème est celui ci :
J'ai une erreur :
Et je ne comprend vraiment pas pourquoi, j'ai essayé pleins de truc mais sans façons ...
Voici mon script de score :
Si vous pouvez m'aidé ou si vous avez une autre méthode pour faire des scores ... je suis preneur !
J'ai un problème ...
Je suis les tutos : http://www.unity3d-dev.com/tuto/debutan ... ndre-unity !
Et j'ai un problème poru l'affichage du score ! vue que le tuto est effectué pour les version 4.3, nous sommes en 4.6 et le système de GUI a bien changé ! Et du coup je me retrouve bloqué. Alors j'ai essayé plusieurs choses, notament ceci : http://unity3d.com/learn/tutorials/proj ... ing-points
Le problème est celui ci :
J'ai une erreur :
Et je ne comprend vraiment pas pourquoi, j'ai essayé pleins de truc mais sans façons ...
Voici mon script de score :
Si vous pouvez m'aidé ou si vous avez une autre méthode pour faire des scores ... je suis preneur !
Re: [Problème] Modification de variable UI
ta variable "text" doit etre null et dond non remplie dans l'inspecteur.
Attention, je vois un gros probleme potentiel dans ton script, ta variable count est static et mise à 0 dans ton awake, donc CHAQUE FOIS qu'un nouveau script va etre crée ou activé pour la premiere fois, le count sera remis a zero.
Attention, je vois un gros probleme potentiel dans ton script, ta variable count est static et mise à 0 dans ton awake, donc CHAQUE FOIS qu'un nouveau script va etre crée ou activé pour la premiere fois, le count sera remis a zero.
-
- Messages : 28
- Inscription : 25 Oct 2014 23:43
- Localisation : Dans un nuage (au dessus de Bordeaux)
- Contact :
Re: [Problème] Modification de variable UI
Qu'est ce que retourne le GetComponent dans le Awake ? Apparement null, donc il doit manquer le component "UnityEngine.UI.Text" sur l'objet qui contient aussi le script ScoreCount.
Ou alors, il faut passer "text" en public et l'assigner dans unity. Et dans ce cas la le GetComponent ne sert à rien.
Ou alors, il faut passer "text" en public et l'assigner dans unity. Et dans ce cas la le GetComponent ne sert à rien.
WIP - Futuristic racing game PolyRace
Re: [Problème] Modification de variable UI
J'ai pas bien compris, voici mes objets :
Ma sphère est possesseur du script :
Mais enfaite je pense vraiment mal avoir compris le système déjà de selection de text, quelle texte choisir justement ? Ensuite comment l'édité ? Si vous avez un tutoriel sur une notion, le CTRL + ' ne m'a pas aidé beaucoup
Ma sphère est possesseur du script :
Mais enfaite je pense vraiment mal avoir compris le système déjà de selection de text, quelle texte choisir justement ? Ensuite comment l'édité ? Si vous avez un tutoriel sur une notion, le CTRL + ' ne m'a pas aidé beaucoup
-
- Messages : 28
- Inscription : 25 Oct 2014 23:43
- Localisation : Dans un nuage (au dessus de Bordeaux)
- Contact :
Re: [Problème] Modification de variable UI
Le script ScoreCount, il ne faut pas le mettre sur "Sphere" mais sur "Canvas/Text". Comme ça GetComponent<Text> fonctionnera dans le Awake de ScoreCount.
Apres, il faut aller incrémenter ScoreCount.count. Pour l'instant, le compteur de score est à deux endroits. C'est mal. Il doit être à un seul endroit, dans la classe ScoreCount (elle porte bien son nom). Donc pour resumer:
1/ Deplacer le script ScoreCount sur l'objet "Canvas/Text"
2/ Retirer la variable count du script PlayerController
3/ Rajouter une variable ScoreCount dans PlayerController
4/ Rajouter une methode dans ScoreCount qui permet d'incrémenter le score:
5/ Appeler cette méthode depuis le PlayerController (au lieu de faire count = count + 1):
scoreCounter.IncScore();
6/ Dans l'inspecteur de l'objet Sphere, sur le component PlayerController, glisser / deplacer l'objet "Canvas/Text" dans le champ scoreCounter (ça permet d'assigner la variable scoreCounter directement.
Et count n'a pas besoin d'être static.
Aussi, pour montrer du code, c'est plus simple de faire un copier/coller du texte plutôt que prendre un screenshot de l'éditeur ^^
Apres, il faut aller incrémenter ScoreCount.count. Pour l'instant, le compteur de score est à deux endroits. C'est mal. Il doit être à un seul endroit, dans la classe ScoreCount (elle porte bien son nom). Donc pour resumer:
1/ Deplacer le script ScoreCount sur l'objet "Canvas/Text"
2/ Retirer la variable count du script PlayerController
3/ Rajouter une variable ScoreCount dans PlayerController
Code : Tout sélectionner
public ScoreCount scoreCounter;
Code : Tout sélectionner
public void IncScore() {
count++
}
scoreCounter.IncScore();
6/ Dans l'inspecteur de l'objet Sphere, sur le component PlayerController, glisser / deplacer l'objet "Canvas/Text" dans le champ scoreCounter (ça permet d'assigner la variable scoreCounter directement.
Et count n'a pas besoin d'être static.
Aussi, pour montrer du code, c'est plus simple de faire un copier/coller du texte plutôt que prendre un screenshot de l'éditeur ^^
WIP - Futuristic racing game PolyRace
Re: [Problème] Modification de variable UI
Merci beaucoup pour ta réponse !
J'ai plus qu'une erreure : Assets/Script/PlayerController.cs(6,16): error CS0246: The type or namespace name `ScoreCount' could not be found. Are you missing a using directive or an assembly reference?
Voici mon code
J'ai plus qu'une erreure : Assets/Script/PlayerController.cs(6,16): error CS0246: The type or namespace name `ScoreCount' could not be found. Are you missing a using directive or an assembly reference?
Code : Tout sélectionner
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class PlayerController : MonoBehaviour {
public ScoreCount scoreCounter;
public int speed = 10;
private int count;
// Use this for initialization
void Start () {
count = 0;
}
// Update is called once per frame
void FixedUpdate () {
float mouveHorizontal = Input.GetAxis("Horizontal");
float mouveVertical = Input.GetAxis("Vertical");
Vector3 mouvment = new Vector3(mouveHorizontal, 0, mouveVertical);
rigidbody.AddForce(mouvment * speed * Time.deltaTime);
}
public void IncScore() {
count++;
}
void OnTriggerEnter(Collider other)
{
if(other.gameObject.tag == "cube")
{
other.gameObject.SetActive(false);
scoreCounter.IncScore();
}
else if(other.gameObject.tag == "mechant")
{
Application.LoadLevel(0);
}
}
}
-
- Messages : 28
- Inscription : 25 Oct 2014 23:43
- Localisation : Dans un nuage (au dessus de Bordeaux)
- Contact :
Re: [Problème] Modification de variable UI
La classe ScoreCount existe toujours dans ton projet ?
WIP - Futuristic racing game PolyRace
Re: [Problème] Modification de variable UI
non j'ai tous supprimé de mon ancien script
-
- Messages : 28
- Inscription : 25 Oct 2014 23:43
- Localisation : Dans un nuage (au dessus de Bordeaux)
- Contact :
Re: [Problème] Modification de variable UI
L'erreur vient de la !
WIP - Futuristic racing game PolyRace