24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
На Unity сделано много замечательных игр - Valheim, Genshin Impact, Subnautica, Albion Online, Endless Space, Beat Saber, Boneworks, 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 лицензию.
- Движок Если ты уже умеешь использовать язык, то можно приступать непосредственно к изучению движка. Крайне рекомендется купить/скачать книгу 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 - это начать делать игру и по мере разработки гуглить непонятные моменты.
Аноны, я чет не могу воткнуть в эвенты хуевенты. Карочи вот на пике есть такая залупа. Согласно задумке, я создаю персонажа, при этом передаю в конструктор стартовые значения основных характеристик, от которых уже зависят базовые значения всего остального. Хотел сделать чтобы при изменении базовой характеристики все пересчитывалось заново. Как изображенное на экране понял я сам - В основном атрибуте Endurance(наследует от mainAttributes) есть эвент. Когда я создаю класс Health, то в следующей строке я подписываю нужный мне метод в классе Heath на мой эвент. И если я по такой модели подпишу все навыки и статы, которые зависят от Enderance, то когда я инвокну этот эвент в Endurance, все подписанные таким образом объекты выполнят в своем коде подписанные по такому подобию методы, каждый свой. Я прав или нахуевертил паноса?
>>809424 Тебе надо сделать класс обсервер, который чекает изменения стат и который всё пересчитает при изменении одной из стат. С такой хуйней как на скрине ты очень быстро запутаешься как только зависимостей станет больше одной штуки.
>>809453 >конкретный вопрос задал Единственный вопрос который ты задал это >Я прав или нахуевертил паноса? Ты неправ. Надеюсь ты доволен ответом на свой вопрос.
>>809461 Эксит тайм это сколько должна проигрываться старая анимация после смены на новую при смене стейта. Например после бега у персонажа долен быть тормозной путь, бежать фактически перестали сменив стейт на idle но пару шагов персонажу сделать еще надо. Транзишн это скорость перехода из одной анимации в другую. Анимации смешиваются чтоб переход между анимациями не был резким.
Если делаешь пиксельную игру со спрайтовыми анимациями то всё ставишь по нулям.
Если 3д игра то в 95% анимаций эксит тайм будет равен 0, транзишон по вкусу устанавливаешь, обычно это полсекунды.
Назовите хоть одну причину по которой я должен отвечать на вопросы в этом треде? В это нет ничего веселого, это бесплатная работа. Я что, дурак бесплатно работать?
>>809463 Бесплатно работать на анонов и создавать контент для макаки, который она монетизирует. Просто двойной куколдизм какой-то. Как вас макака так выдрессировала, не понимаю?
>>809462 Я +- это понимаю но все равно хотелось бы более подробный гайд. Тк ужа заебался наугад двигать эти ползунки. То что должно выглядеть логичным нихуя не работет, анимации не переключаются , то что работает для одного перехода нихуя не работает для другого.
Вобщем если подскажешь какой то детальный гайд-буду прям здоровья тебе желать
>>809463 Чувство самоудовлетворения оттого что ты что то знаешь а кто то нет, душевная индульгенция, самодовольство от помощи кому то, очистка кармы, пропуск в рай
>>809468 >хотелось бы более подробный гайд >Если делаешь пиксельную игру со спрайтовыми анимациями то всё ставишь по нулям. >Если 3д игра то в 95% анимаций эксит тайм будет равен 0, транзишон по вкусу устанавливаешь, обычно это полсекунды.
>>809468 >Чувство самоудовлетворения К вам как к неграм относятся. Трут посты, банят, запрещают шутить, матерят за недостаточно быстрые и точные ответы Вы какие-то ебанутые получать удовольствие от унижения.
>>809424 > Хотел сделать чтобы при изменении базовой характеристики все пересчитывалось заново. Кстати, хороший вопрос. А как в Юнити с реактивностью? Вот в vue.js есть такая удобная штука, как computed параметры. Как это работает: допустим, есть две переменные - a и b. И можно объявить computed параметр sum, который будет всегда возвращать a+b. К этой переменной можно всегда обратиться и она будет всегда равна сумме текущих значений а и b. И шутка в том, что он не будет при каждом обращении высчитывать сумму, значение хранится и автоматически пересчитывается при изменении одной из используемых переменных (именно в момент изменения, а не в момент следующего обращения). Ну и это можно использовать для всяких хитрых вещей, перебора больших массивов (например есть большой массив данных, переменная фильтра и computed параметр, который всегда хранит эти данные, пропущенные через текущий фильтр и автоматически меняется при изменении фильтра). Ну или сложных расчётов - например, можно было бы возвращать значение характеристики персонажа, сразу применяя к ней все нужные модификаторы - от шмоток, эффектов и остального. В шарпе/юнити есть такое?
Да, я знаю что можно вместо обращения к параметру дергать метод, который будет каждый раз считать, но это не то. Можно на сеттеры всех модификаторов повесить обработчик, который будет пересчитывать значения, но это какие-то костыли, а там всё сразу из коробки и ничего дополнительно прописывать не надо.
>>809463 Чтобы аноны повышали свои знания и рожали больше хороших игр, в которые интересно играть. Если хотя бы один из десяти релизнет своё поделие - всё было не зря.
>>809485 Паттерн "Наблюдатель" (Observer) представляет поведенческий шаблон проектирования, который использует отношение "один ко многим". В этом отношении есть один наблюдаемый объект и множество наблюдателей. И при изменении наблюдаемого объекта автоматически происходит оповещение всех наблюдателей.
>>809498 Что в твоем понимании нормальный ии? В статье говорится о производительности, а не о том, что это какой-то гениальный интеллект. Вообще ты не умный карочи.
>>809506 не умный ты карочи. эта нейронка в теории может оперировать 174 триллионами переменными при решении какой-то задачи у далли 2 даже и 200 миллиардов нет, например
Сап, проблема с аниматором в unity. Я переход делаю через триггеры, но по какой-то непонятной причине мне пишет, что Animator не имеет метода SetTrigger.
>: 'Animator' does not contain a definition for 'SetTrigger' and no accessible extension method 'SetTrigger' accepting a first argument of type 'Animator' could be found (are you missing a using directive or an assembly reference?)
Но я понять не могу в чём я обосрался то? Ну буквально же простейший код, но пишет ошибку. Доки читал, везде решения смотрел, но похожие ошибки у людей бывают только при опечатке. Тут же её нет. Так хуле ему не нравится?
>>809498 Одного не понимаю в этих новостях, с чего все решили что человеческий мозг берёт голой производительностью? Всё же ровно наоборот. У него небольшая производительность, но колоссальная гибкость мышления за счёт физической архитектуры синапсов и нейропластичности. А сымитировать такой процесс можно только сымитировав всю 100 миллиардную нейронную структуру, короче невозможно в обозримом будущем. Плюс сколько там человеческий мозг обучается? 20-30 лет чтобы нормально соображать, кому-то правда нужен такой софт? Не проще ли нанять рандома с улицы, а компутерам оставить рутину сэкономив время и миллиарды (главная причина почему ии не будет - экономическая).
>>809329 (OP) Сука, ебвнный ваш аниматор. Пытаться сделать хоть что то больше чем ходить и стрелять, превращается в ад. Хочу сделать анимацию ранения, она должна менять остальные анимации походки и стрельбы, но как только пытаешься что то изменить все летит к буям. Эти долбанные булевые переходы. Ну что сложного сделать что то вроде - остановить текущую анимацию и запустить новую? Без этих переходов - лотерей, которые хрен пойми как работают. Сейчас играю в Готику 2 и просто охреневаю от колличесва анимаций которые навешаны на персонаже, мне трудно представить в какю паутину должно превратить аниматор подобное количество анимаций.
>>809578 >Пытаться сделать хоть что то больше чем ходить и стрелять, превращается в ад. Сомневаюсь что хоть в одном движке не так же. Трансформы 3D объектов вообще потенциально слишком сложная и глючная фича.
>>809424 Т.к. были аноны, решавшие задачу по пересчету скилов при изменении атрибутов персонажа, выложу свое решение, вдруг кому пригодится
В общем зависимые от статов свойства персонажа получают при создании ссылку на сам стат и записываются в его эвент через конструктор. Вроде путаница возникнуть таким образом не должна.
Как решить проблему шакального шрифта на текстурах модели? После выгрузки в сцену Юнити имеется ввиду. Суть в том чтобы сохранялась читаемость и четкость надписей при максимальном приближении. Подскажите, или направьте туда где подскажут?
Делаю скелетную анимацию, на одном скелете все действия не получается показать, поэтому делаю два ( а дальше планирую и больше скелетов), и отключаю/включаю нужный скелет для нужной анимации. Но тут проблема, включать эти скелеты довольно неудобно, приходится их в одном рисунке все рисовать, где и так на каждом скелете куча слоев под каждую руку/ногу. А потом еще и в юнити включать каждую. Мб есть какой-то способ оптимизировать это?
А как в HDRP свою splatmap для террайна импортировать? Типа чтобы сгенерить ее в World Machine или Пэйнтере, а дальше где нужно в конкретных местах уже ручками править.
>>809944 Почитай о развёртке. Если хочешь считающийся шрифт то разворачивай его оддельно и назначай свой материал иначе разворачивай его с развёрткой модели но приоритет делай именно на него т.е. большую часть развёртки должен занимать он ну естественно текстуру делай до 2к и не забудь в самом редакторе юнити выбрать тоже 2,к. Я просто недавно тоже надписи разворачивались и столкнулся с той же проблемой.
Самый лучший это унифицировать скелет и сделать один под всё. Но к этому скелету к примеру сделать пару аниматоров, чтобы не путаться в количестве анимации и их взаимодействии.
Второй это сделать отдельные объекты меша, но которые будут в одном родимом объекте (Типа игрок), и уже там по происшествию нужной фичи отключать/включать нужную модель.
Вообще если чувствуешь что делаешь что-то не так, или есть повторяемые действия в разработке, возможно ты реализовал фичу или архитектуру не оптимально и мучаешься стреляя себе в пятку.
>>809965 Я забыл уточнить что в 2д делаю. И под двумя скелетами я имел ввиду то когда в топ давн игре персонаж идёт вверх, и нам видно скелет со спрайтами спины и т.д. а если он движется вниз то мы видим скелет с лицом и грудью
Главное сакральное знание любой технической специальности это декомпозиция, именно благодаря ей у тебя независимо от уровня интеллекта будет возможность решить любую задачу вообще
Твоя задача это всё дробить на простое
Например иерархия объектов в унити часто это древовидная структура
Двачую этого >>810021 , сейчас как раз не эра когда надо писать на асамблере, а можно пользоваться готовыми решениями и опытом. Делай как он говорит и даже без знания программирования у тебя будет какой-никакой но выхлоп.
Хочу сделать гуи, щоб чарактер шит был условно по композиции похож на фолаутовский. Как лучше делать, чтобы при разных разрешениях гуи выгглядел одинаково? Рисовать отдельно под разное соотношение сторон и скейлить? Я так понимаю от текстовой компоненты в гуи тогда лучше отказаться и все надписи рисовать?
>>809984 >Если хочешь считающийся шрифт то разворачивай его оддельно и назначай свой материал Была такая мысль. Если правильно понял тебя, то это отдельный plane с надписью? В этом случае опасаюсь перегрузить сцену кучей таких объектов, так как надписей много. >большую часть развёртки должен занимать он Вот это годно звучит, спасибо так и попробую
Объясните тупому, что такое интерфейс, в двух словах? Типа это такой набор переменных и методов, которые что-то делают с этими переменными ИЛИ взаимодействуют с другими классами (типа синглтон-манагеров)? И их по надобности можно присобачить к любому классу? В чем их принципиальное отличие от абстрактного класса (которые я и юзаю)? Скажем, на примере, есть класс монетка, наследуется от класса коллектабл. Если я захочу сделать так, чтобы эта монетка вращалась, то мне не копипастить кусок кода transform.Rotate(), а присобачить к монетке интерфейс IRotable, где это вращение реализуется, или как?
>>810213 В интерфейсе ничего не реализуется, реализуется в классе к которому ты присобачил этот интерфейс. Есть класс Monetka с интерфейсом IRotable, есть класс Baraban с этим интерфейсом, когда тебе надо обработать всё что вращается ты проходишь по списку содержащему эти интерфейсы, вызываешь метод интерфейса Rotate а там уже в каком классе каким макаром обрабатывается Rotate это уже тебя не ебёт. В итоге у тебя есть доступ к этим разным классам по одному шаблону.
>>810219 Это то, что называют полиморфизм? Наверное я сделал так, как задумано. Спасибо, попробую подумать, где я мог бы это использовать в предудыщих проектах
Constraints Component самая странная хрень, согласны? Нет, ну правда, то, что он делает - делается несколькими строчками кода в Update. Аж представлю, что кто-то дергает этот компонент во время игры то аж передергивает. Кто эти больные люди? Но с другой стороны, возможно эта хрень полезна для визуального программирования, но это не точно
Transform Component самая странная хрень, согласны? Нет, ну правда, то, что он делает - делается несколькими строчками кода в Update. Аж представлю, что кто-то дергает этот компонент во время игры то аж передергивает. Кто эти больные люди? Но с другой стороны, возможно эта хрень полезна для визуального программирования, но это не точно
>>810872 надо смотреть как в дноте 2 сделано, у них там на каждый и активируемый предмет и скилл разные эффекты и действия происходят ещё и моддинг поддерживается
>>810872 Да. Абстрактный класс скиллз, от него все остальные идут. Т к. Это не монобихевиор классы, то все будет лежать в одном файле. Как ты собрался делать все в одном файле еще и со статами я хз.
Какая же охуенная тема DeepL и переводчик видео в яндекс в остальном пиздец перегруженная хуета, они на стартовую панель добавили яндекс дзен, ебало представили? браузере. Наконец-то смог посмотреть видео трапика по векторам.
я свое ебало представил, когда решил накатить яндекс браузер, попробовать, а когда мне не понравилось я его удалил, но некоторые его компоненты остались и удилть было нельзя, потому что не было файлов яндекс браузера. в итоге я ручками чистил реест. ебаный кал мочи
>>811782 >За две недели до того, как стало известно о сокращениях, глава Unity Джон Рикителло заявлял, что у компании нет финансовых проблем и сокращать штат она не планирует.
>>811865 unity они заигрались в корпорацию и устили движок на самотек. сейчас если у них все хуево станет, они снова вернуться к движку бездельников уже выгнали на мороз, это хороший знак
>>811806 Оно и так отсает от него. Но! В Уече традиционно нихуя толком не работает из фич, Грум до сих пор не пофиксли, хотя ему овер 2ух лет уже. КонтролРиг тоже через жопу работает.Хаос Дестракшн туда же.И с метахуманом тоже есть проблемы. В общем фич много но они их кидают недопиленными и берутся за новые. Не знаю как в Юньке, мб ни у кого нихуя не работает и я зря гоню.
>>811953 Бля, помею хотел как-то его использовать, в итоге что-то мне там очень сильно не понравилось(вроде проблема какая-то была), причем так сгорело, что я сразу дропнул эту затею. Не помню, в чем дело было...
>>811949 >движок для инди Он не для инди ни для ААА ни для геев ни для педофилов ни для любителй сока от салата, это просто графический движок общего нзначения. Хочешь кинцо снимай, хочешь архивиз делай, хочешь свой майнкрафт пиши.
>>811939 маленькой команде нужно как можно быстрее и дешевле сделать кучу контента. и unreal engine ей в этом никак не поможет, потому что его потанцевал раскрываете только в ААА-фотореалистичной графике, а больше он ни во что не умеет.
>>811975 >ААА-фотореалистичной графике но сами Епики ебашут на нём свои мультики из двух полигонов и палитрой из детских фломастеров. Все зависит от разраба, можешь хоть платформер про прыгающий кубик писать. Можешь делать тоже самое и на другом движке никто не против.
>>811923 Их видение ECS слишком специализированное, чтобы его можно было обобщить в универсальное решение. Овчинка не стоит выделки. Гораздо проще распареллилить структуры данных внутри критического компонента, чем пытаться втиснуть всю логику игры в узкие ограниченные рамки ECS
>>811792 С одной стороны - да. А с другой - Юнити просто нет адекватных альтернатив, сопоставимых по универсальности. Уеч - говно для ААА. Сурс и крайтек мертвы, плюс учебников и всяких готовых модулей для них сильно меньше. Всякое сырое говно вроде годота и унэнджина вообще непригодно для серьезной разработки. Вот и выходит, что даже если Юнити закроют, придётся сидеть на последней доступной версии, потому что больше альтернатив то нет.
>>811782 Unity подтвердила увольнения в заявлении для Protocol и сообщила, что пострадало чуть более 200 человек. «В рамках непрерывного процесса планирования, в ходе которого мы регулярно оцениваем наши ресурсы в соответствии с приоритетами нашей компании, мы решили перераспределить часть наших ресурсов, чтобы лучше сфокусироваться и поддержать наш долгосрочный рост. Это привело к принятию некоторых сложных решений, которые повлияли примерно на 4 % всей рабочей силы Unity. Мы благодарны за вклад тех, кто покидает Unity, и мы поддерживаем их в этот трудный переход».
>>811792 Но пидор здесь только ты, пидорашка австралопитекская. Не нравятся блага западной цивилизации - не пользуйся.
Короче, опять напалао на меня желание делать игру. Появилась простенькая задумка на что-то просто с видом сверху, но в 3d. Юнити выбрался как движок. Решил посмотреть что там похожее по механике, то есть с видом сверху есть из недавнего. Скачал Last Eрохин и V rising. И... они пиздец фризят. Что за хуйня? Графон не йобовый, кеч 3070ti. Это везде так или разрабы кривые?
>>809329 (OP) Рейтрейсинг не реалистичен, всех наебали с рейтрейсингом, у всех сейчас в голове что угол падения света равен углу отражения. Это игнорирует тот факт что воздух как океаническая толща, в нем сложнейший fluid simulation, где через воду свет идет по сложнейшей траектории.
>>812571 Этот прав, если делать просто углами получится освещение как на луне с резкими перепадами тёмных и светлых участков. Что в общем-то и выходит в игре.
Не могу понять в чем причина. Делаю скелетную 2д анимацию
Нужно уменьшить спрайт на один период в анимации Добавляю компонент Скейл к одному спрайту на шкале, меняю в нем значения но ничего не происходит, нужный спрайт никак не изменяется на протяжении анимации, хотя вроде как должен
>>813054 Если деньги давать хохлам и либерахам, так всё и выйдет. См. историю предприятия "Миландр". Но наше правительство всё-таки обучаемо, и надеюсь, будет давать деньги русским.
>>809329 (OP) Сап юнитач. Пилю игоря для конкурса, хочу визуализировать связь между 2я игроками, как это сделать? Ну просто красная линия которая тянется от одного игрока к другому, делал подобное на гизмо, но в финальном рендере это не отображается.
>>813048 Так уже есть uningine, который вроде бы, в Новосибе пилят. Но один хуй в Юнити вложены годы разработки, поэтому с ним не смогут сравниться новые движки. Даже годот на фоне юнити выглядит сырым и кривым говном, хотя его достаточно долго разрабатывают.
А есть где-нибудь годная инструкция, как на модельках менять одежду? В игре есть разные персонажи и нужно им менять броню и одежду, причём она может различаться по частям - перчатки, сапоги, грудь и так далее. Чтобы можно было менять на модельках со скелетом и это работало с анимациями.
В коде при каждом цикле создается анонимная функция? Если цикл выполнится 1000 раз, то создадутся 1000 анонимных функций и забьют память? Хотел бы я написать tiles.eventOnTriggerEnter.AddListener(TileOnTriggerEnter) вместо tiles.eventOnTriggerEnter.AddListener(() => {TileOnTriggerEnter(tileIndex); }), но мне нужно передать параметр tileIndex, чтобы знать, какой именно объект вызвал событие
>>813261 Пчел то что кинул >>813253 единственный условно бесплатный ресурс. Да это помойка где надо заходить с левого браузера без адблока и качать на скорости 100кб, но зато бесплатно слитые ассеты со стора. Просто после того как наскачиваешь ассетов, почисти комп на всякий и просканируй на вирусы. Лично там брал кучу годноты от шейдеров которые по 30-50$ в сторе и нужных тулзов. Мб лучше и в телеге, но у меня её нету.
>>813266 Делись каналом. У меня в телеге только один канал с ассетами, ничего не постит уже два года, clayxels там нет даже старой версии. И даже линком на этот древний канал никак не поделиться.
>>813297 Ок, буду пробовать, спасибо. Пока даже через чистый edge не даёт скачать, просит adblock отключить. В хроме тоже нахер посылали, но уже по другой причине.
>>813385 Качаю с лисы без вэпэна. Если не скачивает нужный ассет по причине лимита(Такое бывает на новых), то на страничке ассета выбирай чуть ниже ссылку на более старую версию и качай её, разница обычно минимальна.
Есть ли ресурс где можно по-быстрому подтянуть геометрию? А то чёт понял что я уже всё забыл нахуй, а мне желательно понимать как с векторами работать.
>>813486 Аналитическая геометрия — раздел геометрии, в котором геометрические фигуры и их свойства исследуются средствами алгебры. В основе этого метода лежит так называемый метод координат, впервые применённый Декартом в 1637 году.
>>813656 Методички с лабами нам в виде pdf скидывали Теорию в интернете искал По некоторым предметам онлайн курсы были, поэтому там пох Иногда домашка в учебниках была, ну наши челы кидали фотки с заданиями
предположим у нас 2д игра. есть Player, есть DeadPlayer который создается после смерти Player из префаба.
if(Player.Dead) { Instantiate(DeadPlayer) }
Нужно что бы труп игрока был повернут в ту сторону в которую в этот момент был повернут игрок.
DeadPlayer.transform.localScale=transform.localScale по какой то причине корректно не работает нихуя и труп по рандому создается то с localScale 1 то-1
>>813687 А зачем два префаба, нарисуй анимацию смерти и "подвесь" в конце, будет труп лежать. Ориентируй её также, как остальные анимации ориентируешь в и всё.
>>813679 >Могу разок для тебя найти конкретные ассеты. Спасибо, Анон, скачал уже с файлопомойки clayxels и polaris, пока хватит для экспериментов в нерабочее время
>>812739 Говорю это по ощущениям от игр где использовался ретрейсинг. Его типичные косяки - сильная засветка, а рядом неестественная чернота, которая ирл не встречается. Сразу чувствуется что это сделано банальной геометрией.
>>813687 > есть Player, есть DeadPlayer который создается после смерти Player из префаба. Нахуя а главное зачем? Нахуя тебе убирать игрока? Просто отрубаешь ему управление и хуяришь рагдол или анимацию смерти.
Опять я со своими монетками CoinCollector просто на машинке висит Как сделать по-умному, по-MVCшному и отвязать интерфейс от логики? См пики Т.е. меня напрягает, что в манагере сбора монеток есть ссылка на гуишный Label Text
>>814102 Зря так намудрил и усложнил то что можно сделать проще.
1. Скрипт на машинке или её части который обрабатывает все Эвенты триггерОн. Получая что за объект передаёт в главный скрипт логики с ссылкой на объект. 2. Скрип логики уже решает что делать и какие функции вызывать - по типу онбовить юи, начислить очки, удалить монетку. 3. На самой монетки висит лишь скрипт вращения, в идеале просто сделать анимац контроллер и обойтись без скрипта оставив просто тег. В особо сложных случаях если в объекте хранятся какие либо данные также повесить просто скрипт хранящий инфу.
Насколько хуёво делать статический EventManager в котором будут содержаться тупо все ивенты, которые есть в проекте? Это сильно перечит принципам ООП? Лучше чтобы соответствующие ивенты находились в соответствующих их предметной области классах?
>>814186 >>814187 Поидее так и надо, не в кнопке давать ссылку на гуи-манагер или какой-нибудь синглтон, а в манагер дать ссылку на кнопки в рантайме назначить действия => (addlistener)
>>813729 можешь в префабе ирока сделать чайдл объект скин мертвого, скриптом будешь внутренности включать/отключать в зависимости от твоего стейта Player.isDead. Наглядно и просто и без Instantiate
>>814186 Норм. Можешь разделить там на геймплей ивенты, ui ивенты, и может ещё какие. Это идеальная архитектура для маленьких проектов, даже она уже очень сильно выделяется на фоне того, что обычно лепят начинающие.
>>814187 Нормас, но 1. На кой хуй тебе HiseInInspector? 2. Зачем ты используешь юнити ивенты, вместо обычных C# ивентов? В данном случае в юнити ивентах нет никакого толку.
Мне бы сделать игру с плагинами, я разобрался как билдить assetbundle с ассетами, но теперь не могу сделать скрипт который сканирует папку игры на наличие файлов и вшивает их в папку проекта обратно, которые находятся в бандлах. Пытаюсь понять, не осиливаю, тут немного другое. https://www.youtube.com/watch?v=-lQ8rvrGXg8
Хорошо, давайте другой способ. Как мне сделать билд проекта, чтоб конкретные файлы и папки вшились не в resources.assets, а в другой файл? Будет ли игра работать, если в этом фале были только звуки и я его удалил?
>>814676 Сука ты ебанутый, я под манипуляциями имел ввиду вот эту вот шизу с ассетами что ты творишь, хуесос тупой. Мне непонятно с чем тебе помогать потому что я не вижу смысла в твоих действиях. Выглядит так будто ты какой-то хуйней занимаешься вместо того чтобы игру делать.
>>814647 > resources.assets ты билдишь бандл и получаешь это на выходе? тогда можно просто поменять название и закинуть в уже сбилженную игру в папку стриминг ассетс, пример загрузки на скрине
Аноны, вопрос по UnityEvent. С удивление обнаружил вчера, что an_unity_event.RemoveAllListeners() удаляет не вообще все non-persistent подписки с события, а только те подписки которые были сделаны в этом конкретном классе. То есть если в другом классе подписался на это событие, то RemoveAllListeners() не сработает. Это нормально? Вы отписываетесь в каждом классе?
>>813800 Заколебаешься потом все косяки фиксить, и встанет очевидный вопрос - зачем их фиксить если можно расставить источники света вручную без неконтролируемых последствий, если их и так приходится расставлять.
А можно ли как-то разбить прибилде дата файлы по категорям чтоб звуки например были в одном .assets.resS, картинки в другом и т.п.? Я, например, изначально не готов весь контент игры выкладывать, а по кускам. Планирую сбилдить дата файлы по категориям и вычленить, например, звуки. Тогда в игре не будет звуков, но они вернутся, когда в папку кинуешь этот вычлененный файлик со звуками.
>>814713 Я ньюфаг в программировании, при каких условиях этот скрипт запускается? Можно ли чтоб при запуске игры - поставить void Start() ? Я не знаю что делает строка с гетбандл. И в какую папку кидать бандлы? Получается создать StreamingAssets? а в ней dlc и туда? Ещё такой момент - я удалю с проекта, например, звуковой файлик, он будет в бандле, мне нужно чтоб после работы это скрипта файлик воткнулся точно как он в проекте лежал со всеми настройками, во все канвасы, и чтоб игра заработала уже с этим звуком, а не без него в билде.
>>814713 Ладно, ладно, я нашёл нейросетку, которая озвучивает голосами известных актрис, хочу сделать озвучку. Но тут проблема - пидорнут правообладатели. Поэтому я хочу выпустить игру и секретный патч, типо фанатский некоммерческий, расшарю с левого акка.
>>815146 >>814713 Ну хорошо, с файлом разобрались, добавил строку using System.IO; хотя это блять никак не очевидно что сделать надо было. А датой почему ругается. Кидай весь скрипт полностью, не стесняйся.
>The name 'Data' does not exist in the current context >The name 'Data' does not exist in the current context >The name 'Data' does not exist in the current context >The name 'Data' does not exist in the current context >The name 'Data' does not exist in the current context >The name 'Data' does not exist in the current context >The name 'Data' does not exist in the current context >The name 'Data' does not exist in the current context >The name 'Data' does not exist in the current context >The name 'Data' does not exist in the current context >The name 'Data' does not exist in the current context >The name 'Data' does not exist in the current context >The name 'Data' does not exist in the current context >The name 'Data' does not exist in the current context >The name 'Data' does not exist in the current context >The name 'Data' does not exist in the current context >The name 'Data' does not exist in the current context
сделать билд так, чтоб я потом из папки даты мог удалить файлик только с конкретной папкой проекта, например звуками, и всё работало бы, кроме озвучки офк...
Блять я почти нашёл решение, но в проекте нельзя добавить ассеты в папку StreamingAssets чтоб они были юзабельными. Нельзя ли тогда сделать игру открытой незаархивированной?
Обязательно: Игра должна быть интересной. Игра должна приносить удовольствие. Интересный сюжет, если он есть. Интересные игровые механики. Понятное управление. Отсутствие багов, плавность картинки, оптимизация. Если все это присутствует - то ты молодец и твоя жизнь удалась. Необязательно: Красивый, понятный код по ООП стандартам, SOLID, паттерны и все такое.
>>815210 Бля ты чо рофлишь? Ты бы хоть гайды сначала посмотрел по юнити, чтобы вышло, скажем, часов 10 просмотра(вообще любых) и часов 10 практики(просто повторяй то что в видео), это уже будет хоть что-то. Да и нахуй ты вообще игру начал делать с ассет бандлов(!!!), ты ж получается сейчас даже не знаешь из чего проект состоит, и в каком конкретно виде ты хочешь хранить всю эту озвучку или чо там тебе надо.
Приходишь такой - Помогите, потратьте 5 минут и напишите мне строчку работающего говнокода. Рандом Анальник - УУу, потрать 100 часов сперва на изучение. Очевидно же что я не хочу быть программистом, мудило.
>>815294 Я её в любом случае буду рубить, не сегодня, так завтра выйдет нужный костыль в ассет сторе, а я его сворую, а анальники останутся не при делах. До того момент будет игра без озвучки, не велика беда.
>>815291 Какого нахуй кода, я тебе писал программировать учиться или че?
Я тебе писал посмотреть гайды по юнити, ю-н-и-т-и. Чтобы понять, что вот на сцену можно разные объекты ставить, на них можно вешать компоненты, а потом можно их сохранить как префаб, и потом этот префаб закинуть в бандл и загрузить его оттуда. Толку нет никакого все это писать, это надо видеть. Код для загрузки у тебя уже написан, но какой с него толк, если грузить нечего
>>815352 1. Я научился грузить префабы, вшитые в бандлы, но ты не прав - пришлось говнокодить, несколько часов искать и разбираться по гайдам индусов, чтоб их запустить. 2. Мне нужно грузить не префабы, а конкретно файлы в проект со всеми .meta данными как было, до того как они были удалены из проекта, чтоб потом сами подставились в канвасы которые с missing files. 3. Вообще я уже заебался с этим хрюнити, сделали бы как на нормальных движках, что можно сбилдить незаархивированные файлы, я бы просто тогда папку со звуками из билда удалил. StreamingAssets - говно, не даёт в проекте работать с ассетами из неё.
Пацаны, уже пользуетесь всеми благами C# v9.0? Который поддерживается последней LTS версией редактора. Вот несколько примеров:
#1 private List<Mob> _mobs = new(); #2 if (enemy is not Player) { ... } #3 if (target is not null) { ... } #4 if (count is (>= 2 or <= 7) or 99) { ... }
Из версий пониже тоже всякие полезные штуки: короткая запись switch, короткая запись свойств и методов в одну строку =>, оператор ??, оператор ??=
>>815407 > В чём смысл? Особого смысла нет. Просто это выглядит логичнее, если ты работаешь с ссылочным типом. И в целом получается единый способ проверки. А операторы сравнения лучше использовать для типов значений.
if (target is SkeletonArcher) if (target is not Dog) if (target is null) if (target is not null)
Мне нравится, в общем. Но есть один подводный камень. Класс Юнити "Object" переопределяет операторы "==" и "!=" и изменяет проверку с null. Если ты используешь "is null/is not null", то их переопределение не сработает, то есть будет реально сравнение ссылки с null. Для меня это плюс.
>>815353 > Мне нужно грузить не префабы, а конкретно файлы в проект со всеми .meta данными как было, до того как они были удалены из проекта, чтоб потом сами подставились в канвасы которые с missing files. Мета файлы для этого вообще не нужны. Можешь сделать префаб Zalupa в двух разных ассет бандлах и грузить его по имени
>>815410 Что то не то ты говоришь. Операторы == != переопределены и правильно работают с gameobject, не работает оператор ? о чем райдер например сражу же предупреждает.
>>815423 > не работает оператор ? Все новые операторы, которые сравнивают с null, не работают с юнити объектами. "is null" в том числе. Точнее работают так, как и должны работать. Это юнитеки хуйню натворили с операторами сравнения.
Нихуя не понимаю с анимациями и почему у меня модельки скачат как ебанутые по всей карте, кога у чела с видео, который просто воткнул блядь колайдер под модельку - нихуя этого не происходит. Ну я тоже воткнул и че? Хули это так не работает?
>>815418 Я же писал, мне не префаб нужен, а файлик... Префаб говно, префаб не круто, не могу воткнуть префаб в канвасы как было. Видимо это тупик юнити - нельзя сделать плагины с просто файлами. Неужели не понятно объясняю? Я создаю игровой объект kal со звуком, звук удаляю, а потом бандлом или как-нибудь ещё я надеялся его вернуть в проект, чтоб он сам воткнулся в игровой объект kal.
Спрошу последний раз твёрдо и чётко - можно ли сбилдить проект так, чтоб ресурсы игры оказались незапакованными и откртыми для всех? Последняя надежда.
Ну что, анальнички мои, придумал я решение с озвучкой, что означает я умнее вас. В проекте юнити есть папка Resources, которая билдится в конкретный файл resources.resource. Если папки нет или пустая, то файла в билде нет. Если в папке не будет никаких файлов кроме озвучки, то можно смело удалять resources.resource и всё будет работать кроме озвучки, а правообладатель не приебётся, а для народа расшарить этот файл чтоб поставили на место и всё будет работать.
>>815510 Бегло глядя - бандлы, неработающий говнокод, надуманные проблемы. Молодец, что потратил 10 секунд на гугл, а я три дня в этом дерьме. Спорим ты даже не читал что там излагают даже первые две строки? Просто пупкнул ссылкой и убежал. Я бы мог потратить ещё два часа чтоб убедиться что ни одно анальное решение там мне не подходит, но уже итак заебался, спасибо.
>>815541 Да все уже поняли, что ты уебищный неосилятор. Для таких тупых спецом есть видео на ютубе, как загружать. Да ты и там нехуя не найдешь, а если случится чудо, что найдешь, тупо не поймешь.
>>815549 Тупой утырок ты, жаль твоей мамаше не хватило на аборт, выкинула на помойку. С бандлов и прочих модов анальников экспортируются только префабы и игровые объекты, скрипты, а звуки отдельно не экспортируются, везде решение - говнюче создавать клон файла, оно не подставляется само в канвасы с missing files. Ну как тебе ещё проще объяснить? Погуглил бы хоть.
>>815552 Ты что тупой? Зачем мне утруждать себя, делая это для десятков файлов звуков и десятков канвасов? Пиши говнокод, если тебе нужно, вручную прописывая все имена, мне оно не нужно, ниггерская работа.
Сделай скрипт, который будет загружать любой нужный тебе объект из бандла и вешать его на канвас или куда тебе нужно. Да, в скриптах ты можешь что угодно сделать.
Только не знаю, зачем ты звук на канвас хочешь вешать, почему не отдельно?
>>815536 > Молодец, что потратил 10 секунд на гугл, а я три дня в этом дерьме. Ну я ж говорю бля, 20 часов обучения, ровно 20 часов и ты поймешь, что в юнити можно делать, и дальше сможешь игру пилить даже, потому что получишь минимальные навыки. А так ты уже 72 часа с мертвой точки не сдвинулся.
>>815554 А если сделать условный префаб AudioManager, повесить на него все звуки, а потом сделать альтернативную версию в бандле, и на нее другие звуки повесить? :) И гичего писать не надо В игре же всего 1 скрипт будет нужен, ровно в 1 строчку - Instantiate(эта хуета)
>>815554 > Ты что тупой? Зачем мне утруждать себя, делая это для десятков файлов звуков и десятков канвасов? Пиши говнокод, если тебе нужно, вручную прописывая все имена, мне оно не нужно, ниггерская работа. Каким образом ты звуки проигрывать собрался? Или они у тебя так просто висеть будут для красоты?
>>815591 >Только не знаю, зачем ты звук на канвас хочешь вешать, почему не отдельно? На самом деле там не юнитьский дефолтный канвас, а меню костыля, куда втыкаются звуки. Про канвас для я для тупых написал как пример.
>>815596 1. Слишком заморочно совать в канвасы 100 звуков 2. Нужно для каждого звука писать вручную скрипт чтоб выдёргивать их и потом их поставлять куда-то, слишком заморочно.
>>815603 > Слишком заморочно совать в канвасы 100 звуков Чем отличается от этого? >>815601 > Нужно для каждого звука писать вручную скрипт чтоб выдёргивать их и потом их поставлять куда-то, слишком заморочно. Каво? Нахуя? У тебя как сейчас звуки проигрываются?
>>815611 >Чем отличается от этого? >>815601 Это интерфейс движка плагина для создания новел, в него можно выделить и бросить все файлы и им присвоятся айдишники по именам автоматически, это в любом случае, а в префабы выделять дрочиться мышкой вначале меню, потом звук вставлять по 1 штуке. Давай вместо того чтобы фантазировать как бы ты прекрасно решил эту проблему ты пприступишь к действиям, чтоб бросить всё в самом начале, потому что поймёшь какой это гемор, а ещё сочинять анальные скрипты, а я ещё раз повторяю для тупых в треде - я не хочу быть программистом, я контент мейкер, мне не интересны проблемы анальников. Твой способ хуёвый и нерабочий для меня, а иначе пиши сприпт, тести его на работоспособность сам и инструкцию в тред пошагово как пользоваться, всё должно быть просто и понятно, потом в ассет стор выложишь и заработаешь кучу лаве, потому что такого ещё не было. У тебя 5 минут на разработку, потому что ты считаешь это очень просто даже для непрограммиста как я, посмотрим какой ты крутой.
>>815632 > Это интерфейс движка плагина для создания новел, в него можно выделить и бросить все файлы и им присвоятся айдишники по именам автоматически, это в любом случае, а в префабы выделять дрочиться мышкой вначале меню, потом звук вставлять по 1 штуке. > Твой способ хуёвый и нерабочий для меня Потому что ты не сказал, что у тебя там анальный движок для вн внутри движка. Поэтому твоя задача - не подтянуть нужные звуки из разных бандлов в свою игру, а подтянуть разные звуки из разных бандлов в этот вн движок
Конечно, в этом случае какую-то свою систему звуков городить не надо - нужен скрипт, который автоматически закинет звуки в эту хуйню для внок, или подменит звуки со схожими названиями, тут вариантов миллион, и все они хороши.
> а иначе пиши сприпт, тести его на работоспособность сам и инструкцию в тред пошагово как пользоваться, всё должно быть просто и понятно Да ты напиши хотя бы название этого твоего движка! Я ебу какой у него апи??
Это уже давно понятно, что ты контент мейкер, но если ты занимаешься интеграцией контента в движок, ты должен хотя бы знать, какие объекты в движке есть и как они взаимодействуют - к программированию это даже не относятся
>>815649 Ну наниновел, а что это изменит? Решение я уже придумал, завтра буду заниматься непосредственно творчеством, никакой анальщины больше. Интересно, что когда просил помощи, то никого не было, а когда уже не надо, пришли советчики - Ууу блять давай делать по-другому, потрать ещё недели две. нет, спасибо. >к программированию это даже не относятся Относится, нужно говнокодить.
Вопросики: 1. Какая версия C# используется в Unity 2022? 2. Какими инструментами пользуетесь для построения уровня? Попробовал ProBuilder+ProGrids, инструменты удобные, но скорее больше подходят для построения шутер-арен, полос препятствий и всяких казуалок. А вот детализированные здания и комнаты в них лучше делать во всяких Блендерах? 3. Есть у кого хорошие гайды по настройке камеры?
Слушайте, а как вот такое делают? Изометрическая рпг, персонаж передвигается по клику на землю (pathfinding), очевидный тайлмап (вся земля разбита на квадраты), но при этом мир трёхмерный, есть как всякие конструкции в виде отдельных моделей (здания, лестницы) с перепадами высот, так и террейн. Тайлмап же плоский, как сделать его таким покрывающим всю поверхность? Была идея без тайлмапа просто генерировать клетки по координатам, но как тогда указывать преграды и места, куда нельзя идти?
>>815979 Распакуй ресурсы Диско, там сразу всё очевидно становится. Если кратко, там вся статика это текстура, которая отрисована поверх лоу-поли 3д модели, по ней уже патчфайдинг и тени расчитываются.
>>815632 >Это интерфейс движка плагина для создания новел И как он по сравнению с ренпи? Функциональный? Я сперва хотел юнити взять, но потом подумал что заебусь сам писать на нём функционал вроде ролбека, квик сейвов и колбеков для контекста, который в ренпи из коробки.
Чому спрайт маска работает в режиме режиме, а когда загружаешься тестировать, там ничего не работает. Пробовал ставить галочку Custom Range и крутить там Order in Layer, не особо понял что это меняет, и все равно при тестировании ничего нет.
А как работает замена спрайтов в скелетной 2д анимации? Я понимаю что вроде как можно заранее сделать сразу кучу спрайтов и на одном скелете включать и выключать их в анимации. Но меня интересует такая система чтобы на существующий скелет можно было бы добавлять новые спрайты. Допустим дорисовать новую одежду на персонажа и прилепить к скелету ее.
Блэд что за звиздец Input.GetAxisRaw выводит -0,1769547 хотя ни одна кнопка не нажата. Бывает само фиксится после двух-трёх перезапусков, один раз работает нормально, и опять говно. Сразу отметаем умников "сам наговнокодил", у меня код это запись инпута в переменную и дебаг лог, всё, две строчки.
Допустим, у меня есть классы Character, Stat и Skill, и я при вызове конструктора Character для каждого Skill автоматически прописываю зависимости от Stat. Если хранить айди и множители статов в классе для скиллов, то у каждого скилла каждого персонажа будут свои списки, а это в теории может жрать много памяти. И вот я думаю, что делать: 1. Создать для каждого скилла отдельный класс, наследуемый от Skill и создать в них свои статические поля. Вроде удобно, но проблема в том, что создание нового скилла потребует создания нового класса, а я все скиллы и их зависимости от статов считываю с .csv файла. 2. Ебнуть статический список кортежей, сожержащих айди и множители влияющих статов, в классе персонажа. Собственно, пока так и сделал, но меня не покидает мысль, что это какой-то костыль.
Может у анонов тут есть какие-то предложения, кроме как пойти нахуй, естественно?
>>817756 Тоже самое было. Я думал джойстик сломан и залипает.
ебать я промазал, в какой-то древний тред написал. Продублирую сюда вопросы
Делаю по гайдам в ютубе в основном проект, поэтому возможно тупые вопросы, но все таки:
1) Как удобнее реализовать в топ даун 2д игре туман, такой чтобы чем дальше от игрока, тем сильнее сгущался. На ум приходит наложить на камеру картинку тумана прозрачную в середине, и не прозрачную по краям. Но как-то вроде убого звучит.
2) Как удобнее реализовать систему видимости как на гифке, в игре NOX, учитывая что это 2д (вроде как). Как-то через рейкаст наверное?
>>817875 Честно говоря то что на второй гифке лично меня бы раздражало. Мне норм было как в диабле сделали. Имхо в этом плане лучше креативность попридержать и использовать её для новых интересных механик.
Сап братья по юнети. У меня комерческого опыта разработки полный ноль и вот на мой поиск фриланса откликнулся какой то сюрьёзный дядька кабанчик(по его словам) и спросил меня сколько будет стоить закодить (графику и музло он предоставит) такой проект -> https://purmalis.itch.io/danger-planet Но в 3Д. Я сумму из головы взял и сказал что 25к (мой прожиточный минимум на месяц).
Так собственно вопрос к знатокам, я нормальную цену поставил или нужно было суммы больше брать? Есть способы свои человеко часы в денежном эквиваленте оценивать?
>>817994 очередная жертва "корпоративных ценностей" юнити внезапно оказалась не благотворительной организацией, пытающейся сделать мир лучше, а очередной корпорацией, для которой важно только бабло, а работники лишь винтики разного калибра, кто бы мог подумать, хех
>>817995 Торгаши невер ченж, если хочешь превратить дело в деградировавшее застойное болото - отдай ключевое руководство торгошам. Пока люди не усвоят этот нетленный принцип что торгоши всегда должны быть обслугой, а не руководителями - всегда и везде всё будет заканчиваться одинаково.
Я так понимаю основную кассу Юнитекам делают мобильные игры, а не хуинди. Поэтому логично, что они ИронСорс покупают, ибо это одна из самых популярных платформ с мобильной рекламой.
>>818019 молодой человек, это не для вас неясен курс компании, они хотят усидеть на всех членах в виде запиливания новых технологий, прокачке редактора или просто смирились с тем что им никогда не догнать и не перегнать сраный уеч с их бесконечным бюджетом?
>>817854 > а это в теории может жрать много памяти. Скорее всего мало
Если у тебя есть какие-то данные, которые ты вручную пишешь и можешь их осознать, то их величина скорее всего ни о чём. Вот если бы у тебя их было сотни тысяч - то можно было бы подумать чёто.
Но зависит конечно ещё от игры, персонажей у тебя сколько, сколько копий примерно всего этого выходит?
>>817854 Опиши нормально, что за Статы, что за Скиллы, что за персонажи, как всё считается. Конкретные примеры. По твоему абстрактному примеры ничего не понятно. В целом есть паттерны для похожих случаев, но нужна конкретика.
>>817994 >>817995 >>818015 Так и чоо случилось то? Одни спекуляции и комменты в стиле "надеюсь они не забанят другие средства монетизации, надеюсь они не будут навязывать этот сервис". Ну конечно не будут бля.
Анончики, нужна ваша помощь. Карочи партийная рпг, в начале игры игрок должен создать партию из 6 персонажей. Чтобы игрока в начале игры не встречали 6 пустых портретов или 6 одинаковых ебал, которые он уже дальше настраивает, я решил что надо генерировать стартовых персонажей рандомно, а дальше игрок уже их меняет крутит мутит. Портреты персонажей должны выбираться по двум критериям - раса и пол. Соответственно, решение которое я придумал на данный момент - в папке resources создаются подпапки типа resources/portraits/ork/male/, resources/portraits/ork/female/ и т.д. соответственно, когда известны раса и пол создаваемого персонажа я делаю resources/loadAll из нужной подпапки, имеющиеся там портреты загоняются в массив из которого рандомом выбираю конкретный. Есть варианты менее дроченые?
>>818391 Это всё их новый управленец. Я уверен на триллиард процентов, что они сосредоточились чисто на мобилках. Всё остальное - побочный продукт. Вот почему они даже DOTS ёбаный не могут из превью уже 5 лет вывести.
Он думает так: нахуя мне ориентироваться на индюка от которого я не получу ни копейки, когда я могу иметь процент с мобильных игр, которые ежемесячно на рекламе зарабатывают миллионы баксов?
Анчоусы, у меня есть абстрактный класс skills, от него наследуют уже всякие Archery и прочая залупа. Соответственно, если я создаю у персонажа массив skills[], то все созданные в него производные от абстрактного класса неявно приводятся к нему с потерей соответственно функционала. Кароче проебался. Насколько нормально, если делать такое через интерфейс, например?
>>818589 В серию меч и магия играл? Там у каждого скила есть уровни мастерства. Возьмем например мечи - первый уровень мастерства навык добавляется к атаке, второй уровень навык добавляется еше и к урону, третий уровень можно взять меч в левую руку, четвертый - плюсы от навыка утраиваются. И так с каждым навыком, там совершенно разные свойства. Кода до завтра точно не будет, комп в другом доме.
>>818631 Сделай в skills абстрактную функцию Apply(...), в дочерних классах описываешь ее, пишешь там какие уровни мастерства и навыки доабавляются и тд, в момент добавления скилла в массив вызывай функцию.
>>818649 У скила есть описание в виде статического ридонли филда, который скрывает филд абстрактного класса. После неявного каста к абстрактному классу вызывается только абстрактное описание. Мне через конструктор перезаписывать филд абстрактного класса чтоли?
>>818589 Вот карочи тут у меня такая же проблема. Хотел сделать некий базовый абстрактный класс, напихать в него побольше, а потом точечно его менять. В итоге если я создаю объект класса орк в переменную класса character, то нихуя не работает. Собственно как я понимаю, мне либо вообще не нужен конструктор в базовом классе, либо он должен устанавливать только те параметры, которые не будут меняться в остальных, а потом на этом конструкторе уже надстраивать конструкторы в производных классах. Эм ай райт?
>>818694 В общем вышел из ситуации так, везде где был просто get, я добавил protected set и перезаписывают нужные свойства через конструктор производного класса.
>>818799 В курсе. И? Если я правильно , то мне предлагается такая конструкция class t character where t enum. Соответственно обьект класса создается new character<races.ork>. Что тут наследовать, если класс один?
пик1 убрать в отдельный класс, сделать там статический конструктор с дефолтными значениями и дергать его при создании + обычный конструктор с кастомными значениями которые заполняешь если нужно. PS Но думаю у тебя эти статы будут менятся правда же? Значит нужно в этом классе реализовать перерасчеты и зависимости, похоже на сервис уже? для ознакомление есть вот такое, с подробным описанием https://forum.unity.com/threads/tutorial-character-stats-aka-attributes-system.504095/
пик2 не совсем понимаю зачем поле enum. Что за иерархия наследования планируется? Оля <= Orc <= Character ??
>>818801 А, ты так делаешь. Предлагаю отказаться от дженериков и сделать обычным ООП, где ты будешь наследовать по классу для каждой расы от изначального класса.
>Всем привет, >Мы хотели бы поделиться с вами новостями о проекте Gigaya. >В рамках недавних структурных изменений мы решили прекратить производство Gigaya. Gigaya останется внутренним ресурсом Unity, но в настоящее время нет активных планов по его публикации.
>>818943 То, что они уходят, говорит мне, что Unity провела последние 4 года, работая над функциями, которые делают хорошо выглядящие прототипы и демо-версии, а затем отказались от этих функций, прежде чем они была почти готовы. Это говорит мне о том, что они признают, что вы не можете сделать приличную 3D-игру на Unity
>>818843 По енаму на самом деле сам не знаю, его функцию вполне может выполнить простой стринг. Уберу , отвечающие засоздание экземпляра филды в конструктор. За ссылку спасибо, гляну. Насчет изменения статов и перерасчетов - выше был пик, у меня в каждом стате есть эвент, на который подписываются все зависимые от статы члены, и при его изменении они аатоматически пересчитываются.
Аноны, а как вы справляетесь с не совсем надежной физической системой в случаях когда она влияет на критически важные вещи?
Например, у меня есть персонаж с регдолл-физикой. Приезжает машина, сталкивается с коллаидером персонажа, персонаж переходит в режим регдолла (теперь он состоит из множества маленьких коллаидеров под каждую часть тела). И в некоторых случаях машина может очень сильно толкнуть эти маленькие коллаидеры, так что они влетают в тоненькую стену здания рядом и пролетают сквозь нее. Все, игровой процесс поломан.
Что делать для минимизации таких проблем? Достаточно ли просто всюду где возможно огромные метровые невидимые стены выстраивать?
Что за драму я пропустил? CEO юнити назвал пользователей ебаными идиотами. Всех работников делающих гигайю, которую с помпой анонсировали, уволили. Юнити все? Куда перекатываться?
>>818944 Ну у них бывают такие косячные фичи, 3 года назад решили проект вокруг адрессабле построить, ну и ебашили потом им на форум - хуле не работает блядь. Разрабы вышли через год и сказали что переделали и теперь должно все работать. Спасибо за бета тест пацаны, сыроваты были эти 100 версий прошлого пакета. Так что читать их форум перед импортом релизной версии пакета мастхев.
ЗЫ реально думал что эти долбоебы не смогут накосячить в сервисе блядь которые пакует архивы, пуляет/получает их через сервер. Файлообменник бля.
>>819350 > Просто микрософты хотят купить их подешевле. POG Может наконец-то дадут им пизды, чтобы больше не высирали нерабочие экспериментальнын фичи, а доделывали до конца.
>>819206 Юнити сливается со скам конторой и походу нацелен на создание собственной мобилко платформы с раковой монетизацией. Пахнет дерьмом короче это всё.
>>819206 >>819496 Юнити становится убийцей Фалько! Теперь будут пропихивать всякий adware, как их далёкие предшественники Wild Tangent (кто-нибудь помнит?)
>>819499 дело в том, что если Юнити не будет любимой технологией, то оно будет точно также гнить где-то там без особого внимания, как и всё, что есть у майков и что не касается C#/.net.
>>819645 А ещё майки наверняка его целиком забанят в РФ, как поступили со всеми своими продуктами - от винды до игр беседки, которые в Стиме теперь полностью закрыты.
>>819702 Ну подписку на ЕСО нормально сейчас не купишь. Блять, единственная ММО, которая мне реально нравилась - и ту прикрыли. Зато вовнище оплачивается таймкартами вообще без проблем.
>>809329 (OP) Сап юнитач. Поясните ньюфагу, как можно апнуть 3д графон в юнити? Сделал модель, сделал текстуру. Засунул в движок выглядит, как 3д гамно. За реализм даже не топлю, хочу в стилизацию. Только пожалуйства не давайте ссылку на документацию, она у меня есть, но один хрен не понятно, как сделать презентабельно. Т.е. чтобы хомячки в стиме скипали картинки моей игры не через 5, а через хотя бы 10 секунд.
Почему у меня scale не соответствует position? Я предполагал, что если у прямоугольного объекта scale.x = 10, а находится он в position.x = 0, значит объект лежит между - 5 и 5 по х. Но по координатам объект занимает меньше места. WTF?
>>819842 > Я предполагал, что если у прямоугольного объекта scale.x = 10, а находится он в position.x = 0, значит объект лежит между - 5 и 5 по х. Если его ширина при скейле 1 равна 1, то да
>>819842 > Почему у меня scale не соответствует position? Прочекай, где у твоего объекта находится центр (pivot). Включи в редакторе отображение локального пивота, а не глобального.
>>820385 А как кидать через портал объекты с сохранением импульса? Как сделать, чтобы часть объекта могла бы торчать из одного портала, а оставшаяся из второго?
Анонасы, есть такая хуйня и она не работает. форич перебирает 3 значения Data.text - Human, Ork, Elf. Сравнивает их с названием расы персонажа Human, Ork, Elf - тоже стринги. и Карочи тру выдает только если хуман совпадает с хуманом. На остальные тупо хуй кладет. Kik tik?
Вот вроде как юнити SpeedTree выкупили? Но нам то что с того, мы ж не можем бесплатно юзать этот хорошоий продукт, который использовали в ведьмаке 3 и киберпанке
Двачеры, вот есть у меня две переменных, ограничивающих радиус обзора противника: [SerializeField] float minimumDetectionRadius = -200f; [SerializeField] float maximumDetectionRadius = 200f;
Сам радиус обзора состоит из: Vector3 targetDirection = transform.position - player.transform.position; float viewableAngle = Vector3.Angle(targetDirection, transform.forward);
if (viewableAngle > minimumDetectionRadius && viewableAngle < maximumDetectionRadius) { драца;}
У меня периодически возникают проблемы с детектом игрока в радиусе обзора противника. Есть еще радиус, в котором в принципе скрипт определяет наличие игрока, но если он за спиной, то не реагирует на него.
В общем бывает так, что первичный радиус меня определил, что вижу в дебаге, а вот радиус обзора не замечает, хотя по идее значения радиуса обзора выставлены правильно. Противников у меня несколько, раз один с такими значениями замечает, то и второй должен, но это так не работает почему-то. Для каждого приходится подбирать индивидуальные значения. Возможно потому что я нахуевертил со скейлом при экспорте модели.
Мне нужно чтобы я видел радиус обзора через дебаг, но я не понял что указывать в дебаге и какая функция нужна. Debug.DrewLine мне должен просто две линии показать, которые ограничивают радиус, но DetectionRadius это не вектор3. Из вектора3 есть targetDirection, но то просто линия к игроку, мне ее видеть не нужно. viewableAngle тоже нихуя не вектор3, а что мне нужно, чтобы я мог увидеть сраный круг обзора и две линии, которые ограничивают этот круг?
К слову, для отображения первичного радиуса обнаружения игрока я использовал гизмос:
Обясните нубу что происходит. Я объединил много объектов в один, но теперь у этого главного объекта какая-то своя система координат. Причём у вложенных объектов нормальные координаты относительно других объектов на сцене, а у головного какие-то свои.
Из-за чего составной объект оказывается где-то далеко внизу, хотя я программно указываю ему точные координаты.
У меня есть кастомный эдитор, который в OnSceneGUI через Handles выводит на экран штуку, которую можно двигать мышкой. Как можно поймать с него событие mouseUp? Просто в OnSceneGUI mouseUp работает, а если с хендла отпускаю мышку - то нет.
>>820714 Самый просто и костыльный способ с видимостью это через объекты тригеры, которые при входе персонажа в них посылают сигнал главному скрипту противника, и там уже вся логика. Вариант через отрисовку намного лучше но требует знания матана.
>>821976 > Кто разрабатывает с помощью DOTS? Оно стоит того? ECS очень крутая тема. Пилил сетевую игрушку на другом ECS движке, это реально прорыв по сравнению с обычным ООП подходом. Близзарды используют ECS в овервотче на 100%: https://www.youtube.com/watch?v=zrIY0eIyqmI
Проблема в том, что юнитеки до сих пор держат DOTS в превью. Они уже перенесли на него все системы (физику, сеть, партиклы, звуки, инпут), но до сих пор не могут выйти из раннего превью. Поэтому связываться конкретно с ДОТС я бы не рекомендовал, пока они не зарелизят его. Скорее всего вместе с релизом ДОТС сильно изменится редактор, либо выйдет отдельный редактор без легаси кода.
Я тут прочитал что в Юнити нельзя создать 2д, только псевдо 2д. Это так? То есть по факту игрушка будет генерить 3д и дополнительно грузить процессор/карту?
И какую версию Юнити ставить новичку?
Планирую изучать по книжке "Изучаем C# через разработку игр на Unity. 5-е издание | Ферроне Харрисон" или есть варианты лучше, учитывая что не знаю C#?
>>822589 Начинать с книг скучное дело, быстро можешь дропнуть. Советую с маленьких игр, например крестики нолики и т.д. там же с помощью офф уроков юнити с ютюба узнаешь что такое сцена, объекты, компоненты, жизненный цикл приложения.
>>822589 > То есть по факту игрушка будет генерить 3д и дополнительно грузить процессор/карту? Да! Когда запускаешь 2Д игру на юнити, то он начинает генерить бесконечный 3Д террейн и отрисовывать его за камерой, чтобы все охуели, как он может.
Юнити отлично подходит для 2Д. И легко добавить фичи с 3Д пространством, если понадобится. Тот же Cuphead создан на юнити. Херстоун на юнити.
В сцене есть куча объектов с деактивированными инфопанелями на каждом. В каждой инфопанели по 4-5 текстов. При наведении курсора на объект нужная панель активируется. Еще есть глобальный скрипт который у себя в апдейте постоянно выводит текст для всех инфопанелей. Типа: void Update() { text_1.text = " ... "; text_2.text = " ... "; text_3.text = " ... "; // ... text_N.text = " ... "; } Вопрос: будет ли это нагружать систему, или нет? Т.к. весь текст по факту деактивирован большую часть времени и обновления по факту не происходит.
Или лучше писать доп. проверку перед выводом текста типа: if (text_1.gameObject.activeSelf) { text_1.text = " ... "; }
>>822589 Сомневаюсь что хоть в одном движке сегодня честное 2D. Везде же вывод объектов через геометрическую 3D прослойку вроде openGl. Другое дело что юнити плохо оптимизирован для чисто 2D игр, и тут движки вроде ренпи или рпг мейкера его легко уделают по производительности и удобству.
>>822612 >void Update() Не суй в апдейт то, что можно реализовать как вызов функции. У тебя же текст меняется от определённых обстоятельств, правильно? Вот как произошли изменения, тогда и вызывай функцию смены текста. Или делай перерасчёт текста при активации объекта. Но не используй апдейт.
>>822628 > 2D игр, и тут движки вроде ренпи или рпг мейкера его легко Так уделывают, что следующий рпгмейкер будет основан на юнити. Ренпи это вообще только новелы, а остальное там люто тормозит.
>>822635 Чел ты знаешь почему на юнити нельзя сделать функции ренпи вроде роллбека? Потому что юнити тормозной из коробки, лол. И все новелки на юнити пук среньк без ролбека сидят, а многие и без загрузок в любом месте.
>>822632 >Вот как произошли изменения, тогда и вызывай функцию смены текста слишком много полей в куче разнотипных скриптов - вешать на каждое проверку, будет реальный гемор на данном этапе >>822646 > есть проверка на активность объекта спасибо, сам так думал, но все же лучше знать точно
>>822589 Есть более новые книги, ты слишком старую версию взял Попробуй Разработка игры в Unity 2021 Денисов Unity в действии 2019 Джозеф Хокинг (меньше советую, старая уже) Изучаем C# через разработку игр на Unity 2022 Харрисон Ферроне (самый свежак) Всё есть либо на рутрекере, либо на ннмклабе, либо на канале Physics.Math.Code в телеге
>>822686 Откат состояния игры до предыдущего и так до лимита роллбека. В ренпи по дефолту 100 шагов назад. Как ты понимаешь оно должно происходить мгновенно и абсолютно бесшовно, с перерисовкой всех экранов / спрайтов / анимаций и самое главное сохранением всего контекста. То есть игра должна уметь корректно и мгновенно читаться задом наперёд, а для этого она по сути должна обладать абсолютно мгновенным сейв лоадом в любой точке.
>>822642 Роллбек можно без проблем запилить в юнити, нужно всего лишь архитектуру игры заранее спланировать должным образом. Тем более роллбек ВНки, где тупо на экран назад переключиться нужно.
>>822789 А в чем проблема? Почему именно сейвлоады? Они линейны, в код игры на renpy все состояния уже забиты. Запоминать надо лишь те места, где выборы на что-то влияли, а их обычно мало
>>822789 Никто не рисует анимации задом наперед, лол. Все что надо знать для любой сцены - начальное и конечное положение спрайтов. Ты вообще что-то сложнее хелло ворлда делал в своей жизни?
>>822791 >>822793 Прямо же написал, юнити не может мгновенно изменить состояние игры и бесшовно перерисовать всё, это аналог квик лоада в произвольной точке и постоянное сохранение 100 точек загрузки, переключение должно происходить максимум за 30-50мс. Эту механику тупо не реализуют на юнити по причине его медленности. Хотя она есть на всех вн движках. Именно поэтому специализированные решения для игр всегда > общих решений. >>822794 У меня такое чувство что в каждом разделе каждой борды есть шиз и параноик который его ловит. Иногда это один и тот же человек.
суп юнитач, посоветуй как быть суть такова есть skinnedmeshrendeder (персонаж) и есть еще несколько (шмотки) хочу модульность. риг одинаковый. как их по уму совместить? есть ли вообще какая-то возможность подменить кости одного рендерера костями другого БЕЗ создания нового рендерера?
>>823109 Алё, я пиша на шарпе зная только базовый ситнтаксис, получается жуткий гавно код но для маленьких проектов типо игр для джемов самое то, для больших я всегда обсирался.
>>822965 > Прямо же написал, юнити не может мгновенно изменить состояние игры и бесшовно перерисовать всё, это аналог квик лоада в произвольной точке и постоянное сохранение 100 точек загрузки, переключение должно происходить максимум за 30-50мс. Эту механику тупо не реализуют на юнити по причине его медленности. Хотя она есть на всех вн движках. Именно поэтому специализированные решения для игр всегда > общих решений. Ты пишешь просто какие-это эзотерические термины без какой-то смысловой нагрузки.
> юнити не может мгновенно изменить состояние игры ??????????????? Какое состояние? Поменять значение переменной? Поменять текст? Поменять пару картинок? Да хоть несколько сотен картинок, на всё про всё 1мс нужно - с запасом хватит. Да хоть десятки тысяч спрайтов в реалтайме симулируй с ецс, в чем проблема???
> и бесшовно перерисовать всё Швов никаких вообщебыть не может если включить всинк. Да и на самом деле и без всинка
>>823109 Вообще не обязательно, просто процесс будет более долгим, чем с хорошими знаниями(вернее, опытом) А для очень маленьких игр вообще пох
>>823193 Не помню как в Spore, а в Стелларисе плавно зазумиться нельзя - ты кликаешь на звезду и мгновенно открывается звёздная система. Делаешь на сцене два места - на одном вся галактика, на другом - звёздная система. При клике на звезду в месте звёздной системы накладываешь нужный задник, создаёшь звёзды и планеты и переносишь туда камеру.
>>823193 Как минимум для того чтобы не было вечных прогрузок и фризов придётся освоить асинхронку минимум, потому что иначе пользователи хдд будут грустить.
>>823150 Я уже понял что тут фантазёры не понимающие даже о чём речь. Факт - юнити ужасно тормозной движок, на котором тормозить умудряются мобилки, платформеры, про загрузки длинной в жизнь я даже не упоминаю. Простой факт - на юнити не реализуем роллбек. Так же многие игры на нём страдают от отсутствия полноценного квиклоада. Смирись с этим.
>>823385 Не суетись, точки хоть поставь, школьник. Умиляет что люди не знающие программирования, и не понимающие что у юнити в геймлупе миллион мусора понапихан, что является серьёзной проблемой для многих жанров ещё имеют наглость тут затирать про производительность. Эта производительность прекрасно видна в каком-нибудь song of conquest тормозящем на 3060 в спрайтовом пошаге и загружающему спрайтовое поле боя 5 секунд.
>>823378 >Факт - юнити ужасно тормозной движок Я так понимаю ты делаешь такой вывод потому что на юнити как и на других движках порог входа очень низок и есть люди не понимающие как и что делать? В итоге как раз получаем треш хорроры с 10 фпс.
>на котором тормозить умудряются мобилки Мобилки это вообще другая вселенная, там без опыта не тормозящию игру ты не сделаешь. Нужно много факторов держать в уме и бесконечно тестить.
>Простой факт - на юнити не реализуем роллбек. >Так же многие игры на нём страдают от отсутствия полноценного квиклоада. С чёго ты берёшь такие странные факты. Ты сам то пробывал сделать систему сохранения/загрузки по тутору? Единственный минус что это не идёт из коробки, а так всё реализуемо. Квик лоад совершенно тоже самое. Советую зайти на некоторые сайты в раздел новеллы, и там увидишь что около 90% внок сделанных на юнити работают точно также как ренпи.
>>823398 Опять двадцать пять. Почему вы пишете про то что даже не слышали? Повторяю последний раз, юнити не может мгновенно менять состояние игры, вот хоть усрись на дваче не может. Это блин тут понятно? Нельзя на нём по клику загрузить поле боя с другой механикой, или другой режим игры, или поменять локацию или загрузится чтобы это было незаметно для пользователя. Можно использовать костыли, типо гружать в память и по частям пределах сцены менять, но не более. Ренпи же тупо перерисовывает всё перезагружая контекст, он его даже в памяти не хранит, поэтому может позволить телепортироваться в любую точку игры мгновенно с сохранением всего состояния в ней и связать эти точки отматывать их вперёд назад в любом порядке.
>>823378 > Я уже понял что тут фантазёры не понимающие даже о чём речь. Так это ты не понимаешь о чём речь и никогда не работал с юнити. Просто пишешь абстрактные придуманные тобой термины, и какие-то факты с неба.
> Факт - юнити ужасно тормозной движок Хмм, нет. Кто сказал? > на котором тормозить умудряются мобилки, платформеры Нет, не тормозят. > про загрузки длинной в жизнь я даже не упоминаю. Хмм, нет. Какие загрузки длиною в жизнь? Ты впринципе можешь полностью контролировать загрузки - хоть заранее подгружать, хоть асинхронно подгружать/выгружать что тебе нужно. > Простой факт - на юнити не реализуем роллбек. Кидай сюда свою игру, я тебе сделаю. Я уже выше писал, что поменять сотню спрайтов и текстов это 1мс в худшем случае, и этого с запасом хватит. > Так же многие игры на нём страдают от отсутствия полноценного квиклоада. Смирись с этим. Кидай сюда свою игру, я тебе сделаю.
>>823407 > Повторяю последний раз, юнити не может мгновенно менять состояние игры, вот хоть усрись на дваче не может. Это блин тут понятно? Алооооо я выше спрашивал, что это значит!? >Нельзя на нём по клику загрузить поле боя с другой механикой, или другой режим игры, или поменять локацию или загрузится чтобы это было незаметно для пользователя. Можно. Ещё вопросы? > Можно использовать костыли, типо гружать в память и по частям пределах сцены менять, но не более. Ну надо посмотреть, что за игры. Несколько картинок из внки незаметно можно загрузить без проблем. Механики-скрипты - мгновенно, тут даже думать не о чем. > Ренпи же тупо перерисовывает всё перезагружая контекст, он его даже в памяти не хранит, поэтому может позволить телепортироваться в любую точку игры мгновенно с сохранением всего состояния в ней и связать эти точки отматывать их вперёд назад в любом порядке. Тоже самое можно сделать в юнити.
Я просто не понимаю, откуда ты вообще эти факты понабрал? Что является твоим источником - твой опыт, статьи какие-то, услышанное где-то мнение?
>>823433 И правда, ренпай даже на сложность пдф читалки не дотягивает, по сути это тхт читалка с умением показывать пнг слайдшоу, ясен хуй там все грузится мгновенно
>>823435 >Что является твоим источником Его источником является просмотренный урок по внкам на ренпае и просмотренный урок по внкам на юнити, оба на ютупе минут по 15-20 оценочно
>>823435 >Я просто не понимаю Типичный геймдев - вывалить стенку гринтекста без понимания почему и зачем. >>823440 Получается что ни один из авторов не смог реализовать на юнити даже возможности pdf читалки. Как неудобно получается. Тут либо юзеры юнити повально криворучки, либо движок всё же тормозной, и костыльный. Выбирай. >>823445 По себе других не судят.
>>823472 Ни в одной вн на юнити нету ролбека, более того в уйме игр нету даже возможности сейва на любом месте. Вообще это показательный спор, долбоёбы не знающие азов программной архитектуры всерьёз уверены что можно запихнуть 100500 функций в один движок, т.е. сделать худшее архитектурное решение из возможных. И оно будет работать так же как специализированные решения для конкретного жанра, коим и является движок. А потом у этих долбоёбов выходят платформеры с денди тормозящие на пека, примитивные ртс с просадками до 15 фпс, тормозящие карточные игры, и даже блять тормозящие вн, а они хлопая глазками не понимают в чём тут загвоздка, ведь это же лучший движок, так сказали в интернете создатели мобильных ассет флипов.
>>823469 > авторов не смог реализовать на юнити Я не вкурсе что там у юнити ВНок. И решил глянуть уже реализованные. Немного посмотрел две штуки: https://gamcore.com/games/fashion_business_episode_3_v6 https://gamcore.com/games/teen_witches_academy Полностью реализован функционал ренпу и сделаны вебгл версии. Ролбек, запись в любом месте, быстрая загрузка. Автор фешен бизнес даже спецом сделал версию для сайта из-за багов ренпу версии, ну так на сайте написано.
>>823469 Сап юнитач. Делаю прозрачное исчезновение трупов по тутору в юнити. Использую доступ к материалу, но старая версия юнити не работает, В документации выискал такое решение, но оно тоже не работает, где я обосрался?
>>823473 Какой ужас... Чел может хватит позориться)
> Вообще это показательный спор, долбоёбы не знающие азов программной архитектуры всерьёз уверены что можно запихнуть 100500 функций в один движок, т.е. сделать худшее архитектурное решение из возможных. Ну смотри, вот например на С++ можно сделать что угодно, под него есть библиотеки абсолютно на любой вкус для абсолютно любых задач, ты можешь и сам написать что угодно на нём. Хоть драйвера пмшм, хоть роботов программируй, хоть игровые движки, хоть сервера. Выходит С++ - это худшее архитектурное решение по определению? А любой другой язык программирования тоже - худшее архитектурное решение просто по факту своего существования?
А вот есть операционные системы, на них можно разные проги запускать, можешь буквально тысячи гигабацт самых разных программ наставить - выходит сама концепция операционных систем - это тоже худшее архитектурное решение, потому что ты так скозал?
Также и в юнити тебе предоставляются базовые системы нужные в любой игре и экосистему для создания новых возможностей, всё остальное ты реализовываешь/берешь со стора по мере необходимости
А даже если ты скачаешь все ассеты со стора и аоложишь в проект, то с точки зрения архитектуры это ничего не значит, потому что они все напрямую НЕЗАВИСИМЫ, связывать их вместе, использовать то что надо - это задача программиста
> А потом у этих долбоёбов выходят платформеры с денди тормозящие на пека, примитивные ртс с просадками до 15 фпс, тормозящие карточные игры, и даже блять тормозящие вн, а они хлопая глазками не понимают в чём тут загвоздка, ведь это же лучший движок, так сказали в интернете создатели мобильных ассет флипов. Освоить юнити на минимальном уровне очень легко, поэтому любой может вкатиться и сделать свой лагучий платформер - ну ничего страшного, потом навык наработает и будет понимать уже, как оптимизмровать надо. И это не проблема движка вообще - можешь сразу делать нормально, чтобы в 200 фпс летало, но для этого соответствующие навыки нужны(впрочем для оптимизации платформера и гайда на ютубе на полчаса хватит чтобы разобраться)
>>823473 > Ни в одной вн на юнити нету ролбека, более того в уйме игр нету даже возможности сейва на любом месте. Ты все игры на юнити изучил или че? Квик сейв и ролбек чтобы сделать нужно немного больше усилиц приложить, чем ассеты мышкой таскать, поэтому наверное и встречается не часто(а квик сейв в целом мертвая концепция, я его в играх уже давным давно не видел)
>>823488 >у нас типо роллбек >заходишь там текст лог, нет назад 1 строчку перемотать низя ряя! Обалдеть аналоги конечно. >>823487 Вот смотри, проще всего представить такую систему как 1000 децентрализованных островков (на деле любое число), которые находятся между диапазонами множества значений кучи объектов (переменных нету). Чтобы игра корректно работала придётся завязать всю движковую логику на такую систему. Сделать соответствующие парсеры, специализированные обновляемые файлы контекста, придумать оптимизированные структуры данных, связать это всё в ядре и геймлупе, засинхронить с sdl и openGl чтобы не ловить миллион графических багов от чтения диапазонов значений в рандомном порядке, добавить мощный персистент диспетчер, завернуть в высокоуровневой язык вроде питона чтобы не превращать код в скобочный ад, и только тогда игра схвает конечный автомат, рандомайзер, и четырёхмерный массив из 1000 развилок в 1 флаконе и даже не поверхнётся. Или какую-то совсем дичь вроде редактирования и удаления исполняемых файлов на лету. Ясен пень в готовом движке и без исходников такое не провернуть. Но такой подход мастхев для интерактивных историй, пусть и потенциально крайне проблемный для других жанров.
Так вот проблема всего современного геймдева, это попытка свалить все функции по созданию игр в пару движков превращает их в неповоротливое нагромождение хлама. Вместо развития специализированных инструментов для задач эволюции конкретного жанра мы получаем деградацию вплоть до полного отсутствия физики и даже базовых гемплейных фич в жанре нейм. И я надеюсь что в 20х всё больше людей поймут что ставка на "универсальность" это безнадёжный тупик. И будут поддерживать развитие специализированных инструментов в интересном им жанре.
>>823535 Ну ты попробуй сначала игру сделать, а потом рассказывай про парсеры(значение знаешь?) и редактирование исполняемых файлов на лету(ЛОЛ) Вот мне даже интересно, нахуй тебе редактировать исполняемые файлы?) А парсить ты что собрался?)))))) И что в целом мешает просто в оперативку набить все нужные тебе системы и всю хуйню?)))
Хотя возможно конечно что ты просто настолько жирно троллишь, на самом деле это самый вероятный вариант.
>>823535 Кетайцы же как-то создали геншин импакт, который даже на мобилках хорошо работает. Хотя, казалось бы, такой сложный и многомиллионный проект, стоит создать свой движок, да? Но он им нахуй не сдался.
Зачем вы с ним спорите? Это же тот шиз, который рвался по поводу загрузки музыки отдельным файлом и хейтил кодеров, говорил, что он КОНТЕНТ-МЕЙКЕР и ему код не нужен. А потом оказалось, что речь идёт вообще не о движке, а о каком-то васянском ассете, который он скачал, но с которым не смог совладать.
>>823715 Способах реализации чего? Там обсуждают какие-то абстрактные вещи вроде смены состояния и роллбэков. Это с минимальным опытом делается довольно несложно и очевидными путями.
>>823697 Так тот вроде бы наоборот говорил, что типа ему пох на реализацию, скажите просто как сделать чтобы работало! А этот вон какими терминами сыпет, рассказывает как оно всё должно быть реализовано, непризнанный гений прям.
>>823635 Китайцы то мастера спору нет. Но вот мне кажется они не реализовали полноценный мультиплеер аля мобильные ммо именно потому что на юнити это было бы проблемно, хотя мобильные ммо на ue корейцы и китайцы клепают только в путь. >>823609 Там модифицированный питон, все объекты включённые в роллбек описаны в отличном формате от .py с немного другим синтаксисом. А манипуляция с файлами была в доки доки, но там профи программист писал, так что он сделал одной из девочек поведение как у наглой вирусни, которая ломает игру в процессе, прячет и удаляет файлы, короче гадит юзеру.
>>823818 Юнити если не используешь лспп то не шифрует ничего, разве что оптимизирует и удаляет комменты из кода при компиляции. Сам юнити пакует твою игру в свою архитектуру с расширением ассет, для её открытия и извлечения есть несколько тулз.
>>823755 Это же элементарно. Берёшь трансформ камеры, конвертируешь её координаты квартелионы и присваиваешь все в выходные значения. И воаля теперь твой игрок может крутить камеры в разные стороны, но двигается всегда в заданном направлении.
Аноны, я правильно понимаю, что нет смысла дрочить эффекты в блендере, типа свечения, искр и т.д., потому что юнити не поддерживает блендеровские эффекты? Любой эффект надо делать уже в юнити на шейдерах?
>>824072 В каждом движке своя система частиц. Возможно есть инструменты, которые позволяют конвертировать эффекты бендеры в эффекты юнити. Но в целом эффекты нужно создавать непосредственно в инструментарии движка, конечно.
Есть два таких скрипта, которые висят на разных объектах(в проекте, где огромное множество подобных скриптов и еще разных других). В какой-то момент статик переменная MenuBattle.newRound становится true (при этом начальное значение MenuBattle.a = false;)
Я правильно понимаю, что в данном случае текст "BOOM!" никогда не будет напечатан? Т.к. в первом фрейме будут: выполнено условие 2 и невыполнено условие 3. Во втором фрейме, когда будет выполнено условие 1 - Скрипт 2 уже ГАРАНТИРОВАННО будет удален. Т.е. ситуация, когда фреймы в апдейтах разных скриптов могут обрабатываться несинхронно в принципе невозможна?
>>824131 Да, ты написал говно и оно работает не так как тебе надо. Такие важные условия как новый раунд и тд которые ты аж в статические переменные вывел, должны менять не какие то пули летающие по сцене, а менеджер управления прогрессом уровня игры. Сейчас да, скрипты отрабатывают друг за другом и следующая пуля может поменять переменную, кототорая уже проверялась предыдущей пулей.
>>824132 > должны менять не какие то пули летающие по сцене >оно работает не так как тебе надо Нет никаких пуль, это отвлеченный пример >скрипты отрабатывают друг за другом Я это понимаю, вопрос был по фреймам. Т.е. сначала в один фрейм последовательно прогоняет все апдейты ВСЕХ скриптов. Только после этого начинается второй фрейм в котором опять прогоняются все апдейты ВСЕХ скриптов, без исключения. И эта схема работает именно так всегда. Меня интересует сам принцип работы системы
>>824135 >Т.е. сначала в один фрейм последовательно прогоняет все апдейты ВСЕХ скриптов. Только после этого начинается второй фрейм в котором опять прогоняются все апдейты ВСЕХ скриптов, без исключения Типа того. В доках юнити всё это расписано.
>>824133 >Все апдейты выполняются последовательно в одном потоке, порядок выполнения не гарантирован. Последовательность не важна, важно гарантированное выполнение всех апдейтов в один фрейм. >На тебе видос, сделай хотя бы так, всяко лучше чем с флагами ебаться у меня пошаговая и с флами все отлично работает, просто хочу понять принцип обработки
>>824138 > Последовательность не важна, важно гарантированное выполнение всех апдейтов в один фрейм. Эт само собой > у меня пошаговая и с флами все отлично работает, просто хочу понять принцип обработки Поддерживать и в целом писать тяжело код так, базарю, про евенты видос посмотришь и сразу на них перейдешь, если у тебя много скриптов по типу того примера что ты кидал
>>824138 Awake/Start/Update вызываются в рандом порядке на объектах. Есть только порядок самих событий. Если у тебя на сцене два объекта, то при первом запуске Start первым может вызваться у объекта 1, а при следующем запуске уже у объекта 2.
Есть не задокументированный атрибут. Он позволяет задать такой порядок вызова, чтобы событие на твоём объекте гарантировано сработало в первую, либо в последнюю очередь: [DefaultExecutionOrder(-100)]
Ещё из интересного есть атрибут: [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
>>824141 >сразу на них перейдешьв в следующем проекте надо будет, этот уже слишком долго будет переделывать >>824166 >Awake/Start/Update вызываются в рандом порядке на объектах да, это почти сразу заметил - просто рандом, даже не по номерам скриптов. атрибутами можно, но лучше вообще до такого архитектуру не доводить, как по мне
>>824174 > атрибутами можно, но лучше вообще до такого архитектуру не доводить, как по мне Согласен. Я использовал данные атрибуты только один раз для создания Сервис Локатора.
>>824166 >Есть не задокументированный атрибут. Он позволяет задать такой порядок вызова, чтобы событие на твоём объекте гарантировано сработало в первую, либо в последнюю очередь: [DefaultExecutionOrder(-100)] за такое в продакшене будут по рукам бить
>>824177 >для создания Сервис Локатора. ну это норм если там будет какой то энтри сервис но не более и лучше делать это здесь => пик
Прошлый тред: https://2ch.hk/gd/res/802780.html#808213
Официальный сайт: 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 сделано много замечательных игр - Valheim, Genshin Impact, Subnautica, Albion Online, Endless Space, Beat Saber, Boneworks, 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 - это начать делать игру и по мере разработки гуглить непонятные моменты.
Шапка: https://www.writeurl.com/publish/qzgktisltkskaitem6aa