- Home /
Refactor code from getting input from keyboard to get input from UI Buttons
I have created a working prototype of my game with input from 4 different keys (A,K,Z,M) on the keyboard but now I want to refactor the code to work with the 4 ui buttons for android. For example, I want to replace Input.GetKey(KeyCode.A) with the Top Left ui button. One other case is that in some instances a set of instructions would carry out if two buttons are pressed at the same time for example:
if (Input.GetKey(KeyCode.A) && Input.GetKey(KeyCode.K))
{
FatherGameObject.transform.Translate(0, 0.5f * Time.deltaTime, 0, Space.World);
}
Full Code:
 if (Input.GetKey(KeyCode.A) && Input.GetKey(KeyCode.K))
         {
             FatherGameObject.transform.Translate(0, 0.5f * Time.deltaTime, 0, Space.World);
         }
         else if (Input.GetKey(KeyCode.A) && (RightPivot.transform.rotation.z > -0.10f))
         {
             ...
         }
         else if (Input.GetKey(KeyCode.K) && (LeftPivotGameObject.transform.rotation.z < 0.10f)) 
         {
             ...
         }
         
 
         if (Input.GetKey(KeyCode.Z) && Input.GetKey(KeyCode.M))
         {
             FatherGameObject.transform.Translate(0, -0.5f * Time.deltaTime, 0, Space.World);
         }
         else if (Input.GetKey(KeyCode.M) && (LeftPivotGameObject.transform.rotation.z > -0.10f))
         {
             ...
         }
         else if (Input.GetKey(KeyCode.Z) && (RightPivot.transform.rotation.z < 0.10f)) 
         {
             ...
         }
               Comment
              
 
               
               
               Best Answer 
              
 
              Answer by playspare · Oct 25, 2018 at 09:11 AM
Found the answer myself. Solution to this is creating two event triggers on each button; one PointerDown and one PointerUp.
 public bool upLeftBool;
 public bool upRightBool;
 
 void FixedUpdate () {
 
         if (upLeftBool && upRightBool)
         {
             FatherGameObject.transform.Translate(0, 0.5f * Time.deltaTime, 0, Space.World);
         }
 }
 
 public void onPointerDownUpLeft()
     {
         upLeftBool = true;
     }
 
     public void onPointerUpUpLeft()
     {
         upLeftBool = false;
     }
 
     public void onPointerDownUpRight()
     {
         upRightBool = true;
     }
 
     public void onPointerUpUpRight()
     {
         upRightBool = false;
     }
Your answer
 
 
              koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                