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:
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.