Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/15: Рейтинг темы: голосов - 15, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 06.09.2017
Сообщений: 114

Как отрисовать один спрайт в нескольких местах

22.01.2019, 15:36. Показов 3121. Ответов 19

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Начал изучать Unity 3d ну и вместе с этим и разрабатывать небольшой 2D проектик игры.
По началу проблем не было, однако сейчас появились. Нужно нарисовать фон, который будет процедурно изменяться,
ну или правильней сказать изменяться по ходу игры. Допустим есть спрайт ну условно метр на метр а камера занимает
площадь 10х5 метров и мне надо забить всю площадь под камерой дубликатами этого спрайта, как бы размножить
спрайт на всё поле не используя один единственный большёй спрайт. Как так сделать? Просто если до этого я делал
что-то подобное на Game Maker'е и там это просто делается через цикл и функции draw_sprite(), то в юнити я что-то
не заметил ничего подобного, а использование огромного спрайта съест много памяти.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.01.2019, 15:36
Ответы с готовыми решениями:

WPF: Один элеменент в нескольких местах.
Интересует, как можно один раз создать элемент и потом добавлять его в разные окна или в разные места одного окна? При этом, чтобы, если...

Как переместить один спрайт в направлении другого?
Есть два квадрата. Как прибавлять x и y так, чтобы первый квадрат двигался ко второму (по нажатию на мышь)? Есть ответ тут cut но я...

Как вставить все иконки на сайте в один спрайт?
Как вставить все иконки на сайте в один спрайт, это его делать по размерам сайта получается?, плюс иконки в каталоге товаров, они же ...

19
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
 Аватар для Cr0c
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
 Аватар для Cr0c
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
 Аватар для Cr0c
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
 Аватар для Cr0c
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
 Аватар для Cr0c
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  [ТС]
SkeiTax, значит надо всего лишь рассчитывать скейл под камеру и размер тайлинга. Вот и одним объектом будет.
Как изменить Скейл и что вы имеете под размер Тайлинга?
0
 Аватар для Cr0c
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
 Аватар для Cr0c
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
22.01.2019, 17:29
https://docs.unity3d.com/Scrip... -size.html
Всё в доках написано
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.01.2019, 17:29
Помогаю со студенческими работами здесь

Как удалить один спрайт из группы? pygame.sprite.Group()
all_sprites = pygame.sprite.Group() В all_sprites добавлено кучу Surface'ов. Как мне удалить какой-то определенный, используя...

Как один рисунок вывести в двух местах?
Здравствуйте. У меня есть вопрос относительно вывода изображений на HTML-страницу. Я знаю, что есть такой способ: <div...

Canvas: при загрузке страницы в течении нескольких секунд плавно отрисовать с нуля до целого круга
Всем привет, у меня есть круг сделанный с помощью Canvas и сейчас он статичный.Хочу сделать некое подобие круговой загрузки из него, т.е...

Как выбрать один дефайн из нескольких?
В настоящий момент программа средствами условной компиляции может быть настроена на применение одного из двух кварцев 64MHz или 66MHz. ...

Как сделать из нескольких файлов один?
Есть несколько файлов, надо чтобы они хранились одним файлом и программа их все прочитать. Т.е. файлы текст.тхт, имага.гиф, имага2.гиф......


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
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(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru