- Home /
How do you make a mouse sensitivity option?
So i've been spending a really long time trying to figure this out but whenever I put in the mouseSensativity = PlayerPrefs.GetInt("Sensativity")
part the screen only allows player one to look up and down and player two cant even look at all. Here's player one's script:
using UnityEngine; using System.Collections; [RequireComponent (typeof(CharacterController))] public class FPScontroller : MonoBehaviour { public float movementSpeed = 5.0f; public float jumpSpeed = 7.0f; public float sprintSpeed = 2.0f; public int mouseSensativity; float verticalRotation = 0; public float upDownRange = 60.0f; float verticalVelocity = 0; CharacterController characterController; // Use this for initialization void Start () { Screen.lockCursor = true; characterController = GetComponent<CharacterController>(); mouseSensativity = PlayerPrefs.GetInt("Sensativity"); } // Update is called once per frame void Update () { //Rotation float rotLeftRight = Input.GetAxis("Mouse X") * mouseSensativity; transform.Rotate(0, rotLeftRight, 0); verticalRotation -= Input.GetAxis("Mouse Y") * mouseSensativity; verticalRotation = Mathf.Clamp(verticalRotation, -upDownRange, upDownRange); Camera.main.transform.localRotation = Quaternion.Euler(verticalRotation, 0, 0); //Movement float forwardSpeed = Input.GetAxis("Vertical1") * movementSpeed; float sideSpeed = Input.GetAxis("Horizontal1") * movementSpeed; if (Input.GetButton("Run2")) { forwardSpeed = Input.GetAxis("Vertical1") * movementSpeed * sprintSpeed; sideSpeed = Input.GetAxis("Horizontal1") * movementSpeed * sprintSpeed; } if (!Input.GetButton("Run2")) { forwardSpeed = Input.GetAxis("Vertical1") * movementSpeed; sideSpeed = Input.GetAxis("Horizontal1") * movementSpeed; } verticalVelocity += Physics.gravity.y * Time.deltaTime * 2; if (characterController.isGrounded && Input.GetButtonDown("Jump2")) { verticalVelocity = jumpSpeed; } Vector3 speed = new Vector3(sideSpeed, verticalVelocity, forwardSpeed); speed = transform.rotation * speed; characterController.Move(speed * Time.deltaTime); } }
here's player two's script (it's pretty much the same thing):
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(CharacterController))]
public class FPScontrollerp2 : MonoBehaviour
{
public float movementSpeed = 5.0f;
public int mouseSensativity;
public float jumpSpeed = 7.0f;
public float sprintSpeed = 2.0f;
float verticalRotation = 0;
public float upDownRange = 60.0f;
float verticalVelocity = 0;
CharacterController characterController;
// Use this for initialization
void Start()
{
Screen.lockCursor = true;
characterController = GetComponent<CharacterController>();
mouseSensativity = PlayerPrefs.GetInt("Sensativity");
}
// Update is called once per frame
void Update()
{
//Rotation
float rotLeftRight = Input.GetAxis("Mouse X") * mouseSensativity;
transform.Rotate(0, rotLeftRight, 0);
verticalRotation -= Input.GetAxis("Mouse Y") * mouseSensativity;
verticalRotation = Mathf.Clamp(verticalRotation, -upDownRange, upDownRange);
Camera.main.transform.localRotation = Quaternion.Euler(verticalRotation, 0, 0);
//Movement
float forwardSpeed = Input.GetAxis("Vertical2") * movementSpeed;
float sideSpeed = Input.GetAxis("Horizontal2") * movementSpeed;
if (Input.GetButton("Run"))
{
forwardSpeed = Input.GetAxis("Vertical2") * movementSpeed * sprintSpeed;
sideSpeed = Input.GetAxis("Horizontal2") * movementSpeed * sprintSpeed;
}
if (!Input.GetButton("Run"))
{
forwardSpeed = Input.GetAxis("Vertical2") * movementSpeed;
sideSpeed = Input.GetAxis("Horizontal2") * movementSpeed;
}
verticalVelocity += Physics.gravity.y * Time.deltaTime * 2;
if (characterController.isGrounded && Input.GetButtonDown("Jump"))
{
verticalVelocity = jumpSpeed;
}
Vector3 speed = new Vector3(sideSpeed, verticalVelocity, forwardSpeed);
speed = transform.rotation * speed;
characterController.Move(speed * Time.deltaTime);
}
}
and here's the options script that they're both pulling from:
using UnityEngine;
using System.Collections;
public class OptionTextBehaviour : MonoBehaviour
{
public bool isMainMenu = false;
public bool isOne = false;
public bool isTwo = false;
public bool isThree = false;
public bool isFour = false;
public bool isFive = false;
public bool isSix = false;
public bool isSeven = false;
public bool isEight = false;
public bool isNine = false;
public bool isTen = false;
bool Clicked = false;
public int Sensativity;
void OnMouseEnter()
{
renderer.material.color = Color.red;
}
void OnMouseExit()
{
if (!Clicked)
{
renderer.material.color = Color.white;
}
}
void OnMouseUp()
{
if (isMainMenu)
{
Application.LoadLevel(0);
}
if (isOne)
{
Sensativity = 10;
Clicked = true;
}
if (isTwo)
{
Sensativity = 20;
Clicked = true;
}
if (isThree)
{
Sensativity = 30;
}
if (isFour)
{
Sensativity = 40;
}
if (isFive)
{
Sensativity = 50;
}
if (isSix)
{
Sensativity = 60;
}
if (isSeven)
{
Sensativity = 70;
}
if (isEight)
{
Sensativity = 80;
}
if (isNine)
{
Sensativity = 90;
}
if (isTen)
{
Sensativity = 100;
}
PlayerPrefs.SetInt("Sensativity", Sensativity);
}
}
also as a side note, i'm trying to make it to where whenever a number is clicked it turns red and stays red, but when another # is clicked it turns white, but it stays red no matter what once it's clicked and i've tried many different things but nothing is fixing it and i assume that's because each number runs on its own script, so it can't tell when another number is clicked, but I am new at this and don't know how to fix it. I know it's a lot but help would be very much appreciated. Thanks!
Your answer
Follow this Question
Related Questions
Multiple Cars not working 1 Answer
Distribute terrain in zones 3 Answers
Renderer on object disabled after level reload 1 Answer
How to make the FPS camera shake on collision with enemy? 1 Answer
sensitivity slider/ drop down help 0 Answers