Есть ли способ реализовать прикосновение и удержание в Unity? - PullRequest
0 голосов
/ 30 декабря 2018

Есть ли способ заставить что-то произойти, пока на экране удерживается палец?

Я пытаюсь удержать палец на экране и заставить объект вращаться (только по оси Y), пока палец остается на экране.Вращение должно прекратиться, когда палец поднят.

Вот мой код:

using UnityEngine;

public class RotateObs : MonoBehaviour
{
    public float rotateSpeed;

    private void Update()
    {
        if(Input.touchCount > 0)
        {
            Touch touch = Input.GetTouch(0);
            if (touch.phase == TouchPhase.Began)
            {
                transform.Rotate(Vector3.up * rotateSpeed * Time.deltaTime);    
            }
        }
    }
}

Я ожидаю, что объект должен вращаться, пока мой палец (на ПК он работает с мышью тоже)на экране.

Что происходит - он вращается только на 1 кадр, а затем останавливается.Он регистрирует это, как будто это одно касание, не имеет значения, остается ли мой палец на экране или нет.

Я почти уверен, что делаю это неправильно, я просто не вижу, где.

1 Ответ

0 голосов
/ 30 декабря 2018

Если вы хотите определить, удерживает ли пользователь кнопку мыши, вы должны использовать

if (Input.GetMouseButton(0))
{
    transform.Rotate (Vector3.up * rotateSpeed * Time.deltaTime);
}

На самом деле, эта строка кода будет работать даже в мобильном телефоне, но в случае, если вы хотите работать с касаниями,

if (Input.touchCount > 0)
{
    Touch first = Input.GetTouch (0);
    if (first.phase == TouchPhase.Stationary) 
    {
        transform.Rotate (Vector3.up * rotateSpeed * Time.deltaTime);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...