Newer
Older
Dreamsturbia-Project-IADE-Unity3D / Assets / Scripts / Puzzles / Gate.cs
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. public class Gate : MonoBehaviour
  5. {
  6. [SerializeField]
  7. private GameObject gate;
  8. private Vector3 openPos;
  9. private Vector3 originPos;
  10. private ConditionCkecker cc;
  11. private float timer = 1;
  12. int a = 0;
  13. public bool isOpening = false;
  14. private bool ready;
  15. private bool andConditions;
  16. // Start is called before the first frame update
  17. void Start()
  18. {
  19. openPos = new Vector3(gate.transform.position.x,gate.transform.position.y + 5, gate.transform.position.z);
  20. originPos = gate.transform.position;
  21. cc = GetComponent<ConditionCkecker>();
  22. }
  23. private void Update()
  24. {
  25. if (timer > 0) timer -= Time.deltaTime;
  26. else { ready = cc.CheckConditions(); andConditions = cc.AND(); timer = 1; }
  27. if (!andConditions) isOpening = false;
  28. if (ready)
  29. {
  30. //if (gate.transform.position == openPos) isOpening = false;
  31. if (gate.transform.position == originPos) { isOpening = true; }
  32. }
  33. if (isOpening)
  34. {
  35. gate.transform.position = Vector3.MoveTowards(gate.transform.position, openPos, Time.deltaTime);
  36. }
  37. else gate.transform.position = Vector3.MoveTowards(gate.transform.position, originPos, Time.deltaTime);
  38. }
  39. }