public void SwitchCamera() { MySession.Static.CameraController.IsInFirstPersonView = !MySession.Static.CameraController.IsInFirstPersonView; if (MySession.GetCameraControllerEnum() == MyCameraControllerEnum.ThirdPersonSpectator) { MyEntityCameraSettings settings = null; if (MySession.Static.Cameras.TryGetCameraSettings(MySession.LocalHumanPlayer.Id, MySession.ControlledEntity.Entity.EntityId, out settings)) { MyThirdPersonSpectator.Static.ResetDistance(settings.Distance); } else { MyThirdPersonSpectator.Static.RecalibrateCameraPosition(); } } MySession.SaveControlledEntityCameraSettings(MySession.Static.CameraController.IsInFirstPersonView); }
public Multiplayer.MyEntityCameraSettings GetCameraEntitySettings() { ulong playerId = 0; if (ControllerInfo.Controller != null && ControllerInfo.Controller.Player != null) { playerId = ControllerInfo.Controller.Player.Id.SteamId; if (!MySession.Static.Cameras.TryGetCameraSettings(ControllerInfo.Controller.Player.Id, EntityId, out m_cameraSettings)) { if (ControllerInfo.IsLocallyHumanControlled()) { m_cameraSettings = new MyEntityCameraSettings() { Distance = 0, IsFirstPerson = true, HeadAngle = new Vector2(HeadLocalXAngle, HeadLocalYAngle) }; } } } return(m_cameraSettings); }