На этом канале регулярно появляются новые видео, которые позволят тебе научиться создавать игры, или подарят новые идеи и вдохновение, если ты уже умеешь! Туториалы по созданию законченных игр, по реализации какой-то механики, обзоры новых версий и инструментов, и просто рассуждения и рассказы на касающиеся GameDev'a темы. В основном видео связанны с Unity 3D, но я стараюсь рассказать и о других альтернативах
Также код террейн генератора В ChunkRenderer в строках private const int ChunkWidth = 10; private const int ChunkHeight = 128; замените private на public. И строки Blocks[0, 0, 0] = 1; Blocks[1, 0, 0] = 1; замените на Blocks = TerrainGenerator.GenerateTerrain((int)transform.position.x, (int)transform.position.z); Код TerrainGenerator: using UnityEngine; public static class TerrainGenerator { public static int[,,] GenerateTerrain(int xOffset, int zOffset) { var result = new int[ChunkRenderer.ChunkWidth, ChunkRenderer.ChunkHeight, ChunkRenderer.ChunkWidth]; for (int x = 0; x < ChunkRenderer.ChunkWidth; x++) { for (int z = 0; z < ChunkRenderer.ChunkWidth; z++) { float height = Mathf.PerlinNoise((x + xOffset) * .2f, (z + zOffset) * .2f) * 5 + 10; for (int y = 0; y < height; y++) { result[x, y, z] = 1; } } } return result; } }
помогите я сделал точно также но без плавного перехода, и когда сцена загрузилась то у меня какая-то беда со светом, то-есть я уже даже пост процессинг отрубил но свет при переходе на сцену становиться зеленоватым и я это уже на сцене никак не могу пофиксить, и причем если я начну игру прямо с основной сцены то такого бага нету
Все получилось, спасибо автору. Много чего не понятно, потому что я не настолько искушен в программировании, да и С# осваиваю самостоятельно. Однако, кто из новичков столкнется с проблемами в данном видео (ввиде неправильной генерации блоков) попробуйте поменять лево и право, скорее всего как и у автора у вас будет такая же проблема.)
Интересно. Заметил, что у автора видео запущена игра, но открыто окно сцены, а не игры. Открыл свое окно сцены - все работает. Странный подход, ну да ладно. Видимо иначе в таком русле нельзя)
Пытался воссоздать код, перепроверил все 20 раз - не работает. Возможно нужно указать версию юнити, на которой делалось? У меня 22я разбирая все пошагово нашел что код не работает с самого начала. То есть тупо треугольник не отрисовывается.
Ролик довольно старый, но вместо атрибута executeAlways можно использовать метод onValidate, вынести логику изменения в отдельный метод и вызывать его из OnValidate и из Update. Так будет вызываться только необходимое и отпадает надобность проверять включена ли игра или нет
Ребят, у кого смена skybox происходит всего один раз, а после он остается неизменным вне зависимости от времени суток, то это потому, что один skybox приобретает свойства другого. Чтобы этого избежать: создайте 3-й skybox, который вы выставите в настройках освещения (ночной, дневной он или еще какой - не важно, его всего равно изменит скрипт на нужный, или точнее сказать, изменит его параметры), а другие два, которые вы создали для дня и для ночи, назначьте в скрипте, как и в видео. Таким образом у нас выставлен в настройках skybox, параметры которого мы изменяем на дневные или ночные через скрипт.
Что я вынес с урока: - корутина позволит тебе задерживать пчелочку на месте, а потом сделать чтобы она упала - корутина сможет спаунить с пчелки монеты - корутина заканчивается на тина, а ещё там всякие yield return ы есть, которые помогают процессы на время задерживать (на время или до выполнения какого -то условия)
Спасибо за урок, все получилось. Однако при развитии возник вопрос - как теперь созданный материал с шейдером прикрепить к terrain? При попытке сделать это получаю предупреждение с текстом "The provided Material's shader might be unsuitable to use with Terrain in the active render pipeline...". Если проигнорировать и запустить, следов не видно и все начинает очень тормозить...
3:28 зелье удачи в террарии просто увеличивает вашу удачу на протиядении некоторого времини, например чаще выпадают редкие вещи, больше монет выпадет и всякое такое(удача также помагает убитт босса).
От души, бро, единственный кто рассказал мне все по порядку, чтоб сильно не нагружать новичков. Остальные с каждым гайдом только все больше отталкивают иебя от изучения
Нажимаю "Switch to this", что-то происходит, все чудно, открываю юнити - никакого предложения перезагрузить сцену - в гите теперь старая версия, а в юнити новая как была так и осталась :/ P.S. какой-то полный бред, что для того, чтобы первый раз сделать коммит нужно закрыть проект в юнити, иначе выдаст 350 ошибок. После этого открыть проект, и снова сделать коммит, тогда сработает. Потом, если захочешь переключиться на раннюю версию, тебе нужно закрыть проект, иначе получишь ошибку "Unlink of file Failed. Should I try again?" А если вдруг ты не закрыл при этом проект и получил эту ошибку, то вернувшись в окно юнити он предложит тебе перезагрузить сцену и откатит все изменения до той версии что ты выбрал, вроде бы победа, ура, вот только в истории гита проекта ты останешься на той же версии где был, ты же получил ошибку, а значит ничего не должно было происходить, а если все сработало, его это уже не парит, отдыхай малыха. Короче резюмируя - если вы как и я новичек, который думал использовать простенькую программу контроля версий для себя без мороки чтобы вдруг что было куда откатится, НИ В КОЕМ СЛУЧАЕ НЕ КАЧАЙТЕ СРАНЫЙ ГИТ, я чтобы определить причины вышеописанных проблем 3 дня потратил, поберегите нервы
Интересная задумка, но проще и красивее по стандарту использовать цельные текстуры для цельных блоков, но просто перерисовать их в соответствии с желаемым масштабом. Например, 4х4 текстура и блоки в 4 раза меньше в коде (хотя проще размер персонажа увеличить в 4 раза). Так и вычислений на видеокарту меньше ложится, и код везде понятнее, и боковая текстура травы адекватнее выглядит, и видеопамяти меньше занято. В идеале вообще наслайсить текстуры в Texture2DArray, чтобы не вычислять uv каждой текстуры, а просто передавать индекс текстуры через uv2. В шейдере благодаря встроенным функциям Unity это требует замены лишь нескольких строк кода, зато удобства привносит - хоть отбавляй.