DeltaVR/Assets/_PROJECT/Components/Elevator/Scripts/Elevator Status Plate.cs

73 lines
1.5 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public enum ElevatorMoveState
{
NotMoving,
Ascending,
Decending
}
public class ElevatorStatusPlate : MonoBehaviour
{
[System.Serializable]
public struct FloorNumbers
{
public int floorNumber;
public GameObject floorNumberSprite;
}
public List<FloorNumbers> floorNumbers;
public GameObject upArrow;
public GameObject downArrow;
private ElevatorMoveState moveState;
// Start is called before the first frame update
void Start()
{
SetMoveState(ElevatorMoveState.NotMoving);
}
public void SetMoveState(ElevatorMoveState newState)
{
if (newState == ElevatorMoveState.NotMoving)
{
upArrow.SetActive(false);
downArrow.SetActive(false);
}
else if (newState == ElevatorMoveState.Ascending)
{
upArrow.SetActive(true);
downArrow.SetActive(false);
}
else
{
upArrow.SetActive(false);
downArrow.SetActive(true);
}
this.moveState = newState;
}
public void UpdateDisplayFloorNumber(int newValue)
{
foreach (var f in floorNumbers)
{
if (f.floorNumber != newValue)
f.floorNumberSprite.SetActive(false);
else
f.floorNumberSprite.SetActive(true);
}
}
// Update is called once per frame
void Update()
{
}
}