/// <summary> /// 检查玩家执行运动 /// </summary> /// <param name="moveSpeedValue"></param> private void DoMove(float moveSpeedValue) { if (PositionTool.isInBoxArea(tranCube, colliderRoomArea)) { bool fromRemote = (followCom.distance > FollowPlayer.DISTANCE_MIN) && (followCom.height > FollowPlayer.HEIGHT_MIN); if (fromRemote) { Logger.Log("此时玩家的位置=" + tranCube.position + "进入到了box区域 从天上掉下来,从背后进门?" + (PositionTool.isInBoxArea(tranCube, boxcollider_back_area))); if (PositionTool.isInBoxArea(tranCube, boxcollider_back_area)) { tranCube.position = new Vector3(-39.6f, 7.7f, -24f); tranCube.eulerAngles = new Vector3(0, 95, 0); } else { tranCube.position = new Vector3(37.7f, 7.7f, -9.5f); tranCube.eulerAngles = new Vector3(0, -90, 0); } } if (followCom.distance > FollowPlayer.DISTANCE_MIN) { followCom.distance = FollowPlayer.DISTANCE_MIN; } if (followCom.height > FollowPlayer.HEIGHT_MIN) { followCom.height = FollowPlayer.HEIGHT_MIN; } } //向前或后位移 switch (_cmdMove) { case MoveCmdType.MoveForward: { //Logger.Log("执行运动"); //cubeRigibody.AddForce(Vector3.forward*10000, ForceMode.Acceleration); tranCube.Translate(0, 0, moveSpeedValue * Time.deltaTime * moveSpeedAddBase); } break; case MoveCmdType.MoveBack: { tranCube.Translate(0, 0, -moveSpeedValue * Time.deltaTime * moveSpeedAddBase); } break; default: return; } //tranCube.Translate(nextMove);// 0, 0, moveSpeedValue * Time.deltaTime * moveSpeedAddBase); moveSpeedAddBase *= 1.01f; moveSpeedAddBase = Mathf.Min(moveSpeedAddBase, 1.8f); }