Prefab apparait mais est invisible

Questions techniques liées à l’utilisation d'Unity (et n'entrant pas dans le cadre d'une des sections suivantes)
Arkciin
Messages : 8
Inscription : 12 Juil 2021 17:42

Prefab apparait mais est invisible

Message par Arkciin » 12 Juil 2021 19:54

Bonjour à tous, mon problème est lorsque je fais apparaitre un préfabriqué avec un instantiate elle se crée et est visible dans l'onglet Scene mais est invisible dans l'onglet Game. Cependant, le joueur peut quand même utiliser les plateformes mais ne sont pas visibles comme le montre l'image ci-dessous. Merci d'avance.
Pièces jointes
scene et game.PNG
scene et game.PNG (33.94 Kio) Consulté 2752 fois

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

Re: Prefab apparait mais est invisible

Message par Max » 12 Juil 2021 20:08

Bonjour,

tu as un screen de l'inspector de tes plateformes éventuellement ?
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

Arkciin
Messages : 8
Inscription : 12 Juil 2021 17:42

Re: Prefab apparait mais est invisible

Message par Arkciin » 12 Juil 2021 21:05

Merci de ton aide, alors là c'est la liste des prefab que je fait générer aléatoirement qui contiennent les plateformes où le joueur peut sauter. Globalement ces prefab son des "bout" de niveaux.
Pièces jointes
inspector bloc plateforme.PNG
inspector bloc plateforme.PNG (20.76 Kio) Consulté 2745 fois

Arkciin
Messages : 8
Inscription : 12 Juil 2021 17:42

Re: Prefab apparait mais est invisible

Message par Arkciin » 12 Juil 2021 21:32

Voici le script qui génère les "bout" de niveaux (j'ai suivi un tuto pour le faire + 2-3 ajout). Petit info en plus c'est toujours sur la 4eme prefab qu'il y a le beug. Merci

Code : Tout sélectionner

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

public class LevelGenerator : MonoBehaviour
{
    private const float Player_DISTANCE_SPAWN_LEVEL_PART = 500f;

    [SerializeField] private Transform levelPart_Start;
    [SerializeField] private List<Transform> levelPartList;
    [SerializeField] private List<Transform> levelPartLevel01;
    [SerializeField] private List<Transform> levelPartLevel02;
    
    
    
    public int nbPart = 1;
    
    
    
    public Vector3 lastEndPosition;

    public static LevelGenerator instance;
     
        private void Awake()
    {
        if(instance != null)
        {
            Debug.LogWarning("Il y a plus d'une instance de LevelGenerator dans la scene");
            return;
        }

        instance = this;
        
        lastEndPosition = levelPart_Start.Find("EndPosition").position;

        int startingSpawnLevelParts = 2;
        for (int i = 0; i < startingSpawnLevelParts; i++)
        {
            SpawnLevelPart();
        }
    }
    
    void Update()
    {
        if (nbPart == 3 || nbPart == 4)
        {
            levelPartList = levelPartLevel02;
        }
        else if (nbPart == 2)
        {
            levelPartList = levelPartLevel01;
        }
        
        
    }

    public void SpawnLevelPart()
    {
        
        Transform chosenLevelPart = levelPartList[Random.Range(0, levelPartList.Count)];
        Transform lastLevelPartTransform = SpawnLevelPart(chosenLevelPart, lastEndPosition);
        lastEndPosition = lastLevelPartTransform.Find("EndPosition").position;
        
        nbPart += 1;
    }

    public Transform SpawnLevelPart(Transform levelPart, Vector3 spawnPosition)
    {
        Transform levelPartTransform = Instantiate(levelPart, spawnPosition, Quaternion.identity);
        return levelPartTransform;
        
    }    
}

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

Re: Prefab apparait mais est invisible

Message par Max » 13 Juil 2021 10:23

Arkciin a écrit :
12 Juil 2021 21:32
Petit info en plus c'est toujours sur la 4eme prefab qu'il y a le beug. Merci
Peut-être regarder de plus près ce quatrième prefab, plus particulièrement la partie rendu. Car si j'ai bien compris, ils sont bien instanciés dans la scène, et réagissent au player (collision).
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

Arkciin
Messages : 8
Inscription : 12 Juil 2021 17:42

Re: Prefab apparait mais est invisible

Message par Arkciin » 13 Juil 2021 11:41

oui c'est ca mais le problème ne vient pas de la prefab car si je change l'ordre des "bout" de niveaux c'est toujours la 4eme qui beug.(ex: si je met la prefab level 1 a la place de la level 5 (visible dans le capture ci dessous) le problème est le même la prefab level 1 va apparaitre bien une première fois mais après elle sera invisible.
Pièces jointes
inspector bloc plateforme 2.PNG
inspector bloc plateforme 2.PNG (25.6 Kio) Consulté 2691 fois

Avatar de l’utilisateur
DevAmat
Messages : 435
Inscription : 23 Nov 2016 11:50

Re: Prefab apparait mais est invisible

Message par DevAmat » 18 Juil 2021 13:45

Salut,

Es tu certain que ton dernier prefab est instancié dans la scène?
Je vois un "startingSpawnLevelParts = 2" avant le parcours de la boucle "for". Donc sachant qu'un tableau commence à l'index 0, la fonction "SpawnLevelPart();" est appelée 3 fois pas plus. C'est normal?

Arkciin
Messages : 8
Inscription : 12 Juil 2021 17:42

Re: Prefab apparait mais est invisible

Message par Arkciin » 11 Août 2021 10:50

Désole pour ma réponse tardive (j était en vacance) mais oui c'est normal car après je rappelle la fonction SpawnLevelPart depuis un autre script.

Répondre

Revenir vers « Unity le logiciel »