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(); } }