// Update is called once per frame void Update() { if (isMoving) { if (movingTime + Time.deltaTime >= movingNeedTime) { anim.Play("Idle"); this.transform.position = endPosition; movingTime = 0.0f; isMoving = false; } else { anim.Play("Run"); this.transform.position += direction * movingSpeed * Time.deltaTime; movingTime += Time.deltaTime; } } // 举起物体 if (Input.GetKeyDown(KeyCode.O)) { if (isOperating) { // 如果正在进行动作 if (isLifting) { // 正在举着物体 if (mainWorldController.TryToDisposeFurniture(operatingFurnitureController, targetCoordinate)) { operatingFurnitureController = null; isOperating = false; isLifting = false; } } else { // 如果正在推 } } else { operatingFurnitureController = mainWorldController.CheckTileLiftablle(targetCoordinate); if (operatingFurnitureController != null) { operatingFurnitureController.transform.SetParent(this.gameObject.transform); operatingFurnitureController.transform.position = headAnchor.transform.position; operatingFurnitureController.DeregisterFurniture(); isOperating = true; isLifting = true; } } } // 准备推拉 if (Input.GetKeyDown(KeyCode.P)) { if (isOperating) { if (isPushingOrPull) { operatingFurnitureController = null; isOperating = false; isPushingOrPull = false; } } else { operatingFurnitureController = mainWorldController.CheckTilePushableOrPullable(targetCoordinate); if (operatingFurnitureController != null) { isOperating = true; isPushingOrPull = true; } } } if (!isMoving) { if (Input.GetKeyDown(KeyCode.W)) { CharacterMoveUpdate(0); } if (Input.GetKeyDown(KeyCode.S)) { CharacterMoveUpdate(2); } if (Input.GetKeyDown(KeyCode.A)) { CharacterMoveUpdate(3); } if (Input.GetKeyDown(KeyCode.D)) { CharacterMoveUpdate(1); } } }