Page 1 sur 1

Prefab apparait mais est invisible

Publié : 12 Juil 2021 19:54
par Arkciin
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.

Re: Prefab apparait mais est invisible

Publié : 12 Juil 2021 20:08
par Max
Bonjour,

tu as un screen de l'inspector de tes plateformes éventuellement ?

Re: Prefab apparait mais est invisible

Publié : 12 Juil 2021 21:05
par Arkciin
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.

Re: Prefab apparait mais est invisible

Publié : 12 Juil 2021 21:32
par Arkciin
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;
        
    }    
}

Re: Prefab apparait mais est invisible

Publié : 13 Juil 2021 10:23
par Max
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).

Re: Prefab apparait mais est invisible

Publié : 13 Juil 2021 11:41
par Arkciin
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.

Re: Prefab apparait mais est invisible

Publié : 18 Juil 2021 13:45
par DevAmat
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?

Re: Prefab apparait mais est invisible

Publié : 11 Août 2021 10:50
par Arkciin
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.