Движение 2D космического корабля
Вложений: 1
Решил написать пример, как можно организовать управление перемещением 2D космическим кораблем.
Ссылка на Web-плеер: http://shgames.ru/unity/astro/ В аттаче пакадж со скриптом и сценой. Скрипт собственно вот: PHP код:
|
Ответ: Движение 2D космического корабля
Код:
// Player class |
Ответ: Движение 2D космического корабля
2Amatsu Хоть бы описание какое написал.
UPD: твое движение не зависит от времени - следовательно будет работать на каждой машине с разной скоростью. UPD2: Если конечно ты не изобрел свою версию твинига для Unity ;) UPD3: В моем примере только крен не зависит... надо бы потом поправить. |
Ответ: Движение 2D космического корабля
Цитата:
|
Ответ: Движение 2D космического корабля
Еще хотел сказать - моделер из меня в блендере так себе. На работе больше нету софта. Там в скрипте вращение корпуса я реализовал через вектор Vector3.right - это потому, что модель корабля у меня не по осям повернута (не смог повернуть правильно в блендере :(). Можете в сцене посмотреть что там не так. Если правильно модель ориентировать: Вектор вперед - Z, вектор вверх - Y. То тогда вместо Vector3.right подставляем Vector3.forward.
|
Ответ: Движение 2D космического корабля
Небольшое дополнение (избавимся от "магических" чисел):
PHP код:
|
Ответ: Движение 2D космического корабля
blender3d.org.ua Учись Блендеру,PAX.;)
|
Ответ: Движение 2D космического корабля
Я не моделер ;)
|
Ответ: Движение 2D космического корабля
Вложений: 1
Итак часть вторая - пролет через края экрана.
Для этого нам понадобятся 2 скрипта. Первый будет рассчитывать область экрана, второй будет работать на каждом объект, который должен пролетать через края экрана. 1. Скрипт расчета области игры. PHP код:
В примере буферная зона равна 10 единицам мира. 2. Скрипт для объектов. PHP код:
Собственно результат: http://shgames.ru/unity/astro_example2/ В аттаче доработанный пример. |
Ответ: Движение 2D космического корабля
Вот вопрос возник. Я пытался проделать похожее на своем корабле, он у меня крутится вокруг оси Z, но не поворачивается по Y. Это я так понимаю из-за того, что у вас объект сделан дочерним, а если его не делать дочерним, то что нужно поменять, чтобы работало как тут?
|
Ответ: Движение 2D космического корабля
А как сделать чтобы корабль так же летал, плавно входил в повороты, но не кнопками WASD а по клику мышки? чтобы летел в конкретно - заданную точку?
|
Ответ: Движение 2D космического корабля
Цитата:
|
Ответ: Движение 2D космического корабля
Можно так.
Есть вектор скорости - это направление, в котором летит корабль. По клику мышки запоминаем точку клика. Далее рассчитываем угол поворота от текущего вектора скорости до линии, соединяющей текущее положение и точку клика. Однако поворачиваем не сразу на весь этот угол, а на небольшую его часть. В итоге получится плавный разворот. Функция Lerp вроде как помогает получать дельту значения. |
Часовой пояс GMT +4, время: 22:03. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot