Prefab apparait mais est invisible
Prefab apparait mais est invisible
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 (33.94 Kio) Consulté 2752 fois
Re: Prefab apparait mais est invisible
Bonjour,
tu as un screen de l'inspector de tes plateformes éventuellement ?
tu as un screen de l'inspector de tes plateformes éventuellement ?
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
Re: Prefab apparait mais est invisible
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 (20.76 Kio) Consulté 2745 fois
Re: Prefab apparait mais est invisible
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
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).
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
Re: Prefab apparait mais est invisible
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 (25.6 Kio) Consulté 2691 fois
Re: Prefab apparait mais est invisible
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?
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
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.