[RESOLU][DB-AL] freeze pause menu

Toutes les questions sur le développement Mobile, y compris la partie script.
Avatar de l’utilisateur
Paullux
Messages : 68
Inscription : 12 Nov 2015 17:11
Contact :

[RESOLU][DB-AL] freeze pause menu

Message par Paullux » 06 Fév 2018 14:47

Bonjour,

J'ai un bug dans mon jeu, un jeu VR sur android, que je suis entrain de créer, j'ai créé un menu, qui apparait quand "Time.timeScale = 0", pour les objets ramassé, j'ai quatre catégorie d'objet (arme, vie, armure, construction).

dans mon inventaire, j'ai 4 panneaux qui apparaissent et qui permettent de choisir quel item on désire avoir en main.

lorsque j'active les 3 premiers pas de problème des le 4eme ça bug le jeu se met en pause, rien, n'apparait le head tracker s'arrête, et ne repart que lors que je quitte le menu. J'ai donc 4 scripts qui pour géréer les items, voici le dernier qui fait que le menu freeze quand je le lance :

Code : Tout sélectionner

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

public class ChoixConstruct : MonoBehaviour {

    public GameObject Blank;
    public GameObject Construc1;
    public GameObject Construc2;
    public GameObject Construc3;
    public Text TauxConstruc;
    public int cell;

    //liés à la progressbar
    public float progress = 0.0f;
    public Texture2D emptyProgressBar; // Set this in inspector.
    public Texture2D fullProgressBar; // Set this in inspector.
    public Vector2 pos = new Vector2(20, 40);
    public Vector2 size = new Vector2(60, 20);
    public bool StartBar = false;
    public float TempsDepart = 0f;
    public Scrollbar ProgressBarre;
    private bool PeutChanger;

    void Awake()
    {
        PeutChanger = true;
        if (PlayerPrefs.GetInt("C" + cell + "Number") == 0) PlayerPrefs.SetInt("C" + cell + "Type", 0);
        if (PlayerPrefs.GetInt("C" + cell + "Type") == 0)
        {
            Blank.SetActive(true);
            Construc1.SetActive(false);
            Construc2.SetActive(false);
            Construc3.SetActive(false);
        }
        if (PlayerPrefs.GetInt("C" + cell + "Type") == 1)
        {
            Blank.SetActive(false);
            Construc1.SetActive(true);
            Construc2.SetActive(false);
            Construc3.SetActive(false);
        }
        if (PlayerPrefs.GetInt("C" + cell + "Type") == 2)
        {
            Blank.SetActive(false);
            Construc1.SetActive(false);
            Construc2.SetActive(true);
            Construc3.SetActive(false);
        }
        if (PlayerPrefs.GetInt("C" + cell + "Type") == 3)
        {
            Blank.SetActive(false);
            Construc1.SetActive(false);
            Construc2.SetActive(false);
            Construc3.SetActive(true);
        }
    }

    void Start()
    {

    }

    void Update()
    {
        TauxConstruc.text = "";
        if (PlayerPrefs.GetInt("C" + cell + "Type") != 0) TauxConstruc.text = PlayerPrefs.GetInt("C" + cell + "Number") + "/5";

        //Liés à la progressbar
        if (StartBar == true && !Blank.activeSelf)
        {
            progress = (Time.unscaledTime - TempsDepart) * 0.5f;
        }
        if (progress > 1.00f && PeutChanger)
        {
            ChangeWeapon();
            PeutChanger = false;
        }
        ProgressBarre.size = progress;
    }

    //Liés à la prosgreesbar
    public void BarreStart()
    {
        TempsDepart = Time.unscaledTime;
        StartBar = true;
    }
    public void BarreStop()
    {
        progress = 0f;
        StartBar = false;
        PeutChanger = true;
    }
    //Choix de la Langue
    //Choix de la Langue
    public void ChangeWeapon()
    {

    }
}
savez vous d'ou peut venir la panne ?
Dernière édition par Paullux le 16 Fév 2018 19:33, édité 3 fois.
J'ai créé un ensemble de jeux :

Un HUB : https://bit.ly/2J6EZTO
Un jeu avec contrôle tactile à l'écran : https://bit.ly/2J3IkTw
Un jeu en VR : https://bit.ly/2h5jdzk
Un jeu en AR : https://bit.ly/2LgMvIo

Il s'agit de FPS pour Android.

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

Re: [DB-AL] freeze pause menu

Message par boubouk50 » 06 Fév 2018 15:54

C'est quoi la différence entre ce 4e menu et les autres? Y-a-t-il un message d'erreur qui apparaît quand tu lances ce 4e menu?
As-tu besoin de tout fourrer dans l'Update ()??
Ce script ne fait pas grand chose et semble ne pas contenir d'erreurs (ou du moins de quoi tout foutre en l'air). Est-il complet? Ou bien tu en as enlevé des bouts? Les appels aux PlayersPrefs en boucle dans un Update () sont à éviter tout de même... Quant aux variables, elles commencent par une minuscule pour ne pas être nommées comme un Type ou une classe...
"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

Avatar de l’utilisateur
Paullux
Messages : 68
Inscription : 12 Nov 2015 17:11
Contact :

Re: [DB-AL] freeze pause menu

Message par Paullux » 06 Fév 2018 16:51

Je ne sais pas, j'ai même réécrit ce 4ème menu ce midi.

Mes 4 menus sont des images avec chacun une grille de 4x4.
sur chaque image, j'ai créé des gameobjects bouton, nommés pour chacun des menus :
Item, Item (1), Item (2),... jusqu'à Item (15).
Sous chaque item j'ai 4 gameobject Image (blank, Image 1, Image 2, Image 3 (le mot Image et à remplacer par arme, soin, armure ou construc) et un GameObject Text.
Ce GameObject Text contient le nombre d'unité de chacun des Items, et a le script donné au premier poste, ainsi qu'un Event Trigger pour activé ou désactivé la barre.
En dessous du Text, il y a une srollbar pour afficher le chargement pour prendre l'objet du menu.

Cela t'éclaire t il ?
J'ai créé un ensemble de jeux :

Un HUB : https://bit.ly/2J6EZTO
Un jeu avec contrôle tactile à l'écran : https://bit.ly/2J3IkTw
Un jeu en VR : https://bit.ly/2h5jdzk
Un jeu en AR : https://bit.ly/2LgMvIo

Il s'agit de FPS pour Android.

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

Re: [DB-AL] freeze pause menu

Message par boubouk50 » 06 Fév 2018 17:10

Si chacun des menus utilisent le même script et que cela ne marche pas sur le 4e, alors il y a fort à parier que le 4e soit mal configuré, donc pas un problème de script en soi (même si c'est le script qui pourrait planter à cause de cela).
Sinon, il manque la réponse à la plus importante des questions:
"Y a-t-il une erreur qui apparaît?"
"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

Avatar de l’utilisateur
Paullux
Messages : 68
Inscription : 12 Nov 2015 17:11
Contact :

Re: [DB-AL] freeze pause menu

Message par Paullux » 06 Fév 2018 17:15

Non il y a 4 scripts différents mais basés sur la même base. Mais je ne vois pas d'erreur et en mode test dans Unity il n'y a pas le moindre soucis.

Est-ce que l'utilisation de PlayersPrefs uniquement dans l'Awake() et dans ChangeWeapon() pourrait résoudre le problème ?
Dernière édition par Paullux le 06 Fév 2018 17:21, édité 1 fois.
J'ai créé un ensemble de jeux :

Un HUB : https://bit.ly/2J6EZTO
Un jeu avec contrôle tactile à l'écran : https://bit.ly/2J3IkTw
Un jeu en VR : https://bit.ly/2h5jdzk
Un jeu en AR : https://bit.ly/2LgMvIo

Il s'agit de FPS pour Android.

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

Re: [DB-AL] freeze pause menu

Message par boubouk50 » 06 Fév 2018 17:20

S'il n'y a pas d'erreurs (on parle bien des erreurs écrites en rouge en console), alors le script ne plante pas. Il ne possède pas de boucle infinie donc il ne freeze pas. Concernant les PlayersPrefs, c'est lent, il vaut mieux éviter. Et puis, tu n'as pas besoin d'écrire le même texte à chaque frame, c'est inutile.
N'as-tu pas autre chose que ce menu lance?
"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

Avatar de l’utilisateur
Paullux
Messages : 68
Inscription : 12 Nov 2015 17:11
Contact :

Re: [DB-AL] freeze pause menu

Message par Paullux » 06 Fév 2018 17:24

non, mais ces scripts quasi identiques sont lancer 64 fois en même temps.

1 par case du menu.
J'ai créé un ensemble de jeux :

Un HUB : https://bit.ly/2J6EZTO
Un jeu avec contrôle tactile à l'écran : https://bit.ly/2J3IkTw
Un jeu en VR : https://bit.ly/2h5jdzk
Un jeu en AR : https://bit.ly/2LgMvIo

Il s'agit de FPS pour Android.

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

Re: [DB-AL] freeze pause menu

Message par boubouk50 » 06 Fév 2018 18:05

Ça fait pas mal de calculs inutiles... Quand bien même cela ne devrait pas pour autant freezer l'appli juste pour un seul menu.
"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

Avatar de l’utilisateur
Paullux
Messages : 68
Inscription : 12 Nov 2015 17:11
Contact :

Re: [DB-AL] freeze pause menu

Message par Paullux » 06 Fév 2018 23:54

Je ne comprends pas pourquoi, je désactive les textes avec le script sur le 4ème menu et ça marche comme je veux.
J'enlève les textes d'un autre menu en laissant ce du 4eme et ça ne pas.

J'ai réécrit les scripts en les simplifiant, sans texte changer ou utiliser les PlayerPrefs dans les updates, les scripts qui sont entrain de tourner c'est celui qui gère l'affiche du menu pour détecter l'appui du bouton menu et celui pour prendre des captures d'écran.

J'ai aussi essayé de n'active qu'un des texte du 4eme menu sans plus de succès.
J'ai créé un ensemble de jeux :

Un HUB : https://bit.ly/2J6EZTO
Un jeu avec contrôle tactile à l'écran : https://bit.ly/2J3IkTw
Un jeu en VR : https://bit.ly/2h5jdzk
Un jeu en AR : https://bit.ly/2LgMvIo

Il s'agit de FPS pour Android.

Avatar de l’utilisateur
Paullux
Messages : 68
Inscription : 12 Nov 2015 17:11
Contact :

Re: [DB-AL] freeze pause menu

Message par Paullux » 07 Fév 2018 08:30

Bonjour,

Voici le prefab de mon menu avec ses dépendances. Pourrais-tu me dire ce qui bloque le jeu dedans ?
J'ai créé un ensemble de jeux :

Un HUB : https://bit.ly/2J6EZTO
Un jeu avec contrôle tactile à l'écran : https://bit.ly/2J3IkTw
Un jeu en VR : https://bit.ly/2h5jdzk
Un jeu en AR : https://bit.ly/2LgMvIo

Il s'agit de FPS pour Android.

Répondre

Revenir vers « Développement plateformes mobile Iphone et Android »