Управление персонажем на Android Unity C#
Есть некий скрипт который должен управлять персонажем, а именно свайп вправо/влево должен поворачивать персонажа, а свайп вверх/вниз должны поворачивать камеру 1/3 вида на 13 крадусов от стартового положения. Что мне не нравится в текущем скрипте (есть блок с миникартой и джостиком) и свайпы поворота не должны конфликтовать с одновременным нажатием на джостик, + повороты вверх/ вниз работают как-то криво. Главным вопросом является фикс одновременной работы с джостиком и поворотом
Блок миникарты и джостика это пустой элемент, а сами элементы это изображения
void Update()
{
int k = 0;
while(Input.touchCount > k)
{
Vector2 deltaposition = Vector2.zero;
if(Input.GetTouch(k).position.x > Screen.width / 2 - 100)
{
if(k == 0)
deltaposition = Input.GetTouch(k).deltaPosition;
deltaposition.x /= Screen.dpi;
if(deltaposition.x != 0)
{
float speedX = 22 * deltaposition.x;
user1.transform.Rotate(Vector3.up * speedX);
}
}
if(Input.GetTouch(k).position.y > Screen.height / 2 - 100)
{
if(k == 0)
deltaposition = Input.GetTouch(k).deltaPosition;
deltaposition.y /= Screen.dpi;
if(deltaposition.y != 0)
{
float speedY = 22 * deltaposition.y;
if(cam3.transform.localRotation.eulerAngles.x < 13)
{
cam3.transform.Rotate(Vector3.right * (speedY));
cam1.transform.Rotate(Vector3.right * (speedY));
}
if(cam3.transform.localRotation.eulerAngles.x > 347 || cam3.transform.localRotation.eulerAngles.x >= 13)
{
cam3.transform.Rotate(Vector3.right * -(speedY));
cam1.transform.Rotate(Vector3.right * -(speedY));
}
GUI.Label(new Rect(330, 120, 100, 20), cam3.transform.localRotation.eulerAngles.x.ToString());
}
}
k++;
}
}
}