Trying to get doors to close after x time since the player has passed through the previous?
I'm making a game where the player has to get through a door before it closes, the door after that before it closes, and so on. But I want each door's timer to reset after the player passes through the previous door. I can't reset the timers properly, help? The script that detects if the player has passed is 'DoorPassed', and the script that closes the door is 'CloseDoor'.
DoorPassed: using System.Collections; using System.Collections.Generic; using UnityEngine;
public class LevelPass : MonoBehaviour { private bool passedLevel = false; public float realTimer; public int points = 0; //ignore this
void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Player"))
{
if (passedLevel == false)
{
levelPassed();
}
}
}
void levelPassed()
{
points = 5; //ignore this
Debug.Log("Points Got!");//ignore this
FindObjectOfType<Score>().AddScore(points);//ignore this
passedLevel = true; //ignore this
realTimer = 0;
}
void Update()
{
realTimer += Time.deltaTime;
}
}
CloseDoor: using UnityEngine; using System.Collections; public class DoorClose : MonoBehaviour { public Transform target; public float delay; public LevelPass realTimer; public float timer; public float speed = 5f;
// Update is called once per frame
void Update()
{
timer = GetComponent<realTimer>();
if (timer > delay)
{
transform.position = Vector3.MoveTowards(transform.position, target.position, speed);
}
}
}
Your answer
Follow this Question
Related Questions
Why is the private int variable in this c# program not updating? 1 Answer
How do I shorten a gameObject.GetComponent 1 Answer
C# float variable isnt behaving like its value 1 Answer
How can I define my own datatype?: `private EnemyCounter enemyCounter` 0 Answers
Timer reset on object pickup script? 1 Answer