|
0 / 0 / 0
Регистрация: 06.09.2017
Сообщений: 114
|
|
Как отрисовать один спрайт в нескольких местах22.01.2019, 15:36. Показов 3121. Ответов 19
Доброго времени суток. Начал изучать Unity 3d ну и вместе с этим и разрабатывать небольшой 2D проектик игры.
По началу проблем не было, однако сейчас появились. Нужно нарисовать фон, который будет процедурно изменяться, ну или правильней сказать изменяться по ходу игры. Допустим есть спрайт ну условно метр на метр а камера занимает площадь 10х5 метров и мне надо забить всю площадь под камерой дубликатами этого спрайта, как бы размножить спрайт на всё поле не используя один единственный большёй спрайт. Как так сделать? Просто если до этого я делал что-то подобное на Game Maker'е и там это просто делается через цикл и функции draw_sprite(), то в юнити я что-то не заметил ничего подобного, а использование огромного спрайта съест много памяти.
0
|
|
| 22.01.2019, 15:36 | |
|
Ответы с готовыми решениями:
19
WPF: Один элеменент в нескольких местах. Как переместить один спрайт в направлении другого? Как вставить все иконки на сайте в один спрайт? |
|
490 / 286 / 129
Регистрация: 30.10.2018
Сообщений: 1,309
|
|
| 22.01.2019, 15:57 | |
|
SkeiTax, два способа, либо несколько картинок самому поставить (уже в юнити), либо довериться движку и поставить в спрайте Draw mode на Tiled
0
|
|
|
0 / 0 / 0
Регистрация: 06.09.2017
Сообщений: 114
|
|
| 22.01.2019, 16:18 [ТС] | |
|
Дело в том, что есть один объект и этот объект должен отрисовать несколько спрайтов в определённых местах, скажем по определённой математической модели, через цикл
Добавлено через 1 минуту Камера изменяет свой масштаб с 10х5 на 20х10 а значит и количество спрайтов увеличивается в 4 раза
0
|
|
|
490 / 286 / 129
Регистрация: 30.10.2018
Сообщений: 1,309
|
|
| 22.01.2019, 16:20 | |
|
SkeiTax, если изменения режима отображения не помогло, то только самому писать расстановку спрайтов
0
|
|
|
0 / 0 / 0
Регистрация: 06.09.2017
Сообщений: 114
|
|
| 22.01.2019, 16:39 [ТС] | |
|
Это понятно что самому, меня интересует как отрисовать несколько спрайтов или же текстурок какие функции, какие классы за это отвечают, можно ли вообще отрисовать не один спрайт на объект а 2, 4, 128 и т.д. Просто для меня спрайт это обычная картинка не более и я хочу эту картинку продублировать так, как мне нужно и в интересующих меня диапазонах пространства.
Добавлено через 1 минуту Я хочу использовать цикл чтоб отрисовать несколько однотипных картинок
0
|
|
|
490 / 286 / 129
Регистрация: 30.10.2018
Сообщений: 1,309
|
|
| 22.01.2019, 16:43 | |
|
SkeiTax, почему нельзя несколько спрайтов закинуть, по одному в один объект?
0
|
|
|
0 / 0 / 0
Регистрация: 06.09.2017
Сообщений: 114
|
|
| 22.01.2019, 16:51 [ТС] | |
|
Во-первых - это лишняя ручная работа.
Во вторых - Зачем выставлять объекты в ручную, когда это фоновая картинка которая должна быть отрисована какое-то количество раз, чтоб заполнить площадь под камерой Добавлено через 4 минуты при этом и площадь под камерой изменяется
0
|
|
|
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
|
|
| 22.01.2019, 16:56 | |
|
SkeiTax, так выставляй кодом. Посчитай размер спрайта, размер камеры и выставляй сколько надо и как надо.
0
|
|
|
0 / 0 / 0
Регистрация: 06.09.2017
Сообщений: 114
|
|
| 22.01.2019, 17:00 [ТС] | |
|
Круто, а чем? какие функции юзать то? если я за кадр циклом изменю положение этого объекта, то это же не нарисует его во всех этих местах?...
0
|
|
|
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
|
|
| 22.01.2019, 17:02 | |
|
SkeiTax, значит надо создать столько объектов, сколько нужно и разместить их.
0
|
|
|
0 / 0 / 0
Регистрация: 06.09.2017
Сообщений: 114
|
|
| 22.01.2019, 17:07 [ТС] | |
|
Вот, а я не хочу создавать лишние объекты, просто зачем мне это? мне нужно просто отрисовать одну картинку в нескольких местах, к тому же камера не статичный объект и перемещается по полю, а значит нужно создавать новые объекты там, где пустое место появилось и уничтожать те, что за пределами камеры. Но это ещё не всё, не нужно в одном и том же месте устанавливать объект каждый кадр, если он уже там стоит
Добавлено через 1 минуту В итоге получается какой-то бред, простейшая задача по отрисовке картинки в нескольких местах превращается в не оптимизированную па***у. Спрашивается зачем мне это?
0
|
|
|
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
|
|
| 22.01.2019, 17:09 | |
|
SkeiTax, что мешает один раз поставить, а потом переставлять невидимые на место нехватающих? В чём проблема выставить 150 спрайтов из одного префаба? Они же все за 1 дк отрисуются.
Добавлено через 1 минуту SkeiTax, как сказал kitsoRik, "поставить в спрайте Draw mode на Tiled" то можно тайлом заполнить один большой объект
0
|
|
|
0 / 0 / 0
Регистрация: 06.09.2017
Сообщений: 114
|
|
| 22.01.2019, 17:10 [ТС] | |
|
А изменение размеров камеры? что на счёт этого скажете? площадь под ней увеличивается, а значит нужно больше объектов и на оборот приближая она уменьшается и нужно удалять лишние объекты...
0
|
|
|
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
|
|
| 22.01.2019, 17:12 | |
|
Вариант kitsoRik работает или нет?
0
|
|
|
0 / 0 / 0
Регистрация: 06.09.2017
Сообщений: 114
|
|
| 22.01.2019, 17:14 [ТС] | |
|
Работает на некоторый масштаб
Добавлено через 1 минуту Но вот если я захочу использовать для этой сетки не один спрайт, а пару заготовок, чтоб разнообразить картинку
0
|
|
|
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
|
|
| 22.01.2019, 17:16 | |
|
SkeiTax, значит надо всего лишь расчитывать скейл под камеру и размер тайлинга. Вот и одним объектом будет.
Добавлено через 1 минуту SkeiTax, а под набор картинок можно тайлмап использовать, например, чтобы много кода не писать
0
|
|
|
0 / 0 / 0
Регистрация: 06.09.2017
Сообщений: 114
|
||
| 22.01.2019, 17:19 [ТС] | ||
0
|
||
|
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
|
|
| 22.01.2019, 17:23 | |
|
SkeiTax, тайлинг - количество повторений
Добавлено через 34 секунды Скейл - это scale в трансформе
0
|
|
|
0 / 0 / 0
Регистрация: 06.09.2017
Сообщений: 114
|
|
| 22.01.2019, 17:25 [ТС] | |
|
как я понял, чтоб отрисовка была под камеру, нужно изменять Size и его компоненты w и h, но я не пойму как к ним обратиться, в справочнике ничего не сказано на этот счёт
0
|
|
|
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
|
|
| 22.01.2019, 17:29 | |
|
https://docs.unity3d.com/Scrip... -size.html
Всё в доках написано
0
|
|
| 22.01.2019, 17:29 | |
|
Помогаю со студенческими работами здесь
20
Как удалить один спрайт из группы? pygame.sprite.Group() Как один рисунок вывести в двух местах? Canvas: при загрузке страницы в течении нескольких секунд плавно отрисовать с нуля до целого круга Как выбрать один дефайн из нескольких? Как сделать из нескольких файлов один? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|