- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.Events;
- public class TimeFlush : MonoBehaviour
- {
- [SerializeField]
- private List<ElevatorScript> elevators;
- [SerializeField]
- private List<Gate> gates;
- [SerializeField]
- private List<GameObject> objects;
- [SerializeField]
- private float range;
- private List<PositionRotation> pos;
- private GameObject player;
- public UnityEvent onPressed;
- private void Start()
- {
- player = GameObject.FindGameObjectWithTag("Player");
- pos = new List<PositionRotation>();
- foreach(GameObject o in objects)
- {
- Debug.Log(o);
- pos.Add(new PositionRotation(o.transform.position, o.transform.eulerAngles));
- }
- }
- void Update()
- {
- if (Input.GetKeyDown(KeyCode.F) && Vector3.Distance(transform.position, player.transform.position) < range)
- {
- TimeFlushAction();
- }
- }
- public void TimeFlushAction()
- {
- foreach(ElevatorScript l in elevators)
- {
- l.transform.position = l.startPos;
- l.currentPos = l.startPos;
- l.whereAmI = 1;
- }
- foreach(Gate g in gates)
- {
- g.isOpening = false;
- }
-
- for(int i = 0; i < pos.Count; i++)
- {
- objects[i].transform.position = pos[i].position;
- objects[i].transform.eulerAngles = pos[i].rotation;
- }
- onPressed.Invoke();
- }
- }