Hey Guys, I’m new to this and this is my first question:), but just wanted to ask a question on how i could make the method below more optimized? is it Possible? because i see a lot of repetition in code.
Basically what this method does in the game is moves the player to a position to the right or left depending witch way the phone is tilted and witch way the player is facing towards, and it moves player back to center when the phone is held straight.
any suggestions would be appreciated thanks.
`void TiltPlayer(bool? isLeft)
{
hasTilted = true;
switch (Dir)
{
case Directions.North:
switch (isLeft)
{
case true:
isLeftTilt = true;
player.transform.position = new Vector3(player.transform.position.x - playerOffset,
player.transform.position.y,
player.transform.position.z);
break;
case false:
isRightTilt = true;
player.transform.position = new Vector3(player.transform.position.x + playerOffset,
player.transform.position.y,
player.transform.position.z);
break;
default:
if (isLeftTilt)
{
player.transform.position = new Vector3(player.transform.position.x + playerOffset,
player.transform.position.y,
player.transform.position.z);
isLeftTilt = false;
}
else if (isRightTilt)
{
player.transform.position = new Vector3(player.transform.position.x - playerOffset,
player.transform.position.y,
player.transform.position.z);
isRightTilt = false;
}
break;
}
break;
case Directions.South:
switch (isLeft)
{
case true:
isLeftTilt = true;
player.transform.position = new Vector3(player.transform.position.x + playerOffset,
player.transform.position.y,
player.transform.position.z);
break;
case false:
isRightTilt = true;
player.transform.position = new Vector3(player.transform.position.x - playerOffset,
player.transform.position.y,
player.transform.position.z);
break;
default:
if (isLeftTilt)
{
player.transform.position = new Vector3(player.transform.position.x - playerOffset,
player.transform.position.y,
player.transform.position.z);
isLeftTilt = false;
}
else if (isRightTilt)
{
player.transform.position = new Vector3(player.transform.position.x + playerOffset,
player.transform.position.y,
player.transform.position.z);
isRightTilt = false;
}
break;
}
break;
case Directions.East:
switch (isLeft)
{
case true:
isLeftTilt = true;
player.transform.position = new Vector3(player.transform.position.x,
player.transform.position.y,
player.transform.position.z + playerOffset);
break;
case false:
isRightTilt = true;
player.transform.position = new Vector3(player.transform.position.x,
player.transform.position.y,
player.transform.position.z - playerOffset);
break;
default:
if (isLeftTilt)
{
player.transform.position = new Vector3(player.transform.position.x,
player.transform.position.y,
player.transform.position.z - playerOffset);
isLeftTilt = false;
}
else if (isRightTilt)
{
player.transform.position = new Vector3(player.transform.position.x,
player.transform.position.y,
player.transform.position.z + playerOffset);
isRightTilt = false;
}
break;
}
break;
case Directions.West:
switch (isLeft)
{
case true:
isLeftTilt = true;
player.transform.position = new Vector3(player.transform.position.x,
player.transform.position.y,
player.transform.position.z - playerOffset);
break;
case false:
isRightTilt = true;
player.transform.position = new Vector3(player.transform.position.x,
player.transform.position.y,
player.transform.position.z + playerOffset);
break;
default:
if (isLeftTilt)
{
player.transform.position = new Vector3(player.transform.position.x,
player.transform.position.y,
player.transform.position.z + playerOffset);
isLeftTilt = false;
}
else if (isRightTilt)
{
player.transform.position = new Vector3(player.transform.position.x,
player.transform.position.y,
player.transform.position.z - playerOffset);
isRightTilt = false;
}
break;
}
break;
}
}`