Ejemplo n.º 1
0
 public void CallFrom(ElevatorFloor floor)
 {
     floor.called = true;
     if (!this.isReady)
     {
         this.state = this.transform.localPosition;
     }
     this.TryMove();
 }
Ejemplo n.º 2
0
    public void Elevate(int floorIndex)
    {
        currentFloor = floors[floorIndex];

        LeanTween.cancel(movingFloor.gameObject);

        Vector3 targetPosition = new Vector3(movingFloor.transform.position.x, currentFloor.transform.position.y, movingFloor.transform.position.z);

        LeanTween.move(movingFloor.gameObject, targetPosition, 20f);
    }
Ejemplo n.º 3
0
    public void Elevate(int floorIndex)
    {
        currentFloor = floors[floorIndex];

        LeanTween.cancel(movingFloor.gameObject);

        Vector3 targetPosition = new Vector3(movingFloor.transform.position.x, currentFloor.transform.position.y, movingFloor.transform.position.z);

        LeanTween.move(movingFloor.gameObject, targetPosition, 20f);
    }
Ejemplo n.º 4
0
 /// <summary>
 /// 設定欲將前往的樓層
 /// </summary>
 /// <param name="floor">樓層</param>
 public void SetFloor(ElevatorFloor floor)
 {
     if (floor == ElevatorFloor.two)
     {
         elevatorFloor = ElevatorFloor.two;
         WorkSpeed     = Mathf.Abs(WorkSpeed);
     }
     else
     {
         elevatorFloor = ElevatorFloor.one;
         WorkSpeed     = -Mathf.Abs(WorkSpeed);
     }
     ElevatorRunning = true;
 }
Ejemplo n.º 5
0
    private void TryMove()
    {
        ElevatorFloor nextFloor = this.GetNextFloor();

        if (nextFloor != null)
        {
            this.moveTo       = nextFloor.transform.localPosition;
            this.actualSpeed  = this.speed / Vector3.Distance(this.state, this.moveTo);
            this.currentFloor = nextFloor;
            this.called       = true;
        }
        else
        {
            this.called = false;
        }
    }
Ejemplo n.º 6
0
    private ElevatorFloor GetNextFloor()
    {
        int           lastIndex = Array.IndexOf(this.elevatorFloors, this.currentFloor);
        ElevatorFloor nextFloor = null;
        Action        sort      = delegate()
        {
            for (int i = 0; i < this.elevatorFloors.Length; i++)
            {
                foreach (ElevatorFloor floor in this.elevatorFloors)
                {
                    if (floor.called)
                    {
                        if (this.positiveDirection)
                        {
                            if (i > lastIndex)
                            {
                                nextFloor = floor;
                                return;
                            }
                        }
                        else
                        if (i < lastIndex)
                        {
                            nextFloor = floor;
                        }
                    }
                }
            }
        };

        sort.Invoke();
        if (nextFloor == null)
        {
            this.positiveDirection = !this.positiveDirection;
            sort.Invoke();
        }
        return(nextFloor);
    }
Ejemplo n.º 7
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            ElevatorFloor floor = (ElevatorFloor)this.DataContext;

            ElevatorEngine.Instance.RequestElevator(floor.FloorNumber);
        }
Ejemplo n.º 8
0
    protected override void Start()
    {
        base.Start();

        currentFloor = floors[0];
    }
Ejemplo n.º 9
0
    protected override void Start()
    {
        base.Start();

        currentFloor = floors[0];
    }