public void CallFrom(ElevatorFloor floor) { floor.called = true; if (!this.isReady) { this.state = this.transform.localPosition; } this.TryMove(); }
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); }
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); }
/// <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; }
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; } }
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); }
private void Button_Click(object sender, RoutedEventArgs e) { ElevatorFloor floor = (ElevatorFloor)this.DataContext; ElevatorEngine.Instance.RequestElevator(floor.FloorNumber); }
protected override void Start() { base.Start(); currentFloor = floors[0]; }
protected override void Start() { base.Start(); currentFloor = floors[0]; }