- Home /
Question by
NisioX · Nov 08, 2021 at 11:42 AM ·
script.slidervalueproblem during runtimesensitivity
My mouse sensitivity value don't update in other function than sliderValueChange
(Sorry for my bad english)
I'm making a multiplayer fps game with PUN2 with the help of some tutorials of Rugbug Redfern and i want to make the option menu (not in the tutorials), in the option menu i have made a slider for mouse sensitivity and in the playerController script i have made a function for when the slider value change but this function only update my sensitivity value for himself, not for update function or for MouseLook function, bit the value is updated in the inspector and when the scene restart.
here my code :
using UnityEngine;
using Photon.Pun;
using UnityEngine.UI;
public class PlayerMovement : MonoBehaviour
{
CharacterController controller;
Slider sensitivitySlider;
float xRotation = 0f;
[SerializeField] GameObject myCamera;
public float sensitivity = 100f;
public float walkSpeed = 10f;
public float runSpeed = 20f;
Transform groundCheck;
float groundDistance = 0.4f;
public LayerMask groundMask;
float currentSpeed;
Vector3 velocity;
public float gravity = -9.81f;
public float jumpHeight;
bool isGrounded;
PhotonView PV;
private void Awake()
{
PV = GetComponent<PhotonView>();
Cursor.lockState = CursorLockMode.Locked;
}
// Start is called before the first frame update
void Start()
{
controller = GetComponent<CharacterController>();
groundCheck = transform.GetChild(2);
currentSpeed = 10f;
sensitivitySlider = GameObject.Find("Canvas").transform.Find("OptionMenu").transform.Find("MouseSensitivitySlider").GetComponent<Slider>();
}
// Update is called once per frame
void Update()
{
if (!PV.IsMine)
{
return;
}
Movement();
MouseLook();
}
public void ChangeSensitivity(float value)
{
Text sensitivityText;
if (sensitivitySlider == null)
{
sensitivitySlider = GameObject.Find("Canvas").transform.Find("OptionMenu").transform.Find("MouseSensitivitySlider").GetComponent<Slider>();
}
sensitivity = value;
sensitivityText = sensitivitySlider.transform.Find("MouseSensitivityText").GetComponent<Text>();
sensitivityText.text = "Mouse sensitivity : " + sensitivity;
}
void Movement()
{
float x = Input.GetAxis("Horizontal");
float z = Input.GetAxis("Vertical");
isGrounded = Physics.CheckSphere(groundCheck.position, groundDistance, groundMask);
if (isGrounded && velocity.y < 0f)
{
velocity.y = -2f;
}
Vector3 moveDirection = transform.right * x + transform.forward * z;
if (Input.GetKey(KeyCode.LeftShift))
{
currentSpeed = runSpeed;
}
else
{
currentSpeed = walkSpeed;
}
if (Input.GetKey("space") && isGrounded)
{
velocity.y = Mathf.Sqrt(jumpHeight * -2 * gravity);
}
velocity.y += gravity * Time.deltaTime;
controller.Move(moveDirection * currentSpeed * Time.deltaTime);
controller.Move(velocity * Time.deltaTime);
}
void MouseLook()
{
float mouseX = Input.GetAxis("Mouse X") * sensitivity * Time.deltaTime;
float mouseY = Input.GetAxis("Mouse Y") * sensitivity * Time.deltaTime;
xRotation -= mouseY;
xRotation = Mathf.Clamp(xRotation, -90f, 90f);
myCamera.transform.localRotation = Quaternion.Euler(xRotation, 0f, 0f);
transform.Rotate(Vector3.up * mouseX);
}
}
Comment