Unity - Mouse/Touch Click не работает, пока активна кнопка на экранеC#

Место общения программистов C#
Ответить
Anonymous
 Unity - Mouse/Touch Click не работает, пока активна кнопка на экране

Сообщение Anonymous »

Я хочу создать мобильную игру, в которой игрок может щелкнуть по боковым краям экрана, чтобы переместить персонажа влево или вправо. Я создал холст с двумя пустыми GameObjects , которые имеют изображение (проверка целевого цвета Raycast) и на экране кнопку кнопки и скрипт, который перемещает символ на основе входов пользователей. Все работает нормально. Я использую активы входных действий и добавил «левый щелчок мыши» и «Нажмите [сенсорный экран]». И создал скрипт с функцией, которая запускается на клике. < /P>

Код: Выделить всё

public void OnMouseClickPerformed(InputAction.CallbackContext context)
{
if (!context.started)
return;

Vector3 mousePos;

if (TouchSimulation.instance.isActiveAndEnabled)
mousePos = Touchscreen.current.position.ReadValue();
else
mousePos = Mouse.current.position.ReadValue();

Debug.Log($"Click Pos: {mousePos}");

int gameplayLayerMask = LayerMask.GetMask("Default");
RaycastHit2D hit = Physics2D.GetRayIntersection(mainCamera.ScreenPointToRay(mousePos), Mathf.Infinity, gameplayLayerMask);

if (hit.collider != null)
{
Debug.Log($"{hit.collider.gameObject.name}");

HandleInteractableObject(hit.collider.gameObject);
}
}
< /code>
Это также работает самостоятельно. В игре и в симуляторе проблема в том, что он не работает, когда компонент «на экране» активен на любой из ранее упомянутых кнопок. Я пытался создать маски и разделить камеры и все такое. Я добавил Debug.log 
в начале этой функции, и она просто не называется.

Подробнее здесь: https://stackoverflow.com/questions/797 ... -is-active
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»