Advertisement
Guest User

Untitled

a guest
Mar 3rd, 2015
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.73 KB | None | 0 0
  1. using UnityEngine;
  2. using System.Collections;
  3.  
  4. public class Joystick : MonoBehaviour {
  5.    
  6.     public Touch joystickTouch;
  7.     public bool isUsed;
  8.     public bool stopUse;
  9.     public GameObject myJoystick;
  10.     public GameObject myInput;
  11.    
  12.     Vector2 joystickPos;
  13.     Vector2 inputPos;
  14.    
  15.     private float joystickRadius = 40.0f;
  16.     private Vector3 direction;
  17.     private float speed;
  18.     // Use this for initialization
  19.     void Start () {
  20.         myInput.transform.position = myJoystick.transform.position;
  21.         joystickPos = myJoystick.transform.position;
  22.         isUsed = false;
  23.         stopUse = true;
  24.     }
  25.    
  26.     // Update is called once per frame
  27.     void Update ()
  28.     {
  29.         if(isUsed)
  30.         {
  31.             if (joystickTouch.phase == TouchPhase.Moved)
  32.             {
  33.  
  34.                 inputPos = joystickTouch.position;
  35.                
  36.                 Vector2 dMove = inputPos - joystickPos;
  37.                
  38.                 float angle = Mathf.Atan2(dMove.y,dMove.x);
  39.                
  40.                 if (Vector2.Distance(joystickPos,inputPos)<=joystickRadius)
  41.                     myInput.transform.position = inputPos;
  42.                 else{
  43.                     dMove.x = Mathf.Cos(angle) * joystickRadius;
  44.                     dMove.y= Mathf.Sin(angle) * joystickRadius;
  45.                     myInput.transform.position =  joystickPos + new Vector2(dMove.x,dMove.y);
  46.                 }
  47.             }
  48.             if (joystickTouch.phase == TouchPhase.Ended)
  49.             {  
  50.                 myInput.transform.position = myJoystick.transform.position;
  51.                 if(stopUse)
  52.                 {
  53.                     isUsed = false;
  54.                     stopUse = false;
  55.                 }
  56.             }
  57.             speed = Vector2.Distance(myJoystick.transform.position,myInput.transform.position)/8;
  58.             if(speed>0)
  59.             {
  60.                 direction = myInput.transform.position - myJoystick.transform.position;
  61.                 direction.z = direction.y;
  62.                 direction.y = 0.0f;
  63.             }
  64.         }
  65.     }
  66.    
  67.     public Vector3 getDirection()
  68.     {
  69.         return direction;
  70.     }
  71.    
  72.     public float getSpeed()
  73.     {
  74.         return speed;
  75.     }  
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement