- Home /
Sensitivity Slider
This is really frustrating! I have been working on this for a week and have not been able to make it work. I am trying to make a sensitivity slider so the player can adjust how quickly the character moves. I made a slider and speed variable (that is attached to my player script). The slider moves like it should and the handle value saves, but the speed remains the same. I cannot get the sensitivity to change. I know I am close, but I can't figure out what I need to add or what I could be doing wrong.
Debug is not showing any errors!
Here's my code:
Code 1:
 using UnityEngine;
 using System.Collections;
 using UnityEngine .Audio ;
 using UnityEngine .SceneManagement ;
  
  public class Player : MonoBehaviour {
  
  public float speed;
  
  void Update(){
     //speed = PlayerPrefs.GetFloat ("CurSens");
  if (!PausePanel.isPaused && Input.touchCount > 0 && Input.GetTouch (0).phase == TouchPhase.Moved) {
              
              Vector2 touchDeltaPosition = Input.GetTouch (0).deltaPosition;
              transform.Translate (touchDeltaPosition.x * speed, touchDeltaPosition.y * speed, 0);
  }
  
  if(!PausePanel.isPaused && mySpriteRenderer != null)
          {
              if(Input.GetTouch (0).deltaPosition .x<0)
              {
                  // flip the sprite
                  mySpriteRenderer.flipX = true;
              }
  
              if(Input.GetTouch (0).deltaPosition.x >0)
              {
                  // flip the sprite
                  mySpriteRenderer.flipX = false;
              }
                  
  
      }
Code 2:
  using UnityEngine;
  using System.Collections;
  using UnityEngine.SceneManagement;
  using UnityEngine.UI;
  
  public class PausePanel : MonoBehaviour {
  
  public Slider sensitivitySlider;
  
  void Start(){
  
  if (sensitivitySlider) {
  
              instance.speed = PlayerPrefs.GetFloat ("CurSens");
              sensitivitySlider.value = instance.speed;
  
          }
  
  instance = GameObject.Find("Biting Tyson Head").GetComponent <Player> ();
  
  }
  
  public void SensitivityControl (float sensitivityControl){
  
          instance.speed = sensitivityControl;
          PlayerPrefs.SetFloat ("CurSens", instance.speed);
  
      }
I don't see you modifying the speed or the curSens after the Start, on the only update function there, you first move the player, and then flip the x or not, you don't change the speed anywhere, normally, if your slider is working, just use (yourSlider.value / yourSlider.maxValue) * maximumSpeed to get the actual speed, or if your slider have the good $$anonymous$$ and max values, just yourSlider.value.
You probably already tried this, but that's the only conclusion i get from those scripts
Answer by throh · Jul 03, 2016 at 12:38 PM
Make a static variable at the Player class.
 public static float speed;
And then:
 public void SensitivityControl (float sensitivityControl){
           Player.speed = sensitivityControl;
 }
Your answer
 
 
             Follow this Question
Related Questions
Sensitivity Slider Issue 1 Answer
Sensitivity sliders not working 1 Answer
Slider value saving? 1 Answer
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                