Unity. Event Trigger

Сделал движение под ПК (WASD), Хочу сделать управление для мобил, путем добавление кнопок (влево, вправо, вверх, вниз) Добавил картинки на UI. дал им Event Trigger. При однократном нажатии на кнопку срабатывает 1 раз, а при игре на ПК зажимая "W", Obj двигается непрерывно. Как сделать, что бы при ЗАжатии на кнопку на UI, движение тоже было непрерывное. (Сейчас если зажать, то obj двинется 1 раз и остановится)

Пробовал разные методы в самом EventTriggere. Проще управление переписать или я что-то делаю не так?

Методы передвижения EventTrigger


Ответы (1 шт):

Автор решения: Влад Сахаров
using UnityEngine;
using UnityEngine.SceneManagement;

public class Player : MonoBehaviour
{
   
    [SerializeField] Vector3 moveDirection; // задать скорость движения
    Rigidbody rb;
    bool touch;  // нажата ли епрвая кнопка (вниз)
    bool touch2; // нажата ли епрвая кнопка (вверх)

    private void Start()
    {
        rb = GetComponent<Rigidbody>();
    }
   
   public void PointerDown1() // кидаем на Event Trigger первой кнопки (вниз) в ивент PointerDown (нажата)
    {
        touch = true;
    }
    public void PointerUp1()  // кидаем на Event Trigger первой кнопки (вниз) в ивент PointerUp (не нажата)
    {
        touch = false;
    }
    public void PointerDown2() // кидаем на Event Trigger второй кнопки (верх) в ивент PointerDown (нажата)
    {
        touch2 = true;
    }
    public void PointerUp2() // кидаем на Event Trigger второй кнопки (верх) в ивент PointerDown (не нажата)
    {
        touch2 = false;
    }
   

    private void FixedUpdate()
    {

        
        if (touch == true) // если кнопка вниз нажата
        {
            rb.velocity -= moveDirection;
        } 
        if (touch2 == true) // если кнопка вверх нажата

        {
            rb.velocity += moveDirection;
        }


    }

}
→ Ссылка