private void Handle(PlayerEntity player, IUserCmd cmd) { if (!player.hasCameraStateNew) { return; } if (!player.hasCameraStateOutputNew) { return; } DummyCameraMotorState.Convert(player.cameraStateNew, _state); var archotRotation = player.cameraArchor.ArchorEulerAngle; if (player.cameraStateNew.CameraMotorInput == null) { player.cameraStateNew.CameraMotorInput = new DummyCameraMotorInput(); } DummyCameraMotorInput _input = (DummyCameraMotorInput)player.cameraStateNew.CameraMotorInput; _input.Generate(_contexts, player, cmd, archotRotation.y, archotRotation.x, _state); for (int i = 0; i < (int)SubCameraMotorType.End; i++) { var type = (SubCameraMotorType)i; PreProcessInput(player, _input, _motors.GetDict(type), _state.Get(type), _state); } DummyCameraMotorState.Convert(_state, player.cameraStateNew); }
private void UpdateCamera(IUserCmdOwner owner, IUserCmd cmd) { PlayerEntity player = owner.OwnerEntity as PlayerEntity; if (!player.hasCameraStateNew) { return; } if (!player.hasCameraStateOutputNew) { return; } // var finalOutput = player.cameraStateOutputNew; DummyCameraMotorState.Convert(player.cameraStateNew, _state); var archotRotation = player.cameraArchor.ArchorEulerAngle; if (player.cameraStateNew.CameraMotorInput == null) { player.cameraStateNew.CameraMotorInput = new DummyCameraMotorInput(); } DummyCameraMotorInput _input = (DummyCameraMotorInput)player.cameraStateNew.CameraMotorInput; _input.Generate(player, cmd, archotRotation.y, archotRotation.x); foreach (SubCameraMotorType i in _subCameraMotorTypeArray) { var type = i; PreProcessInput(player, _input, _motors.GetDict(type), _state.Get(type), _state); } DummyCameraMotorState.Convert(_state, player.cameraStateNew); }
private void Handle(PlayerEntity player, IUserCmd cmd) { if (!player.hasCameraStateNew) { return; } if (!player.hasCameraStateOutputNew) { return; } if (player.cameraStateNew.CameraMotorInput == null) { player.cameraStateNew.CameraMotorInput = new DummyCameraMotorInput(); } DummyCameraMotorState.Convert(player.cameraStateNew, _state); DummyCameraMotorInput _input = (DummyCameraMotorInput)player.cameraStateNew.CameraMotorInput; _input.Generate(player, cmd, _state, LockView); for (int i = 0; i < (int)SubCameraMotorType.End; i++) { var type = (SubCameraMotorType)i; PreProcessInput(player, _input, _motors.GetDict(type), _state.Get(type), _state); } DummyCameraMotorState.Convert(_state, player.cameraStateNew); }
protected override void InternalExecute() { var player = _playerContext.flagSelfEntity; if (player == null) { return; } if (!player.hasFirstPersonModel) { return; } if (!player.hasThirdPersonModel) { return; } if (!player.hasUserCmd) { return; } if (player.userCmd.UserCmdStepList.Count == 0) { return; } if (!player.hasCameraStateNew) { return; } if (!player.hasCameraStateOutputNew) { return; } var cmd = (UserCmd)player.userCmd.UserCmdStepList.Last(); DummyCameraMotorState.Convert(player.cameraStateNew, _state); var archotRotation = player.cameraArchor.ArchorEulerAngle; _input.Generate(player, cmd, archotRotation.y, archotRotation.x); foreach (int i in _subCameraMotorTypeArray) { var type = (SubCameraMotorType)i; PreProcessInput(player, _input, _motors.GetDict(type), _state.Get(type), _state); } DummyCameraMotorState.Convert(_state, player.cameraStateNew); }
private void UpdateCamera(IUserCmdOwner owner, IUserCmd cmd) { PlayerEntity player = owner.OwnerEntity as PlayerEntity; if (!player.hasCameraStateNew) { return; } if (!player.hasCameraStateOutputNew) { return; } //观战玩家时,摄像机方向由被观战玩家决定 if (player.gamePlay.IsObserving()) { int objId = player.gamePlay.CameraEntityId; var entity = _contexts.player.GetEntityWithEntityKey(new EntityKey(objId, (short)EEntityType.Player)); if (entity != null) { return; } } DummyCameraMotorState.Convert(player.cameraStateNew, _state); var archotRotation = player.cameraArchor.ArchorEulerAngle; if (player.cameraStateNew.CameraMotorInput == null) { player.cameraStateNew.CameraMotorInput = new DummyCameraMotorInput(); } DummyCameraMotorInput _input = (DummyCameraMotorInput)player.cameraStateNew.CameraMotorInput; _input.Generate(_contexts, player, cmd, archotRotation.y, archotRotation.x); for (int i = 0; i < (int)SubCameraMotorType.End; i++) { var type = (SubCameraMotorType)i; PreProcessInput(player, _input, _motors.GetDict(type), _state.Get(type), _state); } DummyCameraMotorState.Convert(_state, player.cameraStateNew); }