Lean Rotate Custom Axis одним пальцем

Я хотел бы повернуть свой объект AR на себя, то есть на одну ось, только одним пальцем. Поэтому я использую Lean Touch (бесплатная версия) и скрипт Lean Rotate Custom Axis. Этот процесс очень хорошо работает с двумя пальцами, но я не нахожу естественного движения. Я просто хочу, чтобы при движении пальца вправо объект поворачивался вправо, и наоборот.

Я уже обнаружил, что этот вопрос задавали здесь, и проверил предложенный ответ, но он не работает. Если кто-то уже сталкивался с этой проблемой или может иметь решение, заранее спасибо

void OnMouseDrag()
{
    float rotationX = Input.GetAxis("Mouse X") * rotationSpeed * Mathf.Deg2Rad;
    transform.Rotate(Vector3.down, -rotationX, Space.World);
}

«Это не работает» звучит так, как будто оно даже не компилируется. Пожалуйста, уточните, что вы подразумеваете под «это не работает».

Ruzihm 24.07.2019 19:51
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
1
1 542
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете попытаться реализовать поддержку касания, используя Input.GetTouch что-то вроде, например.

private Vector2 lastPos;

private void Update()
{
    // Handle a single touch
    if (Input.touchCount == 1)
    {
        var touch = Input.GetTouch(0);

        switch(touch.phase)
        {
            case TouchPhase.Began:
                // store the initial touch position
                lastPos = touch.position;
                break;

            case TouchPhase.Moved:
                // get the moved difference and convert it to an angle
                // using the rotationSpeed as sensibility
                var rotationX = (touch.position.x - lastPos.x) * rotationSpeed;
                transform.Rotate(Vector3.up, -rotationX, Space.World);

                lastPos = touch.position;
                break;
        }
    }
}

или также, поскольку Unity также допускает GetMouseButtonDown(0) для первого касания:

private void Update()
{
    if (Input.GetMouseButtonDown(0))
    {
        lastPos = (Input.mousePosition);
    }
    else if (Input.GetMouseButton(0))
    {
        var rotationX = ((Input.mousePosition).x - lastPos.x) * rotationSpeed;
        transform.Rotate(Vector3.up, -rotationX, Space.World);

        lastPos = Input.mousePosition;
    }
}

Другие вопросы по теме