🖽 Всё про Tilemaps в Unity 3D [часть 2]
ฝัง
- เผยแพร่เมื่อ 17 ต.ค. 2019
- Tilemaps - редактор тайловых карт - относительно недавняя возможность Unity, которая позволяет сэкономить немало времени при level-дизайне. Оно поможет, если вы создаёте обычный уровень на прямоугольной карте, изометрический, или даже шестиугольный. Это вторая часть видео, в ней я расскажу про шестиугольные тайлы, и про вещи которые можно делать с Tilemap из скриптов в Unity
Содержание:
Шестиугольные карты - 0:19
Скрипты - 6:19
Первая часть: • 🖽 Всё про Tilemaps в U...
Третья часть: • 🖽 Всё про Tilemaps в U...
Ссылка на статью про хексы: www.redblobgames.com/grids/he...
На этом канале регулярно появляются новые видео, которые позволят тебе научиться создавать игры, или подарят новые идеи и вдохновение, если ты уже умеешь. Подписывайся!
Остались какие-то вопросы, пожелания, или идеи для других видео? Смело пиши в комментарии под видео
Наш Discord - / discord
отличное видео, только в Vector3 clickWorld = mainCamera.ScreenToWorldPoint(Input.mousePosition); у меня была проблема из-за того что в векторе3 учитывалась позиция камеры и хексы спамились в слепой зоне, если у кого-то такая же проблема используйте Vector2 clickWorld = mainCamera.ScreenToWorldPoint(Input.mousePosition);
Пока самый годный канал про Unity
Вы супер!!!! Спасибо от души!!!! Очень полезная информация!!!
Как же приятно слушать действительно разбирающегося человека!
Слов нет...Браво!!Мне ужас как понравились ваши видео!!!Ни где нет инфо за 20 или 15 минут минимум за 1 час!Спасибо!За 1 час нахватался лайфхаков и многому другому!Уважаю и желаю удачи в подписчиках
Шикарный материал, очень рад, что нашел. Спасибо!
очень информативные видео, было бы круто увидеть что-нибудь на тему создания распространенных материалов и эффектов с помощью shader graph и visual effect graph
Спасибо. У меня есть парочка видео про vfx graph, и одно про shader, хотя там не совсем материал скорее эффект. А штуки конечно очень мощные, достойные не одного видео
Поздравляю с 3к подписчиками
Спасибо огромное за видеоуроки!
Ты просто неееечтооо, такой массив полезной инфы просто сносит крышу
Шикарный материал!!!!! Сделайте пожалуйста видео про автоматическую генерацию тайлов в карты и про взаимодействие героя с картой коллайдеров.
Давно ждал такой урок
Подписка! Спасибо тебе большое за урок
Оч круто, спасибо
если бы начал объяснять про скрипты отдельно, то совсем супер. Очень мало информации про скрипты, многие оценят, главное не торопись, пусть видео затянется еще на 5 мин, но будет более понятней
Случайно наткнулся на канал просто в ютубе. И оказывается это ты и автор той статьи которую я раз 200 перечитывал и вчитывался
Все равно я дождусь того дня когда выйдет видео у тебя на канале про игру "trid" Ну я тебе писал в Вконтакте. Ты лучший продолжай в том же духе)))
Постараюсь сделать, идей и тем много, а времени мало) Спасибо большое!
У меня как всегда. Только задал вопрос и сразу сам все решил :D
Спасибо за то что ты делаешь. Время идет и канал становится все лучше) вообщем то, что материалы, что подача - аналогов на просторах рунета нет.
Столкнулся сейчас с задачей и не могу найти решение, может быть тебе было бы интересно сделать видео.
Игра для двух игроков на одном дисплее и возможностью асинхронной загрузки сцен. Так что один игрок может быть только в начале игры, а другой в середине. Вроде бы ситуация которая должна встречаться не так редко в геймдеве, но толковых руководств не нашел.
Пожалуйста)
Идея видео про сплит-скрин всё выше поднимается в списке видео которые хочу сделать, про загрузку нескольких сцен вопрос интересный, надо подумать как бы это лучше сделать. Спасибо за идею
@@EmeraldPowder Не за что! Было бы очень здорово увидеть изящное решение от вас. Я пока пришел только к тому что бы перегружать объекты в сцене, а не сами сцены. Но это костыль подходящий далеко не везде.
годно, круто
годный туториал
Продолжайте по тайлам пожалуйста!))
Подскажите пожалуйста, почему как в видео, на 0:23 ,выбирая хексагон, у меня появляется грид и тайлмап с обычной сеткой (клеткой)? Выбирая этот грид, справа инспектор показывает Cell Layout: Hexagon (вроде как надо). Но выглядит почему он как обычная сетка? У снимающего при выборе Grid в иерархии проекта сразу отображается сетка сотами. Версия 2019.3.1f1
UPD: Разобрался. Причина была в том, что при создании проекта выбрал изначально "3d with Extras", а потом, создав проект "2d" всё получилось как надо.
Сделай видео про сохранение сцены , я искал много времени сохранение сцены,но так и не нашел , если сделаешь видео ,то перманентный лайк.
Сохранение имеешь ввиду чтобы между запусками игры объекты на своём месте оставались? Идея хорошая, может быть сделаюю
@@EmeraldPowder Да ,но будет ли работать если заспавнить объект и после сохранить. Я делаю строительный симулятор и для меня это острая тема. Спасибо огромное за ответ и возможное видео.
Спасибо! Очень познавательно. Есть вопрос: У меня на 9:40 выходит ошибка при нажатии мышки NullReferenceException: Object reference not set to an instance of an object
TilemapClicker.Update () (at Assets/Scripts/TilemapClicker.cs:23). Какую-то ссылку я не установил на экземпляр какого-то обьекта, подскажите, пожалуйста! Несколько раз всё перепроверил... Спасибо ребятам из канала на дискорде, решено!!!
А не подскажите ли вы, как преобразовать мировые координаты в координаты гексовой карты без использования камеры? Мне нужно, что бы игровой объект появился в конкретных точках, но эти объекты свавмятся относительно мировых координат и съезжают.
Делаю редактор, и у меня когда я нажимаю в игре всё время ставится на одно место - в центр камеры, как это исправить?
Только что исправил, надо было поставить camera mode: Ortographic
Что-то не думал и про тайлы. Делаю 3Д проект сейчас с хексами и просто через массивы храню их координаты и прочую инфу для генерации карты или замены хексов. Не знаю стоит ли переключаться на тайлы, если как бы с массивами всё тоже самое можно сделать? .
Если уже всё работает и проблем нет - то смысла переделывать думаю нет. Эта система для того и создана, чтобы те кто не могут сходу своё написать, или время не хотят тратить, могли воспользоваться
Единственное - если на каждом объекте висят коллайдеры и клики по ним мышкой (если они вообще в игре используются) обрабатываются через Raycast или OnPointerDown, то если поменять это на формулу из статьи или tilemap может побыстрее работать начать. Но если ничего ни у кого не тормозит, то опять же, смысла нет
Вопрос по поводу смены всех тайлов (например набор зима/лето) в видео предложено создать public переменную и руками перетаскивать в каждую тайл1, тайл2. А если таких тайлов 1000, в 4-х версиях и нужно скажем road_summer поменять на road_winter, как быть?
Поперетаскивать скорее всего все равно придется, можно создать массив тайлов для каждого времени года и перетащить туда все тайлы. В принципе можно создать просто массив и засунуть туда все тайлы, из скрипта насколько я помню можно получить имя обьекта, и по нему уже судить, на summer или winter оно заканчивается. Но как по мне это не очень надёжное решение, если кто-то что-то переименует или не так назовет
@@EmeraldPowder Спасибо за ответ, а ещё один вопрос, обязательно ли делать спрайты для тайлов в каждой ориентации, или можно сделать один и его как-то поворачивать?
У меня персонаж телепортируется к камере и после не передвигается.Я несколько раз проверял скрипт но у меня точно также как и на видео.И когда начинаю играть у меня не видно игрока хотя на сцене его видно.Помогите пожалуйста!!! Первая ошибка исправлена но персонаж передвигается не в центр тайла а на месте соединений тайлов но персонажа всё равно не видно.
У меня в первой части промелькнула двухсекундная вставка, что нужно в настройках проекта поставить, чтобы тайлы и персонаж сортировались корректно друг с другом, слишком мало ей внимания уделил
th-cam.com/video/6-jlx2QVTuY/w-d-xo.html
Ну, и конечно как я на видео ставил в настройках самой тайлмапы Individual поставить. А чтобы персонаж вставал в центр, нужно в sprite editor спрайта персонажа зайти, и перетащить вниз, ему в ноги, синий кружок, который pivot
Спасибо что помог!!!! Большое спасибо!!!!
может вопрос не в тему, но как так сделать, чтобы как у Вас в Visual Studio появлялись такое большое количество подсказок и вариантов что можно прописать? Буду благодарна за помощь
В новой visual studio вроде добавили эту фичу, вот тут написано про то как её включить stackoverflow.com/questions/16149659/is-it-possible-for-intellisense-to-search-for-classes-in-unimported-namespaces-l
Можно также поставить ReSharper, он добавит кучу полезных функций, в том числе автодополнение из всех библиотек. А я просто использую Jetbrains Rider вместо Visual Studio
@@EmeraldPowder Спасибо огромное за такой развернутый ответ))
@@EmeraldPowder Да, было бы здорово по-подробнее по поводу создания игры с возможностью редактирования для игрока, по типу Майнкрафта, Фореста или Симсов, желательно и в 2д и в 3д)))
Очень интерестно как сделать движение извометрического персонажа, как на видео, только не на 4-8сторон, а на 16, могу предоставить нарендеренного персонажа, на 16 сторон, айдл, хотьба, атака
На 16 уже если спрайтами анимироваными делать то совсем много спрайтов понадобится, места занимать будут, да и рендерить или рисовать их ещё долго. Так что тут уже можно просто 3д модель сделать, и вертеть как угодно
@@EmeraldPowder примеры рендера 2д в изометрии на 16 сторон clash royal и все его остальные копии, кто-то делает рендер на 9 сторон и остальные отражает, может дать телегу или почту я тебе пришлю персонажей
Блин чувак, ты делал лабиринт прикольный 3D но большой, (взяли для проекта в школе) не подсажешь как уменьшить его
7:48 он вручную выбирает тайл. А как можно из кода это сделать? Ну, в смысле чтобы в коде было название тайла которым хочешь заменить существующий? Чет пробую, ничего не получается...
Если именно по названию нужно - то папочка Resources и функция Resources.Load. Но лучше именно сделать поле в инспекторе и туда перетаскивать, или массив, если нужно несколько тайлов
За видео респект. Но есть вопрос. Все работает кроме одного. Тайлы по клику отрисовываются только в окне редактора а в окне Game нет. Не понимаю почему. В окне Game отображаются только те тайлы которые я рисую до запуска. Не понимаю в чем проблема.
В настройках Camera - Clipping Planes - Near установить значение 0.
@@katyakrysko2151 спасибо помог и я не тот верхний чел я только что посмотрел это видео
всё хорошо, только шрифт по больше сделай
идея такая, сервер присылает матрицу поля, либо все юзверы скачивают некий тхт, в игре сервер говорит надо загрузить такую карту, игра в 3д, тайлмап на пол, можно ли построить в игре по матрице такой пол и дать ему коллайдер?
Да, если это просто однородный пол то вообще без проблем, двойным циклом пройти по этому txt и задавать через SetTile тайл в зависимости от символа. Тайлмапу можно повернуть, я в третей части видео кажется так делал, чтобы она была горизонтально в 3д пространстве ориентирована
Дай анонс хоть, а то волнуемся )))
Так вот как создавался Project Zomboid!
Второй тайлсет не имеет проблем. те "3д" тайлы сделаны для низа. То есть у тебя есть плоские тайлы ты ими заполняешь и рисуешь как надо, а все нижние тайлы заменяешь на похожий но "3д", и это создает впечатление объемности всей карты. Не нужно тайлы "нижней границы мира" пытаться поставить в центр..
у меня игрок не встаёт в центр ячейки, а встаёт сбоку
9:33 То я просто сожалею
Удалил камеру и создал новую и все заработало
Про коллайдеры в изометрии забыл рассказать
Про изометрию я вроде в первой части рассказывал th-cam.com/video/6-jlx2QVTuY/w-d-xo.html
А про шестиугольные коллайдеры тут особо не говорил, да, но там по сути всё тоже самое что и в обычных изометрических
8:00
"Если бы она была у нас квадратная, то тоже лучше вызвать этот метод" (map.WorldToCell)
А если изометрическая?)
Лучше в любом случае его вызывать. Просто если квадратная есть соблазн просто округлить мировые координаты, и получим координаты тайла. Но я всё равно советую звать WorldToCell, т.к. она может быть сдвинута, размер ячеек может быть не 1, и это всё ещё может меняться по ходу разработки. А если хексы или изометрическая то просто округлить всё равно не получится, и придётся вызывать метод
@@EmeraldPowder Спасибо за то что отвечаешь и за видео вообще!
Как раз искал уроки не нубоуровня
1:40 666 :D
Там просто 2/3 должно быть, согласно расчётам, так что так получилось)
"...но почему то всеравно кривовато отображается..." и в юнити так часто бывает.(
а как удалять?
SetTile(null)
@@EmeraldPowder спасибо
Привет. Нашёл интересный контент(видеоматериал) связанный с шейдерами, но он полностью на английском языке и, я мог бы помучиться и перевести для себя сам, но всё же хочу увидеть его в русской озвучке. Твоих зрителей это, я думаю, заинтересует тоже. То есть это как бы взаимная помощь: я тебе идею контента, а ты (если заинтересовался) запилишь видос по этому контенту. Отпишись, пожалуйста.
Идеям я всегда открыт, если что-то интересное то конечно скидывай
Дам небольшой совет
Вместо того чтобы создавать ссылку на камеру
Можна просто написать Camera.main
Да, работать будет точно так же. Но в документации юнити рекомендовано не звать очень часто Camera.main, так как это штука медленная: docs.unity3d.com/ScriptReference/Camera-main.html
У меня зовётся не так часто, только по клику мышки. Но вдруг кто возьмёт скрипт и переделает например, на вызов этого метода каждый Update, чтобы понять на какой тайл мышка наведена, так что чтобы плохому людей не учить создал ссылку)