GetAxis Is Too Fast!How can i make it slower?
Hello Unity3D.I have a problem with my GetAxis.The problem is I want my GetAxis to act as a button and when i move my joystick to left or right its really quick and it makes my character looks like it shuttering.I don't want that.What i want is for the character to move 1 pace or take one step depending if i move the joystick to the left or right.If anyone knows how i can do this.Can you please tell me how?
Heres what i got so far var Characters : GameObject[]; // Array of Weapons var selection : int = 0; var OkButtonP1 : String = "Accept_P1"; var OkButtonP2 : String = "Accept_P2"; var Player1Ready : boolean = false; var Player2Ready : boolean = false; var playerMovement : float = 0; var smooth : float =0; var speed : float =0; var amount : float =0; var gravity : float = 0; function Start () {
     for(var obj:GameObject in Characters)
         {
             obj.SetActive(false);
 
         
 
         Characters[selection].SetActive(true);
 
     
     }
     
 
 
 }
 
 function Update (){
 
 
   if (Input.GetAxis("Horizontal1"))
      {
          transform.localPosition.x += playerMovement * smooth * speed * gravity * Input.GetAxisRaw("Horizontal1");
      }
      
      if (Input.GetAxis("Depth1"))
      {
          transform.localPosition.z += playerMovement * Input.GetAxis("Depth1") * Time.deltaTime;
      }
 
 
 
   if(Input.GetKeyDown("a")||Input.GetAxisRaw("Horizontal2") == 1){
 
 
          {
         
             Characters[selection].SetActive (false);
             selection++;
 
             if (selection >= Characters.length)
                 selection = 0;
 
             Characters[selection].SetActive (true);
                 
             }
         }
 
 
 
         if(Input.GetKeyDown("d")||Input.GetAxisRaw("Horizontal2") == -1){
             Characters[selection].SetActive(false);
             selection--;
             
             if (selection < 0)
                 selection = Characters.length-1;
 
             Characters[selection].SetActive (true);
 
         }
 
         if (Input.GetButtonDown(OkButtonP1)&& Player1Ready == false) {
 
 
     
         Player1Ready = true;
 
         }
 
         if (Input.GetButtonDown(OkButtonP2)&& Player2Ready == false) {
     
         Player2Ready = true;
 
         }
 
 
 
 
 
 
         if (Input.GetButtonDown(OkButtonP1)&&(Player1Ready == true && Player2Ready == true))
 
         {
             PlayerPrefs.SetInt ("PreferedModel",selection);{
             PlayerPrefs.SetInt ("PreferedModel2",selection);{
             Application.LoadLevel("God N Angels Waterfall Shore");
          }
        }        
     }
 }
 
 
              Answer by Lewance · Jan 12, 2016 at 01:12 AM
short code for getting something to only update every now and again - using dummy variables/functions for storing the direction, checking the direction and moving in it
 public float stepTime;
 private float nextStep;    
     void Update()
     {
         if (Time.time  > nextStep)
         {
             nextStep = Time.time + stepTime;
             direction =  CheckTheControlsForDirection();
         } 
        moveInDirection(direction);
     }
 
              Answer by IKilledKenny_2 · Jan 12, 2016 at 08:12 AM
I Love You! Thank you i have been stuck on this for days =D
Your answer
 
             Follow this Question
Related Questions
Detect player movement 0 Answers
Set Bool to false after seconds? 2 Answers
Animation Issues - Won't play OnTriggerExit 0 Answers
How to pick up an object in hand e.g. a bat C# 0 Answers
player goes through the terrain and don't fall of of it 0 Answers