title: How can I use virtual joystick for control fps character controller?
body: <p>Here is my virtual joystick controller script. Now how can i use this for control fps character controller movement both forward and side?</p>
  
  <pre><code>using UnityEngine;
  using UnityEngine.UI;
  using UnityEngine.EventSystems;
  using System.Collections;
  
  public class JoyStickController : MonoBehaviour , IDragHandler, IPointerUpHandler ,IPointerDownHandler{
  
  private Image bgImg;
  private Image joyStickImg;
  public Vector3 InputDirection{ set; get; }
  // Use this for initialization
  void Start () {
      bgImg = GetComponent&lt;Image&gt; ();
      joyStickImg = transform.GetChild (0).GetComponent&lt;Image&gt; ();
      InputDirection = Vector3.zero;
  }
  public virtual void OnDrag(PointerEventData ped){
      Vector2 pos = Vector2.zero;
      if (RectTransformUtility.ScreenPointToLocalPointInRectangle (bgImg.rectTransform,
          ped.position, ped.pressEventCamera, out pos)) {
          pos.x = (pos.x / (bgImg.rectTransform.sizeDelta.x));
          pos.y = (pos.y / (bgImg.rectTransform.sizeDelta.y));
          float x = (bgImg.rectTransform.pivot.x == 1) ? pos.x * 2 + 1 : pos.x * 2 - 1;
          float y = (bgImg.rectTransform.pivot.y == 1) ? pos.y* 2 + 1 : pos.y * 2 - 1;
          InputDirection = new Vector3 (x, 0, y);
          InputDirection = (InputDirection.magnitude &gt; 1) ? InputDirection.normalized : InputDirection;
          joyStickImg.rectTransform.anchoredPosition = new Vector3 (InputDirection.x * (bgImg.rectTransform.sizeDelta.x / 3)
              , InputDirection.z * (bgImg.rectTransform.sizeDelta.y / 3));
      }
  }
  public virtual void OnPointerDown(PointerEventData ped){
      OnDrag (ped);
  }
  public virtual void OnPointerUp(PointerEventData ped){
      InputDirection = Vector3.zero;
      joyStickImg.rectTransform.anchoredPosition = Vector3.zero;
      Debug.Log("Unpress");
  }
  public float Horizontal()
  {
      if (InputDirection.x != 0)
          return InputDirection.x;        
      else
          return Input.GetAxis("Horizontal");
  }
  public float Vertical()
  {
      if (InputDirection.z != 0)
          return InputDirection.z;
      else
          return Input.GetAxis("Vertical");
  }
  }
  </code></pre>
  
  <p>Here is my virtual joystick controller script. Now how can I use this for control fps character controller movement both forward and side?</p>