Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
  • Help Room /
avatar image
1
Question by CraftyMaelyss · Sep 11, 2016 at 08:38 AM · c#mouselookpause menu

How to disable the camera's movement when the game is paused?

Hi, I noticed how badly written this question was, so I'm rewriting it to be more clear.

With my game, when I pause, time freezes, however the camera still moves. What I am trying to do, is disable the camera's movement while the pause menu is visible, via disabling it's scripts whenever the Esc button is pressed.. To do this, I have tried to set it up like a boolean, but the problem is, I'm not sure if i'm using the correct coding terms for the If and Else statements in the script.

This is what my script currently looks like, which is in the PlayerScript:

 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 
 public class PlayerScript : MonoBehaviour
 {
     public float movementSpeed = 5f;
     public float jumpForce = 7;
     public float jumpSpeed = 7;
     public float ExtraGravity = 7;
     public bool grounded;
     public bool inAir;
     public Rigidbody rigidbody;
     private Vector3 input;
     public GameObject Player;
     public LookYScript cameraScript;
     public bool LookYScript;
     public bool LookXScript;
 
 
     // Use this for initialization
     void Start()
     {
         var rigidbody = GetComponent<Rigidbody>();
         var col = GetComponent<CapsuleCollider>();
         Player = GameObject.FindWithTag("Player");
     }
     void FixedUpdate()
     {
         if (Input.GetKeyDown("space"))
         {
 
             if (grounded)
             {
                 Debug.Log("Spacebar pressed");
                 rigidbody.AddForce(0, jumpForce, 0);
             }
 
             if(inAir)
             {
                 Vector3 vel = rigidbody.velocity;
                 vel.y -= ExtraGravity * Time.deltaTime;
                 rigidbody.velocity = vel;
             }
 
         }
     }
 
     // Update is called once per frame
     void Update()
     {
 
         if (Input.GetKey("w"))
         {
             transform.position += transform.TransformDirection(Vector3.forward) * Time.deltaTime * movementSpeed * 5.5f;
         }
         else if (Input.GetKey("s"))
         {
             transform.position -= transform.TransformDirection(Vector3.forward) * Time.deltaTime * movementSpeed * 4.5f;
         }
         else if (Input.GetKey("d"))
         {
             transform.position += transform.TransformDirection(Vector3.right) * Time.deltaTime * movementSpeed * 5.5f;
         }
         else if (Input.GetKey("a"))
         {
             transform.position -= transform.TransformDirection(Vector3.right) * Time.deltaTime * movementSpeed * 5.5f;
         }
 
 
         if (Input.GetKey(KeyCode.LeftShift))
         {
             transform.position += transform.TransformDirection(Vector3.forward) * Time.deltaTime * movementSpeed * 20.5f;
         }
 
         void camera()
         {
             if (Input.GetKey(KeyCode.Escape))
             {
                 LookYScript = true;
                 LookXScript = true;
             }
             else
             {
                 LookYScript = false;
                 LookXScript = false;
             }
         }
 
     }
 
     void OnCollisionStay(Collision collision)
     {
         if (collision.gameObject.CompareTag("Floor"))
         {
             grounded = true;
         }
     }
 
     void OnCollisionExit(Collision collision)
     {
         if (collision.gameObject.CompareTag("Floor"))
         {
             grounded = false;
         }
     }
 
 }


I got this idea, from reading one of the answers to this question: https://answers.unity.com/questions/276816/how-can-i-disable-camera-movement.html

I think it would work, but again, I'm not sure what sort of terms to use for the if and else statements. For example, the OnCollisionStay and OnCollisionExit terms for the Grounded Boolean, I learned from following a tutorial, but for the life of me I cannot find a list of these terms in the Unity manual.

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

2 Replies

· Add your reply
  • Sort: 
avatar image
0
Best Answer

Answer by CraftyMaelyss · Oct 22, 2016 at 08:19 AM

A huge thank you to my friend for showing me this, what you do is open your mouse script "MouseLook.cs" and edit it like this:

using System; using UnityEngine; using UnityStandardAssets.CrossPlatformInput;

namespace UnityStandardAssets.Characters.FirstPerson { [Serializable] public class MouseLook { public float XSensitivity = 2f; public float YSensitivity = 2f; public bool clampVerticalRotation = true; public float MinimumX = -90F; public float MaximumX = 90F; public bool smooth; public float smoothTime = 5f; public bool lockCursor = true;

     private Quaternion m_CharacterTargetRot;
     private Quaternion m_CameraTargetRot;
     private bool m_cursorIsLocked = true;

     public void Init(Transform character, Transform camera)
     {
         m_CharacterTargetRot = character.localRotation;
         m_CameraTargetRot = camera.localRotation;
     }


     public void LookRotation(Transform character, Transform camera)
     {
         float yRot = CrossPlatformInputManager.GetAxis("Mouse X") * XSensitivity;
         float xRot = CrossPlatformInputManager.GetAxis("Mouse Y") * YSensitivity;

         m_CharacterTargetRot *= Quaternion.Euler (0f, yRot, 0f);
         m_CameraTargetRot *= Quaternion.Euler (-xRot, 0f, 0f);

         if(clampVerticalRotation)
             m_CameraTargetRot = ClampRotationAroundXAxis (m_CameraTargetRot);
         if (Time.timeScale == 1) {
             SetCursorLock (true);
             if (smooth) {
                 character.localRotation = Quaternion.Slerp (character.localRotation, m_CharacterTargetRot,
                     smoothTime * Time.deltaTime);
                 camera.localRotation = Quaternion.Slerp (camera.localRotation, m_CameraTargetRot,
                     smoothTime * Time.deltaTime);
             } else {
                 character.localRotation = m_CharacterTargetRot;
                 camera.localRotation = m_CameraTargetRot;
             }
         } else {
             SetCursorLock (false);
         }

         UpdateCursorLock();
     }

     public void SetCursorLock(bool value)
     {
         lockCursor = value;
         if(!lockCursor)
         {//we force unlock the cursor if the user disable the cursor locking helper
             Cursor.lockState = CursorLockMode.None;
             Cursor.visible = true;
         }
     }

     public void UpdateCursorLock()
     {
         //if the user set "lockCursor" we check & properly lock the cursos
         if (lockCursor)
             InternalLockUpdate();
     }

     private void InternalLockUpdate()
     {
         if(Input.GetKeyUp(KeyCode.Escape))
         {
             m_cursorIsLocked = false;
         }
         else if(Input.GetMouseButtonUp(0))
         {
             m_cursorIsLocked = true;
         }

         if (m_cursorIsLocked)
         {
             Cursor.lockState = CursorLockMode.Locked;
             Cursor.visible = false;
         }
         else if (!m_cursorIsLocked)
         {
             Cursor.lockState = CursorLockMode.None;
             Cursor.visible = true;
         }
     }

     Quaternion ClampRotationAroundXAxis(Quaternion q)
     {
         q.x /= q.w;
         q.y /= q.w;
         q.z /= q.w;
         q.w = 1.0f;

         float angleX = 2.0f * Mathf.Rad2Deg * Mathf.Atan (q.x);

         angleX = Mathf.Clamp (angleX, MinimumX, MaximumX);

         q.x = Mathf.Tan (0.5f * Mathf.Deg2Rad * angleX);

         return q;
     }

 }

}

Or you can copy and paste the script if you like :)

Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image
0

Answer by Maemmo · Sep 11, 2016 at 09:16 AM

if (Time.timeScale != 0) { // Background movement script }

Will that work?

Comment
Add comment · Show 1 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image CraftyMaelyss · Sep 12, 2016 at 02:38 AM 0
Share

I tried it and it didn't :(

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

233 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Disable Mouse Look while in pause menu? (Unity 5) 0 Answers

Settings menu of main menu not updating in settings menu of pause menu. Unity C#, 0 Answers

[C#]detect object on mouse look? 1 Answer

Pause Menu Problems 1 Answer

Cursor does not show up in pause menu. C#,Cursor isn't showing up in Pause Menu when game is built. C# 0 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges