Иногда не срабатывает OnMouseDown в Unity

102
03 февраля 2022, 02:00

Почему-то иногда не срабатывает OnMouseDown. Сначала может сработать несколько раз, потом ему просто пофиг на нажатия (глобальные тачи по экрану).

Например, сработал 7 раз, и перестал. 4 раза игнорирует касания, а на 5й снова работает. (Цифры не точные, это условно).

Причина не в Shoot(), потому что когда OnMouseDown не срабатывает - даже в консоль не выводится строка.

Если никто не знает в чём причина, помогите переделать код на не mouse, а на глобальные тачи (игра для мобил).

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Shoot : MonoBehaviour
{
    public GameObject player; 
    private Gameplay gameplay;
    void Start()
    {
        gameplay = player.GetComponent<Gameplay>();
    }
    // Update is called once per frame
    public void OnMouseDown(){
        gameplay.Shoot();
        Debug.Log("I Shoot");
    }
}
Answer 1
void Update () {
    if (Application.isEditor) {
        // For Mouse
        if (Input.GetMouseButtonDown(0)) TouchDown();
    } else {
        // For Touches
        if (Input.touchCount > 0) {
            for (int i = 0; i < Input.touches.Length; i++) {
                if (Input.GetTouch(i).phase == TouchPhase.Began) TouchDown();
            }
        }
    }
}
void TouchDown () {
    gameplay.Shoot();
}
READ ALSO
Как добавить, чтобы возвращалась VIew?

Как добавить, чтобы возвращалась VIew?

У меня есть View для каждого метода, я сделал чтобы в хедере задавался параметр для возвращения, а как сделать, чтобы была VIEW?

89
Не работает сравнения char со string

Не работает сравнения char со string

Нужно выделить из текста слова, в которых количество гласных звуков парноеВот что у меня вышло

89
Как импортировать свою библиотеку Visual Studio

Как импортировать свою библиотеку Visual Studio

Создал себе небольшую библиотеку, теперь хочу импортировать ее в проектКак?

208
Проблема с потоками wpf

Проблема с потоками wpf

Есть обычный таймер класса TimerКаждый раз вызывается метод для отсчёта времени

83