Added complete lift interaction. Might need some debugging later.
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
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()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user