Question by
YAZER_ · Jul 15, 2020 at 08:39 PM ·
touch controlstouchscreenscreentoworldpointtouchphase
hello i have an sphere and want to control it with joystick appears at the same positin of touch.
i want my sphere move on y axis always and control it with joystick on X and Z coordinates and want my joystick appears on touch pos but i can't get the true values of touch pos . here is my code:
Rigidbody rb;
public float speed;
public float Yspeed;
public GameObject inControl;
public GameObject outControl;
private Touch onetouch;
private Vector3 touchposition;
void Start()
{
rb = GetComponent<Rigidbody>();
inControl.SetActive(false);
outControl.SetActive(false);
}
void FixedUpdate ()
{
if (Input.touchCount > 0)
{
onetouch = Input.GetTouch(0);
touchposition = Camera.main.ScreenToWorldPoint(new Vector3(onetouch.position.x,0f,onetouch.position.y));
switch (onetouch.phase)
{
case TouchPhase.Began:
outControl.SetActive(true);
inControl.SetActive(true);
inControl.transform.position = touchposition;
outControl.transform.position = touchposition;
Debug.Log("X= " + touchposition.x+"Y="+touchposition.y);
break;
case TouchPhase.Stationary:
useControl();
break;
case TouchPhase.Moved:
useControl();
break;
case TouchPhase.Ended:
inControl.SetActive(false);
outControl.SetActive(false);
break;
}
}
}
void useControl()
{
inControl.transform.position = touchposition;
outControl.transform.position = touchposition;
float hinput = CrossPlatformInputManager.GetAxis("Horizontal") * speed * Time.deltaTime;
float Vinput = CrossPlatformInputManager.GetAxis("Vertical") * speed * Time.deltaTime;
rb.AddForce(hinput, Yspeed * Time.deltaTime, Vinput);
}
}
Comment
Your answer
Follow this Question
Related Questions
Disable Input.getTouch in full screen 0 Answers
How to convert Input.GetAxis(MouseAxis.MOUSE_Y), Input.GetAxis(MouseAxis.MOUSE_X) for touch 0 Answers
How do I replicate how you launch the ball in this game? 0 Answers
Pressing Vs Jumping 1 Answer
Why is my first touch interpreted as a mouse click? 0 Answers