- Home /
WaitForSeconds load level delay not working
Hi, I've been trying to get a delay of a few seconds before the bonus level of my game loads, once the character has collected all five 'cans. I've tested all aspects of the code (left most of this in the comments) but I can't get the WaitForSeconds to do anything...I'm obviously doing something wrong, and would appreciate any help :)
TIA
using UnityEngine; using System.Collections;
public class JerryCan : MonoBehaviour {
//creating a floating-point public variable with a value of 100
public float rotationSpeed = 100.0f;
public GUIText textHints;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
//rotates the object
transform.Rotate (new Vector3 (0, rotationSpeed * Time.deltaTime, 0));
}
//OnTriggerEnter collision function
void OnTriggerEnter(Collider col){
//if the object tagged 'Player' collides with the Can, then send a message to the CanPickup function and destroy the Can.
if (Inventory.charge < 2) {
col.gameObject.SendMessage ("CanPickup");
textHints.SendMessage("ShowHint", "Can collected!");
Debug.Log("Inventory = " + Inventory.charge);
//Debug.Log("Inventory = " + GameObject.FindGameObjectsWithTag("can").Length);
Destroy(gameObject);
}
if (Inventory.charge == 2){ //(GameObject.FindGameObjectsWithTag("can").Length == 1){
col.gameObject.SendMessage ("CanPickup");
textHints.SendMessage("ShowHint", "You've found all the cans! Yeay!");
Debug.Log("should be waiting now");
//Application.LoadLevel("menu");
StartCoroutine("LoadAfterDelay");
}
}
IEnumerator LoadAfterDelay() {
Debug.Log("did we wait?");
yield return new WaitForSeconds(2);
Debug.Log("waited!");
//textHints.SendMessage("ShowHint", "Waited 4 seconds");
//Application.LoadLevel("menu");
//Destroy (gameObject);
}
}
Answer by nightbane30 · Mar 23, 2015 at 12:23 AM
Try putting this on line 38 instead
yield return new WaitForSeconds(2f);
I know it may seem simple, but putting that f after floating point numbers solves a lot of problems most of the time.
Your answer
Follow this Question
Related Questions
C# Load Level after seconds 2 Answers
How do i make a delay in milliseconds? 3 Answers
Delay when loading new level :( 1 Answer
Script load level after few seconds, doesn't work. 2 Answers
How to add a small delay to script? 0 Answers