Ich habe ein Objekt in meinem Spiel, das wie ein Power-Objekt ist: Wenn mein Spieler die Macht eingibt sollte es ein Panel aktivieren, das anzeigt, dass die Macht ergriffen wurde, und nach 3 Sekunden Panel sollte verschwinden. Im Moment erscheint mein Panel, wenn ich das Gerät einschalte, aber es verschwindet nicht. Ich verwende einen Coroutine wie folgt aus:Coroutine führt nicht setActive (false)
using UnityEngine;
using System.Collections;
public class shrink : MonoBehaviour {
public float value = 0.1f; //1 by default in inspector
private bool colided = false;
private float speed;
Manager gameManager;
public GameObject panel;
// Update is called once per frame
void Start(){
speed = 3.4f;
gameManager = GameObject.Find ("GameController").GetComponent<Manager>();
}
void OnTriggerEnter(Collider c)
{
if (c.gameObject.tag == "Player") {
colided = true;
gameManager.powerUp1 = true;
StartCoroutine(menuOp());
}
}
//This method is executed every frame
void Update(){
if (colided) {
Vector3 temp = transform.localScale;
//We change the values for this saved variable (not actual transform scale)
temp.x -= value * Time.time;
temp.y -= value * Time.time;
if (temp.x > 0) {
speed += 0.02f;
transform.Rotate (0f, 0f, Time.deltaTime * 90 * speed);
transform.localScale = temp;
} else {
Object.Destroy (this.gameObject);
}
}
}
IEnumerator menuOp(){
panel.SetActive (true);
yield return new WaitForSeconds (3f);
panel.SetActive (false);
}
}
Ps: was im Inneren des Update ist unabhängig von dem, was ich tun muss, so dass ich denke, es ist nicht meine Bedürfnisse nicht interferieren.
"curoutine" meinst du "Koroutine"? – Richard
Bitte lassen Sie uns wissen, ob unsere Antworten richtig waren/waren und ob Sie etwas für weitere Hilfe benötigen. – Maakep