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);
}
}
}