Newer
Older
Dreamsturbia-Project-IADE-Unity3D / Assets / Scripts / ElevatorScript.cs
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. public class ElevatorScript : MonoBehaviour
  5. {
  6. [SerializeField]
  7. private float height;
  8. [SerializeField]
  9. private float moveForce;
  10. private float timer = 1;
  11. [SerializeField]
  12. private bool isMoving = false;
  13. private bool ready = false;
  14. private ConditionCkecker cc;
  15. private Rigidbody rb;
  16. public Vector3 currentPos;
  17. public Vector3 startPos;
  18. public int whereAmI;
  19. void Start()
  20. {
  21. cc = GetComponent<ConditionCkecker>();
  22. rb = GetComponent<Rigidbody>();
  23. currentPos = transform.position;
  24. startPos = transform.position;
  25. }
  26. // Update is called once per frame
  27. void Update()
  28. {
  29. if (timer > 0) timer -= Time.deltaTime;
  30. else { ready = cc.CheckConditions(); timer = 0.5f; }
  31. if (ready) isMoving = true;
  32. if(Vector3.Distance(transform.position, currentPos) >= height)
  33. {
  34. rb.velocity = Vector3.zero;
  35. isMoving = false;
  36. currentPos = transform.position;
  37. whereAmI = -whereAmI;
  38. }
  39. }
  40. private void FixedUpdate()
  41. {
  42. if (isMoving) transform.position = Vector3.MoveTowards(transform.position, new Vector3(transform.position.x, transform.position.y + (height * whereAmI), transform.position.z), Time.deltaTime * 2);
  43. }
  44. private void OnCollisionStay(Collision collision)
  45. {
  46. }
  47. }