Newer
Older
Dreamsturbia-Project-IADE-Unity3D / Assets / Scripts / TimeFlush.cs
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();
    }
}