[SOLVED] MobileGame - PlayerMovement is not working properly

In my game you are a ball on a platform and you move the ball around with a up and down button (to go forwards and backwards) and you rotate the camera with your finger movement on the screen.

The Problem is the code uses the input of your fingers on the button for the camera movement as well, therefore it is buggy.

Here is my code:

PlayerControllerScript:

if (buttonTopPressed)
            {
                playerRB.AddForce(focalPoint.transform.forward * 1 * speed);
            }

            if (buttonBotPressed)
            {
                playerRB.AddForce(focalPoint.transform.forward * -1 * speed);
            }

RotateCameraScript:

var touch = Input.GetTouch(0);

        if (touch.position.x > Screen.width / 2)
        {
            touch = Input.GetTouch(0);
            if (Input.GetTouch(0).phase == TouchPhase.Began && touch.position.x > Screen.width / 2)
            {
                touch = Input.GetTouch(0);
                if (touch.position.x > Screen.width / 2)
                {
                    FirstPoint = Input.GetTouch(0).position;
                    xAngleTemp = xAngle;
                }
            }
            touch = Input.GetTouch(0);
            if (Input.GetTouch(0).phase == TouchPhase.Moved && touch.position.x > Screen.width / 2)
            {
                touch = Input.GetTouch(0);
                if (touch.position.x > Screen.width / 2)
                {
                    SecondPoint = Input.GetTouch(0).position;
                    xAngle = xAngleTemp + (SecondPoint.x - FirstPoint.x) * 180 / Screen.width;
                    this.transform.rotation = Quaternion.Euler(0, xAngle, 0.0f);
                }
            }
        }

Oh yaay i figured it out by myself :slight_smile:

here my new code:

if (Input.touchCount > 0)
        {
            var touch = Input.GetTouch(0);
            Debug.Log("Test1");


            if (touch.position.x > Screen.width / 2)
            {
                touch = Input.GetTouch(0);
                Debug.Log("Test2");
                if (Input.GetTouch(0).phase == TouchPhase.Began && touch.position.x > Screen.width / 2)
                {
                    touch = Input.GetTouch(0);
                    if (touch.position.x > Screen.width / 2)
                    {
                        FirstPoint = Input.GetTouch(0).position;
                        xAngleTemp = xAngle;
                    }
                }
                touch = Input.GetTouch(0);
                if (Input.GetTouch(0).phase == TouchPhase.Moved && touch.position.x > Screen.width / 2)
                {
                    touch = Input.GetTouch(0);
                    if (touch.position.x > Screen.width / 2)
                    {
                        SecondPoint = Input.GetTouch(0).position;
                        xAngle = xAngleTemp + (SecondPoint.x - FirstPoint.x) * 180 / Screen.width;
                        this.transform.rotation = Quaternion.Euler(0, xAngle * lfToggle * reversePowerInt, 0.0f);
                    }
                }
            }
            else if (touch.position.x < Screen.width / 2)
            {
                if (Input.touchCount > 1)
                {
                    var touch2 = Input.GetTouch(1);
                    Debug.Log("Test1");


                    if (touch2.position.x > Screen.width / 2)
                    {
                        touch2 = Input.GetTouch(1);
                        Debug.Log("Test2");
                        if (Input.GetTouch(1).phase == TouchPhase.Began && touch2.position.x > Screen.width / 2)
                        {
                            touch2 = Input.GetTouch(1);
                            if (touch2.position.x > Screen.width / 2)
                            {
                                FirstPoint = Input.GetTouch(1).position;
                                xAngleTemp = xAngle;
                            }
                        }
                        touch2 = Input.GetTouch(1);
                        if (Input.GetTouch(1).phase == TouchPhase.Moved && touch2.position.x > Screen.width / 2)
                        {
                            touch2 = Input.GetTouch(1);
                            if (touch2.position.x > Screen.width / 2)
                            {
                                SecondPoint = Input.GetTouch(1).position;
                                xAngle = xAngleTemp + (SecondPoint.x - FirstPoint.x) * 180 / Screen.width;
                                this.transform.rotation = Quaternion.Euler(0, xAngle * lfToggle * reversePowerInt, 0.0f);
                            }
                        }
                    }
                }
            }

        }