Персонаж передвигается рывками [РЕШЕНО]

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Персонаж передвигается рывками [РЕШЕНО]

Сообщение morosit 07 июл 2018, 09:29

Здравствуйте. На сцене есть фон, прямоугольник, и шар (игрок).
Шар передвигается прыжками, в редакторе Unity всё нормально, но при загрузке на телефон (Android) начинает как бы подвисать, и передвигается рывками. Например шар подпрыгивает, потом сразу оказывается внизу, вместо того что бы плавно опустится.
Прямоугольники выступают платформами по которым шар прыгает. Ранее такая проблема проявлялась когда я добавил ко всем платформам источник света, оставил только главный свет проблема пропала.
Теперь вот опять появилась, какое то время не делал билдов, поэтому не знаю после какого изменения, но на данный момент на сцене оставил только фон, 2 бордера, 1 платформа, и шар. Да и свет конечно (хотя свет пробывал отключать).
Помогите пожалуйста понять почему игрок передвигается рывками!?
Синтаксис:
Используется csharp
       
        public Rigidbody player;
        public Transform playerT;

        void OnMouseDown ()
        {
                Vector3 mousePos = Camera.main.ScreenToWorldPoint (Input.mousePosition); //переменная "позиция мышки"
                player.AddForce (Vector2.up * 300f);
                if (mousePos.x > playerT.position.x) {
                        player.AddForce (Vector2.right * 15f);
                } else {
                        player.AddForce (Vector2.left * 15f);
                }
        }
Последний раз редактировалось morosit 07 июл 2018, 20:33, всего редактировалось 1 раз.
morosit
UNец
 
Сообщения: 7
Зарегистрирован: 07 июл 2018, 09:01

Re: Персонаж передвигается рывками

Сообщение 1max1 07 июл 2018, 10:27

а на телефоне разве Input.mousePosition работает также как и touch.position?
попробуй заменить вот как-то так https://docs.unity3d.com/ScriptReferenc ... ition.html
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Персонаж передвигается рывками

Сообщение morosit 07 июл 2018, 11:39

Определёно не так же, хотя я не разобрался как именно )
Читал в документации что лучше использовать touch, а не функции мыши, но не разобрался пока, а во всех видео примерах/уроках используются функции мыши.
mousePosition я использую для определения текущей позиции игрока, и соответствующего применения силы - Left или в Right.
И если закоментировать этот участок кода персонаж все равно двигается рывками
Синтаксис:
Используется csharp
void OnMouseDown ()
        {
                //Vector3 mousePos = Camera.main.ScreenToWorldPoint (Input.mousePosition); //переменная "позиция мышки"
                //Touch touch = Input.GetTouch(0);
                //if (touch.position.x > playerT.position.x) {
                //      player.AddForce (Vector2.right * 15f);
                //} else {
                //      player.AddForce (Vector2.left * 15f);
                //}
                player.AddForce (Vector2.up * 300f);
        }
morosit
UNец
 
Сообщения: 7
Зарегистрирован: 07 июл 2018, 09:01

Re: Персонаж передвигается рывками

Сообщение Anonymyx 07 июл 2018, 12:00

В билде тоже рывками двигается? Проверьте.
Аватара пользователя
Anonymyx
Адепт
 
Сообщения: 1973
Зарегистрирован: 05 апр 2015, 15:55

Re: Персонаж передвигается рывками

Сообщение 1max1 07 июл 2018, 12:00

то есть вверх нормально, а вниз рывками? и больше никакие скрипты на него не влияют?
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Персонаж передвигается рывками

Сообщение morosit 07 июл 2018, 12:08

Я так понимаю, что touch показывает номер определённой точки на экране, а не векторные координаты x,y?
morosit
UNец
 
Сообщения: 7
Зарегистрирован: 07 июл 2018, 09:01

Re: Персонаж передвигается рывками

Сообщение 1max1 07 июл 2018, 12:14

Чево?
Синтаксис:
Используется csharp
Touch touch = Input.GetTouch(0); // Инфа о самом первом касании (индекс отсчитывается от нуля)
var tpos = touch.position; // Экранные координаты
var wpos = Camera.main.ScreenToWorldPoint(tpos); // Мировые координаты (игровые)
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Персонаж передвигается рывками

Сообщение morosit 07 июл 2018, 12:58

Синтаксис:
Используется csharp
void OnMouseDown ()
        {
                Touch touch = Input.GetTouch(0);
                Vector3 mousePos = Camera.main.ScreenToWorldPoint (touch.position); //переменная "позиция мышки"
                if (mousePos.x > playerT.position.x) {
                        player.AddForce (Vector2.right * 15f);
                } else {
                        player.AddForce (Vector2.left * 15f);
                }
                player.AddForce (Vector2.up * 300f);
        }

Только в билде рывки и появляются, в редакторе юнити при использовании mouse.position всё работало, при использовании touch.position ошибка "ArgumentException: Index out of bounds."

В данный момент в сцене используется только один скрипт, с одной функцией
morosit
UNец
 
Сообщения: 7
Зарегистрирован: 07 июл 2018, 09:01

Re: Персонаж передвигается рывками

Сообщение morosit 07 июл 2018, 13:08

Рывки при движении и вверх и вниз, и влево и вправо.
Похоже будто несколько кадров теряются
morosit
UNец
 
Сообщения: 7
Зарегистрирован: 07 июл 2018, 09:01

Re: Персонаж передвигается рывками

Сообщение 1max1 07 июл 2018, 13:09

Даже не знаю, попробуй создать чистый проект и воспроизвести эту ситуацию, возможно всё таки проблема с телефоном :-?
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Персонаж передвигается рывками

Сообщение morosit 07 июл 2018, 13:19

1max1 писал(а):Даже не знаю, попробуй создать чистый проект и воспроизвести эту ситуацию, возможно всё таки проблема с телефоном :-?

Когда проблема появилась первый раз пробывал на разных устройствах, вроде разницы не было.
Тоже прихожу к выводу что надо чистый проект создавать.
morosit
UNец
 
Сообщения: 7
Зарегистрирован: 07 июл 2018, 09:01

Re: Персонаж передвигается рывками

Сообщение 1max1 07 июл 2018, 13:22

еще можно на емуляторе затестить https://www.bluestacks.com/ru/index.html
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Персонаж передвигается рывками

Сообщение seaman 07 июл 2018, 13:58

Этот эмулятор имхо намного лучше:
https://ru.bignox.com/
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Персонаж передвигается рывками

Сообщение morosit 07 июл 2018, 17:51

Проблему я нашел.
Проблема оказалась в шэйдере. Цвет, для платформы, выбирал ядовито зеленый, такой чтобы эффект свечения получался. Сейчас вспомнил, что при выборе цвета юнити выдавало ошибку о несовместимости, но потом ошибка пропала.
Сбросил шэйдер, проверил - нормально, поставил опять зеленый(без ошибок) - рывков не наблюдаю.

P.S. Эмулятор есть в Андройд Студио.
morosit
UNец
 
Сообщения: 7
Зарегистрирован: 07 июл 2018, 09:01


Вернуться в Почемучка

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

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