public void DisableMouseLook() { if (PlayerCamera != null) { MouseController.FreeCursor(); } }
private void InitializeHeadCamera() { gameObject.layer = 2; // Ignore raycast var actor = this.FindInParents <Actor>(); var character = actor.GetOrAdd <CharacterController>(); character.center = new Vector3(0, actor.Height / 2, 0); character.height = actor.Height; PlayerMotor = actor.GetOrAdd <PlayerMotorBehavior>(); PlayerMotor.footstepTypes = new List <FootstepType> { new FootstepType { tagName = "Untagged", volume = 4, sounds = actor.FootstepSounds } }.ToArray(); if (CameraAttachLocation) { Camera.main.transform.transform.SetParent(CameraAttachLocation.transform, false); } PlayerCamera = actor.GetOrAdd <PlayerCameraBehavior>(); PlayerCamera.headTransform = Camera.main.transform; /*if (CameraBodypart.Length > 0) { * var bodypart = actor.GetComponentsInChildren<BodypartIdentifier>().FirstOrDefault(each => each.Name.ToLower() == CameraBodypart.ToLower()); * * if (bodypart != null) { * PlayerCamera.headTransform = bodypart.transform; * Camera.main.transform.transform.SetParent(bodypart.transform, false); * } * }*/ PlayerCamera.playerCamera = Camera.main; PlayerCamera.useHeadBob = false; PlayerCamera.mouseSmoothScale = 0; PlayerCamera.allowRotation = EnabledAtStart; if (EnabledAtStart) { MouseController.LockCursor(); } else { MouseController.FreeCursor(); } }
public void Toggle() { IsOpen = !IsOpen; if (IsOpen) { if (OpenSound != null) { OpenSound.Play(); } } else { if (CloseSound != null) { CloseSound.Play(); } } if (PauseWhileOpen) { Publish(new PauseStateChanged { IsPaused = IsOpen }); } if (UnlockCursorWhileOpen) { if (IsOpen) { MouseController.FreeCursor(); } else { MouseController.LockCursor(); } } UpdateState(); }