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();
            }
        }
Beispiel #3
0
        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();
        }