J'ai suivit un tutoriel sur YouTube pour implémenter un code du style Konami Code dans un jeu. Le problème est que quand je démarre le jeu (via Unity) sans le script sur aucun Gameobject, tout se passe bien, mais quand je le met sur un Gameobject, alors Unity freeze.
Je ne comprend pas pourquoi cela arrive (c'est la première fois et en relisant le script, tout me semble bon et je n'ai aucune erreur de signalé dans la console.
Voici le script en question:
Code : Tout sélectionner
using System.Collections;
using UnityEngine;
public class KonamiCodeMainMenu : MonoBehaviour {
private const float WaitTime = 1f;
private KeyCode[] keys = new KeyCode[] {
KeyCode.UpArrow,
KeyCode.UpArrow,
KeyCode.DownArrow,
KeyCode.DownArrow,
KeyCode.LeftArrow,
KeyCode.RightArrow,
KeyCode.LeftArrow,
KeyCode.RightArrow,
KeyCode.B,
KeyCode.A,
KeyCode.Return
};
public bool succes;
IEnumerator Start () {
float timer = 0f;
int index = 0;
while (true)
{
if (Input.GetKeyDown(keys[index]))
{
index++;
print (index);
if (index == keys.Length)
{
succes = true;
timer = 0f;
}
else
{
timer = WaitTime;
}
}
timer -= Time.deltaTime;
if (timer<0)
{
print ("resetting time");
timer = 0;
index = 0;
}
}
}
}
Code : Tout sélectionner
using UnityEngine;
using UnityEngine.UI;
[RequireComponent(typeof(KonamiCodeMainMenu))]
public class Debloquer : MonoBehaviour {
private KonamiCodeMainMenu code;
public Text succesText;
void Awake()
{
code = GetComponent<KonamiCodeMainMenu> ();
}
void Update()
{
if (code.succes)
{
succesText.gameObject.SetActive (true);
}
}
}