Почему такая разница между едитором и apk?

Общие вопросы о Unity3D

Почему такая разница между едитором и apk?

Сообщение LemanRass 16 июл 2017, 14:00

Здравствуйте.
Написал простенькую механику вращения колеса фортуны и столкнулся с проблемой что в окне едитора оно вращается хорошо а в собранном apk на емуляторе и на физ устройстве - с визуальными недочетами.
Вот видео:


Механика состоит из двух частей:
1) Вращение колеса за пальцем пользователя до момента пока он не отпустил палец.
2) Вращение колеса уже после того как пользователь отпустил палец с учетом инерции.

У меня проблемы с тем, что бы на всех устройствах переход между этими 2-я этапами вращения колеса визуально не был заметен.
То есть во втором этапе начальная скорость вращения должна соответствовать скорости с которой вращалось колесо во время первого этапа с последующим плавным замедлением.
Тот результат, который я вижу в окне юнити приемлим. Если бы только так же работало везде.

Вот так я вращаю колесо до его запуска (без инерции):
Синтаксис:
Используется csharp
    private void OnMouseDrag()
    {
        if (isRolling) return;
        float rotY = Input.GetAxis("Mouse Y") * 0.05f * Mathf.Rad2Deg;
        transform.Rotate(transform.up, rotY, Space.World);
    }


Вот так я рассчитываю скорость, с которой колесо будет вращатся когда пользователь отпустил палец:
Синтаксис:
Используется csharp
    private void OnMouseDown()
    {
        mouseHoldTime = Time.time;
        mouseHoldPos = Input.mousePosition;
    }

    private void OnMouseUp()
    {
        float totalTime = Time.time - mouseHoldTime;
        float totalDist = Vector2.Distance(mouseHoldPos, Input.mousePosition);
        var dir = ((mouseHoldPos.y - Input.mousePosition.y) < 0) ? WheelDirection.Up : WheelDirection.Down;
        float totalSpeed = totalDist / totalTime;
//500 это вручную подогнанная величина для более приятного визуального эффекта
        StartWheelRotation((totalSpeed / 500), dir);

        mouseHoldTime = 0.0f;
        mouseHoldPos = Vector2.zero;
    }
 
Разработчик SpaceBall
Скрытый текст:
LemanRass
UNIверсал
 
Сообщения: 385
Зарегистрирован: 23 фев 2014, 12:00
Skype: coder.dev

Re: Почему такая разница между едитором и apk?

Сообщение jet_aleks 16 июл 2017, 22:04

Работает ровно так как Вы написали. GetAxis работает только на пк нормально, а на моб устройствах нужно либо дельту искать между down adn up косаниями, либо touch использовать, либо drag на канвасе.
Toy Trophy:
_https://itunes.apple.com/us/app/toy-trophy/id1180494544?l=ru&ls=1&mt=8
_https://www.youtube.com/watch?v=f5MgMJn15KU
_https://www.youtube.com/watch?v=CZ0viTyf63g
jet_aleks
Старожил
 
Сообщения: 609
Зарегистрирован: 02 июл 2013, 22:28
Откуда: г.Харьков
Skype: jetsan8


Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16