4 / 4 / 2
Регистрация: 26.10.2015
Сообщений: 54
1

Перемещение 2D игрока без учета массы

19.01.2019, 07:22. Показов 1683. Ответов 26
Метки нет (Все метки)

Здравствуйте! Подскажите пожалуйста, как исправить управление чтобы масса не учитывалась при перемещение?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
.      
   void Update()
    {
        
        dirX =SimpleInput.GetAxis("Horizontal") * MoveSpeed * Time.deltaTime;
        dirY = SimpleInput.GetAxis("Vertical") * MoveSpeed * Time.deltaTime;
      
         Vector2 movement = new Vector2(dirX, dirY);
         rb2d.AddForce(movement *  MoveSpeed);
     
 
 
    }
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.01.2019, 07:22
Ответы с готовыми решениями:

Перемещение игрока во время анимации
Здравствуйте, есть такой вопрос, как мне можно сделать так, что бы во время проигрывания...

Перемещение игрока в сетевой игре пс использованием джойстика
Есть два скрипта:джойстик и скрипт игрока, который получает от джойстика вектор. Но суть в том, что...

Перемещение игрока возможно лишь если клик был по необходимому объекту (?)
Здравствуйте, ребята! Я новичок в Unity, поэтому не судите строго. Столкнулся с вроде бы легкой...

пределить длину волны катодных лучей без учета и с учетом зависимости массы от скорости
Помогите пожалуйста решить задачу, очень нужно! В телевизионной трубке проекционного типа...

26
488 / 285 / 128
Регистрация: 30.10.2018
Сообщений: 1,309
19.01.2019, 10:03 2
sartax, в самом компоненте поменяй, но только есть проблема, в жизни ты не можешь перемещать не учитывая вес тела, в любом случае либо самому что-то такое писать (что плохо) либо поставить массу на минимум.
0
4 / 4 / 2
Регистрация: 26.10.2015
Сообщений: 54
19.01.2019, 10:22  [ТС] 3
Я делал перемещение через transform.position по x и y, но игрок мог проходить между коллайдерами другого объекта, а здесь он просто врезается как раз то что нужно, но не так как нужно перемещаться
0
488 / 285 / 128
Регистрация: 30.10.2018
Сообщений: 1,309
19.01.2019, 10:53 4
Цитата Сообщение от sartax Посмотреть сообщение
но не так как нужно перемещаться
всм не так?
0
4 / 4 / 2
Регистрация: 26.10.2015
Сообщений: 54
19.01.2019, 11:10  [ТС] 5
Игрок перемещаться как по инерции, а мне нужно чтобы при нажатии на кнопку он переместился в нужном направление и замер.
0
488 / 285 / 128
Регистрация: 30.10.2018
Сообщений: 1,309
19.01.2019, 11:58 6
Цитата Сообщение от sartax Посмотреть сообщение
нужном направление и замер
rb2d.Sleep();
1
749 / 597 / 203
Регистрация: 06.08.2015
Сообщений: 2,431
19.01.2019, 12:29 7
sartax, либо MovePosition, либо задавать velocity

Добавлено через 2 минуты
kitsoRik,
либо поставить массу на минимум.
ты с физикой работал вообще? Задание скорости не зависит от массы никак.
1
488 / 285 / 128
Регистрация: 30.10.2018
Сообщений: 1,309
19.01.2019, 13:52 8
Cr0c, инерция? Там то влияет
1
2054 / 1531 / 167
Регистрация: 14.12.2014
Сообщений: 13,326
19.01.2019, 13:59 9
Цитата Сообщение от kitsoRik Посмотреть сообщение
инерция? Там то влияет
Импульс равен m*V. И вот именно оный импульс при коллизиях/приложении сил и т.д. и пересчитывается для оных тел. А потом из него вычисляется новое V путем деления на m. То же самое в принципе с моментом вращения тела - это по факту угловой аналог импульса, только там роль массы играет момент инерции относительно оси вращения, который не только от самой массы зависит но и от ее распределения в теле.
1
749 / 597 / 203
Регистрация: 06.08.2015
Сообщений: 2,431
19.01.2019, 14:12 10
kitsoRik, Инерция, это
Свойство тел сохранять состояние покоя или движения, пока какая-н. внешняя сила не изменит этого состояния.
Матчасть не помним?

Добавлено через 1 минуту
Или изменение скорости как-то связано с приложением силы?
1
2054 / 1531 / 167
Регистрация: 14.12.2014
Сообщений: 13,326
19.01.2019, 14:32 11
Цитата Сообщение от Cr0c Посмотреть сообщение
Или изменение скорости как-то связано с приложением силы?
напрямую. Скорость это сумма приложенных импульсов силы (произведения силы на время приложения) поделенных на массу тела.
1
749 / 597 / 203
Регистрация: 06.08.2015
Сообщений: 2,431
19.01.2019, 14:33 12
Fulcrum_013, я про юнити, не про реальную физику ))
1
2054 / 1531 / 167
Регистрация: 14.12.2014
Сообщений: 13,326
19.01.2019, 15:16 13
Cr0c, Ну и я про импульсные движки, которые имитируют реальную физику и пародию на который и пользует юнити для коллизий и приложения сил. Т.е. когда вы объекту скорость устанавливаете она в импульс пересчитывается умножением на массу. И при приложении сил или коллизиях пересчитывается именно импульс, а потом из него вычисляется скорость. И сделано это именно в целях счета коллизий. Потому что сами силы при ударе по теории удара не вычислимы. А вот импульс силы вычисляется элементарно, а для постоянно приложенных сил еще проще. Поэтому и считается все через импульсы.
1
4 / 4 / 2
Регистрация: 26.10.2015
Сообщений: 54
19.01.2019, 16:12  [ТС] 14
Цитата Сообщение от kitsoRik Посмотреть сообщение
rb2d.Sleep();
Не работает , он вообще замирает и никуда не движется
0
2054 / 1531 / 167
Регистрация: 14.12.2014
Сообщений: 13,326
19.01.2019, 16:26 15
Цитата Сообщение от sartax Посмотреть сообщение
Не работает , он вообще замирает и никуда не движется
Вам по ходу нужно полностью отключить подкапотный пересчет коллизий и приложения сил, оставив только обнаружения коллизий и пересчитывать скорость самостоятельно в калбеке обнаружения коллизии. В простейшем случае для этого нужно просто отразить вектор скорости относительно плоскости, касательной к поверхности в точке коллизии. Нормаль коллизии при этом и есть нормалью к этой плоскости.
1
4 / 4 / 2
Регистрация: 26.10.2015
Сообщений: 54
19.01.2019, 16:30  [ТС] 16
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Вам по ходу нужно полностью отключить подкапотный пересчет и при коллизиях пересчитывать скорость самостоятельно в калбеке обнаружения коллизии. В простейшем случае для этого нужно просто отразить вектор скорости относительно плоскости касательной к поверхности в точке коллизии. Нормаль коллизии при этом и есть нормалью к этой плоскости.
Прошу прощения но я Вас совсем не понимаю, мне бы что попроще, а лучше пример показать
0
2054 / 1531 / 167
Регистрация: 14.12.2014
Сообщений: 13,326
19.01.2019, 16:57 17
sartax, Ну что такое касательная плоскость, нормальный вектор плоскости, и как вектор относительно плоскости отразить понимаете? Ну и вообще базовые свойства скалярного и векторного произведения на которых все это основано?
Если нет - то тут выход один учить аналитическую геометрию. Это вообще общий аспект преобразований как в 3D так и в 2D (в 2D вместо касательной плоскости касательная прямая ), а не конкретно юнити, и без знания этого аспекта что либо вообще касательно навигации, определения взаимного расположения объектов, и прочих операций в 2D и 3D понять абсолютно невозможно.
1
749 / 597 / 203
Регистрация: 06.08.2015
Сообщений: 2,431
19.01.2019, 17:23 18
sartax, убираешь AddForce, ставишь velocity, создаешь PhysicalMaterial с bouncy=1 и вешаешь на все коллайдеры ))
1
2054 / 1531 / 167
Регистрация: 14.12.2014
Сообщений: 13,326
19.01.2019, 17:32 19
Cr0c, и массу 1. И для коллизий только с зафиксированными объектами должно работать.
1
4 / 4 / 2
Регистрация: 26.10.2015
Сообщений: 54
19.01.2019, 17:38  [ТС] 20
Цитата Сообщение от Cr0c Посмотреть сообщение
ставишь velocity
пишет что не может использоваться как метод
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.01.2019, 17:38

Игра, подобная Roguelike - перемещение игрока по карте
В общем, пишу ASCII игрушку, семейства Rogue-like, для того что бы закрепить знание Pascal'я. Как...

Борьба ИИ без участия игрока
Ищу стратегии, чтобы можно было посмотреть сражения ИИ без явного участия игрока в итог сражения....

Вывести слова, начинающиеся с букв «a» «b» «c» без учета регистра и без повторений
Здравствуйте, нуждаюсь в вашей помощи! Требуется: Открыть текстовый файл для чтения TEXT1.TXT. ...

Для данных значений m, n и известной ставки каждого игрока определить номер игрока, который выиграл и сумму выигрыша
За круглым столом собралось n игроков (n <= 255). Каждый сделал ставку в k монет (1 <= k <= 5)....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.