- Aide Jeu unity problème c# code programmation
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Jeu zuma - Télécharger - Jeux vidéo
- Code activation windows 10 - Guide
3 réponses
le script
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Counter : MonoBehaviour
{
public Text counterText;
public List<GameObject> prefabList; // Liste des objets associés aux valeurs du compteur
public GameObject lightObject;
private int count = 0;
private int lastActivatedIndex = -1; // Index du dernier prefab activé
private void Start()
{
counterText.text = "Count : " + count;
lightObject.SetActive(false);
}
private void Update()
{
if (Input.GetKeyUp(KeyCode.Space))
{
IncreaseCount();
}
}
private void OnTriggerEnter(Collider other)
{
IncreaseCount();
lightObject.SetActive(true);
StartCoroutine(ExampleCoroutine());
}
private void IncreaseCount()
{
count += 5;
counterText.text = "Count : " + count;
if (lastActivatedIndex >= 0 && lastActivatedIndex < prefabList.Count)
{
// Désactiver le prefab précédemment activé
prefabList[lastActivatedIndex].SetActive(false);
}
if (count == 15)
{
DisablePrefab(0);
EnablePrefab(1);
count = 15;
}
else if (count == 30)
{
DisablePrefab(1);
EnablePrefab(2);
count = 30;
}
else if (count == 50)
{
DisablePrefab(2);
EnablePrefab(3);
count = 50;
}
else if (count == 70)
{
DisablePrefab(3);
EnablePrefab(4);
count = 70;
}
else if (count == 85)
{
DisablePrefab(4);
EnablePrefab(5);
count = 85;
}
}
private void EnablePrefab(int index)
{
if (index >= 0 && index < prefabList.Count)
{
// Activer le prefab correspondant à l'index
prefabList[index].SetActive(true);
count = index * 15;
}
}
private void DisablePrefab(int index)
{
if (index >= 0 && index < prefabList.Count)
{
// Désactiver le prefab correspondant à l'index
prefabList[index].SetActive(false);
}
}
private IEnumerator ExampleCoroutine()
{
yield return new WaitForSeconds(5);
lightObject.SetActive(false);
}
}
14 juil. 2023 à 08:43
Bonjour
pour tes prochains posts, merci de choisir csharp pour la coloration syntaxique comme décrit là https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code
La réponse à ta question se trouve là
private void EnablePrefab(int index) { if (index >= 0 && index < prefabList.Count) { // Activer le prefab correspondant à l'index prefabList[index].SetActive(true); count = index * 15; // il ne faut pas recalculer count ici } }
(T.as vu c'est quand même plus agréable à lire que le pavé geris que tu as posté)
Ce que tu aurais pu trouver par toi même, en executant le code pas à pas et en espionnant le contenu de count.
Sais tu utiliser les outils de déboggage, quand on code surtout au début c'est plus important que de connaître les mots clés par cœur ?
D'autre part, dans ce bloc, il y a du code inutile
if (count == 15) { DisablePrefab(0); EnablePrefab(1); count = 15; //cette ligne ne sert à rien count vaut déjà 15 } else if (count == 30) { DisablePrefab(1); EnablePrefab(2); count = 30; //cette ligne ne sert à rien count vaut déjà 30 } else if (count == 50) { DisablePrefab(2); EnablePrefab(3); count = 50; //cette ligne ne sert à rien count vaut déjà 50 } else if (count == 70) { DisablePrefab(3); EnablePrefab(4); count = 70; //cette ligne ne sert à rien count vaut déjà 70 } else if (count == 85) { DisablePrefab(4); EnablePrefab(5); count = 85; //cette ligne ne sert à rien count vaut déjà 85 }
Bonjour, j'ai modifié les modifications que tu ma donner et cela na rien a changer. Pour répondre à ta question l'intérêt d'avoir plusieurs boîtes est que plus que le count augment apartir du score 15 ou 30, 50, 70 et 85 plus que le score, count augmente les autres boite vont s'activer et les autres boite sont de moins en moins grands et éclairante pour augmenter la difficulté.