Tout nouvel utilisateur

Pour les scripts écrits en C#
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
Avatar de l’utilisateur
bloodfang
Messages : 10
Inscription : 09 Août 2019 13:27

Tout nouvel utilisateur

Message par bloodfang » 09 Août 2019 14:04

Bonjour à tous,

Voilà je fais un rapide topo, j'aimerai créer un mini jeu sur android pour ma bien aimé. Mais le soucis c'est que je part de zero alors je suis en train de taffer unity depuis quelques jours j'arrive à faire un jeu plus ou moins comme je veux pour le moment. C'est à dire un jeu très très basique un personnage qui avance tout seul, on tape sur l'écran pour sauter, des ennemies, des trous des plateformes et un game over, bref le strict minimum et ca me va plutot bien.

Bon jusqu'ici tout va plutot bien, seulement j'aimerai bien y amener une trame scénaristique et donc faire une cinématique de dialogue au début et à la fin.

J'ai regardé des dizaine de tuto sur internet tous plus ou moins long seulement une perte de temps énorme rien ne fonctionne. Soit mon script ne trouve pas l'autre script, soit c'est bourré d'erreur ect... Bref c'est pas la joie à ce niveau là.
Donc j'aimerai entrer en contact avec des utilisateurs chevronné pour qui ce type de travail pour eux je pense est un jeu d'enfant afin de regler mes soucis et répondre à mes questions.

Je vous remercie pour vos futurs réponse :)

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

Re: Tout nouvel utilisateur

Message par Max » 09 Août 2019 14:22

Bonjour,
bloodfang a écrit :
09 Août 2019 14:04
Soit mon script ne trouve pas l'autre script, soit c'est bourré d'erreur ect... Bref c'est pas la joie à ce niveau là.
Donc j'aimerai entrer en contact avec des utilisateurs chevronné pour qui ce type de travail pour eux je pense est un jeu d'enfant afin de regler mes soucis et répondre à mes questions.
Pour ce qui est des personnes chevronnées, ici ça devrait pouvoir le faire je pense.
Pour les soucis de scripts auquel tu sembles confronté, le mieux est de détailler (techniquement parlant) les problèmes que tu rencontres, et surtout poster ici tes scripts, pour aider c'est mieux (en utilisant les bonnes balises) .
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
bloodfang
Messages : 10
Inscription : 09 Août 2019 13:27

Re: Tout nouvel utilisateur

Message par bloodfang » 09 Août 2019 17:22

Ouais enfin je cherchais surtout quelqu'un de dispo pour discuter en messagerie instant, parce que si je doit poster un topic ici à chaque fois que j'ai un soucis ou une question, ca va être compliqué.

Mais je peux déjà le plus gros:
J'ai suivis un tuto de microsoft qui est dispo en PDF sur google.
J'ai tout fait comme indiqué seulement ca ne se lance pas mais pour une fois il n'y a qu'un seul message d'erreur qui est celui là:
NulleReferenceException: Object reference not set to an instance of an object Dialogue.parler(System.String choix, System.String texte) (at Assets/scipts/dialogue.cs:34)
Quand je double clique sur le message d'erreur ca me renvois à cette ligne:

Code : Tout sélectionner

 Joueur_text.GetComponent<Text>().text = texte;
Et voici le script tout entier au cas où ca puisse aider:

Code : Tout sélectionner

using System.Collections;
using UnityEngine;
using UnityEngine.UI;


public class Dialogue : MonoBehaviour
{
    public GameObject Joueur_image;
    public GameObject Joueur_text;
    public GameObject Dany_image;
    public GameObject Dany_text;


    // Start is called before the first frame update
    void Start()
    {
        this.gameObject.GetComponent<Image>().enabled = false;
        parler("joueur", "J'écris un texte car je le vaux bien.");
        StartCoroutine(dialogue1());

    }
    public void parler(string choix, string texte)
    {
        Joueur_text.SetActive(false);
        Joueur_image.SetActive(false);
        Dany_text.SetActive(false);
        Dany_image.SetActive(false);


        this.gameObject.GetComponent<Image> ().enabled = true;

        if (choix == "joueur")
        {
            Joueur_text.GetComponent<Text>().text = texte;
            Joueur_text.SetActive(true);
            Joueur_image.SetActive(true);
        }
        if (choix == "Dany")
        {
            Dany_text.GetComponent<Text> ().text = texte;
            Dany_text.SetActive(true);
            Dany_image.SetActive(true);
        }
    }

 

    IEnumerator dialogue1()
    {
        yield return new WaitForSeconds(3);

        parler("Dany", "Oui tu le vaux bien.");
        StartCoroutine(dialogue2());
    }
    IEnumerator dialogue2()
    {
        yield return new WaitForSeconds(3);
        parler("joueur", "Oui mais ca commence à me gaver.");
        StartCoroutine(desactiver_tout());

    }
    IEnumerator desactiver_tout ()
    {
        yield return new WaitForSeconds(3);

        this.gameObject.GetComponent<Image>().enabled = false;
        Joueur_text.SetActive(false);
        Joueur_image.SetActive(false);
        Dany_text.SetActive(false);
        Dany_image.SetActive(false);

    }
    
}
Voilà ca n'a pas l'air bien méchant car rien n'est rouge dans l'éditeur je suis sur que c'est un petit truc mais ca me rend fou! :-D

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

Re: Tout nouvel utilisateur

Message par Max » 09 Août 2019 17:39

Re,

Tu sembles avoir une référence nulle. Ce qui veut dire que l'un des éléments que tu emplois sur cette ligne est sans valeur (donc Null).
Soit Joueur_text est null (non renseigné dans l'inspector du gameobject sur lequel est placé le script), soit le gameobject Joueur_text ne possède pas de composant UI.Text auquel tu cherches à accéder par le biais du GetComponent<>.

PS: je déplace le sujet dans la section Scripting->CSharp
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

Moi 1971
Messages : 727
Inscription : 29 Sep 2015 13:38

Re: Tout nouvel utilisateur

Message par Moi 1971 » 10 Août 2019 09:44

Bonjour, pour déboguer facilement il y a Debug.log("Le message").
Tu pourrais l'utiliser comme cela dans la fonction parler() :

Code : Tout sélectionner

public void parler(string choix, string texte)
    {
       Debug.Log("choix: " + choix);
       Debug.Log("string: " + texte);
       
        Joueur_text.SetActive(false);
        Joueur_image.SetActive(false);
        Dany_text.SetActive(false);
        Dany_image.SetActive(false);
        ....
        ...
        .

     }
En suite, peut-être faut-il activer "Joueur_text" et "Dany_text" avec "SetActive" avant de les renseigner avec le contenu de "texte".
Au lieu de :

Code : Tout sélectionner

Joueur_text.GetComponent<Text>().text = texte;
Joueur_text.SetActive(true);
Faire :

Code : Tout sélectionner

Joueur_text.SetActive(true);
Joueur_text.GetComponent<Text>().text = texte;

Avatar de l’utilisateur
bloodfang
Messages : 10
Inscription : 09 Août 2019 13:27

Re: Tout nouvel utilisateur

Message par bloodfang » 10 Août 2019 15:39

Non mais le soucis était tout béte en fait j'ai utilisé textmesh pro, et fallais juste mettre la commande de texte mesh à la place du text.

Merci tout cas pour votre aide un probléme en amène un autre avec unity j'ai l'impression...

Voilà j'ai reussis à faire plus ou moins ce que je voulais au niveau des dialogue ect.. le soucis viens au niveau du gameplay.
En fait mon peso avance tout seul et saute quand on lui demande(jusque là c'est bon). Seulement il avance sur une seule ligne. Quand j'essaye de faire une montée avec une plateforme mon perso perd de la vitesse, recule en arrére et la caméra ne suit pas. J'ai essayé de regarder sur google et ils font absolument TOUS des tuto sur des perso qui avance sur une seule et unique ligne.

Alors ma question déjà est-ce possible de pouvoir faire un niveau à plusieurs étage et surtout comment je doit m'y prendre parce que là avec google je ne trouve pas mon bonheur.

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

Re: Tout nouvel utilisateur

Message par Max » 10 Août 2019 15:48

bloodfang a écrit :
10 Août 2019 15:39
Non mais le soucis était tout béte en fait j'ai utilisé textmesh pro, et fallais juste mettre la commande de texte mesh à la place du text.
oui effectivement.

Pour ton soucis de déplacement de personnage, ouvre un autre sujet. Pour chaque problème = un sujet.
Pour les recherches et la visibilité c'est nettement mieux.
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

Répondre

Revenir vers « (C#) CSharp »