Это копия, сохраненная 7 февраля 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Прошлый тред: https://2ch.hk/gd/res/659486.html (М)
Официальный сайт: https://unity3d.com/ru
Документация: https://docs.unity3d.com/ru/current/Manual/index.html
Уроки: https://unity3d.com/ru/learn/tutorials
Форум: https://forum.unity3d.com/
Магазин ассетов: https://unity3d.com/ru/asset-store
UnityWiki: http://wiki.unity3d.com/index.php/Main_Page
На Unity сделано много замечательных игр - Rust, Блицкриг 3, Pillars of Eternity, Tyranny, Kerbal Space Program и многие другие. Главным преимуществом Unity перед другими движками является его простота для одиночной разработки. Не нужно иметь целую компанию девелоперов, чтобы сделать хорошую игру. Если ты один или имеешь небольшую команду и хочешь сделать хорошую игру без претензий на ААА, то Unity станет лучшим выбором. Тем не менее, даже крупные корпорации зачастую выбирают для своих игр именно Unity.
FAQ
- Какие у Unity сильные стороны?
- Простота разработки, удобный инструментарий, кроссплатформенность, богатая документация, огромное сообщество.
- Какие у Unity слабые стороны?
- Сложность в создании фотореалистичной графики. Для графики "как в Crysis" рекомендуется взять другой движок. Хотя Unity вполне способен выдавать не уступающую любым другим движкам картинку, это требует определённого навыка от разработчика.
- На каких языках я могу писать скрипты для Unity?
- На выбор два языка - C# и UnityScript. UnityScript - это что-то среднее между JavaScript и ActionScript. Выбирай язык по своему вкусу, они оба вполне удобны, но помни, что большинство примеров написано на C#.
- Для каких жанров подходит Unity?
- Для абсолютно любых! Жанр ограничивается лишь фантазией разработчика (и его умением писать скрипты, разумеется). Можно создавать и РПГ, и стратегии, и слэшеры. Можно делать VR-проекты или Minecraft-подобные песочницы.
- На каких платформах работают созданные с помощью Unity игры?
- Windows, Linux, MacOS, SteamOS, Android, iOS, Windows Phone, PlayStation4, Xbox One, WebGL, Oculus Rift и многие другие. Полный список можно найти на официальном сайте. Таким образом, игры Unity работают на десктопах, на смартфонах, планшетах, приставках, в браузерах, VR-очках и некоторых других системах.
- Часто вижу скриншоты с красивой природой на Unity. Как такое создать?
- Очень просто! В Unity встроены удобные инструменты для создания террейна и SpeedTree для создания деревьев и готовая реализация ветра - не нужно ничего писать или скачивать и подключать плагины - ландшафт в Unity создаётся в пару кликов.
- Что такое стартер киты?
- Starter Kit - это набор скриптов и префабов, а зачастую и графических элементов для игры. Они призваны облегчить разработку игры определённого жанра и как правило разбиты по жанрам (Action-RPG Starter Kit, RTS Starter Kit, 3D Shooter Starter Kit, Space Game Starter Kit, VR Starter Kit и так далее). Также бывают стартер киты различных игровых элементов, не связанных с геймплеем (Nature Starter Kit с дополнительными природными объектами, Medieval Starter Kit со средневековыми объектами и так далее). По сути, стартер киты выполняют в разработке игры ту же роль, что и фреймворки в программировании. Однако стоит отметить, что использование геймплейного стартер кита принуждает разработчика изучать большое количество чужого кода и чужой структуры для внесения своих изменений и полноценного использования. В связи с этим большинство разработчиков предпочитает писать почти всё с нуля, получая полное понимание работы своей игры. Новичкам крайне не рекомендуется начинать знакомство с Unity со стартер китов.
- Что нужно уметь делать для создания полноценной игры, кроме Unity-разработки?
- Кроме непосредственной разработки игры на Unity, требуется также уметь создавать 3D модели (3ds Max, Blender, ZBrush), 2D рисунки (GraphicsGale, Aseprite, Piskel), текстуры (Substance Designer, NeoTextureEdit), музыку (FruityLoops, Ableton). Не обязательно учить это всё - например, в 2D играх не нужны 3D модели, а музыка необходима далеко не всегда. Также вы можете скачивать элементы для ваших игр на бесплатных сайтах. Если у вас есть деньги, то все необходимые элементы можно заказать у фрилансеров на https://www.fl.ru/ (русскоязычный) или https://www.upwork.com/ (англоязычный).
- Бесплатен ли Unity?
- Можно свободно скачивать, использовать и продавать готовые игры на Unity с лицензией Personal - это абсолютно бесплатно! Но на бесплатной версии при запуске игры будет появляться короткий стартовый ролик "Made with Unity", а также ваши доходы ограничены 100 000 долларов в год. Для снятия этих ограничений нужно приобретать платные версии лицензий Unity. В конечном итоге, платные варианты используются лишь крупными компаниями с огромными доходами, тогда как обычные разработчики в большинстве своём используют бесплатную Personal лицензию.
Обучение
- Язык
Итак, с чего же начать изучение этого замечательного движка? Прежде всего, с изучения языка. Самые основы C# можно узнать на интерактивных курсах здесь:
https://dotnetcademy.net/CSharp/Beginner
или в текстовом туториале здесь:
https://www.tutorialspoint.com/csharp/csharp_quick_guide.htm
Для изучения основ UnityScript выучи вначале основы JavaScript:
https://learn.javascript.ru/
Помни, что далеко не все элементы JS есть в US. Чтобы понять, в чём разница между этими двумя языками, прочти эту статью:
http://wiki.unity3d.com/index.php/UnityScript_versus_JavaScript
Помни, что тебе достаточно одного языка из двух и учить их оба одновременно не нужно.
- Движок
Если ты уже умеешь использовать язык, то можно приступать непосредственно к изучению движка. Крайне рекомендется купить/скачать книгу Unity in action (Unity в действии). В ней подробно описываются множество возможностей движка.
http://www.ozon.ru/context/detail/id/34792570/
Также посмотри на видеотуториалы с официального сайта:
https://unity3d.com/learn/tutorials
Если же ты не любишь видеотуториалы (или не понимаешь разговорный английский) и предпочитаешь текст, то посмотри здесь:
http://catlikecoding.com/unity/tutorials/
Тут крайне подробно описан процесс разработки и приведены примеры кода. Эти туториалы универсальны и описывают множество различных частей игры, от работы с текстурами до генерации карты мира. А вот в этом туториале описыватся разработка двухмерной игры с видом сверху:
https://www.raywenderlich.com/61532/unity-2d-tutorial-getting-started
Это будет полезно, даже если ты планируешь разрабатывать трёхмерную игру. Ни в коем случае нельзя обойти вниманием этот сборник туториалов:
https://noobtuts.com/unity
В нём подробно описывается процесс пошагового создания разных игр - двухмерных и трёхмерных.
Разумеется, все эти туториалы охватывают лишь часть возможностей Unity. Самый надёжный способ выучить Unity - это начать делать игру и по мере разработки гуглить непонятные моменты.
Шапка: http://www.writeurl.com/publish/zukmrogwv45ptyuseyol
Реализовал что объект передвигается по поверхности при нажатии клавиши мыши на область NavMesh
Чет не врубаюсь как реализовать момент с использованием звука. Точнее не понятно что отслеживать компонент Transform и его изменения? Или через компонент RigedBody обращаться?
Подскажите где поискать инфу. Читал документацию, не помогло, гугл тоже не помог (возможно гуглю не правильно)
Заранее благодарю анонов
Не ругайте если есть не точности в описании НьюфагВUnity
Зачем тебе трансформ и риджидбоди? Если ты гоняешь объект по навмешу, то очевидно что ты делаешь это через агента.
Вот им и пользуйся. Там есть свойства isStopped, pathStatus, velocity, выбирай любое.
И вообще, если ты двигаешь через через метод SetDestination() или просто свойство destination, то там и проигрывай свой первый звук, а потом чекай когда он остановится.
> Там есть свойства isStopped, pathStatus, velocity, выбирай любое
Хотя, наверное, лучше всего использовать remainingDistance.
Благодарю. Все получилось
моё видео приложили к шапке, дохуя приятно
>Shader Graph
Попробовал использовать после Shader Amplifier и это пздц сырой продукт.
Советую купить или спиратить амплифаер, даже если в нем не будет последних фич, то для начала освоения шейдеров это будет 10/10 инструмент, все наглядно, сайт с докой огромный.
>Shuriken
Можешь потратить час и потыкать все кнопки, их там не много.
>VFX, эта штука уже сложнее и на ней делаются эффекты и посложнее, предложил бы понять как шурикен работает и потом лезть в vfx.
Можно скрыть потолок, например, что бы делать пол, но тыкать по одному квадратику или даже копипастить скопировав несколько, слишком долго,
нет ли более быстрых методов?
Есть куча платных решений, а вообще все (включая большие студии) делают фундамент уровня через BSP какое-нибудь (аналог в юнити ProBuilder, но все же это не BSP, а меш, но тоже норм), а потом ручками раскидывают пропсы (бочки и тд).
Если создаешь весь уровень кусками, то делай куски больше.
Со слоями колдуй
unitylist.com
Молодец, продолжай. Раньше сложные эффекты на шурикене тоже делали.
Как я понял VFX позволяет управлять поведением каждой партиклы, но самый смех в том, что в шурикене это тоже можно делать через код.
Т.е. мне кажется у VFX-а просто есть какие-то надстройки, а у шурикена это сейчас по проще сделано.
>>88071
Вообще через кастомный Render Pipeline можно сделать честный рейтрейс, но тут все проще
это обычные модели, я их в probuilder лепил
Если использовать DOTS а это пиздец или Unity.Jobs работает только со структурами и нельзя использовать статики то да.
Если использовать стандартный Thread - тоже норм, многие используют, но нужно самому городить интерфейс обработки и костылить.
Как всегда, только математику можно выносить, а создание объектов там только в главном потоке, да?
Да, создание объектов, изменения свойств Transform и GameObejct тоже.
Но ты можешь спокойно менять свои поля и свойства и надеяться, что не словишь баги
В глаза долблюсь, в шапке уже все есть.
прогай абсолютно прямой бесконечный левел, а потом закругляй всё шейдером как этот чурикан делает
https://www.youtube.com/watch?v=DI85RGz8VkM
Я именно про физику сего действа. Как делать подъем по горке или спуск? Физика или какой-нибудь луч пускать. Я, конечно, все равно придумаю какую-нибудь ебалу, но это уже наверняка делали сто раз и есть хороший способ.
Я про это и спрашиваю, физикой это делается или как. Мне кажется по-другому
https://poki.com/ru/g/subway-surfers#
как тебе удобней. мне проще с физикой ебаться, я бы на ней делал. правильного решения нет
>A compliance review of information in our systems indicates that you are located in an embargoed country, where we are not legally able to do business. For this reason we have deprecated your assets from the Asset Store and have placed a hold on payments.
>If you are not located in a country or region impacted by sanctions by the United States, please contact me to confirm your identity and location and the hold can be lifted. Additional documentation will be required.
Я, конечно, не сильно много получал, но эти 10-20баксов в месяц иногда спасали. Более того, хотел еще залить прау штук. Сначала, я хотел прикинуться беларуссом, но они тоже вне закона. Может казахом? На сколько жесткие пруфы они будут спрашивать?
Нет, курсы это вода и они дают 20% инфы.
Лучше всего поставить себе простую цель и просто начать делать, гуглить как сделать КОНКРЕТНЫЕ идеи.
Еще плюс простой идеи - что все уже сделано за тебя сори, если демотиватор и ты можешь смотреть как это сделано. Это в разы ускореяет освоение как c#, так и юнете, если ты не тупой конечно. Первые 3-6 месяцев будут самые сложные если ты прям с нуля вкатываешь.
>>88920
Я как человек неумеющий в шейдеры смог вкатиться за 2-3 вечера. Там на любую ножу жмешь ПКМ - потом Doccumentation, и там полное описание этой ноды. + на их же сайте есть примеры шейдеров.
Самое сложное понять как код самих шейдеров работает, например для меня небыло очевидно что Fram метод отрабатывает на каждый пиксель экрана и эти tex2D(sampler_1, huyna_1) - по факту отрабатывает 1 раз, а внутри кода возвращает конкретный пиксель.
>>88923
Лол печаль, я бы постарался скрыть использование ассета
>Лол печаль, я бы постарался скрыть использование ассета
В смысле? Я продаю свои ассеты в юнити сторе.
Дело в том, что у меня есть ui менеджер и он грузится в самой первой сцене. Ивент, который мне нужно словить, грузится в другой сцене. Поэтому использовать подписку на ивент в Start методе ui менеджера не вариант.
Так вообще делают? Это не сильно влияет на производительность?
Ах, блин. Это тоже не вариант. Update создает кучу вызовов метода, который я реализую в ответ на ивент
Спасибо! Помогло
>A compliance review of information in our systems indicates that you are located in an embargoed country, where we are not legally able to do business. For this reason we have deprecated your assets from the Asset Store and have placed a hold on payments.
Что это за хуйня такая? Они же с правительством воевали, на какждого конкретно санкции выписывают, нищеброды из народа то тут причем
Сори, думал что ты пользуешься "санкционным" продуктом и под "скрыть" я имел ввиду покупку лицензии, указать в своем лицензионном соглашении, но использовать настолько "плавно" чтобы это не бросалось в глаза.
То что тебе запрещают выкладывать твой ассет звучит странно, думаю в течении недели-двух они обдумают это правило еще раз и сделают все нормально или нет, юнитеки стали пидорами года 3 назад
я просто вообще не шарю за эти ваши шейдеры. Нужно понять хотя бы как это работет, а сразу готовые туториалы смотреть "как сделать вещьнейм" не очень информативно
Теперь после сохранения кода иногда у меня вылетает редактор (без ошибки), че за гавно?
Нужен пиксель-арт художник для мобильной игры.
В чем соль. Игра в 40% готовности, есть концепт геймплея, приблизительно готовый сеттинг. Тащемта, уже есть готовый пре-альфа билд с начальными механиками.
Отвечая на стартовые вопросы заранее.
1. Скока платят? Нисколько. Работа на чистом энтузиазме и желании быть причастным к проекту, который увидит свет. (По факту оплата будет по итогам монетизации проекта)
2. Что нужно от тебя? [/b ]Желателен опыт в пиксель арте, но если не умеешь, но хочешь попробовать - добро. Желательно(х2) понимать анимации. Работы не мало, но пиксель сведен к минимуму - в основном лишь персонажи и чуть сверх того.
Так что, если ты имеешь пару часиков свободного времени в день и желание проявить себя творчески, то добро пожаловать!
TG: @fileom
Во имя энтузиазма конечно!
Зато можно без опыта и с выхлопом по итогу выхода игры. Демократичненько
Я тоже нихуя не понял, причем тут страна в целом. Никому больше такая штука не приходила?
Ну один проект на коленке довольно не мало собрал
Поставь ссылку в этом объекте на текст, и увеличивай когда надо
Можно инспектор залочить. Но да, туповато. Ещё что нельзя переназывать варианты префабов жаль, что поделаешь.
Не знаю о чем ты, возьми и растаскай окошки как тебе удобно
Можно, конечно. Каждая пара точек - это считай вектор. Итого у тебя три вектора, для каждой пары векторов вызываешь vector3.angle и получаешь значение угла между векторами.
Отличное вложение. Но я бы на твоем месте купил WinRAR.
> на каком-то непонятном нерусском языке
Есть понятный посконный гречнево-лапотный русский язык. А есть общепринятый язык учёных, технарей, гуманитариев, естественнонаучников, в том числе язык кодеров, в том числе язык геймдеволоперов. И если ты считаешь себя геймдевелопером, то рано или поздно за язык придётся взяться. Иначе ты всегда будешь вторым.
>А есть общепринятый язык учёных, технарей, гуманитариев, естественнонаучников, в том числе язык кодеров, в том числе язык геймдеволоперов
латынь что ли?
про зельеваренье забыл
слабак, я вот unity in action 40% прочитал
Много игор сделал, холоп англосаксонский?
Повесить на болванчик ригибоди https://docs.unity3d.com/Manual/CollidersOverview.html
таблица в Collision action matrix
Это то, что я искал - от души родной!
Спасибо друг брат амиго нига, ты лучший из всех кто тут есть!
Сколько не пытался, не получается. Скачал набор кистей бесплатных, всё равно не смог сделать адекватно.
828x1792, 0:08
Если сработаемся, будут еще задания по этой игре
На ютубе есть ролик - cut mesh, там уже готовый скрипт, но только его нужно настроить под мобильные
> Нужно разрезать 3D меш на мобильных, готов заплатить 6-7 тысяч рублей.
> но только его нужно настроить под мобильные
Ну и нахуй ты напиздел прямо ща?
Говори честно и четко - нужно сделать полностью контроллер для тачскрина. У тебя он не сделал совсем. Плюс физику, плюс генератор резанных мешей по проекциям.
Охуеть работка на 100 баксов, лол.
Но идея хорошая, фрутнинзя в триде, да? Ух заебись, спиздил, спасибо. Уже ушел делать.
Реализовал за 4 часа нормальный мэш по твоему видосу. Теперь игру по хуйне остается сделать, даже не хочу продавать.
В чем вообще смысл твоего поста, ты же предлагаешь базовую механику тебе напрогать. Самое сложное.
>Охуеть работка на 100 баксов, лол.
Я видел макак, которые за косарь рублей подобное готовы сделать, в основном это школьники и студенты первокуры
мимо
Ну тут у тебя джва модуля всего лишь, можешь сам сделать.
1. Контроллер тачскрина, который может выдавать линии
2. Хуйня для резки мешей. Хуйня для резки мешей наверняка принимает плоскость как аргумент резки.
0. Говнокод для создания из линии плоскость из двух треуглов.
В итоге тебе нужно всеголишь построить плоскость правильно, чтобы она, я хз, принимала направления камеры? Как-то так, да. Потом в этой плоскости нужно вычислить фигуру которая ближе всего к камере и имеет больше всего площади пересечения с плоскостью. Собственно, всё.
1920x1080, 0:14
Как убрать такое яркое свечение
>яркое свечение
то есть, отражение? Использовал glass visor в substance painter, может, кто знает
Да
http://cgcookie.com/blender/
Рейтаните. Проходил кто? Это курсы по 3д анимациям эффектам и тд для блендера.
И там много других курсов. Напрягает тока ценник - 30 баксов в месяц. В принципе терпимо, но немного дороговато. Курс чисто по юнити квпил за 10 баксов на юдеве, но он мало что покрыл из нужного для соло-геймдева.
Там нельзя качать...
Не знаю. Мб и попробую триал.
Мб лучше куплю за 10 баксов что-то на юдеми. Но думаю там будет хуже. Но фиг знает, хотя бы на юдеми есть отзывы.
У блендера обучение продается прямо на оф. сайте, надо только подписку оформить рублей за 500.
Охуенно
Нашел там только бесплатные пару уроков на ютубе. Ну и документация. Но не зная с чего начать все эти огромные документации юслесс и легче вкатиться через видеоуроки с примерами.
Может лучше сперва сделать хуйню типа клон-флеппи-бирд, а уже потом лезть в блендер, но хотелось сразу что-то более интересное. Хотя бы создавать свои объекты для мира. Ну и анимации и партикал эффектс.
Мимо говно-вкатывальщик
Я правильно понял что опенворлд/левел стриминг тут делается вручную через код? Нет готового решения как в UE4?
Наконец то ввели фичу которую ждали 10 лет, ради которой хакали до про версии - темная тема редактора.
A problem occurred configuring project ':launcher'.
B так далее. То что гуглилось пробовал, типа должна быть только латиница по пути проекта и т.д.
Было у кого?
Вау, круто!
Бамп вопросу
И тут мы такие все поняли какие слои у тебя камера рендерит.
Но если я не хочу пиратить?
Алсо нашел экспериментальный пакет для работы с терейнами, вот интересно он стримится или нет...
Неа.
>The Terrain Tools package adds additonal terrain sculpting brushes and tools to your project to help create stunning terrain assets and ease the workflows.
>Пакет Terrain Tools добавляет в ваш проект дополнительные кисти и инструменты для моделирования ландшафта, которые помогают создавать потрясающие ресурсы ландшафта и упрощают рабочие процессы.
Нужно сделать так, чтобы игроку не приходилось каждый раз нажимать на окно Input'a, чтобы начать печатать текст. Или чтобы весь инпут с клавиатуры изначально шёл в это поле и никуда больше.
прим. я напечатал в окно инпута "Двач" и нажал Ввод, слово "Двач" стёрлось и мне нужно напечатать новое слово, но теперь мне снова приходится нажимать на окно инпута, чтобы начать печатать, а хочется сразу постить смешное, стукая по клавиатуре
Никто не раздает блеа. А на cgpeers релиз 2-летней давности
Нашёл решение
Пикрелейтед не работает
Заживем...
Debug.Log(Input.GetKeyUp) - чекни какой там точно код
Андроидо-разраб не палится
А то рисовать красиво точн не получится (не умею), но пиксель арт мб и вытяну. Вообще, думаю может легче в блендере делать шейпы чем рисовать.
Мимо говно-вкатывальщик решающий чо делать
Потому что в fbx'е можно сохранять материалы и текстуры. Если хочешь их извлечь то в окне импорта модельки на вкладке материалов есть кнопка extract.
Создал проект class library, добавил в корневой солюшен, настроил, чтобы после билда ддл шла в Assets/Plugins, чтобы сначала всё было норм, в какой-то момент юнити перегенерила мой солюшен и выкинула оттуда нафиг этот проект.
Создал отдельный солюшен для своих библиотек, получается как-то неудобно, что 2 солюшена, корневой сгенеренный юнити, и еще свой до кучи.
Теперь процесс разработки такой - вношу изменения в свою либу, билжу её, тыкаю в окно юнити, чтобы подхватился новый билд из Plugins, всё работает, но visual studio code сходит с ума, не видит новые изменения в либе, пока его не перезапустишь.
Как-то всё дико неудобно.
А херачить всё в Assets/Scripts тоже неохота, юнити не дает создавать произвольные классы, не отнаследованные от MonoBehavior, а если руками их создавать, то потом надо руками добавлять в корневой csproj, тоже ебатека какая-то выходит.
> Как в юнити нормально работать с библиотеками классов?
Ну давай по порядку. С какими библиотеками? Нативными? .NET?
Чего ты от них хочешь? Часть кода в них вынести? Подключать как нативный плагин?
>.NET
This.
>Часть кода в них вынести?
This.
Хочу, чтобы в Assets\Scripts были только monobehavior классы.
А всё, что не использует либы юнити, код общего назначения, был в отдельной c# библиотеке.
Я все такие классы тоже хуйнул в dll, потому что там всё основное дерьмо, не связанное напрямую с логикой игры. То есть файловый менеджер, FTP-загрузчик, TCP-сервак и прочая хуйня, которая может кочевать из проекта в проект, и удобнее просто бибилотеку в проект закинуть. Но я сначала создавал эти скрипты в юнити и они там спокойно лежали. А потом, когда понял, что я закончил и больше их менять не буду, сбилдил в dll.
Чего и тебе желаю.
> после билда ддл шла в Assets/Plugins
Если говорить что .NET dll, то абсолютно до пизды где она будет лежать, хоть в папке huipizda, папка Plugins нужна только для нативных плагинов.
За гнилой базар против темных тем, я тебе анус испорчу!
Короче сам нашёл, через Handles
Заебали уже эти полутуториалы с крутащимися кубиками бля. Хочется чего-нибудь от и до.
Вот эта хуйня помогает держать фокус на объекте, но undo один фиг не работает:
HandleUtility.AddDefaultControl(GUIUtility.GetControlID(FocusType.Passive));
А если я туда впишу какуе-то левую инфу. Вместо имени- название своего аккаунта, а адрес с потолка возьму? У этого есть последствия? Меня за такое могут забанить?
Я просто пошутил. Но я думаю, скорее всего никто не увидит такую информацию, в любом случае, поищи настройки конфиденциальности да посмотри, что там есть. Я в таких настройках всегда указываю фактический адрес, может чего на почту пришлют, в случае чего.
Я тебе больше скажу, эта инфа публикуется на странице в Google Play. Как правильно обходить - не знаю.
Кароче проблема ещё в том, что я не хочу копипастить, а хочу в соло писать код, без подсказок интернета и готовых решений. Но не получается епт.
Когда какой-то момент непонятен- останавливайся и пробуй разобраться с этим конкретным непонятным моментом. И пока не разобрался с ним, дальше не иди.
Хм... В настройках девелопера есть поле, куда можно вписать свой адрес. Хоть у этого поля и есть звездочка, но оно не обязательное для использования. Я полазил по страничкам приложений. Свой адрес разрабы не публикуют.
Сделай анимацию в юнити. Из анимации сделай префаб. Используй префаб в партикал. Но это не точно. Пусть еще кто-то своим мнением поделится.
Это ещё зависит от страны публикации. У меня просто знакомый недавно публиковался, и у него указана и фамилия и адрес. Когда я гуглил - находил что в рфии это обязательно, если не прав - буду только рад.
Можно даже самую примитивную полосочку.
Дополню: хочу такую же тонкую и примитивную линию как с помощью меда Debug.DrawRay
Тебе нужно запихать их в один файл и одинаково разделить (как на моем пике), потом в партиклах если пункт SheetAnimation (кажется, не помню), там указываешь число кадров по вертикале и горизонтале.
Можно указать только по горизонту т.е. x:6 y:1
>>91791
Можно, тебе нужно твой шейдер поменять, ты сам не понял что сам скопировал заблюривание.
>>91828
Handles.DrawLine
https://docs.unity3d.com/ScriptReference/Handles.DrawLine.html
>Handles
> in the Scene view
А оно на самой камере рендерит? Мне надо, чтобы в самой игре работало.
HandleUtility.AddDefaultControl(GUIUtility.GetControlID(FocusType.Passive));
Код выше помогает не снимать фокус с объекта, но ctrl+z всё равно не работает.
В коде ошибок точно нет, и в аналогичном проекте с таким же кодом, и без использования FocusType.Passive все работает нормально.
Может в самом редакторе должна быть какая-то настройка, кто в курсе?
Вот код эдитора:
https://pastebin.com/jGQ4nzNf
1088x624, 0:18
Вот так фокус снимается, можно ли оставлять фокус с помощью настроек где-то в редакторе? Не могу понять, в чём дело и не гуглится. В аналогичном проекте всё работает нормально.
Как лучше всего помечать объекты, например блоки как в майнкрафте? С помощью тегов?
Видимо тебе нужно создать CustomWindow для редактирования твоих путей, туда кидать твой объект т.к. что-то мне подсказывает, что ты рисуешь эти хендлы в методе OnInspectorDrawn - который отрабатывает только если у тебя выбран объект
отбой, уже написал систему через enum
В OnSceneGUI() отрисовываю, выше есть ссылка на код. Я говорю, точно такой же код, но в другом чужом проекте работает нормально.
спасибо!
>тебе нужно твой шейдер поменять, ты сам не понял что сам скопировал заблюривание.
Как его поменять что бы заблюривание пропало?
я наколдовал его в шейдерграфе, потом создал материал и применил на него шейдер. А что бы вывести создал в 3d object - plane. Что то не вижу где можно заблюривание отключить
1. Как добавить поддержку модов в игру?
2. Как сделать редактор персонажа?
Это очень обширные вопросы, включающие в себя много аспектов и вариантов реализации, ты это понимаешь? Это типа как спросить, как сделать скайрим?
Я имел ввиду линки на гайды или еще чего. Понятное дело, в одном посте это дело не впишется.
Начни изучать Юнити по туториалам для абсолютных новичков и тебе постепенно станет понятна абсурдность вопроса. Если бы ты хоть немного ориентировался в теме, то такие вещи бы не спрашивал.
Посоны, я тут уже половину букваря освоил, как Войну и мир написать?
Foundational на официальном сайте не отвечает на мои вопросы. Мб есть какие-нибудь исходники?
>1. Как добавить поддержку модов в игру?
https://forum.unity.com/threads/open-source-modtool-mod-support-for-unity.442185/
Можешь глянуть сорсы https://github.com/Hello-Meow/ModTool
>>91942
>2. Как сделать редактор персонажа?
Смотришь на ютубе серию уроков по созданию рпг на юнити
потом забиваешь на все это хер.
Аригато.
> Смотришь на ютубе серию уроков по созданию рпг на юнити
Это англ? Если да, то мб есть что-то в текстовом варианте? И что конкретно смотреть?
Конечно на английском.
>И что конкретно смотреть?
Да что хочешь то и смотри, этих туториалов много.
Мне вот нравится от inScope Studios https://www.youtube.com/watch?v=oHFOkMffPDc&list=PLX-uZVK_0K_6JEecbu3Y-nVnANJznCzix
Я немножко говнокодил ранее, и в этом деле сильно помогали фреймворки.
Есть ли подобное для юнити, чтоб взял - и наговнокодил ноебходимое поверх готовой базы? Если есть, где смотреть?
Так 2д я и сам могу придумать что и как сделать в ассет сторе вроде даже были сурсы. Мне больше интересует 3д и раз англ, то тогда статьи.
Есть всякие движки и моды в ассет сторе, поищи что тебя инетресует, там от готовой физики до всяких помогаторов полно хуйни.
Как лучше всего соединить две комнаты как на пикрелейтед? Красное это дверные проемы.
Я написал гавно-код который ищет точки, применяет локальную разницу и подсовывает меши 1 к 1, вышло оч красиво и я рад, но если проемы будут не идеально квадратными все идет по пиздец.
До этого сохранял "соединительные данные" в ScriptableObject-ах.
Спс, но уже нашёл, но спасибо, а так же новый вопрос: как сделать чтобы камера не улетала НАХУЙ за границы мироздания через секунду игры? Я так понял этот пиздец происходит из-за ДАМПИНГА и дельтатайма, потомучто чем больше я делаю дампинг, тем быстрее камера улетает нахуй.
В самом конце где у тебя Time.deltaTime Damping должно быть значение между 0 и 1
Time.deltaTime всегда равна примерно 0.00016 (чем быстрее проц, тем меньше значение)
По идее тебе нужно сделать private float _lerp=0;
и в апдейте делать _lerp += Time.deltaTime Damping;
и в этом Vector3.Lerp(from, to, _lerp);
так же проверять, чтобы лерп был _lerp = Mathf.Min(1, _lerp);
Бамп вопросу, не гуглится
Я сделал оче замыслохуйски вот так, камера не улетает, но теперь мне надо сделать какую-то границу отъезжания камеры и чтобы она не прыгала резко в момент, когда ты переезжаешь курсором центр монитора.
Бамп вопросу. Кто-то уже написал свой способ решения, но вдруг кто-то ещё решил этот вопрос.
> 2. Как сделать редактор персонажа?
Придётся поебаться
https://www.youtube.com/watch?v=7Wz1Tq1rUek
просто блять боюсь представить, что ты задумал сделать
public static
Public enum
public static sealed class Constants {
public static readonly string poo = "Java is better";
}
Через Resource.Load вроде можно, но я не пробовал
Не слишком ли говнокод для выбора ячейки инвентаря? Если да, то как можно исправить?
во первых никогда не используй GetComponent в Update, у тебя метод Update вызывается каждый фрейм, каждый, ты видишь в своем коде через что он проходит? В твоем случае можно в нем оставить 1 строчку - if (Input.GetKeyDown()) и создать новый метод, который будет вызываться после этого условия, где ты уже и будешь проводить эти проверки, но убери все GetComponent, задай их в начале кода, хоть как-то кинь их в кэш
GameObject.Find в 10 раз медленее FindWithTag и в 100 раз медленее прямой ссылки с инспектора. Но если обьектов мало, мб и ок.
Я посчитал, что делать прямые ссылки это плохо, но могу и так, могу и с тегами. Не жирно будет для гуи панелей?
Или в качестве родителя можно сделать скрипт Locker.cs и запихать всю логику туда, а каждый новый объект (сундук, шкаф, тд) делать префабом и пихать туда этот скрипт?
вот пример кода. Как видно, он создает обьект, записывает трансформ обьекта в отдельную переменную, а потом модифицирует эту переменную. И она модифицирует трансформ не просто переменной, а самого обьекта. Кто может это обьяснить?
>>92432
Ясно, записывается только ссылка. А полностью переписать можно только назначив новую ссылку: написать = на новый обьект.
Буду осторожнее.
https://stackoverflow.com/questions/4347902/when-is-a-c-sharp-value-object-copied-and-when-is-its-reference-copied
бамп вопросу
опять же update засран лишним, лучшеб ты эти проверки в метод какой-то поместил, но уже лучше
Заработало наконец. На арче/манджаро надо уствановить:
mono
mono-msbuild
mono-msbuild-sdkresolver
dotnet-host-bin
dotnet-sdk-bin
dotnet-runtime-bin
visual-studio-code-bin
в терминал: sudo gedit ~/.config/Code/User/settings.json
"omnisharp.useGlobalMono": "always"
или прост в настройках вскода
сохраню себе пасту в гугл кип, пожалуй.
То есть смотри: это скрипт ЕНЕМИ, а не игрока. Мне надо чтобы он флипал спрайт когда двигается влево.
Пик 1 и перезапусти плеер, еще вариант нажать shift+f10 или чет такое
>>92437
Есть 2 стула: наследование и декомпозиция.
Наследование - делаешь public abstract class BaseItem : MonoBehaviour {} и пихаешь метод public abstract void UseItem();
Декомпозиция - делаешь логику в scriptableObject и базовый класс BaseItem, который будет ссылатся на scriptableObject.
>>92396
Через static?
Блядь ну я гуглю я всё гуглю, я изгуглил всё, там какие-то хуёвые способы флипа спрайта, там флипает спрайт по направлению к игроку, флипает спрайт при коллайде с невидимой стеной, флипает спрайт когда не может нащупать перед собой платформу, а мне надо чтобы спрайт флипался в тот момент, когда его владелец начинает идти влево. Чтобы выглядело всё так, какбудто он идёт влево когда идёт влево, а не лунной походкой, понимаешь? Тыкни меня моим поросячьим рылом блядь в видос на ютюбе, в тутор блядь для даунов который скажет мне как сделать это, я прошу тебя об этом блядь.
Нихуя не понял.
Кароч смотри, есть у тебя, например, игрок и моб.
Если ты вычтешь из позиции игрока позицию моба (то есть player.transform.position - mob.tramsform.position), то получишь вектор направления от моба к игроку.
Но ты в душе не ебёшь какой длины этот вектор, она тебе не нужна, так что нормализуешь его (метод Normalize()).
Всё, у тебя есть нормаль от врага к игроку. Берёшь от него перпендикуляр и пизда рулю, стрейфь своего моба по этому перпендикуляру.
Если, конечно, я правильно понял чё ты хочешь.
Правильно, но не полностью. Моб пасётся, то есть он ходит по рандомным координатам влево-вправо. И мне надо чтобы он смотрел в сторону своего движения.
1216x716, 0:05
> Моб пасётся, то есть он ходит по рандомным координатам влево-вправо
Так что ли? Если да, то нахуй тебе какие-то позиции? Просто перемещай его прямо перед собой и поворачивай когда тебе надо.
Не знаю по какому признаку ты его поворачивать собралс, вот тебе пример с поворотом по пробелу.
private int direction = 1;
private void Update()
{
transform.Translate(Vector2.right Time.deltaTime direction, Space.Self);
if (Input.GetKeyDown(KeyCode.Space))
{
direction *= -1;
transform.localScale = Vector3.Scale(transform.localScale, new Vector3(-1f, 1f, 1f));
}
}
А я использовал GetComponent в апдейт методе для доступа к Rigidbody, чтобы делать наклон игрока при движении в зависимости от скорости движения. Я так понимаю, что лучше такой наклон организовать через анимацию? Хотя я не заметил проседаний fps или увеличение батчей.
По признаку направления движения же, зачем мне поворот по пробелу. Вот смотри: это ПЛАТФОРМЕР. В нём есть МОБ. Моб бродит влево-вправо. Надо чтобы он разворачивался в направлении своего движения.
> зачем мне поворот по пробелу
Я просто сделал как пример, ясен хуй что пробел тебе не нужен.
> Надо чтобы он разворачивался в направлении своего движения
Ты код посмотри. Моб идёт всегда прямо перед собой. Так что поворачивай его как хочешь, он всегда будет идти прямо. Хоть под углом его ебани.
А КАК? Что мне скомандовать то? Вот здесь он берёт Х курсора на экране и минусует из него Х себя. Если Хкурсора левее - значит он меньше, значит будет МЕНЬШЕ нуля, значит он фейсит влево. А если Хкурсона правее Хмоба - значит будет БОЛЬШЕ нуля, значит фейсит вправо. Вот что мне подставить вместо КУРСОРА, что отвечает за какой-то велосити дирекшон вектор моба?
Это ты скажи "как". По какому признаку ты хочешь его поворачивать? Я ж не ебу как там оно у тебя и как ты хочешь чтобы было.
Ты спрашивал как сделать чтобы моб не шёл лунной походкой — я тебе сказал как. А по какому щелчку его разворачивать — это уже тебе виднее.
Ну всмысле по какому признаку чо это значит я не понимаю нихуя. Вот смотри у меня работает с мышкой, но мне надо чтобы вместо Camera.main.ScreenToWorldPoint(Input.mousePosition) было что-то постоянное, что находится ВПЕРЕДИ НАПРАВЛЕНИЯ ДВИЖЕНИЯ МОБА в каждый момент времени. Как такая хуйня называется в юнити или как её сделать?
Самое важное правило для рефов, их надо получать в авэйк и никак иначе. иначе потом познаешь боль проёбанных ссылок и не понятных красных строк
Спасибо
Что игра, например на телефоне, может выгрузить эти ссылки из памяти и из-за этого нуллпоинтеры будут? Я что-то не представляю как может так быть.
Сделать такое в классе?
private int money;
public int Money {
get { return money; }
set { money = value; SaveData(); }
}
А с массивом через отдельную функцию?
Но я подозреваю что тебе надо этот метод с переменной вызывать и он не может быть статик тогда не так надо будет. Интересует как ответят спецы кодинга.
То какое ты первое решение предложил то - что надо, а с массивом ты бы сам как сделал?
вместо массива можно ObservableCollection и у него там эвенты да
Код копировал точно из документации, рейкастер на камере, ивент систем в сцене, коллайдер на объекте и все равно ноль реакции.
Ты про Input.GetKeyUp ?
Если делаешь в FixedUpdate - то может быть из-за этого.
Вторая причина - твой райкаст точно попадает на коллайдер?
Метод Physics.Raycast возвращает boolean, проверть, что там true
Что-то мне подсказывает что это для интерфейса, а интерфейсу коллайдеры не нужны, там флаг RaycastTarget должен быть включен
cameraTransform.position = new Vector3(playerTransform.position.x, cameraTransform.position.y, cameraTransform.position.z)
Да блин, можно подробнее, плиз, я вообще понять не могу, как этой камерой из скрипта управлять
OnPointerUp не сработает, если класс не реализует интерфейс IPointerDownHandler. Вот такая вот хуйня.
То есть тебе надо реализовать и IPointerDownHandler и IPointerUpHandler, в OnPointerUp пиши что тебе надо, а OnPointerDown оставь пустым.
Посмотри Пайплайн создания персонажей для Age of Magic (мобильное 3D) - Playkot https://www.youtube.com/watch?v=MqSQSjvvAH4
https://unity.com/ru/case-study/playkot-age-magic
Может чего интересного увидишь.
Хуясе поворот. Спасибо, анон.
спасибо
Во, нашел решение, вродь:
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/indexers/
спасибо анон, то шо надо
Во-первых, геймплей. Просто жмешь одну кнопку и едешь. Все. Проиграть невозможно. Никакого геймплея по сути нет. Прогресс тоже условный, прокачиваешь тачку и на следующем заезде зажимает кнопку газа на 10 секунд дольше. Имитация прогресса.
Логика. Чувак выезжает из гаража, у него кончается бензин, он остается посреди кишащей зомби пустоши и... просто возвращается назад, на той же машине.
И у меня вопрос, неужели это и есть ТОПОВЫЙ уровень мобильного геймдева?
Идиотский вопрос. Ты ещё Granny со 100млн установок посмотри и спроси "это и есть ТОПОВЫЙ уровень мобильного геймдева?".
короче блять переписал большую часть кода и сделал по твоему примеру, ток оно теперь не сериализиуется и эти данные не сохранить)
Немного кастомных шэйдеров, немного пердолинга текстур. Ничего сложного.
Тому шо будучи писателем пока ты будешь переписывать все доки в книжную версию, то документация уже может что раз измениться. Даже в книгах по языкам программирования про АПИ не всегда пишут, а тут игровой движок.
Да и зачем, сайта с доками юнити обычно достаточно.
Учись просто на примере, начни делать какую-нибудь игру, и по мере поступления вопросов и проблем, обращайся уже к материалам, куда угодно, книги, ютуб, документация. Потом со временем сам начнёшь понимать, что к чему и как можно было сделать лучше. Главное не делай ctrl+c, ctrl+v, а переписывай и пытайся вникнуть.
Работает кстати во всем, лучший способ научиться чему угодно - на реальной практике
Я так и делаю ествейственно, приходится делать именно таким убогим способом, потому что другого просто нет.
А чем плохо фрапсить экран?
Я, например, просто хочу сгруппировать объекты, типа
Дом1
-Квартира1
--Комната1
---Шкаф1
---Шкаф2
---Табуретка
--Комната2
---Шкаф1
---Шкаф2
...
Итд. Я где-то читал, что куча детей нежелательно - влияет на производительность, так как постоянно идет подсчет позиции для каждого вложенного объекта.. А я просто хочу структуру, как в папке Assets. Чтобы не путаться
> Я где-то читал, что куча детей нежелательно - влияет на производительность
И все текстуры у тебя в степени двойки, все компоненты кэшируются, лоды прописаны, батчинг настроен и и каждый draw call посчитан?
Не еби сам себе мозги, делай как удобно. На спичках потом будешь экономить когда никогда игру доделаешь.
https://docs.unity3d.com/ru/530/Manual/class-TextureImporter.html
Размеры текстур
Ideally texture sizes should be powers of two on the sides. These sizes are as follows: 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048 etc. pixels. The textures do not have to be square, i.e. width can be different from height. Note that each platform may impose maximum texture sizes. See Android and iOS. For DirectX the maximum texture sizes for different feature levels are:
Понял
Бля что такое.
А в плеере все четко
Вобщем, можно ли подебажить сбилденную версию?
Видимо, дело в плагине от allegorithmic, до него все билды работали...
А где будет лог файл?
Чет запустил с этим флажком, и хз, где смотреть проблемы (да и есть ли они?). В углу надпись только появилась development build
А, разобрался. Почему-то по умолчанию низкое качество проставилось. Поставил на максимум и почему лагать перестало. Лол.
https://www.youtube.com/watch?v=DxfEbulyFcY
ProjectSettings/Scrip Execution Order, но лучше этим не злоупотреблять, а пользоваться предопределённой очередностью выполнения методов Awake, Start, Update, Late Update
Подскажите. Это оптимальный вариант для создания массива экземпляров скрипта Item, который прикреплен к GameObject?
Кстати, на всякий случай — порядок скриптов в редакторе и в билде отличаются.
Я так один раз чуть с ума не сошёл, никак не мог понять с какого хуя в редакторе всё работает, а в билде сыпется.
Оказалось, что один скрипт в Awake брал значения из синглтона, который инициализировался тоже в Awake, и в редакторе синглтон инициализировался до этого запроса, а в билде — после.
Смотря для каких целей, мб нужно использовать List, мб использовать индексаторы
GetComponent всегда первый элемент будет возвращать, у тебя будет коллекция из одинаковых предметов с названием Item 9
дополню, это может сработать, может исправиться если накинешь каждый скрипт Item на разные GameObject'ы
зачем тебе вообще прикреплять Item к GameObject? Загугли ScriptableObject Unity, я думаю это твое решение
Ну я хотел в каждом экземпляре Item хранить свойства предмета (i.e айди, название, прочность). ScriptableObject так может?
Да
Вот за это отдельное спасибо. Я как новичок еще не сталкивался с этим, но походу ты сэкономил мне кучу нервов в будущем.
А то экспортирую 4к, а там разрешение 2к и normal quality
Можно, но нужно писать скрипт. Проще выделить все текстуры кликнув с зажатым шифтом и поменять им настройки разом.
https://sharpcoderblog.com/blog/introduction-to-interfaces-in-unity-3d-csharp
Не вводи людей в заблуждение, никаких скриптов писать не нужно.
>>94743
Закидываешь текстуру, ставишь нужные настройки, жмёшь Apply.
Потом там же, в настройках импорта этого же файла, жмёшь на вот эту вот маленькую хуёвину, как на первом пике. Открывается окно с пресетами, где жмёшь кнопку "Save current to..."
Сохраняешь свой пресет, потом находишь его в ассетах, жмёшь по нему и хуячишь на кнопку со второго пика.
Всё, теперь все следующие файлы будут автоматом импортироваться с этими настройками.
Да, новая тоже установлена, но старые проекты переводить пока не спешу, так что пользуюсь двумя.
Мы несли чистые убытки в каждом периоде с момента основания. Мы понесли чистые убытки в размере 131,6 млн долларов США, 163,2 млн долларов США, 67,1 млн долларов США и 54,1 млн долларов США за годы, закончившиеся 31 декабря 2018 и 2019 гг., А также за шесть месяцев, закончившихся 30 июня 2019 и 2020 годов, соответственно, включая 20,9 млн долларов США, 44,5 млн долларов США, 14,8 млн долларов США. млн. и 21,7 млн. долларов США соответственно на компенсационные расходы на основе акций. По состоянию на 30 июня 2020 года накопленный дефицит составил 569,3 миллиона долларов. Несмотря на то, что в последние периоды мы наблюдали значительный рост выручки, этот темп роста может снизиться в будущие периоды, и вам не следует полагаться на рост выручки за любой предыдущий период как на показатель наших будущих результатов. Мы не уверены, сможем ли мы поддерживать или увеличивать нашу выручку или получим ли или когда мы достигнем достаточной выручки для достижения или сохранения прибыльности в будущем. Мы также ожидаем увеличения наших затрат и расходов в будущих периодах, что может негативно повлиять на наши будущие результаты деятельности, если наша выручка не увеличится на суммы, достаточные для компенсации таких затрат и расходов.
Потому-что они много сил тратили на бесполезную херню уж простите, привет DOTS. Стабильные релизы редки, и все еще есть баги и неправильные решения тянущиеся с версии 3 2009 года.
Может ситуация улучшится, когда они на IPO выйдут. Я даж прикуплю их акции.
R&D, крутые демки технологий, и вообще 3000 сотрудников хуе-моё
На бесполезных СВЖ сотрудников, чтобы типа соответствовать трендам. Набрали бесполезных негров, трансов и баб, которые на уровне развития наших Кириллов из 10 (б).
И я вот не пойму что вот тут надо сделать. EditorType - перечисление, которое находится в Assembly-CSharp
Никаких пространств имен и подобного там нет.
Ошибка же в том что проект Assembly-CSharp-Editor-firstpass не видит этот EditorType
Мои скудные знания шарпа говорят мне что в Assembly-CSharp-Editor-firstpass надо проставить refference на Assembly-CSharp. Но я не знаю как (там просто нет кнопки добавления референсов)
Все проекты сгенерировала юнити.
Чё ты там стрелочками намазюкал чудо в перьях? Скинуть лог ошибки, более подробное описание взаимосвязи файлов в проекте, никак не мог? Нихера не знаешь, сделал вывод, написал чушь, и просишь погадать на молочке?
Всё хуйня, давай по новой.
В 2019 тоже.
на 2020 сижу, не заметил даже просто
Если они ещё дадут бесплатно убрать эту заставку Unity перед запуском игры, я на всю жизнь останусь на этом движке за такую щедрость
>Чё ты там стрелочками намазюкал чудо в перьях?
EditorType объявлен в Assembly-CSharp. Но он также используется в Assembly-CSharp-Editor-firstpass.
И вот оно не работает. В ошибке так и пишет что не найден EditorType и примечание что возможно я не указал reference.
Так 99.99% процентов людей ломающих юньку до этого были ради тёмной темы и скрытия лого.
Вообще темная тема говно. Даже 10 минут не вытерпел и вернул светлую.
К твоему сведению, мировая геймдев индустрия следует тренду толерантности и терпимости. Электроники, Юбики, Дайс - все топовые компанию придерживаются этой политики.
Отсюда я считаю, что и у нас в треде должны ее придерживаться.
Давай так. Я беру заказ, ты выполняешь, отправляешь исходники, и я тебе плачу все бабки, сейчас предлагают 30 тыс. рублей. Но нужно учитывать что сайта нет, и придется еще бэкенд писать.
Плюс я тебе скажу где таких заказов полно.
А что так нельзя было?
Да, Спасибо, я уже разобрался. Пришлось в блендере модельки пересобрать, - и всё получилось.
Такое на фиверре за 5 долларов делают, site to app называется.
А светлые чисто поблевать в экран, вообще к любым светлым темам относятся, самый наглядный пример - светлая тема в дискорде
Батарейку будет жрать сильнее нативного приложения
> Поэтому все книги со светлыми темами?
Бумага в производстве белая. Ну, технически не совсем белая, но ты понел.
И в производстве типографии ебашить чёрными буквами на белой бумаге — на порядок дешевле, чем белыми на чёрной.
Так-то в электронных книгах чёрные темы есть.
У меня вообще со зрением какая-то старческая проблема, на тёмном фоне белые буквы двоятся
Гуманитарий? Бумага не излучает свет. В отличие от.
Есть где спиратить этот ассет?
Есть на сижиперсии.
https://twitter.com/Sakura_Rabbiter/media
Так пользуйся превьюшной, кто мешает. Учиться юзать дотс можешь уже сейчас.
Хз насчет DOTS, там же нет гибкости и динамики, если только делать простые прототипы.
Я бы еще понял если звуки, физика и графон на ДОТС, а логика с 'наследованием/композицией/как есть', но это даже звучит как костыль на костыле.
На дотс например можно сделать диабло-подобное гавно со скилами и предметами?
Если можно - есть ссылка? Я только и вижу что на дотс делают "Ы СМАТРИТЕ МИЛЛИАРД САЛДАТОВ УДАРЯЮТСЯ ДРУГ ОБ ДРУГА" и ничего сложнее. Еще тайкуны какие-нибудь где тоже все можно описать 2-5 компонентами без гибкости.
>Что есть почитать на счет GetComponent
https://docs.unity3d.com/ru/current/ScriptReference/GameObject.GetComponent.html
Нет понятия что "должно" быть в скобках а что "не должно", функция делает одно и то же, самый короткий способ записи с "треугольными скобками", вот его и юзай.
Что не так с этой конструкцией? После пересечения с двумя тригерами переменные mark1 и mark2 становятся true и должно вывести сообщение, что снаряд попал в цель (GOAL), но блядь этого не происходит. Я в упор чего-то не замечаю или что?
Все действие, включая присвоения mark1 и mark2 трушного значения происходит в OnTriggerEnter если это важно
if (mark1 && mark2)
{
Debug.Log("GOAL!!!");
mark1 = false;
mark2 = false;
}
Все, разобрался.
Шейдер граф не работает на легаси рендеринге.
Тебе нужно: взять URPL или HDRPL, настроить его в сцене и скорее всего перезапустить редактор.
Мань, дотс это надстройка к нативному шарповскому ТРЕАДС, для того чтобы многопоточность можно было использовать с основным юнитивским потоком, где идет экзикутив ордер, не поломав при этом сам движок. В остальном там доступен весь функионал. Можешь че угодно напидорить. Определенная ебистика конечно будет, это цена за то что ты юзаешь готовое двигло.
Что конкретно непонятно? В треугольных скобках указываешь тип, в круглых ниче не пишешь, т.к. функция геткомпонент не принимает аргументы.
например:
void Start()
{var t = GetComponent<Transform>();}
Означает, что на старте переменной t будет присвлена ссылка на трансформ объекта в сцене, где висит этот код в качестве компонента. Чтобы не генерироваиь мусор для GC, лучше использовать TryGetComponent.
Мань, это работа с регистрами процессора напрямую и постоянное прогон данных из clr в нейтив до процессорного уровня. Это всё работает пока у тебя одна конкретная не сложная цель.
Ты бы лучше скинул пример сложного проекта как я просил, а не херню писал.
Еще в бурсте хотели запретить использовать статики, не знаю запретили уже или нет.
Можно вроде писать в скрипте [RequiresComponent(typeof(Rigidbody))]
И тогда скрипт не прикрепится к объекту в котором нет этого компонента. Но мб если его удалять во время работы.... Хотя в он старте же обычно его достают.
>>96398
В бриллиантовых скобках - тип компонента что нужен, в круглых всегда пусто. Просто зазубри это, понимать не надо.
Скачай андроид студию и запусти эмулятор андроида.
Я так свое гавно тестировал, потом к своим телефонам по usb тоже кидал и дебажил, оч удобно.
>>96723
RequiresComponent просто будет добавлять этот компонент если его еще нет. Если его нельзя добавить по какой-то причине, то скрипт с RequiresComponent нельзя будет добавить на ГО.
>В бриллиантовых скобках
Роскошно
>Чтобы не генерироваиь мусор для GC, лучше использовать TryGetComponent.
Так погоди, обычный ГетКомпонент может не вернуть запрашиваемый компонент, даже если он есть на объекте? И что такое
>мусор для GC
??
> Скачай андроид студию и запусти эмулятор андроида.
Оно хуево работает с юнити, недавно хотел запустить прямо с юнити в эмуляторе. Хуй там. Надо через жопу что-то там подключать, настраивать. Заебался и просто на телефоне запускал. Конечно можно просто апкашки кидать вручную, но это ультра анархизм в 2020.
Сперва у меня была одна сцена где был игрок и весь код. Два корневых объекта Player + Src. К Src прикручены всякие дочерние объекты и компоненты с менеджерами звука, pooling-а, менеджер ввода и все что нужно в единичном экземлпяре. Оба объекта я пометил как DontDestroyOnLoad.
И есть куча сцен-уровней с точкой входа, вроде level_desert.unity, level_snow.unity итд. И я подгружал раньше в сцену уровня сцену где игрок. А при переходе между уровнями просто грузил другую сцену, а игрок и Src так как помечены не уничтожались. Работало это вполне нормально. Но вот что произошло.
Стал я прикучивать Главное меню, загрузку и сохранение. И начались проблемы. При выхода из игры обратно в главное меню игрок никуда не исчезал. А бегал рядом с кнопочками. Так как он помечен DoNotDestroyOnLoad. Пробовал его делать неактивным, сперва работало, но при загрузке уровней снова... гхм... короче инициализация явно на него не расчитана.
Пробовал по другому, прибивать игрока и Src напрямую Destroy-ем. А при старте игры создавть заново. Криво-косо заработало, хотя в коде много статических переменных и синглтонов которые не ожидали что игрока и все базовые системы будут создавать заново. Убрал синглтоны поправил вылезжие NFE ... вроде это говно заработало... нооо.... сука как-то стремно. Так как код писался уже долго и явно был не расчитан на повторную инициализацию да и еще всякие LoadSceneAsync. Мне припекает что от простого добавление Главного Меню приходится так коренным способом менять код, что возможно неочевидными багами повторной инициализации.
Мои вопросы:
1) В юнити вообще есть стандартное решение для связки Главное_Меню - Игрок_с_Главкодом - Куча сцен-уровней? Не может же чтоб я первый кто столкнулся с этим цирком ебаным? Какие есть best unity praxis на этот счет?
2) Может сделать игрока префабом и все корневые системы. Тогда (вроде) их и отдельной сценой подгружать не придется. Хотя я немного не уверен не сломаю ли что-то если буду здоровую сцену с кучей менеджеров и игроком переводит*ь в префаб. Но попробовать можно, только коммит сделаю сперва.
3) Может все таки не надо уничтожать сцену в ноль а просто SetActiv(false) ставить. Проблема в том что игра на такое явно не расчитана. И оказалось легче все к ебеням прибить и создать заново чем деактивировать. Правда в коде надо не забыть все ссылки-списки обновить которые статические. А то яж думал что InputManager всегда будет 1 и всё. А тут выходит что его прибивают.
4) Может ну его вообще нахуй. Запихнуть главное меню и игрока в одну сцену и деактивировать уже меню. Конечно плохо что тогда игра по началу грузиться будет дольше. Но вроде игрок весит не особо много. Зато можно при старой схеме остаться. Эх знал был что добавление Главного Меню такая хрень делал бы с самого начала, просто казалось что это всегдав конце за неделюьку прикрутить можно, ничего важного.
5) А может вообще ну нахуй совсем возможность из игры возвращаться в главное меню. Нахуй это надо? Проблем с этого реиницализации куча. А нахуя игроку туда возвращаться? Хочет выйти пусть выходит. Хочет настройки поменять или загрузиться: все можно из меню паузы. Разве что титры посмотреть лол. Но как-то хуй знает, принято давать такую возможность в играх "выйти в главное меню". Ну и плюс может когда загрузку/сохранение буду прикручивать все эти проблемы реинициализации все равно снова выползут такого же рода так что если их все равно решать то почему бы и не дать такую стандартную возможность. Ну плюс иногда в настройках главного меню есть что-то что не доступно в настройках из меню паузы. Хотя мне всегда это старнным казалось.
Сперва у меня была одна сцена где был игрок и весь код. Два корневых объекта Player + Src. К Src прикручены всякие дочерние объекты и компоненты с менеджерами звука, pooling-а, менеджер ввода и все что нужно в единичном экземлпяре. Оба объекта я пометил как DontDestroyOnLoad.
И есть куча сцен-уровней с точкой входа, вроде level_desert.unity, level_snow.unity итд. И я подгружал раньше в сцену уровня сцену где игрок. А при переходе между уровнями просто грузил другую сцену, а игрок и Src так как помечены не уничтожались. Работало это вполне нормально. Но вот что произошло.
Стал я прикучивать Главное меню, загрузку и сохранение. И начались проблемы. При выхода из игры обратно в главное меню игрок никуда не исчезал. А бегал рядом с кнопочками. Так как он помечен DoNotDestroyOnLoad. Пробовал его делать неактивным, сперва работало, но при загрузке уровней снова... гхм... короче инициализация явно на него не расчитана.
Пробовал по другому, прибивать игрока и Src напрямую Destroy-ем. А при старте игры создавть заново. Криво-косо заработало, хотя в коде много статических переменных и синглтонов которые не ожидали что игрока и все базовые системы будут создавать заново. Убрал синглтоны поправил вылезжие NFE ... вроде это говно заработало... нооо.... сука как-то стремно. Так как код писался уже долго и явно был не расчитан на повторную инициализацию да и еще всякие LoadSceneAsync. Мне припекает что от простого добавление Главного Меню приходится так коренным способом менять код, что возможно неочевидными багами повторной инициализации.
Мои вопросы:
1) В юнити вообще есть стандартное решение для связки Главное_Меню - Игрок_с_Главкодом - Куча сцен-уровней? Не может же чтоб я первый кто столкнулся с этим цирком ебаным? Какие есть best unity praxis на этот счет?
2) Может сделать игрока префабом и все корневые системы. Тогда (вроде) их и отдельной сценой подгружать не придется. Хотя я немного не уверен не сломаю ли что-то если буду здоровую сцену с кучей менеджеров и игроком переводит*ь в префаб. Но попробовать можно, только коммит сделаю сперва.
3) Может все таки не надо уничтожать сцену в ноль а просто SetActiv(false) ставить. Проблема в том что игра на такое явно не расчитана. И оказалось легче все к ебеням прибить и создать заново чем деактивировать. Правда в коде надо не забыть все ссылки-списки обновить которые статические. А то яж думал что InputManager всегда будет 1 и всё. А тут выходит что его прибивают.
4) Может ну его вообще нахуй. Запихнуть главное меню и игрока в одну сцену и деактивировать уже меню. Конечно плохо что тогда игра по началу грузиться будет дольше. Но вроде игрок весит не особо много. Зато можно при старой схеме остаться. Эх знал был что добавление Главного Меню такая хрень делал бы с самого начала, просто казалось что это всегдав конце за неделюьку прикрутить можно, ничего важного.
5) А может вообще ну нахуй совсем возможность из игры возвращаться в главное меню. Нахуй это надо? Проблем с этого реиницализации куча. А нахуя игроку туда возвращаться? Хочет выйти пусть выходит. Хочет настройки поменять или загрузиться: все можно из меню паузы. Разве что титры посмотреть лол. Но как-то хуй знает, принято давать такую возможность в играх "выйти в главное меню". Ну и плюс может когда загрузку/сохранение буду прикручивать все эти проблемы реинициализации все равно снова выползут такого же рода так что если их все равно решать то почему бы и не дать такую стандартную возможность. Ну плюс иногда в настройках главного меню есть что-то что не доступно в настройках из меню паузы. Хотя мне всегда это старнным казалось.
В билд сеттингс (или где-то там) можно выбрать платформу андроид и кнопка build & run при подключенном телефоне сразу через adb shell кидает апк на телефон и запускает. Так правда лучше т.к. ты сразу увидешь много проблем, которых на ПК вообще нет.
>>96739
До того как начал читать вопросы, хотел предложить тебе синглтоты с дженериками, очищать их на OnDestroy и все.
1 - На моем опыте люди используют OnDestroyOnLoad только для сети (NetworkManager какой-нибудь), либо ты хранишь struct даты т.е. набор простейших свойств.
Кидать сложную логику по разным сценам это риск и ты вляпался в проблему этого риска.
Я вообще использую 2 сцены: 1 - меню, 2 - игра, и в сцене игры у меня LevelLoader-ы, которые жрут мои данные, для создания сцены.
2 - Переводить переиспользуемые компоненты из разных сцен в префабы можно. Ты даже можешь наоборот объединить этот пул и игрока в префаб и расставить его в каждой сцене.
3 - Много мест за которыми нужно следить, опять риски, опять огребешь проблем в будущем. Я использую SetActive только для пул-объектов (не для самого пул менеджера) и то перед этим вызываю метод ClearPoolElement на каждом инстансе.
4 - Сделай через AsyncLoadScene и пусть игрок смотрит на загрузку уровня на 1 секунду больше, зато это будет работать как часы. Я бы еще раз пересмотрел, стоит тебе тянуть эти данные через все сцены или нет.
5 - Это костыль, если ты его используешь - велик шанс, что появится другая похожая проблема и тебе придется вообще все переделывать или делать ЕЩЕ один костыль (а потом переписывать весь проект)
Если Юнити бесплатная, то нафига ее раздают на Рутреке? Правильно ли я понимаю, что это только для того чтоб можно было пиратить ассеты? Что будет если я замучу что-то на пиратке с пизженными ассетами, а потом решу выложить это в Стим?
на сайте должны быть различия
если ты сделаешь чето нормальное на пиратке с пизжеными ассетами, лучше перед выкладыванием в Эпик Стор купить все ассеты и лицензию юнити
>лучше перед выкладыванием в Эпик Стор купить все ассеты и лицензию юнити
В самой игре ничего после этого редактировать не придется? Просто купить и всё? Как это работает?
>лицензию юнити
Зачем? Я не претендую на доходы свыше 100 килобаксов в год
>Эпик Стор
Это шутка такая?
>В самой игре ничего после этого редактировать не придется? Просто купить и всё? Как это работает?
Тут я не знаю уже. В анриале пользуюсь только самодельными, фришными + купил несколько скриптов за бесплатные деньги от эпиков.
>Я не претендую на доходы свыше 100 килобаксов в год
Тогда ты можешь юзать фри версию
>Это шутка такая?
Нет, я серьезно - разработчикам гораздо выгоднее издаваться в ЕГС
И? Юнити господа могут забить на лицензионное соглашение юнити?
> В билд сеттингс (или где-то там) можно выбрать платформу андроид и кнопка build & run при подключенном телефоне сразу через adb shell кидает апк на телефон и запускает. Так правда лучше т.к. ты сразу увидешь много проблем, которых на ПК вообще нет.
У меня не видело. Мб из-за того что я на линуксе, хз. Но телефон мой видело.
Двачую вопрос, но реквестирую легальные сайты.
Знаю где картинки брать: flaticon (вроде .com)
Ассеты вроде есть прямо в ассетс сторе, но мб есть другие огромные топ сайты?
А вот товарищ говорит, что поиск по тэгам в N раз медленнее, даже видео по этому снял.
Кому верить, разрабу с пруфами или анониму с пруфами? ?
https://youtu.be/3kino_s-4mo?t=498
https://youtu.be/Ci1R5AOJ7Hw
Раньше это делали чтобы использовать темную тему и убрать лого при старте, сейчас только из-за лого скорее всего.
Я сижу на персонал версии года 4 и без проблем юзаю "пирацкие" ассеты (ассет это всего-лишь архив, тебя никто не вычеслит).
>>96778
Ого, спасибо
>>96805
При поиске чего-либо лучше все кешировать т.к. любое обращение к internal-стейту движка будет медленным.
Можешь вспомнить истории про transform и всеми любимый GetComponent
Че за херню ты несешь, маня? При чем тут просто/сложно когда вся суть в том, чтобы отойти от приципов ооп и использовать только вэлью-тайп, чтобы оперировать чисто стеком для максимальной проивзодительности? Дотс позволяет использовать юнитивский апи, в то время как нативный ТРЕАДС - нет. Соответственно, если руки не из жопы и в бошке не насрано вместо мозгов, ты можешь любой функционал запидорить. Другое дело, что на юнити в основном даунята типа тебя работают, либо профи со всякими пилларс оф етернити, где эта дотс нахуй не упала. Вооьше, как миниму на дотс можно сделать игрульку по типу зей а билионс, там типки нахуярили ее простоина сишарпе с классической треадс, но теперь не могут ее портировать ни на че, потому как дотнет только под виндой пашет, а на юнити с дотс могли бы в два клика на все платформы захуярить.
> Можно вроде писать в скрипте [RequiresComponent(typeof(Rigidbody))]
> И тогда скрипт не прикрепится к объекту в котором нет этого компонента. Но мб если его удалять во время работы.... Хотя в он старте же обычно его достают.
Можно. Но это из другой области тема, чисто чтобы предотвращать исключения когда повесил код, требующий компонент, которого нет на объекте. Чтобы в том числе и этой еботни избегать и был придуман трайгеткомпонент, вместо старого-доброго геткомпонента.
> Так погоди, обычный ГетКомпонент может не вернуть запрашиваемый компонент, даже если он есть на объекте?
Нет. Если компонент есть, гк
Геткомпонент его вернет. Но при возврате он все равно сгенерирует мусор. Гугли trygetcomponent, там расписано почему лучше его ичпользовать.
> И что такое мусор для GC ??
Ссылки на несуществующие объекты - очищенные ячейки памяти, которые GC (garbage collector - сборщик мусора) время от времени удаляет, т.к. во время удаления все процессы в потоке тормозятся, на слабых кудахтерах это может вызывать микрофризы, особенно когда дохуя таких битых ссылок набралось. Надо стремиться чтоб битых ссылок вообще не генерировалось, т.к. их наличие - свидетельство утечки памяти, что является признаком хуевого кода. Когда в рантайме используешь TryGetComponent вместо GetComроnent, мусор не генрируется. Когда все данные кэшируешь, мусор не генерируется т.д. Ну и есть хитрости типа в игровых паузах принудительно запускать сборку мусора, чтоб для игрока не было неудобств.
На крестах, например, встроенрого сборщика мусра нет, поэтому утечки памяти там для начинающих погромистов очень большая проблема. Да и для опытных тоже.
>Раньше это делали чтобы использовать темную тему и убрать лого при старте, сейчас только из-за лого скорее всего.
>Я сижу на персонал версии года 4 и без проблем юзаю "пирацкие" ассеты (ассет это всего-лишь архив, тебя никто не вычеслит).
Спасибо.
>дотнет только под виндой пашет
уже года 2 как нет, так что тут ты обосрался
>Дотс позволяет использовать юнитивский апи, в то время как нативный ТРЕАДС - нет
Бля, я не хочу тебе второй раз повторять как оно по факту работает, сам прочитай и возвращайся, ок?
>зей а билионс
Перемещение, атака, жизни - 3 простейших компонента, ничего гибкого или сложного не вижу.
Вместо пустозвонства, ты мне дашь конкретный пример или только и будешь маней называть?
Понял, спасибо
шляпа тут в том что он берёт arial.ttf в этой документации и конвертит в формат понимаемый tmp. а мне надо чтоб я на бумаге рукой начеркал 10 цифр, сфотографировал и запихнул в tmp без того чтоб ебаться над тем чтоб отконвертировать его сначала в ttf, а потом уже в формат tmp
Метод Update срабатывает примерно 60 раз при 60 fps.
Т.е. за 1 секунду ты 60 раз запускаешь свою коротину.
Что можно сделать?
в методе fade сделать цикл while(true) и запускать коротину в методе Start вместо Update
Ты СНАЧАЛА увеличиваешь, потом ждешь.
+ в апдейте через 1 секунду все 60 раз сработает увеличение
такое можно делать стандартными средствами юнити, но я планировал использовать tmp. подправить какую-нибудь залупу в шрифте и не делать две ебучих конвертации это не "дохуя хочешь"
Да, спасибо, вроде работает как надо теперь
Спасибо, тоесть ты предлагаешь главное меню и игрока с кодом главным запихать в одну сцену. Может это и хорошее решение.
Ну тоесть у игры есть две загрузки: 1 сплеш скрин, главное меню, а затем загрузка конкретного уровня (у меня она на две части сцена игрока + сцена уровня). А если объединить то игра дольше будет на сплеш скрине висеть не заходя в главное меню. Хотя принципиально это ничего не поменяет. Игрока-то грузить в любом случае надо будет.
Делать здоровенную иеархию префабом немного ссыкотно и потом копировать по всем уровням.. хотя вот тогда уж точно не надо будет подгружатъ сцену игрока, а тупо загружать 1 уровень и всё. А как вставить префаб в этот уровень уж пущай юнити ебется. Ох... раньше надо было такие вопросы решать. Сейчас когда уже игра-то почти готова и пора на всём готовом уровни клепать только как-то ссыкотно такие вещи делать. с другой стороны... вообщем попробовать можно. главное коммит сделать.
Причем я имею в виду не в 2Д а в 3Д как на пикрилах
Шахты строить в них. От параметров слоя зависит сложность постройки и то какой ресурс выкапывается
В идеале нужно выгружать ассеты и префабы, которые тебе не нужны, будет на перформанс сказываться (но возможно оч мало, если у тебя мощный пекарь).
Вообще если у тебя игра готова, сделай меню на костылях и забудь как страшный сон, такое бывает, главное в следующей игре с новым опытом сделать сразу как надо.
>>97112
Любой воксельный ассет бери и всё. Тот же майнкрафт по сути как-раз "террейн с породами"
>Любой воксельный ассет бери и всё. Тот же майнкрафт по сути как-раз "террейн с породами"
Но я хочу стратегию, а не майнкрафт. Соответственно нет необходимости каждый кубик просчитывать. Плюс графон с кубами - такое себе.
Имею в иду что "породы" не обязательно вообще должны быть физическими объектами, а могут быть просто зонами в пространстве, хотя хз как их тогда визуализировать.
воксели не обязательно визуализировать как кубы
https://uterrains.com/
вот вроде есть какая-то хуйня для гладких вокселей на юнити
Вот это круто.
Хочу сделать возможность загружать и скачивать карты. (Сейчас все друг у друга на прямую качают)
Понятное дело надо будет изучить mysql и тп. Просто возможно ктото посоветует какие либо ресурсы, так как только начинаю
Все норм, но зачем нужен Хокинг? Что там может найти разраб который с Unity больше 3 лет работает? Было бы неплохо найти книжку где все фишки C# используются в Unity на примерах, но походу придется самому все это переносить.
> но зачем нужен Хокинг?
Ну ты или не ты сам попросил книгу про юнити. Хокинг как раз объясняет чего там куда делать.
Если ты знаешь юнити лучше, чем шарп, то дрочи шарп.
И да, не забывай, что юнити — это всё таки КОП, а не ООП, и там не все законы ООП работают.
В смысле не все, а как же основные, полиморфизм, инкапсуляция и наследование. А как же все те паттерны, которые тоже можно использовать, если найти им применение. Я тоже раньше думал, что это КОП, но когда не знал, что такое ООП, может быть так оправдывал себя, что оно не нужно.
Все кто пишут иначе, не сделали не одной готовой игры, и хотят лишь отнять у вас время, и мотивацию.
Сделать игру просто - нужно лишь хотеть и делать.
Есть готовый инструмент Юнити, всё, делай что угодно, вообще всё.
Просто сделал игру по твоим словам, особо не изучая движок, 30 фпс с максимально хуевой графикой. Что ты наделал?
Смотришь в андроид ките на компе, ставишь нужную модель. Если там всё ок, значит в телефоне залупа. По другому не может быть, либо косяк в билде с шейдарами, либо в телефоне.
Бля, походу проблема была в том, что я чистый jpg натягивал на объект сразу. Сейчас сделал сначала материал, ему как альбедо присвоил этот jpg, после этого натянул на объект и уже нормально.
Правда параметр металик плохо работает, он все равно намного темнее смотрится на телефоне чем на кудахтере.
Давай сделаем, дизайнер есть. Я костылями на протяжение двух месяцев делал, создавал объект каждого игрока и через RPC передавал данные и забил когда баги посыпались, когда устроил тест с другими людьми, а не с одного железа.
Настройки пользователя у меня хранятся в статическом публичном классе, так что мне надо сохранить класс в таком виде, какой он есть, но вроде статичные поля и классы нельзя сохранять
https://www.red-gate.com/simple-talk/dotnet/c-programming/saving-game-data-with-unity/
Та сначала способ хранить в PlayerPrefs, потом в файлах
гугли воксели
>дизайнер есть
Это ты имеешь в виду есть модели или их пропсы, с ui и т.п? Или только на бумаге и в голове?
Как и где ты локализации хранишь? Я че-то json сделал, но это похоже не лучший способ.
Я не он, но у меня всё в csv-файлах. Редактировать можно прямо в экселе, что удобно.
Ок, понял.
Все, разобрался, надо было в билд сеттингс поменять архитектуру с х86 на х86_64, теперь можно менять скриптинг бэкенд.
Моделей там нет, обычная игра наподобие монополии. Пока всё в голове, дизайнеру если скажу, он все сделает, но можно демку и на стандартном UI сделать.
Ай, вроде нельзя закэшировать группу мешей в главном скрипте, придется все же дочерние добавлять. Ну или я где-то не понял.
Ты же в курсе что все механики и передачу надо будет делать кодеру? Если всё делать на стандартном юи без графики, что вы будете делать, или зачем тогда нужны?
На фотоне делать будем, что ты тогда сделаешь?
>Добро пожаловать в тред Unity - лучшего 3D и 2D игрового движка современности!
Говорить такое при живом UE4? Бывает.
Во первых, пиздуй в срачезагон, во вторых, тут про 2д ещё говорится, а в твоём примере всем известно, что 2д хуево делается.
Про 3д тоже.
Если я хочу попробовать себя в лвл-дизайне и выбрал юнити для работы, то обязательно ли мне Си шарп? Или мне хватит самого юнити и пачки готовых моделек?
Как я понял, ЯП нужен для скриптов. Возможно, еще для каких-то внутренних механик, типа, учета сопротивления брони при ударе и прочего.
Или я вообще не прав и мне надо все сразу: и 3д, и C# и все остальное?
Без с# ты сможешь - расставлять, подгонять, редактировать 2д, либо 3д, но чтобы появились механики, даже самые простые, как движение картинки/обьектов, меню, нужны будут либо готовые ассеты, либо копипаст кода с гугла, в любом случаи придётся изучать с# поверхностно чтобы можно было связывать лапшу кода вместе и всё это дерьмо работало. Исключение лишь если ты просто лепишь уровень и летаешь в редакторе, но тогда кроме тебя твою игру никто не увидит.
Делается это правильно так - в файле(не в скриптах) хранятся все текстовые значения(строки), из него парсером переносятся в память, из памяти в нужные места, никакого извращения со словарями или хранения текста в скриптах не надо, это ужасно.
>ужасно
А что ужасного?
У хранения в тексте я вижу только один минус: чтобы подправить текст, придется заново игру компилить, а так можно было делать правки в текстовом файле. Ну, и с помощью внешнего файла можно запилить мультиязычность, чтобы кто-то мог добавить перевод для своей страны.
А вообще, я решил для первой игры особо не заморачиваться, пишу по принципу: работает? не тормозит? Ну и заебись, пусть так и будет.
А проблемы решать по мере их поступления.
Все же для меня это как хобби, а не работа. Там пожалуй бы дрючили по всем статьям.
Ну для аутентичности.
> А вообще, я решил для первой игры особо не заморачиваться, пишу по принципу: работает? не тормозит? Ну и заебись, пусть так и будет.
> А проблемы решать по мере их поступления.
Опасный подход, у меня при таком подходе неизбежно и быстро наступает момент, когда проект запутан и я сам уже нихуя не понимаю, как что работает. Но это всё индивидуально. Если у тебя работает - делай так. Мне же увы нужен чоткий диздок, именованные константы, самодокументируемый код по гайдам и паттернам.
> Все же для меня это как хобби, а не работа. Там пожалуй бы дрючили по всем статьям.
И ЧСХ, у меня тоже хобби и на галерах не работал дольше испытательных сроков.
Благодарю за ответ.
> маня путает кор с дотнетом и чето еще кукарекает
Акстись, долбаеба кусок, ты уже обоссан в три слоя. Иди документацию читай внимательней чтоб хуйню не нести потом, животное. Далее по играм, все игры это простое гавно с параметрами типа жизнь, скорость, направление, еб твою мать. Ну и формулами из расчета. Это все легко дотсом делается. Никто ж не виноват что ты криворукий еблан.
1600x752, 0:40
Ахуеть, я в оп-посте! У меня прогресс небольшой, если кому интересно. Боёвку почти доработал, анимацию атаки "сложную" сделал, систему звуков, поиск пути нпс поломал.
Это пидоры так сокращают?
ох уж эти антивирусы
Может я чего-то не заметил? Из-за чего может быть такое поведение?
ты чего-то не заметил
Делаю игру в духе аутласта, от врага надо будет прятаться. Я бы хотел, чтобы за каждым объектом можно спрятаться так, чтобы голова (камера) немного торчала, чтобы можно было наблюдать за перемещением врага.
Но у таких объектов может быть разная высота, шкаф, тумба, стол, то есть, если я сделаю приседание на фиксированную высоту, то где-то голова будет торчать, а где-то - полностью скроется, так что врага не будет видно.
У меня пока две идеи, как такое реализовать.
1. Персонаж начнет приседание, пока будет нажата соответствующая клавиша (ctrl). То есть, чтобы игрок полностью присел, нужно удерживать кнопку какое-то время, например, 2 секунды. Если я удержу кнопку 0.5 сек, он присядет на 40 см. Вставать тоже можно постепенно (например, пробелом, прыгать в игре нельзя, так что эта клавиша не используется), или быстро, например, если два раза нажать. Чтобы игрок знал, что он присел, будет иконка
2. Вычислять, какой высоты объект перед ним, и в зависимости от этой высоты рассчитать, на какое расстояние отпустить камеру и коллайдер.
Пока что мне больше нравится первый вариант, так как его реализовать легче
Первое - неудобная хуйня. Второе - геморрой и тоже хуйня. От первого лица что ли будет?
Да. Мне, кстати, игры от 3-го лица вообще не нравятся. Всю игру смотришь на мужскую жопу, ладно, если там няшная баба вроде Лары, то ок. И вообще, мне нравится быть сосредоточенным на игровом мире, а не на туловище персонажа. А ведь в таких играх персонаж на самой середине и занимает большую часть экрана.
Да и вообще, в чем смысл этого третьего лица? Сильнее отождествляться с игроком? И показывать, как он классно двигается, дерется, ныкается в углах?
Ну вот ты видел где-нибудь реализацию твоей идеи в других играх? Либо это нахуй не всралось, либо пиздец геморрой с кучей ненужного говнокода и проще объекты под модель персонажа подгонять.
А ты лучше дай контроль игроку. Пусть у него будет возможность регулировать высоту и наклон с зажатием какой-то кнопки.
Смотри, как сделано в Escape From Tarkov: https://youtu.be/Yn42QckiKg0?t=328
Зажимаешь кнопку приседа и колесиком регулируешь высоту.
Сап /gd
Можете скинуть материалы для книги "Разработка игр на Unity 2018 за 24 часа"? Искал в интернете - нигде не нашёл
>Разработка игр на Unity 2018 за 24 часа
https://www.litres.ru/mayk-geyg/razrabotka-igr-na-unity-2018-za-24-chasa-50296148/
В файлах примеров содержатся листинги программ из каждой главы с авторскими комментариями, все сторонние графические ассеты (текстуры, шрифты, модели), а также аудиоматериалы. Для доступа к сопроводительным файлам перейдите по адресу http://addons.eksmo.ru/it/Unity.zip.
Книга так называется. Да и там особо не отличается, мне не мешает разница в версиях
>Я не покупал, у меня скаченная версия была
> Для доступа к сопроводительным файлам перейдите по адресу http://addons.eksmo.ru/it/Unity.zip.
C момента 2018 до 2020 текущего вышло овер 10500 патчей, зайди на оф сайт посмотри ченджлог, так пиздос сколько всего менялось и правилось, я шарю за это. 2018 прошлый век.
Спасибо. Правда я и сам внезапно смог, установив top и bottom = 0
Да мне пох,мне нормально по этой книге учиться
Работает. Попробуй со страницы литреса. https://www.litres.ru/mayk-geyg/razrabotka-igr-na-unity-2018-za-24-chasa-50296148/
Разрешение в юнити стоит портретное 1080x2160, настройки канваса пикрил3
второй пик уже, чем первый
Разрешение моего в портретке 1080х2280, это вакаба качество режет, вероятно. Но суть дела не меняет, в юнити картинка выглядит нормально, а на телефоне шакалит буквы и всё прочее
а есть телеграм канал тредика?
Воу, ты скачал модельки с анимациями? Хорош.
Сейчас я на 145 странице из 466. На данный момент всё очень даже неплохо, достаточно подробно объясняется. Единственное что: эта книге будет полезна если ты слабо знаешь Unity, как мне кажется, ибо она рассчитана, что ты вообще ничего не знаешь
Подскажите ньюфагу как вместе с кем то делать проект но чтобы не пересылать друг другу кучу файлов и не ждать очереди? Желательно бесплатный вариант.
bitbucket
Я делаю вместе с самим с собой. Когда уезжаю в деревню, вытягиваю с гита на ноут, и кодю, лежа не печке
Но может можно более оптимизированный способ? Использую кстати TextMeshPro
(скрин с гугла)
Перекатывай.
Это копия, сохраненная 7 февраля 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.