In my script, I have spawned a tent in, and that is what allows me to sleep, when i hit p, im suppose to now move or do anything for however long in the Yield WaitForSeconds, but for some reason, it doesn’t take time away, i just stay frozen in my game and the boolean of sleep wont go off.
var player : GameObject;
var arms : GameObject;
var mainCamera : GameObject;
var sleep : boolean = false;
var rayLength = 10;
private var playerGui : PlayerGUI;
function Start()
{
playerGui = GetComponent(PlayerGUI);
}
function Update()
{
if(sleep == true)
{
Time.timeScale = 0;
player.GetComponent(FPSInputController).enabled = false;
player.GetComponent(CharacterMotor).enabled = false;
player.GetComponent(MouseLook).enabled = false;
mainCamera.GetComponent(MouseLook).enabled = false;
arms.GetComponent(PlayerControl).enabled = false;
}
if(sleep == false)
{
Time.timeScale = 1;
player.GetComponent(FPSInputController).enabled = true;
player.GetComponent(CharacterMotor).enabled = true;
player.GetComponent(MouseLook).enabled = true;
mainCamera.GetComponent(MouseLook).enabled = true;
arms.GetComponent(PlayerControl).enabled = true;
}
var hit : RaycastHit;
var fwd = transform.TransformDirection(Vector3.forward);
if(Physics.Raycast(transform.position,fwd,hit,rayLength))
{
if(hit.collider.gameObject.tag == "Tent")
{
if(Input.GetKeyDown("p"))
{
sleep = true;
Debug.Log("1");
StartCoroutine(sleepTime());
Debug.Log("3");
}
}
}
}
function sleepTime()
{
Debug.Log("2");
yield WaitForSeconds(1);
sleep = false;
Debug.Log("4");
}