[Problème] Modification de variable UI

Questions à propos du GUI, y compris la partie script.
thewrist
Messages : 5
Inscription : 27 Jan 2015 01:14

[Problème] Modification de variable UI

Message par thewrist » 27 Jan 2015 01:30

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 : Image
Image

Et je ne comprend vraiment pas pourquoi, j'ai essayé pleins de truc mais sans façons ...
Voici mon script de score : Image

Si vous pouvez m'aidé ou si vous avez une autre méthode pour faire des scores ... je suis preneur !

Avatar de l’utilisateur
NDrew
Messages : 581
Inscription : 25 Oct 2013 15:14
Localisation : Clermont-Ferrand

Re: [Problème] Modification de variable UI

Message par NDrew » 27 Jan 2015 08:31

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.

bdream
Messages : 28
Inscription : 25 Oct 2014 23:43
Localisation : Dans un nuage (au dessus de Bordeaux)
Contact :

Re: [Problème] Modification de variable UI

Message par bdream » 27 Jan 2015 10:43

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.
WIP - Futuristic racing game PolyRace

thewrist
Messages : 5
Inscription : 27 Jan 2015 01:14

Re: [Problème] Modification de variable UI

Message par thewrist » 27 Jan 2015 20:33

J'ai pas bien compris, voici mes objets :
Image
Image
Image

Ma sphère est possesseur du script :
Image

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

bdream
Messages : 28
Inscription : 25 Oct 2014 23:43
Localisation : Dans un nuage (au dessus de Bordeaux)
Contact :

Re: [Problème] Modification de variable UI

Message par bdream » 28 Jan 2015 14:46

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

Code : Tout sélectionner

public ScoreCount scoreCounter;
4/ Rajouter une methode dans ScoreCount qui permet d'incrémenter le score:

Code : Tout sélectionner

public void IncScore() {
    count++
}
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 ^^
WIP - Futuristic racing game PolyRace

thewrist
Messages : 5
Inscription : 27 Jan 2015 01:14

Re: [Problème] Modification de variable UI

Message par thewrist » 28 Jan 2015 21:08

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?

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);
		}
	}
	
}
Voici mon code

bdream
Messages : 28
Inscription : 25 Oct 2014 23:43
Localisation : Dans un nuage (au dessus de Bordeaux)
Contact :

Re: [Problème] Modification de variable UI

Message par bdream » 29 Jan 2015 10:15

La classe ScoreCount existe toujours dans ton projet ?
WIP - Futuristic racing game PolyRace

thewrist
Messages : 5
Inscription : 27 Jan 2015 01:14

Re: [Problème] Modification de variable UI

Message par thewrist » 29 Jan 2015 10:57

non j'ai tous supprimé de mon ancien script

bdream
Messages : 28
Inscription : 25 Oct 2014 23:43
Localisation : Dans un nuage (au dessus de Bordeaux)
Contact :

Re: [Problème] Modification de variable UI

Message par bdream » 01 Fév 2015 00:34

L'erreur vient de la !
WIP - Futuristic racing game PolyRace

Répondre

Revenir vers « L'interface GUI »