|
135 / 130 / 60
Регистрация: 16.06.2013
Сообщений: 527
|
||||||
Программно генерируемый пол (Unity 2D)22.07.2019, 04:57. Показов 4225. Ответов 2
Метки нет (Все метки)
Всем добра. Я только начинаю освоение Unity, поэтому, скорее всего вопрос будет до жути тупым. Но меня нужно ткнуть носом в нужное направление, т.к. я не смог найти (нагуглить/придумать) подходящего решения.
Суть задачи вот в чём - для тренировки, я решил перенести на Unity реализацию одной игрушки, которую делал на чистом C#, лет 5 назад. Игрушка примитивная, по функционалу - аналог гоночек на тетрисе. И вся загвоздка у меня с реализацией пола. По сути, у меня фиксированная камера, по пространству которой ездит машинка, а движутся именно пол и препятствия (это перешло со старой реализации). Собственно, как я реализовал пол: 1. Создал Prefab, из спрайта с текстурой пола. 2. Создал скрипт, который: - При инициализации генерирует объекты "плиток" пола так, чтобы замостить весь объём экрана (с небольшими вылетами). - При работе (метод Update), постоянно сдвигает плитки пола. - Как только ряд плиток пола выходит за верхнюю часть экрана, он переносит её под самый нижний ряд. Таким образом, у нас получается "бесконечная дорожка" из плиток пола, создающая иллюзию движения. Но, с такой реализацией есть проблема - хотя fps держится в районе 70, пол периодически подлагивает при движении, с периодичностью в 1-2 секунды. Возможно это связано с переносом плиток вниз. На всякий случай, вот код скрипта работы с полом: Кликните здесь для просмотра всего текста
Собственно, вопрос - где я накосячил, и как такое нужно реализовывать по уму. Добавлено через 2 часа 35 минут Небольшой апдейт. Ещё 3 часа гугления привели к такому решению: 1. На заднем плане разместил Plane. 2. Натянул на него текстуру. 3. Программно изменяю offset и scale для текстуры. Конечно, в данном решении есть некоторые сложности с синхронизацией скорости перемещения объектов, которые должны находиться "на полу", но в целом - мне такое решение нравится. Единственная проблема в том, что микрофризы никуда не делись =(. Буду дальше ковырять, чтобы найти чем они вызваны...
0
|
||||||
| 22.07.2019, 04:57 | |
|
Ответы с готовыми решениями:
2
Нужно разобраться,пол сайта в индексе, пол запрещенны!
|
|
298 / 260 / 108
Регистрация: 26.10.2012
Сообщений: 810
|
|
| 22.07.2019, 08:21 | |
Сообщение было отмечено Захарка как решение
Решение
Не надо добавлять полу компонент Rigidbody, это тяжелый компонент. Пол тут не физическое тело, как в Half-life с висящими ящиками. Максимум - коллайдер, и то тут он скорее всего не нужен. Rigidbody лучше двигать в FixedUpdate - в собственном потоке физики.
Rigidbody тут скорее всего и между собою почем зря взаимодействуют как физические объекты. Как следствие проще двигать через Transform.position, а не через Rigidbody.MovePosition.
1
|
|
|
135 / 130 / 60
Регистрация: 16.06.2013
Сообщений: 527
|
|
| 22.07.2019, 12:59 [ТС] | |
|
jetyb, спасибо огромное - действительно, всё так и было. Я ещё поковырялся с разными методами формирования пола, и понял, что первоначальный вариант подходит лучше всего - с ним можно будет пол собирать из разных рандомных кусочков текстур. А тот же Plain лучше использовать как общий задний план.
0
|
|
| 22.07.2019, 12:59 | |
|
Помогаю со студенческими работами здесь
3
Cлучайно генерируемый массив Hashtable, генерируемый во время компиляции Генерируемый архив делится автоматически
Post запрос, генерируемый флэш скриптом Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|