#c# #unity3d #input #touch
#c# #unity3d #ввод #прикосновение
Вопрос:
Я создаю многопользовательскую игру со стрелками на устройстве Android, в которой вы стреляете в зависимости от линии, которую вы рисуете. Но мне нужно 2 строки на одном экране, и я не знаю, как правильно это реализовать. ПРОБЛЕМА в том, что массив касаний является статическим и общим для 2 экземпляров, поэтому изменяется массив индексов и значение касания, которым я хочу управлять, тоже изменяется.
Я попытался сделать 1 скрипт для 2 игровых объектов с 1 средством визуализации строк
for (int i = 0; i < Input.touchCount; i )
{
if (Input.GetTouch(i).phase == TouchPhase.Began)
{
if (touchIndex == -1)
touchIndex = Input.GetTouch(i).fingerId;
startPointLine = Camera.main.ScreenToWorldPoint(Input.GetTouch(touchIndex).position);
}
//this if for the RIGHT half screen management
if (Input.GetTouch(i).phase == TouchPhase.Moved amp;amp; (TouchHalfRightScreen amp;amp; IsRightDraggingZone))
{
endPointLine = Camera.main.ScreenToWorldPoint(Input.GetTouch(touchIndex).position);
Dragging();
}
//this if for the LEFT half screen management
if (Input.GetTouch(i).phase == TouchPhase.Moved amp;amp; (!TouchHalfRightScreen amp;amp; !IsRightDraggingZone))
{
if (Input.touchCount == 1 amp;amp; touchIndex == 1)
touchIndex--;
endPointLine = Camera.main.ScreenToWorldPoint(Input.GetTouch(touchIndex).position);
Dragging();
}
if (Input.GetTouch(i).phase == TouchPhase.Ended)
{
//reset touchIndex
touchIndex = -1;
ClearLine();
}
}
Я ожидаю, что касание, которое я сохраняю в indexTouch, — это то, что я управляю, но в игре я делаю линию перетаскивания в одной из обеих сторон экрана, затем я добавляю линию перетаскивания на другой стороне, и что происходит? Первая строка, которую я нарисовал, заморожена, но последняя перемещается.
Чтобы немного прояснить, это линия перетаскивания, которую я хочу рисовать одновременно. https://img2.androidappsapk.co/poster/9/d/7/com.stickmanarcher.stickmanfightinggames.archerygames.stickman_5.png
Комментарии:
1. Можете ли вы добавить gif или видео?
2. Конечно, drive.google.com/open?id=1YP8vQ6S13_NNN_OK1yfpkTL2yybUzcZ —