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 /
This question was closed Jul 01, 2016 at 03:35 AM by El-Deiablo for the following reason:

Other

avatar image
0
Question by El-Deiablo · Jun 25, 2016 at 02:32 AM · touchspeedslidertouch controlssensitivity

Sensitivity Slider Issue

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.

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(){
 
 if (Input.touchCount > 0 && Input.GetTouch (0).phase == TouchPhase.Moved) {
             
             Vector2 touchDeltaPosition = Input.GetTouch (0).deltaPosition;
             transform.Translate (touchDeltaPosition.x * speed, touchDeltaPosition.y * speed, 0);
             //transform.Translate (touchDeltaPosition.x, touchDeltaPosition.y, 0);
 
             if (PausePanel.isPaused == true) {
 
                 //Input.GetTouch (0).phase == TouchPhase.Canceled;
                 transform.Translate (touchDeltaPosition.x * 0, touchDeltaPosition.y * 0, 0);
             }
         }
 }

Code 2:

 using UnityEngine;
 using System.Collections;
 using UnityEngine.SceneManagement;
 using UnityEngine.UI;
 
 public class PausePanel : MonoBehaviour {
 
 public Slider sensitivitySlider;
 
 private Player instance;
 
 void Start(){
 
 instance.GetComponent <Player> ();
 
 }
 
 public void SensitivityControl (float sensitivityControl){
 
         instance.speed = sensitivityControl;
         PlayerPrefs.SetFloat ("CurSens", instance.speed);
 
     }
 
 }


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

1 Reply

  • Sort: 
avatar image
0

Answer by Dibbie · Jun 25, 2016 at 07:50 AM

You never set instance.

In your void Start(), you should have

instance.GetComponent <Player> ();

become

instance = GameObject.Find("Player").GetComponent<Player>();

and in the Fine(), youd change the word "Player" to whatever name your player is, in your hierarchy.

If you want to use the method you have now, youd have to make a public GameObject (for example purposes, lets assume you called it "playerReference", then in Start() make it look like:

instance = playerReference.GetComponent<Player>();

Comment
Add comment · Show 5 · 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 El-Deiablo · Jun 26, 2016 at 09:53 PM 0
Share

Thanks for getting back to me! I tried what you said, but still had no luck. $$anonymous$$y audio slider works perfectly, but the sensitivity is not working. I tried dragging the slider all the way down and all the way up, but the speed is always the same.

Here's my updated code:

Code 1:

 using UnityEngine;
 using System.Collections;
 using UnityEngine .Audio ;
 using UnityEngine .Scene$$anonymous$$anagement ;
 
 public class Player : $$anonymous$$onoBehaviour {
 
 public float speed;
 
 void Update()
     {
 if (!PausePanel.isPaused && Input.touchCount > 0 && Input.GetTouch (0).phase == TouchPhase.$$anonymous$$oved) {
             
             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.Scene$$anonymous$$anagement;
 using UnityEngine.UI;
 
 public class PausePanel : $$anonymous$$onoBehaviour {
 
 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);
 
     }



avatar image Dibbie El-Deiablo · Jun 26, 2016 at 11:24 PM 0
Share

Hmm... "Instance" may not actually be a reference to anything (ie, Script 1), so try a slightly easier way - in your Script 1, add in the Update() speed = PlayerPrefs.GetFloat("CurSens"); since your setting it anyway as a player pref, just directly access it from Script 1, and let Script 2 set it.

avatar image El-Deiablo Dibbie · Jun 27, 2016 at 08:36 PM 0
Share

I tried this as well, but it is still not working. I did just realize my instance is set as a private variable. I am doing a build now and will see if this solves anything. Got to figure this out!

Show more comments
Show more comments

Follow this Question

Answers Answers and Comments

58 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

Related Questions

Sensitivity Slider 1 Answer

Cross Platform Input Controller Not Working on Mobile Device 2 Answers

Use touch to spawn a prefab 1 Answer

Different speed on different phones 0 Answers

Sensitivity sliders not working 1 Answer


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