Добро пожаловать в тред Unity - лучшего 3D и 2D игрового движка современности! Прошлый тред: https://2ch.hk/gd/res/427717.htmlОфициальный сайт: https://unity3d.com/ruДокументация: https://docs.unity3d.com/ru/current/Manual/index.htmlУроки: https://unity3d.com/ru/learn/tutorialsФорум: https://forum.unity3d.com/Магазин ассетов: https://unity3d.com/ru/asset-storeUnityWiki: http://wiki.unity3d.com/index.php/Main_PageНа Unity сделано много замечательных игр - Rust, Блицкриг 3, Pillars of Eternity, Tyranny, Kerbal Space Program и многие другие. Главным преимуществом Unity перед другими движками является его простота для одиночной разработки. Не нужно иметь целую компанию девелоперов, чтобы сделать хорошую игру. Если ты один или имеешь небольшую команду и хочешь сделать хорошую игру без претензий на ААА, то Unity станет лучшим выбором. Тем не менее, даже крупные корпорации зачастую выбирают для своих игр именно Unity.FAQ- Какие у Unity сильные стороны?- Простота разработки, удобный инструментарий, кроссплатформенность, богатая документация, огромное сообщество.- Какие у Unity слабые стороны?- Сложность в создании фотореалистичной графики. Для графики "как в Crysis" рекомендуется взять другой движок. Хотя Unity вполне способен выдавать не уступающую любым другим движкам картинку, это требует определённого навыка от разработчика.- На каких языках я могу писать скрипты для Unity?- На выбор два языка - C# и UnityScript. UnityScript - это что-то среднее между JavaScript и ActionScript. Выбирай язык по своему вкусу, они оба вполне удобны, но помни, что большинство примеров написано на C#.- Для каких жанров подходит Unity?- Для абсолютно любых! Жанр ограничивается лишь фантазией разработчика (и его умением писать скрипты, разумеется). Можно создавать и РПГ, и стратегии, и слэшеры. Можно делать VR-проекты или Minecraft-подобные песочницы.- На каких платформах работают созданные с помощью Unity игры?- Windows, Linux, MacOS, SteamOS, Android, iOS, Windows Phone, PlayStation4, Xbox One, WebGL, Oculus Rift и многие другие. Полный список можно найти на официальном сайте. Таким образом, игры Unity работают на десктопах, на смартфонах, планшетах, приставках, в браузерах, VR-очках и некоторых других системах.- Часто вижу скриншоты с красивой природой на Unity. Как такое создать?- Очень просто! В Unity встроены удобные инструменты для создания террейна и SpeedTree для создания деревьев и готовая реализация ветра - не нужно ничего писать или скачивать и подключать плагины - ландшафт в Unity создаётся в пару кликов.- Что такое стартер киты?- Starter Kit - это набор скриптов и префабов, а зачастую и графических элементов для игры. Они призваны облегчить разработку игры определённого жанра и как правило разбиты по жанрам (Action-RPG Starter Kit, RTS Starter Kit, 3D Shooter Starter Kit, Space Game Starter Kit, VR Starter Kit и так далее). Также бывают стартер киты различных игровых элементов, не связанных с геймплеем (Nature Starter Kit с дополнительными природными объектами, Medieval Starter Kit со средневековыми объектами и так далее). По сути, стартер киты выполняют в разработке игры ту же роль, что и фреймворки в программировании. Однако стоит отметить, что использование геймплейного стартер кита принуждает разработчика изучать большое количество чужого кода и чужой структуры для внесения своих изменений и полноценного использования. В связи с этим большинство разработчиков предпочитает писать почти всё с нуля, получая полное понимание работы своей игры. Новичкам крайне не рекомендуется начинать знакомство с Unity со стартер китов.- Что нужно уметь делать для создания полноценной игры, кроме Unity-разработки?- Кроме непосредственной разработки игры на Unity, требуется также уметь создавать 3D модели (3ds Max, Blender, ZBrush), 2D рисунки (GraphicsGale, Aseprite, Piskel), текстуры (Substance Designer, NeoTextureEdit), музыку (FruityLoops, Ableton). Не обязательно учить это всё - например, в 2D играх не нужны 3D модели, а музыка необходима далеко не всегда. Также вы можете скачивать элементы для ваших игр на бесплатных сайтах. Если у вас есть деньги, то все необходимые элементы можно заказать у фрилансеров на https://www.fl.ru/ (русскоязычный) или https://www.upwork.com/ (англоязычный).- Бесплатен ли Unity?- Можно свободно скачивать, использовать и продавать готовые игры на Unity с лицензией Personal - это абсолютно бесплатно! Но на бесплатной версии при запуске игры будет появляться короткий стартовый ролик "Made with Unity", а также ваши доходы ограничены 100 000 долларов в год. Для снятия этих ограничений нужно приобретать платные версии лицензий Unity. В конечном итоге, платные варианты используются лишь крупными компаниями с огромными доходами, тогда как обычные разработчики в большинстве своём используют бесплатную Personal лицензию.Обучение - ЯзыкИтак, с чего же начать изучение этого замечательного движка? Прежде всего, с изучения языка. Самые основы C# можно узнать на интерактивных курсах здесь:https://dotnetcademy.net/CSharp/Beginnerили в текстовом туториале здесь:https://www.tutorialspoint.com/csharp/csharp_quick_guide.htmДля изучения основ UnityScript выучи вначале основы JavaScript:https://learn.javascript.ru/Помни, что далеко не все элементы JS есть в US. Чтобы понять, в чём разница между этими двумя языками, прочти эту статью:http://wiki.unity3d.com/index.php/UnityScript_versus_JavaScriptПомни, что тебе достаточно одного языка из двух и учить их оба одновременно не нужно.- ДвижокЕсли ты уже умеешь использовать язык, то можно приступать непосредственно к изучению движка. Крайне рекомендется купить/скачать книгу Unity in action (Unity в действии). В ней подробно описываются множество возможностей движка.http://www.ozon.ru/context/detail/id/34792570/Также посмотри на видеотуториалы с официального сайта:https://unity3d.com/learn/tutorialsЕсли же ты не любишь видеотуториалы (или не понимаешь разговорный английский) и предпочитаешь текст, то посмотри здесь:http://catlikecoding.com/unity/tutorials/Тут крайне подробно описан процесс разработки и приведены примеры кода. Эти туториалы универсальны и описывают множество различных частей игры, от работы с текстурами до генерации карты мира. А вот в этом туториале описыватся разработка двухмерной игры с видом сверху:https://www.raywenderlich.com/61532/unity-2d-tutorial-getting-startedЭто будет полезно, даже если ты планируешь разрабатывать трёхмерную игру. Ни в коем случае нельзя обойти вниманием этот сборник туториалов: https://noobtuts.com/unityВ нём подробно описывается процесс пошагового создания разных игр - двухмерных и трёхмерных. Разумеется, все эти туториалы охватывают лишь часть возможностей Unity. Самый надёжный способ выучить Unity - это начать делать игру и по мере разработки гуглить непонятные моменты. Шапка: http://www.writeurl.com/publish/zukmrogwv45ptyuseyol
>>442120 (OP)> лучшего 2D игрового движка современности!пруфы или пиздаболы
>>442125Двачую. Уже чувствую, как простейшая двадэ головоломка уровня злых птиц лагает от космического количества слоёв абстракции. Гамак, заточенный чисто под 2д, передаёт привет. С ним годот, констракт и остальные.
Делать систему HP/Damage через EventManager - нормальная практика? Простой платформер с быстрым темпом игры
>>442136Подробнее распиши
У меня в игре допустим 5 экранов. Мне надо каждую реализовывать в виде сцены? А как перекидывать между ними геймобджекты с менеджерами? Ну и отсюда вопрос как делать экран с загрузкой и паузу в игре.
>>442151Ты тупой.
>>442152покажи хоть где не прав, чтобы исправился. Писал бы приложение на сях, создал бы где-нибудь в мейне обекты и хранил бы их. А тут как делать?
>>442151Dontdestroyonload()
>>442151Ну твою то за ногу, ну пройди ты официальные туториалы на сайте Юнити, поделай туториальные игры. Тогда не будешь задавать вопросы, которые в силу их безграмотности никто даже не может понять, не то что ответить. Что у тебя за пять экранов, пять мониторов чтоли, игра для биржевых аналитиков?Если тебе нужно грузить сцену, при этом не уничтожая что-то что-то, есть Dontdestroyonload, есть LoadSceneMode.Additive; можешь что-то сохранять в ScriptableObject.Экран с загрузкой - если я правильно понял, речь о SceneManager.LoadSceneAsync(додуешь или нагуглишь, как сделать индикатор загрузки).Паузу можно ставить с помощью time.timescale = 0f Может это и не самый грамотный способ, но извините.
>>442157Аминь, братишка.
Есть ли альтернативные физические движки, в которых все действующие на объект силы всегда доступны наружу, или они все как и дефолтный на черной магии работают и дают читать только конечный вектор?
>>442151Сразу про poolmanager погугли.
>>442129>>442125Тот же римворлд, например. Работает быстро и чисто.Годот - питоноговно, констракт примитивен и не имеет столько возможностей, сколько есть у юнити, гамак - ну это вообще несерьёзно. Можно на вашем гамаке или констракте сделать что-то уровня Heart of Iron 2? На юнити можно.
Серега тут.
>>442120 (OP)Нахуй нужен движок разработчики которого даже не делают игры? Как они могут сделать хороший для разработчика движок?
>>442125>>442129Так-то в юнити вообще нет настоящего 2D! Все на поверхность 3д плейнов выводится и снимается с камерой без перспективы.
>>442172>Все на поверхность 3д плейнов выводится и снимается с камерой без перспективы.Будто что то плохое.
>>442171Пидор ты тупой, Максимка.Разрабы, которые выбрали юньку постоянно хуячат фидбек, а юнитеки на основе фидбека добавляют фичи.>>442172Так-то нигде нет настоящего 2D, фуфел ты глупый. У тебя все движки ломятся в рендерер, который заточен под 3D.
Как сделать поиск путей в 2d? Мне предлагал анон, чтобы враг просто шел к точке, в которой последний раз видел тебя, но проблема в том, что у меня также есть агр на шум.
>>442166> гамак - ну это вообще несерьёзноЗачем ты судишь об инструменте, который никогда в глаза не видел?> Можно на вашем гамаке или констракте сделать что-то уровня Heart of Iron 2?Можно
>>442166Гамак - серьёзно. Хотлайн, hyper light drifter, 12 is better than 6, spelunky, nuclear throne и прочие кагбэ намекают. Годот - штука специфичная, в него вкатываться трудно пзц. За констракт не отвечаю.
>>442177Вообще не вижу проблем. Берёшь алгоритм A-star, ведёшь врага по пути, при появлении шума меняешь конечную точку на источник шума и заново строишь путь. Прафет.
>>442180>Хотлайн, hyper light drifter, 12 is better than 6, spelunky, nuclear throneЭто ты типа годные игры перечислил?
>>442182Да, это игры, хорошо принятые как игроками, так и прессой.По делу-то есть что сказать?
Подскажите, как можно сохранить для каждого скина, куплен он или нет через JSON. Просто создать для каждого кубика отдельную булевую переменную, а затем сериализовать класс?Просто массив или Dictionary<> JSON не сможет реализовать, так как это ссылочные типы.
>>442177Посмотри, может вот эта штука сгодится https://docs.unity3d.com/Manual/NavMesh-BuildingComponents.html
>>442177для 2д я что-то типа того писал https://pastebin.com/mYFUX78wРаботало
>>442186Навмеш не работает в 2d.>>442189Спасибо, приеду домой посмотрю.
>>442182Это -самые настоящие игры. Фэнтезийные, нереалистичные, аркадные и интересные. Игоры фаркраем не ограничены.
>>442190вообще-то работает
>>442180Да никто не спорит, что можно сделать неплохой экшн с видом сверху, рпг ил платформер. Но 2D этим не ограничивается. Ещё есть большие и сложные глобальные стратегии, с кучей графиков и расчетов, с огромной непрерывно обновляющейся картой. И тут юнити будет лучше.
>>442195> тут юнити будет лучше. Чем именно? Перечисли.
>>442195Вычисления массивов данных можно проводить хоть в чистом си, всем насрать. Памятью чаще всего заведует ОС/виртуалка, нежели двигло, особенно в языках с мусоросборщиком. Тут как раз Юнити будет лишним.
Нубский вопрос: в модельках из ассет стора кости рига торчат наружу под углом 90 градусов. А в туториалах в основном делают кости так, как они расположены у нас - вдоль конечностей. В чем здесь соль?
>>442195>Ещё есть большие и сложные глобальные стратегии, с кучей графиков и расчетов, с огромной непрерывно обновляющейся картой.Которые ты никогда не сделаешь. Потому что помимо программиста и художника в команде должны быть несколько математиков и экономистов, которые допилят баланс до играбельного состояния. Без баланса хардкорные игроки скажут "фи" и все.>>442218Кости не должны торчать, лол. Если торчат, то кто-то что-то похерил при импорте модели и сетка не привязалась к костям.Делают Т-позу потому что так проще моделлить и рисовать веса на модели при риге. Если по стойке смирно будет стоять, то очевидно, что заебешься из за близости рук к телу.
>>442145Уже не делаю, подумал что лучше в каждом объекте, что может получать урон, проверять в OnCollisionEnter2D() столкновение и через switch определять тип попавшего снаряда и снимать HP.Хотя EventManager всё равно до конца не ясен
>>442189Можешь нубу объяснить че и как там работает?>>442192Значит это у меня не работало. Ну поищу рофлы.
>>442253Я ивенты как место связи использую. Туда помещаю всё, что происходит в самой игре (а не просто в коде) и от чего зависят много скриптов разом. Скажем, смена хода, удар, движение и всё такое, т.е. не банальности, а как бы комплексные действия.
>>442192С каких пор? На форуме только и говорят о костылях, в документации все по 3D.
>>442293с тех пор как в юнити новый навмеш положили
>>442295https://forum.unity3d.com/threads/welcome-new-navmesh-features-experimental-preview.438991/ — ты про вот это?
>>442199Думаю, он говорит про кнопочки (которые хуёво устроены) и про панельки с текстами (которые тоже хуёво работают). Довольно просто настроить и значения туда-сюда подогнать. А с туториалами вообще можно целую игру запилить не погружаясь в дебри программирования. Мечта любого парадоксоёба-моддера, короче. В общем, я не нашёл ничего про инпутфилды кастомные, поэтому придётся использовать встроенный. https://docs.unity3d.com/ScriptReference/UI.InputField.htmlЯ правильно понимаю, что могу сделать наследующий класс инпутфилда, взять любую функцию из списка, ебануть оверврайт, поставить base что-то там, чтобы выполнялось то, что выполняется в оригинале, и дописать своё поверх? Что из этого отвечает за включение/выключение режима письма в бокс? Activate и deactivate? Скажем, мне нужно в изменять вводимый текст, чтобы при введении какого-то слова оно окрасилось в какой-то цвет. Понятно, что нужно подменить текст. Что и куда менять надо из этих функций?
>>442298ну а что по твоему ещё? открой ссылку на гитхаб, там экзамплы лежат, посмотри.
>>442288Прикрутил EventManager описанный в "Искусство создания сценариев в Unity" Алана Торна (стр146). EventManager отсылает уведомление о событии всем подписанным на него объектам. Каким образом можно отослать уведомление конкретному подписавшемуся из нескольких?.
>>442304Я не помню точного кода, но ты подписываешь каждый объект отдельно. Там какая-то строчка с +=
>>442304спросить "ты ли это?" у каждого кто принял. но вообще если ты дошел до такого то ты не совсем правильно пользуешься этой штукой
>>442304А конкретному нельзя, это да
>>442304Ну, чисто технически, ты можешь конкретному отослать, но менеджер эвентов - это тот еще головняк и лучше используй его, когда у тебя есть события типа: пауза, на локации пошел дождь, тян серит вонюче. То есть, там, где тебя не ебет флоу.
>>442304Я для своей игры так делаю:Отдельный объект урона, разные типы урона наследуют от основного урона. В основном объекте метод нанесения урона, в который заносятся параметры от участвующих юнитов. Удары случаются только от абилок, так что этот метод (ссылка на объект урона занесена в абилку как тип урона, также удобно на панельке абилки информацию об уроне выводить) вызывается из абилки, когда она используется. Всякие баффы тоже отдельными объектами, в них есть список подписанных на конкретный бафф юнитов, у юнита список наложенных баффов (для удобства, опять же), если есть баффы, их методы используются до абилки или после. Через ивенты в принципе будет то же самое (я думаю), но ты будешь тот же самый метод вызывать из другого места просто. Может быть проще следить, но я что-то сомневаюсь, что в этом дерьме так уж много строк, чтобы не уследить.
>>442306>>442312Спасибо, я понял что не правильно хотел его использовать.
>>442366ты задал вопрос через жопу. опиши структуру того что ты пытаешься сериализовать. и отдельно опиши более детально что ты вообще пытаешься делать. желательно с картинками.
>>442370Уже сделал, спасибо
Блять, гдач, спасай.Это либо юнити совсем охуел, либо я в конец даун отбитый:Проставил галочки как на пикриле, собираю билд на ведро, но ебучая черная полоска с дебагом все равно всплывает сверху.Галка девелопмент билд отключена.Спасай, анон, что это за хуйня?
>>442391Какая еще черная полоска? Ты там какой нибудь ебучий ассет скачал чтоб он тебе полоски показывал.
Анон, вот смотри. У меня создаются два одинаковых объекта. К каждому прикреплено по еще одному. При этом есть скрипт прикрепленный к префабу. В нем указанно, что если нажать на прикрепленный объект, то первый изменит местоположение. У меня же получается, что когда я нажимаю на один объект, местоположение меняют оба. Почему так и как вообще лучше реализовать это?
>>442408>>первый изменит местоположение. >>местоположение меняют оба.Место где именно указывается какой объект меняет местоположение.
>>442404Не, дефолтная, но я уже рзобрался как отключить, спасибо.
>>442422Ты бы хоть для других написал как.
>>442299>Думаю, он говорит про кнопочки (которые хуёво устроены) и про панельки с текстами (которые тоже хуёво работают). Довольно просто настроить и значения туда-сюда подогнать. А с туториалами вообще можно целую игру запилить не погружаясь в дебри программирования. Мечта любого парадоксоёба-моддера, короче. Это про юнити или констракт?
Анон, а можно как-то осуществить проверку нажатияRaycastHit2D hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero);не по тегу или имени объекта на который нажали, а тому объекту, который я объявил в самом скрипте.То есть я объявляю public GameObject Obj;И мне надо совершить действие после клика на него. Но не через if (hit.collider.gameObject.tag == "...") или name.
>>442428OnMouseDown
>>442428Создай компонент для идентификации.
>>442431>>442432А есть какая-нибудь проверка, является ли объект дочерним к данному? Или наоборот родительским?У меня в этом вся проблема.
>>442434Все. Я сам.Сделал hit.collider.gameObject == ObjВроде заработало как надо.
>>442428>>442447Вот собранный из говна и палок рейкастер. Правда, он для 3д. Суть его в том, что он видит одновременно и ГУИ, и сами игровые объекты.https://pastebin.com/n2Q6iCRgПо умолчанию видит любые объекты, которые наследуют от IClickable, и берёт первый, в который упирается луч. Объект обязательно должен иметь image. Добавляешь к объекту новый компонент RaycastFilter и используешь метод Initialize, чтобы рейкастер мог перестать замечать части изображения, которые за пределами коллайдера. Добавляешь компонент RaycastHidable и наследуешь от IRaycastHidable, ставишь в нём owner'а объект, к которому добавил RaycastHidable, и затем можешь переключать бул raycastHidden, чтобы рейкастер мог видеть/игнорировать этот объектВ переменной hovered лежит объект, в который упирается луч после фильтров. OnMouse*Custom'ы в видимых рейкастеру объектах вызываются в соответствующий момент.
Скрипт движения пули (ДваДэ):void Start (){mousePosition = Input.mousePosition;mousePositionGlobal = Camera.main.ScreenToWorldPoint(mousePosition);}void Update (){transform.position = Vector3.MoveTowards(transform.position, new Vector3(mousePositionGlobal.x, mousePositionGlobal.y, 0.0f), speed * Time.deltaTime);}Пуля доходит до точки где был курсор в момент выстрела. Как заставить пулю лететь до упора?
>>442428>>442550Вы блядь аутисты, про эвенты слышали вообще?
>>442589> Пуля доходит до точки где был курсор в момент выстрелаА схуяли она должна через MoveTowards лететь дальше координаты конца вектора? Вычти от mousePositionGlobal свой tramsform.position и внезапно получишь направление (геометрию в школе прогуливал что ли?), а по этому направлению уже пускай свою пулю по прямой.
>>442590А что это?
Подскажите, аноны, как правильнее: игровой объект сам вызывает в менеджерах аудио, подсчета очков, считалке врагов на карте и прочих и прочих сециальные методы для воспроизведения реакции на событие (например, смерть); все менеджеры являются потребителями одного открытого делегата-события в классе игрового объекта?
>>442590Ты про OnMouseEnter/Exit? Если панелька в GUI будет висеть над объектом, то случится хрень полная. Мышка зашла на панель, мышка заходит на объект, но не вызывает OnMouseExit для панельки. С таким рейкастером не нужно придумывать охуительные системы вычисления, над чем же, бля, мышка висит.
>>442592>>Геометрию в школе прогуливал что ли?Ага. Вместо уроков шел играть в вов в клуб. Даже не знаю что было лучше -полюбить игори или знать геометрию? Спасибо, всё работает как нужно
>>442595Про EventSystem.current.IsPointerOverGameObject ты не слышал, да?
>>442599>EventSystem.current.IsPointerOverGameObjectНеа. https://docs.unity3d.com/ScriptReference/EventSystems.EventSystem.IsPointerOverGameObject.htmlВ любом случае говноёбство. Велосипед с нуля логичнее работает.
>>442594Никак. Тебе решать, что лучше. И тот и другой подход имеют право на жизнь. В идеале заранее спланируй какие у тебя там менеджерв должнв быть и что они будут делать, а также подумай не избыточны ли они.
>>442600Удачи в написании велосипедов вместо игры.
>>442597Геометрии можно и сейчас научиться. А вот игровую импотенцию уже не вылечить.
Почему эта корутина выдает NullRreferenceException ? Эта какая-то очень глупая и очевидная хуйня, но я не могу понять какая именно.
>>442616Нужно просто постараться.
>>442617на какой строчке выдает то блядь?
>>442616Игровая импотенция у геймдевелопера или у игрока? В первом случае это профессиональная деформация, второй случай у каждого по своему развивается.Считаю что лично мне игровая импотенция не светит - за всю жизнь я прошел около 5-7% существующих игр. К тому же я каждый день повторяю мантру про охуеность геймдева Видео-игры - апогей современного творчества....
>>442120 (OP)Привет, как сделать кнопку интерфейса видимой только во время нажатия кнопки (E) клавиатуры? То есть, какая команда отвечает в скрипте за это?
>>442620>игровая импотенция не светитТак же она не светит любителям дотки, майнкрафта, ЖТА, лола, чо я еще забыл?
>>442619Там где вызываю корутину (19 строчка)
>>442621if (Input.GetKey (KeyCode.E))hueta.enabled = true;elsehueta.enabled = false;
>>442624Спасибо. Это можно на скрипт кнопки повесить?
>>442622Имхо, как раз именно сессионки становятся причиной игровой импотенции. Дрочить одно и тоже рано или поздно надоест, а осадок в виде рвотной реакции на все игры вообще, остается.
>>442625Да. Ты бы основы подучил.
>>442625Куда угодно, только не на хуету, которую прятать собираешься. И да, саму хуету в скрипт передать не забудь.
>>442626А меня только R6:S спасает. Всё ранее перечисленное вообще не заходит (а доту даже не пробовал).
>>442617бамп разочек
>>442620> В первом случае это профессиональная деформацияПрофессия еще не началась, а уже деформировался. 5% игр точно не прошел, но много овощил в РПГ (500 часов в Скайриме благодаря модам), преимущественно из-за красоты и загадочности миров, интересного лора. Теперь вот пытаюсь сделать подобный рай для аутиста.
>>442623Хуйня какая-то, вставь текст ошибки лучше полный.
>>442623Понял в чем ошибка. Этого объекта нет на сцене, когда он пытается вызвать корутину.
>>442120 (OP)Аноны, хелп! Писал на юнити игру с февраля 2017, значит все собрал, все работает и решил я накинуть плагинов с рекламой и достижениями. Выбрал плагин от аподила и плагин от гугла с достижениями. И они вместе никак не хотят работать. Вылетает ошибка unable to convert java dex format. Проблема в том что в папке plugins слишком много плагинов и андроид не может собрать апк. Подскажите, может кто-то с таким сталкивался. Пытался собрать через градл, но там полетело еще больше ошибок. Хочется чтоб и ачивки были, и копеечка с релкамы.
>>442655Проблема была в этом:http://answers.unity3d.com/questions/745685/nullreferenceexception-on-startcoroutine.htmlЯ использую переменную в которую подгружаю ссылку на текущее оружие: currentWeapon = new Rocketshoot(); . Для стрельбы вызываю соответственно currentWeapon.Shoot() >>442617. В совете выше предлагается использовать AddComponent вместо new и я не понимаю как именно, ведь мне нужен весь объект а не какой-то его компонент.
вопрос. делаю сетевое сессионное дрочево через unet. хочу инвентарь. есть где почитать про то как правильно сделать синглтон на сервере который бы контролировал все это дело?
>>442702Объясни что ты пытаешься сделать или иди нахуй.
>>442707Ни фига себе, у тебя headless server будет? На hlapi ваяешь что-то вроде авторитарной архитектуры? Unet так то фигня сырая, мало кому нравится.
>>442722я сорт оф сделал прототип с hlapi. на сервере болтается синглтон который сообщает клиентам всякие мелочи вроде какая карта выбрана, где текущий респавн и прочее. общий статус игры в общем. но внутри какая-то нелепая мешанина с делегатами. пару дней назад полез в llapi и меня устраивает, но туда проникать буду долго. теперь вот у двача решил спросить советов
>>442730Hlapi в основном для прототипов и советуют использовать. llapi смотрел, вроде можно работать, но это какой-то гемор. Есть же готовые решения. Мне например Photon понравился из п2п релейки. Вот про его отличия от юнета https://www.youtube.com/watch?v=Y1my5bKhKJYПравда, родные скрипты вероятно придется переделывать/допиливать, PhotonTransformView и т.п.Что касается клиент-серверной архитектуры(если ты ее делаешь), поспрашивай у других анонов. Для нее тоже есть готовые решения, Forge networking например, но я их не тестил.
>>442732спасибо за ответ, да. да, я уже смотрел это видео и знаю. делаю клиент-серверную архитектуру, но чтобы сервер мог к себе присоединиться как клиент ещё.ещё несколько дней посмотрю llapi, хочу попробовать сделать его вместе с hlapi. сделать чтобы общая информация передавалась через llapi и чтобы оно служило как метод синхронизации состояния, но с перемещением и прочими мелочами вроде и hlapi неплохо справляется. хотя все это выглядит сомнительным. потом наверно фотон посмотрю и Raknet планировал глянуть.
Как поставить игру на паузу, и чтобы при этом работала корутина с WaitForSecond?
>>442712Перезарядку на выстрел корутиной
>>442735Нашел, WaitForSecondsRealtime
>>442702> подгружаю ссылку на текущее оружие: currentWeapon = new Rocketshoot();Нихуя не понял твоей логики. Ты из нихуя создаешь новое оружие в переменной, в которой оружие свапается постоянно. На пике то, как твой шутан должен примерно работать, на видео примерно тоже самое описывается.https://www.youtube.com/watch?v=bvRKfLPqQ0Q
>>442741Спасибо, сейчас попробую переделать.
>>442741Что должно быть в ShootingMechanic ? Пустой public virtual void Activate(int damage) и всё ? Выдает NullReferenceExeption в 16 строчке (твой пик).
>>442766
>>442772Ладно, ладно, сам разберусь я тормоз немного
>>442774Не, ну нахуй, я слишком туп что бы понять почему weapon.pistol == null. Пойду погуляю что ли
>>442766ShootingMechanic — это MonoBehaviour. В моем примере от этого класса наследуют типа механика стрельбы снарядами по прямой и механика стрельбы рейкастом. Можешь еще прикрутить гранаты и спавн взрывчатки на точке.В ScriptableObject'е (который оружие) потом навешиваешь ту или иную механику. Только в оружие тебе нужно еще вписать префаб снаряда, иначе их хуй передашь.> Выдает NullReferenceExeption в 16 строчке (твой пик).Так допиши проверку на null, одной строчкой решается.
>>442778Лол, блядь, потому что конструктор арсенала просто создает пустые ячейки, все внутри него равно null. Тебе надо в префабе игрока в арсенал закинуть хотя бы пистолет. Шаблон под оружие у тебя есть, надо просто сделать вариант, который можно назвать пистолетом по урону и скорости стрельбы.
>>442785Можно последний даунский вопрос? >>надо просто сделать вариант, который можно назвать пистолетомЭто должен быть скрипт наследующий Weaponq? Или префаб? Ни одна хуйня не подходит.
>>442793>этот миллион полей
>>442794Доделаю оружие - приведу всё в порядок.
>>442793Подскажите и я съебу наконец.
>>44279327-ая строка позволяет пилить ассеты из этого класса. Т.е. отдельную инстанцию объекта. В браузере файлов Унити (ну или как он называется, ты меня понял) на ПКМ создаешь ассет, настраиваешь урон, кд, патроны, спрайт/модель. Все, у тебя есть пистолет. Только сериализуй struct Weapons, чтобы он появлялся в компоненте игрока и кинь пистолет туда.
>>442800Не создается.Попробую сделать всё с самого начала. Всем спасибо за помощь.
>>442802Гугли ScriptableObjects и как они работают.
Продолжаю неторопливо разбираться в инпут филдах. Есть у меня, значит, девконсолька. Всё работает, гайд в интернете есть, открывается-закрывается, кнопки жмутся, проблем нет. А есть сам инпут филд с дитём-текстом. Инпут филд тоже работает, я к нему прикрутил почти всё, что мне нужно, но при тесте встала проблемка: похоже, инпут филд имеет свой набор быстрых клавиш, и при нажатии эскейпа он принудительно удаляет вписанное в инпутфилд. Как и где это лечить? Всё, что я с этим инпутфилдом делаю, это вызываю Activate/DeactivateInputField(). Эскейп тоже вызывает в одном случае Deactivate, но аналогичный вызов через клик на пустую область экрана не стирает набранный текст
Здарова, кабаны, почитал тут вашу шапку, воодушевился, да, решил тут свой инсайд запилить. Как я понимаю у вас здесь сотни таких появляются постоянно и затем так же закономерно исчезают?
>>442734>>442732в итоге полез ещё дальше в llapi. вообще, теперь когда я узнал как оно примерно работает то код hlapi который в открытом доступе лежит стал заметно понятней. наверно можно и его будет напильником допилить.но там такое чтиво что прямо зачитаешься. >>442812за пару лет зоонаблюдений в этом разделе и конкретно в юнити-треде я видел некоторое дерьмо. если достаточно упёртый и не тупой то и ты увидишь.
Суп дроч, помогите мимокроку, решил с камрадами поиграть в survivors viy, у меня какой-то косяк с освещением, у камрадов все неплохо видно метров на 20-30 вперед, а я как слепой крот вижу только на 5 метров вперед и то с фонарем, без него просто черный экран, так вот, проблема в отсутствии каких-то библиотек на моей пекарне, или просто видюха говно? (В игре нет настроек гаммы или дальности прорисовки) заранее спасибо за ответ
>>442811Ну что, никто не знает?
Нужны ли знания математики и алгебры при программировании в играх? Я просто дуб-дубом в точных науках.
>>442817Векторы, возможно захочешь запилить какие-нибудь формулы, например для опыта персонажа.
>>442816да знаем, просто проблема мелочная. на, почитай.https://bitbucket.org/Unity-Technologies/ui/src/0bd08e22bc17bdf80bf7b997a4b43877ae4ee9ac/UnityEngine.UI/UI/Core/InputField.cs?at=5.2>>442817решай проблемы по мере их поступления.
>>442819Хотел пошутить про чтение 2к строк кода, но потом F3 и нашёл protected EditState KeyPressed(Event evt)и дальше case KeyCode.Escape: { m_WasCanceled = true; return EditState.Finish; }Как мне это исправить? Не оверрайтнуть же
>>442821зато чтение 2к строк кода всегда сработает!а ты и не можешь, не виртуальная функция же. можешь просто скопировать весь код и переписать как тебе там надо. хотя вон единственная функция которая эту вызывает виртуальная. public virtual void OnUpdateSelected(BaseEventData eventData). оверрайдни её, скопируй её код и сделай проверку с кейкодом, например.
>>442823Спасибо за помощь.Вон, выше в треде про велосипеды писали, мол, зачем, в юнити же всё есть. Конечно есть, но вот как какая-нибудь подобная хуетень вылезет, так всё равно всё копировать и переписывать
>>442821Парни, подскажите в двух-трёх словах, а там уже я подхвачу. Есть NavMesh, на нём есть статичные преграды,в виде, например кубов с коллайдерами. Есть NavMeshAgent'ы, висящие на, допустим, капсулах. Скажите куда копать чтоб одна капсула, видя другую враждебную капсулу, скрывалась за ближайшим укрытием.Каждая капсула рейкастит по враждебным капсулам, если есть контакт, то она так же рейкастит пути укрытия, так? Вот эти самые пути укрытия я не сильно понимаю.
>>442825Ссылка случайно приклеилась, пардон.
>>442824на здоровье.да ладно, подумаешь какой-то ебучий UI, он в открытом доступе лежит. его же не просто так положили открытым. решать такие проблемы это не велосипеды делать.другое дело когда тебе действительно надо писать велосипеды. когда понадобится хитровыебаная навигация, ИИ, процедурная генерация, собственные инструменты заточеные под проект и прочие интересные вещи. вот тогда начинается интересное.>>442825лол. честно? хороших методов мало. можешь сделать несколько самплов на навмеше рядом и проверять видимость до них, а потом просто выбрать самый ближайший. но ничего тебе не гарантирует что эти точки будут достижимыми. как раз такие проблемы и требуют кастомных решений.но если очень хочется то можешь воспользоваться моим ассетомhttps://www.assetstore.unity3d.com/en/#!/content/85181он может тебе возвращать грид достижимых точек на навмеше в пространстве рядом и даже генерировать укрытияhttps://www.youtube.com/watch?v=M3x9l-wWNJU смотри какую хуйню можно творить
>>442827надо будет кстати починить его уже. триангуляция очень уж далека от совершенства.
>>442825Первый костыль, который приходит в голову, это проверка наличия укрытий через коллайдер, затем смотреть на каждом укрытии, будет ли агент защищен.
>>442827Ох, братишка, спасибо.
>>442830на здоровье. учитывай что я не написал никаких крутых алгоритмов навигации, агенты даже не знают что рядом есть другие агенты и будут просто толкать друг друга. там ещё писать и писать, а ведь надо копать в другие стороны ещё.с другой стороны можешь пользоваться двумя навмешами сразу. навмеш юнити тоже очень хороший.https://www.youtube.com/watch?v=Cjf7QEJ4HCM вообще навмеш а самом деле может делать гораздо больше чем от него обычно ждут. когда у тебя на руках пиздилиард вокселей которые описывают всю геометрию вокруг и можно управлять ими как хочется то сразу столько возможностей.вообще навигация в играх это большая и интересная тема. у тебя может быть и простое решение, зависит от того как у тебя устроен уровень.
>>442659Обратись в саппорт, там быстро ответят.Гайс, как мне описать движение объекта(спрайта) чтобы объект двигался не тупо вперёд , а по направлению тела
>>442120 (OP)Анонусы, возникли вопрос.1. Во-первых, существуют ли сайты с которых можно скачать платные ассеты? Это ведь везде так — если есть что-то платное, то где-то на торрентах по-любому можно найти крякнутое. Но я перерыл всё что мог и нихуя не нашёл. Вообще пусто, даже каких-то устаревших ассетов платных не нашлось. Такого в природе вообще не существует и все прилежно покупают?Даже на торрентах можно найти крякнутый Unity Pro максимум 5.2 версии, что примерно двухлетней давности.2. Как привязываются покупки ассетов? То есть понятно, что к аккаунты. Но вот я зашёл на их сайт, залогинился, купил ассет.А потом иду и логинюсь под этим аккаунтом в про версии. Мне пиздец или они это не чекают?Можно ли на разных компьютерах пользоваться юнити под одной учёткой (и качать купленные ассеты)?3. Третий вопрос более локальный к моей проблеме. Возникла задача заимпортить анимацию Point Cache. В инете либо устаревший скрипт, либо покупай за 35 бачей ассет для 5.6+ версии. Неужели все, кто сталкивался с такой задачей шли покупать ассет? А что если версия у меня старее? Мне уже никак не решить эту задачу тогда?Надеюсь на ответы анончики.
А можно ведь как-нибудь запечь карту укрытий, и агент будет выбирать воксель с наибольшим коэффициентом укрытия от всех видимых агентов.мимокрок
>>442842двигать его по направлению тела? ну тоесь лол если же вычесть из позиции Б позицию А то ты получишь направление от А к Б.>>442843да. существуют. плохо искал, плохой пират. ищи лучше.>>442844можно сказать это и делает мой навмеш. вообще вокселей слишком много. чтобы это хорошо работало надо писать свой рэйкастинг чтобы он происходил на гпу быстро-быстро.
>>442848>можно сказать это и делает мой навмеш. вообще вокселей слишком много. чтобы это хорошо работало надо писать свой рэйкастинг чтобы он происходил на гпу быстро-быстро.Погоди, у тебя рейкастинг постоянно идет? Я имел в виду, что можно отрейкастить один раз все статические укрытия.
>>442859нет конечно. укрытия являются побочным продуктом создания навмеша. у меня там нет рэйкастинга по моему нигде вообще. там магия линейной алгебры. но чтобы проверять валидность укрытия надо же делать рэйкасты. притом на нескольких высотах если есть перепады в них. если брать самплы точек вокруг то даже если точки каждые пол метра то выходит под добрую сотню точек если надо проверить хоть какое-то значимое пространство вокруг на предмет укрытия, притом количество проверок множится на каждого кто может это наблюдать. под этак и выходит по 2-3к рэйкастов в итоге, что пиздарики.у меня вот есть понятие о укрытиях, пространстве которое находится только рядом с препятствиями. можно проверять не сотню точек, а десять и на гораздо большей дистанции. но опять же точка рядом которая находится в небольшой ямке может быть гораздо лучше.плюс опять же проблемы с навигацией. даже если ты знаешь что рядом есть укрытие то проверить цену перебежки к нему можно только на навмеше. потому что укрытие может быть на другой стороне стены.вообще методы поиска укрытий сильно зависят от геометрии уровня. если они представляют собой коридоры из пары стен которые все на одном уровне то разумеется все заметно проще. а если у тебя лес с камнями то охуеть можно.
>>442848Не, я хуево сформулировал Например есть спрайт стрелочки , как сделать так чтобы объект(этот спрайт) всегда двигался в направлении стрелочки , а не по Х например
>>442895Тут тебе нужна геометрия. Как вариант - берёшь точку и берёшь точку с другой стороны объекта, меряешь расстояние между ними, затем берёшь другую точку рядом и противоположную ей, снова меряешь, и так повторяешь, пока не найдёшь самое большое расстояние между точками. Это расстояние будет означать самую большую ширину объекта, и по точкам от этого расстояния можно найти прямую. Затем можно найти "вес", то есть с которой стороны спрайта больше точек закрашено, и по нему определить, в какую сторону смотрит стрелка.
>>442895Братан, ты походу шаришь. Расскажи как сделать вот у меня есть спрайт хуя, как сделать чтобы он все время двигался тебе за щеку, а не по Y например
>>442895transform.right или transform.up можно для этого использовать.
>>442741>>442800Мудила снова на связи. >>В браузере файлов Унити (ну или как он называется, ты меня понял) на ПКМ создаешь ассетNullReferenceExeption выдает если в 28 строчке изменить класс с abstract на обычный, то хотя бы создается пустой объект Где я мог проебать ссылку?
>>442952Скорее всего автор пикчи обосрался и тебе нужно создавать не экземпляр абстрактного класса, а экземпляр наследующегося от него класса. Но вообще я нихуя не понял что там за решение.
>>442954О да, большое тебе спасибо, я вроде бы распутал этот клубок.
>>442952Я наебался и класс не должен быть абстрактным, конечно же.> хотя бы создается пустой объектЕсли он без полей в редакторе, прописывай [SerializeField] над private переменными.
Ребятки, допустим делаю карточную игру. Есть 4 ячейки сверху, 4 снизу, хочу перетаскивать карточки туда-сюда.Написал реализацию через интерфейсы IdragHandler и пр. таскаются. Есть два массива, для карт в верхних ячейках и в нижних.Тип массивов лучше сделать ГОбджекты или Классом скрипта? Не могу решить как удобнее.И главное, как проще реализовать изменение значений массивов этими перетасканными картами?Или сначала менять значения, а от них уже таскать?Сейчас пробую сделать свойство у карты, допустим CurrentCell, где сеттером присваивать значение нужному элементу статического массива из ячеек. То есть допустим есть GameObject[] TopCells, я туда перетащил, ОнЕндДраг получил значение номера клетки, взятое из OnMouseOver клетки, присвоил его CurrentCell карты, дальше сеттер пихает gameObject в массив. СЛОЖНО ВЫХОДИТ, совсем голова не варит, как проще сделат?
>>442963Бля, впизду. Твой уровень интеллекта не достижим для меня. Я разобрался на половину, но всё равно тут ещё слишком много копать. А мне нужна была всего лишь строчка if (toCd < Time.realtimeSinceStartup) toCd = Time.realtimeSinceStartup + cd;
>>442966просто ты валенок и пытаешься делать то что не соответствует твоему уровню знаний. делай более простые вещи.
>>442965Вот сдесь есть все что тебе нужно сумеешь раскопать все получится охуенно https://www.youtube.com/watch?v=KLaGkc87dDQ&list=PLX-uZVK_0K_7V8z0lfuC9680FnCWoYdbb
>>442967Угу, залез не туда. Хотя бы кд на выстрелы работает, не зря время проебал, лол.
>>442970простой тебе совет: если ты валенок то повторяй за другими. когда станет понятно что происходит то делай по своему.вон видяшечки на ютубе посмотри кто как чё делает.
>>442966Я месяц назад нихуя не шарил. Сейчас тоже, но в меньшей степени. Смотри Live сессии, там один хуй половину основ объясняют, остальную половину догугливаешь если надо, к этому всему сверху еще и примеры работающей игры (ну или хотя бы механики).
>>442971Стараюсь так и делать. Просто не всегда очевидно что именно гуглить, а если что-то нагуглил, соответствует ли это твоему уровню знаний и не говно ли вообще.>>442972>Смотри Live сессииПосоветуешь что-нибудь?
>>442977> Посоветуешь что-нибудь?Появляется проблема — гуглишь — скорее всего находишь сессию — получаешь развернутое решение с плюшками.Я тебе с самого начала кидал по ScriptableObject'ам сессию. Там очень хорошо описан вариант использования как раз для решения твоей проблемы.
>>442977ищи на ютубе длинные серии из видео, где кто-то делает что-то с нуля достаточно продолжительный срок.мне например понравились старые видео этого бородоча. https://www.youtube.com/watch?v=YYqzz1dy3Ak&list=PLE5C2870574BF4B06 он там неебическое количество времени делал хуйню. играбельного он ничего не сделал, но как учебный материал более чем сойдет.
Докладываю о ёбле с инпутфилдами.Охуительная, блядь, система. С одной стороны, есть такая жуткая ненастраиваемая вещь, как private методы и булы внутри класса инпутфилда, благодаря которым хрен ты что поменяешь, не скопировав все 2к строк или не применив охуительные познания в порядке апдейтов. Не хочешь, чтобы при включении инпутфилда текст выделялся? Изволь сообразить десяток костылей! Не, оно понятно, что всю теорию и практику кто-то где-то уже сообразил, но честь-то знать надо. Мало этого, так ещё с инпутфилдами крепко переплетается инпутменеджер (тот экран с настраиваемыми клавишами) и анально внедряется во все области жизни всего игрового интерфейса. Отключить оси инпутменеджера нельзя, - посыпятся nullexception'ы, - чтобы private методы изменить нужно весь код копировать и надеяться, что у юнити какой-нибудь скрытой хуйни в каком-нибудь другом классе нет, из-за которой весь код на плаву держится. Ладно, хорошо, можно навигацию отключить, но так дело-то в том, что это говно запривачено по самое небалуй в коде. Люди на эту херь с 2004 года жалуются. Как это блядь вообще?!Я давненько так не охуевал, если честно. Как вы с этим живёте?
а делать синглтон для unet то и не надо было в итоге. у меня случилось просветление как же все сделать так как надо. надо было просто лучше прочитать документацию как всегда.>>442987вся твоя проблема выглядит как что-то что не является проблемой изначально. для меня загадочно нахуй ты вообще делаешь то что делаешь. копирование класса в случае с инпут филдами разумеется сработает, он же там никуда не лезет глубоко в сам движок. вообще ты всегда можешь воспользоваться старым гуи, если тебе новый не нравится, или даже скачать альтернативные решения вроде NGUI. тебе вот всяких вещей дали, сделали за тебя много, а ты жалуешься. можешь вот UE попробовать, он опенсорсный же, лол. но пойдя туда будь готов что если ты что-то дёрнешь то потащишь код со всего движка. а если глубоко залез то хуй тебе а не обновления.что по твоему проще? вообще если надо то не копируй весь инпут филд, всегда можно написать свои инпут филд с игрищами и блудницами взяв за основу код уже существующего. вот как я например с классом графа аниматора поступил. сделав все как надо тебе всегда получаешь ожидаемый результат. а тут за тебя и так уже почти все сделали.
>>442996>для меня загадочно нахуй ты вообще делаешь то что делаешь. Вот представь обычную консоль на тильду. Вроде просто, из самых простых палок и говна нормально работать будет даже без дрочки, но если хочешь хотя бы минимального удобства, то приходится искать способ отрубить принудительное выделение всего текста при включении поля, искать способ менять взаимодействия клавиш в самом классе, чтобы в случайных местах не отрубалось и не прыгало, искать способы убрать инпутменеджер, чтобы нажатие на стрелку не переключало фокус, и всё такое подобное. Да, это не глубоко лезть, да, погуглишь, и всё будет, но блин, вы на поделки на юнити посмотрите, там везде одни и те же проблемы, и эти проблемы с самого начала юнити висят. Пишут функционал, который нужен в узких случаях, но для его работы нужно анально ограничить тот функционал, который нужен широко. >всегда можно написать свои инпут филд с игрищами и блудницами взяв за основу код уже существующегоНу, это выше моего поверхностного понимания юнити. >тебе вот всяких вещей дали, сделали за тебя много, а ты жалуешься.Звучит как "жри, что дают". Не пойми неправильно, я благодарен, но это жесть какая-то. На кой чёрт писать фичи, которые нужно самому пользователю вырезать, чтобы они ничего не портили?
>>442998>Вот представь обычную консоль на тильду. лол сделай её на старом гуи, хули ты мучаешся. он гораздо лучше подходит для таких задач
>>443000Ты говоришь "старый гуи" так, как будто я его застал.Погуглим, что поделать.
>>443001а, ты не знаешь. классы https://docs.unity3d.com/ScriptReference/GUI.htmlhttps://docs.unity3d.com/ScriptReference/GUILayout.htmlна нем свои кастомные окошки сейчас пишутся, там ещё куча другой хуйни есть в этом случае. вот они делают только то что делают. ничего лишнего.
>>443002>The IMGUI system is not generally intended to be used for normal in-game user interfaces that players might use and interact with. For that you should use Unity’s main GameObject-based UI system, which offers a GameObject-based approach for editing and positioning UI elements, and has far better tools to work with the visual design and layout of the UI.>вот они делают только то что делают. ничего лишнего.Вижу. И как взаимодействие игрока с прямоугольниками делается? Смотрим, как широко раздвинули в коде прямоугольник, смотрим, влезает ли в эти координаты мышка, и от этого отталкиваемся? Ну, я уже присобачился использовать панельки во всех ролях, но гуи действительно выглядит получше.
>>443004там своих интересных трюков полно. для того чтобы узнать расположение курсора в прямоугольнике там есть такая клевая хуйня как система эвентов, например. можно написать что-то в духе if(rect.Contains(Event.current.mousePosition)){} и узнать находится ли мышь в прямогульнике. он хорош тем что он рисуется каждый раз с нуля, в нем не надо никакими эвентами менять значения, чтобы они обновились. для взаимодействия с твоим говном напрямую просто заебись. все происходит в одном месте.ну а новый гуи хорош производительнотью, своими фичами с скейлом, системой делегатов, тем что он геймобжект, интерфейсами и прочими полезными вещами. для чего-то хорош старый, для чего-то новый. советую знать оба.
>>442998Даун не может зайти в гитхаб/ассетстор и написать в поиске unity console, спешите видеть
Ну это вообще пушка.
>>442965Делаешь три системы - логика, отображение, и инпут - они нихуя не знают друг о друге, и общаются только через ивенты.
>>443048С документацией там вообще забавная штука, бывает что в старой версии функция подробно задокументирована, а в новой - описание сокращается до ироничного void ComplicatedShit() - "do complicated shit".>>443057MVVM типа получается? Вообще насколько часто подобное юзается в геймдеве?
>>443061Чаще всего в геймдеве юзается индусский код и пластилин.В теории надо ебашить ECS - но на практике все решения находятся в зачаточном состоянии уже 5 лет. Поэтому все ниасиливают и ебашат как получится, но хоть какой-то принцип разделения аспектов желателен.
>>443061Ты смотрел то что я кидал по инвентарю?
>>443072Если я >>443061, то нет, я крок. Но тоже делаю инвентарь, так что скоро гляну.>>443066>Чаще всего в геймдеве юзается индусский код и пластилин.Это по мне!
>>443061>логика, отображение, контроллер>MVVMСерьезно? То есть даже посчитать что там три сущности, а не две ты не в состоянии? Это mvc называется.
>>443082> Это mvc называетсяЭтот пидор знает о чём говорит. В таком случае используется именно MVC.
Возник вопрос - что лучше,в плане оптимизации и потребления ресурсов - анимация или реализация с помощью кода?
>>443230Разве это взаимозаменяемые вещи?
>>443082>>443108>выучили какие-то там термины и радуютсяСколько игр-то написали, мастера?
>>443243Какие блять термины? Паттерны на втором курсе универа проходят, алё.
>>443230Господи, еще один оптимизатор. Взгляни на какой-нибудь Evil Genius, где под половину объектов отдельные анимации для рабов, и на одном экране у тебя 30 NPC занимаются чем-то своим. Ничего не лагает.
>>443245> Паттерны на втором курсе универа Повезло.
>>443246> Господи, еще один оптимизаторИ не говори. Про стадии разработки бы хоть прочитали. А то поставят на сцену двух болванчиков с тремя анимациями и уже ОПТИМИЗИРУЮТ.
Приветствую. Дайте совет, пожалуйста, как лучше реализовать остров? Точнее, не совсем нет. В общем, суть такова: создаю террейн, делаю остров, ставлю воду... И вижу где она заканчивается. Как сделать так, чтобы вода уходила бесконечно в горизонт? Делать огромную поверхность? Разве это не будет сильно загружать компьютер? Может есть какие-нибудь хитрые способы? (В своё время я считал карты нормалей очень хитрым изобретением, может тут есть похожий способ?)
>>443252 туман
>>443256Как он делается? Через партиклы как-то? Или просто искать в магазине префаб готовый?
>>443258https://docs.unity3d.com/Manual/PostProcessing-Fog.html
>>443259Понятно, спасибо. Кстати красивый пример на пике
>>443262Как там в нулевых?
>>443263В смысле?
Ещё один тупой вопрос. Какой инструмент посоветуете чтобы делать скриптовые события без самих скриптов. Слышал есть какие-то системы, где только перетаскивать дорожки
>>443245а нахуй тебе эти паттерны? сколько код ни пишу - так и не увидел смысл классифицировать используемый подход.>>443264тебя дураком назвали. спросили как тебе там, дураку который удивляется столь старой хуйне как туман в играх.>>443267руки чтоли отсохнут код писать? если ты из этих то лучше в UE иди.
>>443273> а нахуй тебе эти паттерны? Ну у тебя и вопросы. Погугли что ли нахуя они нужны.
>>443274единственное для чего они реально нужны это чтобы сказать другим "моя хуйня работает вот так", или "делай хуйню вот так" более ёмко. на этом их польза заканчивается. но на этой доске они не адекватны реальности. потому что встретить тут проект над которым работает больше одного человека уже редкость, а чтобы эти оба человека ещё и код писали и им требовались такие термины так это вообще что-то невероятное. ну так нахуй паттерны? особенно тут? за пределами чего-то примитивного вроде "синглтон"?
>>443277> потому что встретить тут проект над которым работает больше одного человека уже редкостьНад мои проектом вот работает 4 человека. Я кодер, художник, моделлер и композитор.Так что не такая уж и редкость.
>>443273Про туман в играх знал, не знал как его делать. Ибо нюфаг полный
>>443278удивительно. но вернемся к теме паттернов. вот ты используешь эти термины при общении с этими артистами? отличают ли они один от другого? часто ли они лезут в код?
>>443281Пардон, дружище, я с удовольствием завтра с тобой пообщаюсь, без шуток (а может и сегодня, если раньше вернусь), но надо по работе внезапно отъехать.
>>443278>Я кодер, художник, моделлер и композитор.Человек и пароход. В хозяйстве очень полезный Тебе ещё редактор нужен, наверное.
>>443283Речь же была про четыре человека, ты там в глаза долбишься что ли?
>>443284>Я кодер, художник, моделлер и композитор.>Речь же была про четыре человекаЯ тебе и посоветовал ещё редактора. Чтобы русский язык твой правил.
>>443283а редактору директор. а директору секретарша.профессионалы узкого профиля
>>443285Я не он, лол.
>>443287А, так вас уже пятеро человек в одном теле. Кодер, художник, моделлер и композитор - и ещё "не он".
>>443289Нифига ты шизик.
>>443290Пять личностей у него, а шизик я.
Может глупый вопрос, а есть какие-нибудь лекции, статьи, туториалы по "общему графону"? Вот есть шейдеры, всякие эффекты, свет, пост-процессинг, и т.д. А как это все это комбинировать вместе, чтобы походило на скриншоты из реальных современных игр, а не на васянские поделья - бывают такие туториалы? Если не по всему вообще, хотя бы как сочетать [штука 1] + [штука 2] = круто. Извиняюсь за великолепный литературный язык и безупречную ясность мысли.
>>443294конечно. https://unity3d.com/ru/learn/tutorials/s/graphicsвообще твой вопрос изначально не корректный. вопрос не в том как сделать заебись, а в том что ты хочешь получить.
>>443295Суть в том, что я вроде начал понимать разные вещи по отдельности, но как все объединяется вместе, для достижения желаемого визуального эффекта - тут не очень понятно. Хотелось бы какие-то примеры в этом духе. "Как сделоть красивую ААА игору", лол.Меня вот удивляет, что даже платные туториалы в основном заняты всякой залупкой типа как поднять предмет, как лупить мобов. Но ведь все это тривиальные вещи, можно сделать как угодно - не принципиально, если не пилишь убийцу WOW. А вот такие вещи как а) красивый производительный графонб) подводные камни, засады, как не надо делать никогдана удивление редко/мало затрагиваются.
>>443296да как бы не так и много вещей делают графон. ебани, посмотри, ебани того что не хватает / убери того что слишком много. графон же не код, в один прекрасный момент тебе не придется снести все к хуям, потому что где-то в начале говна наделал.>а)б)на удивление редко/мало затрагиваются.профайлер в помощь, хули. это и не должно затрагиваться.
>>443296Наверное, не продается. Все-таки геймплей можно сделать на говне и палках вместо фаерболов и мечей, что и привлекает людей, а графон надо еще кому-то рисовать. Алсо, не понимаю, почему с многими туторами идет ассет пак, причем подается он как для тупых. Видимо, красивой финальной сценой завлекают.
>>443296Наверняка на таких лекциях и туториалах воду льют, в стиле обзора самых последних модных графических технологий, PBR-шэйдеров и процедурных карт. На деле, для того чтобы сделать красивый ААА-графон нужно просто увеличить в 10 раз время на налаживание пайплайнов и само производство. Притом не только на модельки, но на сэтап и анимацию тоже, ведь не может быть дерганной анимации в ААА.В основном нужно не средства движка задрачивать, а средства 3д-моделирования. Учишь там Zbrush скульпт, запекание текстур, текстурирование в Substance Painter, ретопологию 3D Coat, риг и анимацию в Maya. Современные пайплайны, короче. Это на деле не так-то сложно, просто в 10 раз больше учить чем для васянского графона.
Сосоны где-то есть список 2д инди поделок, что бы я охуенно мог попиздить спрайтики?
>>443302о. творец добра пришел. расскажи чё сделал
К слову, раз уж заговорили про моделлинг, вот годные уроки по скульптингу и анимации перса на русском - может кому сгодится:https://www.youtube.com/channel/UCfTH1D7ajaVzzDERUY4GqHg/videos
>>443277Ебать ты долбоёб братишка.Паттерны используются для достижения гибкости в разработке. Если ты хардкодер ёбаный и у тебя один класс отвечает за несколько задач, то у меня для тебя плохие новости.Покажи парочку своих классов что ли, а то сложно судить, что у тебя там. Бывают случаи, когда люди и так пишут гибкий код, используя паттерны, только не знают, что они их используют.мимодругойанон
>>443267Посмотри на PlayMaker что ли.
>>443312можешь вон навмеш мой скачать, почитать, хули. >>442827 написан конечно местами так себе, но так что я не испытываю проблем с его доработкой и даже если грохнуть кусок кода у основания то остальной не рассыпется, что я недавно и делал. я его правда никуда на гитхаб не заливал чтобы просто так почитать.вообще я бы много чего мог показать, конечно. в моем проекте много интересных велосипедов. просто местами там дохуя понаписано и вряд-ли кто-то в своем уме будет это читать.придумали там паттерны, слова какие-то. я вот самоучка, меня паттернам никто не учил и сам я их не учил. пока пишешь код думая о том как он будет работать в будущем тон будет работать в будущем.
>>443283Ну да, с пунктуацией чуток проебался, пардон.>>443281>>443282Паттерны я использую сугубо потому что могу. То есть я ещё с универского курса их помню и как только становится какая-то цель — я сразу понимаю как её лучше реализовать.Сейчас вот, например, юзаю медиатор, с ним всё намного проще. Но опять же — в именно моём проекте.
>>443304Запощу сегодня новую демку. Переделал геймплей со швыряния предметов на швыряние + расстановку мин по путям перемещения девочек.Моя продуктивность упала в разы по сравнению с TWG. Хз, почему так, нравное пропадает вера в гейминдустрию в возможность поднять в ней бабла по крайней мере.>>443313Onsen Rumble на нем практически полностью собран. Не рекомендую. Вкатиться легко, а вот вносить правки в кучу параллельных FSM - сложно. Хуи отследишь, какая из них ответственна за баг. До сих пор разобраться не могу, почему у меня девочки по полу скользят после смерти. Еще не хватает полиморфизма, что заставляет иногда заниматься обезьяньей работой.
>>443320А что за тулс у тебя на скриншоте? Впервые такое вижу в Юнити хотя я еще слишком туп, чтобы ковырять какие-то ассеты и инструменты.
>>443325Это Playmaker.
>>443302>подразумевает что на его пике не васянский графон
>>443332> 65 американских долларовЗря спросил.
>>443334Говорят, можно купить на торрентах
Копал кто-нибудь постмортемы или аналитику по платным ассетам в сторе? А то я смотрю, даже у ебовых на тыщи человекочасов кода и смешной ценой в пределах сотки количество отзывов вообще ниочем - их вообще кто-нибудь покупает?
>>443335Тогда странно, что еще DRM не ввели.
Как мне с лейаутами совладать?Есть панель неопределённого размера с вертикальной лейаут группой и контент фиттером. В панель я динамически добавляю префаб из обжектпула, префабов может быть дохуя и больше. Мне нужно растянуть префабы по ширине на всю панель, но сохранить свою высоту, и при этом чтобы первый префаб оставался закреплённым в углу, а новые вырастали снизу. У меня же выходит так, что префабы уезжают куда-то за пределы панели, не растягиваются и вообще.
>>443349нихуя не понел, пости скрин
>>443350Я только панель пустую запостить могу. Строки (которые хуёво видны) находятся в контейнере-панельке. Высоту и ширину я сам могу исправить, это не проблема. Проблема в том, что они спавнятся в центре панели, а каждый последующий объект смещает первый объект вверх. Да, использовать один большой текст будет проще.
>>443353> Да, использовать один большой текст будет проще.да, используй один большой текст. этажи логи. делай как все.у меня давеча возникала твоя задача, но там был не текст, а кнопки. перепробовал перегуглил всё, пришлось скриптами назначать координаты.
>>443356>пришлось скриптами назначать координатыНу, я так и понял. Удивительно сделано. "Пивот" выражает собой центр главной панели, и когда прибавляется какой-то объект, ширина и высота объекта становятся шириной и высотой главной панели. А когда добавляется второй объект, то главная панель расширяется на оба объекта, и после этого смещается в пивот, забирая с собой оба объекта.
>>443361А, я сообразил.Нужно добавить Layout Element скрипт и анально задать минимальные размеры главной панели. Тогда волшебным образом всё центрируется в нужное место.
>>443333Я васян-графон как раз и демонстрировал. Только диффузные карты и unlit-шэйдеры, нет реальных теней.Но при желании мог бы делать ААА потратив в 10 раз больше времени, только вопрос в том, а нахуя? Надо чтобы в игру увлекательно играть было и смотрелось достаточно убедительно для ЦА.
>>443386> при желании мог бы делать ААА Ну то само собой. Хули там, берёшь и делаешь.
>>443386>Но при желании мог бы делать ААА потратив в 10 раз больше временихуя предьявочка
>>443398Ну а что, разве не так? Не в 10 раз больше времени, а в 100, но все же.Мимокрок
>>443399да нет, всё правильно, и не в 100 раз, а в 10, просто этого никогда не добиться используя фототекстуры и качая модельки.
>>443401>используя фототекстурыТак разве ААА не главные пользователи фототекстур? Ну ОК, они еще фотограмметрию юзают и сильно их обрабатывают и процедурные эффекты сверху кидают. В основе реалистичного графона всегда фото.>качая моделькиТут уж надо выбирать, или ты геймдевелопер или 3д-моделлер. Вот мне хочется в итоге увлекательную игру получить, а не реалистичную модель резиновой утки.
сделал простенький прототип где можно бегать, подбирать предметы, экипировать их. вроде попёрло, вроде понятно как делать дальше.вообще unet на самом то деле не плох. когда я в него полез то обнаружил что там дают возможность пользоваться сразу несколькими слоями того клея что скрепляет базовый функционал и они плохо между собой совмещаются. и документация местами пиздец.а так вроде норм.>>443318дааа вопрос то не в том что ты чем-то пользуешься. вопрос в ценности самих терминов.отдельно конечно можно поднять ценность следования паттернам, но тут мне нечего сказать.>>443320стало лучше, да. вообще ты на процесс разработки неправильно смотришь. надо делать то что в первую очередь желаешь увидеть сам, тогда это желание и начинает двигать процесс в первую очередь. я вот когда устаю делать свое говно, то я несколько дней дрочу в игры. и в один прекрасный день я смотрю на них и понимаю что пока я в них дрочу, проект лучше не становится. а так как в нем будет все что я ценю в играх то я понимаю что надо делать, там будет просто заебись! и делаю. недели на 2-3 хватает такой мотивации.хотя учитывая что ты с PlayMaker страдаешь то у тебя наверно в процессе разработки большая битва с самим собой. может лучше шарпом расскажешь глупой машине что ты от неё хочешь?>>443337йеп. покупают. только их почти никто не коментирует и не ставит оценки, даже несмотря на то что юнити предлагает это делать спустя несколько дней после того как скачал. хотя там конечно несколько иной рынок. это все-же рынок инструментов, а не кинца.>>443386кстати а чего не ебанешь немного графона? сделал бы хоть водичку получше. в этой игре много водички.
>>443412> ААА главные пользователи фототекстур> сильно их обрабатывают и процедурные эффекты сверху кидаюттолще, выше, сильнее!> Тут уж надо выбирать, или ты геймдевелопер или 3д-моделлертут уж надо выбирать, или ты геймдевелопер который может делать игры, или кирюха, таскающий ассеты и мнящий себя игроделом
>>443435Либо ты девелоперЛибо ты моделлерЛибо ты левел-дизайнер (тот самый таскатель мышкой)Пытаться делать все сразу = делать все хуево
>>443452либо ты неосилятор который не может уделить время и научиться делать всё хорошо.всё это говно про "делать все сразу = делать все хуево" только в твоей голове, но ты продолжай оправдываться.
>>443465к несчастью это не так. человек-оркестр не является специалистом.
>>443466поучился скриптить на двикжках года три, потом ещё пять повазюкал модельки, а левелдизайнить может вообще любой васян который в жизни играл в игры и представляет всё интуитивно. но на дваче сказали что после того как выберешь себе класс, в другой класс даблспеком нельзя.
>>443467три года на погромизм и пять на модельки, да? куда лучший результат будет если потратишь 8 лет либо на погромизм, либо на модельки. сможешь хоть что-то делать хорошо. если конечно не планируешь в одиночку тащить проект много лет. как будто в игры не играл, субклассы нужны только ради стартовых скиллов.
>>443421>надо делать то что в первую очередь желаешь увидеть самКакой идеалистический взгляд на геймдев. У тебя есть законченный и изданный проект своей игры мечты?Не, я больше вижу геймдев как борьбу с временем, которого всегда не хватает, жизненными обстоятельствами, ленью и контрпродуктивными пайплайнами (вроде моих неудач с Playmaker). Основной движитель в том, что если не выпустить свою игру даже весьма убогую за пару месяцев то все, кончатся деньги и придется завязывать с геймдевом.> может лучше шарпом расскажешьПростые проблемы намного быстрее отладить в Playmaker, а не пердолиться с консолью. Нужно умело совмещать, как мне кажется. Вот этот https://www.youtube.com/user/mdotstrange ютубер неплохо умеет разделять код с визуалом. >>443435Я не траллю, а правда так думаю. Полностью процедурные текстуру очень трудоемки. Проще в Substance Painter фототекстуру спроецировать и обмазать всякими ржавчинами/царапинами. >кирюха, таскающий ассеты и мнящий себя игроделомГолословная предъява. Кто-то там говорил, что я из MMD модельки ворую, однако они даже по пропорциям тела другие, не говоря уже про морфы и текстуры.То, что мне лень резиновую утку моделлить не считаю чем-то плохим.>>443467>>4434748 лет учебы чтобы опубликовать первую инди-игрушку в стим и получить $1000-$5000 c продаж? Найс.
>>443504>8 лет учебы чтобы опубликовать первую инди-игрушку в стим и получить $1000-$5000 c продаж? Найс.ну не все же ассетоворы. некоторые, например, делают свой контент для игры. дураки какие-то. особо глупые даже пытаются делать его качественно. зачем оно нужно, не понимаю. ведь можно хуяк-хуяк из готовенького.
>>443504> В основе реалистичного графона всегда фото.> Проще в Substance Painter фототекстуру спроецировать и обмазать всякими ржавчинами/царапинамибезусловно, проще. теперь найди на пиках фототекстуры.
>>443506Творцы качественного контента имеют чуть больше шанса получить $5000 с игры, чем $1000. Если доведут разработку до конца, разумеется. А вообще, покажи мне демку своей игры, которая на голову графонистее и оригинальнее моей.
>>443514> покажи своё))) ты докажи))))> не собираюсь тебе ничего показывать> ты слился))))) значит пиздить надо)))))ясн
>>443510Порезался об анчартед.
>>443519плойка же. диды за каждый полигон ваивали
>>443504>Какой идеалистический взгляд на геймдев. У тебя есть законченный и изданный проект своей игры мечты?ноуп. но я долгое время делал велосипеды на благо моей идеи и проникал в интересующие меня темы (навигация, ИИ, процедурная генерация). недавно наконец настало время устроить autobots assemble моим велосипедам. из-за того что моя идея слабо изменилась за это время и я думал над ней пару лет и у меня есть прототипы/решения основных фич которые я желаю реализовать. сейчас я вижу свой путь весьма прямым. >Основной движитель в том, что если не выпустить свою игру даже весьма убогую за пару месяцев то все, кончатся деньги и придется завязывать с геймдевом.хуёво тебе. у меня нет таких рамок с ограничениями и у меня куча свободного времени.>а не пердолиться с консолью. Нужно умело совмещать, как мне кажется.я в этом сильно сомневаюсь. нодовые редакторы слишком поверхностные, в нормальном коде больше средств отладки, в том числе визуальной, нет этой мешанины из лапши, половину времени в которой тратишь чтобы её распутать. я немного попользовался в UE, при небольших масштабах они работают просто отлично, но перестают быть адекватным решением при увеличении сложности проекта. очень плохо скейлятся.
>>443532кстати да, покажу клевое. когда думал над этим - целый вечер думал. о том как менять скейл карты высот. таких идей интересных придумал, ух!
Поясните за изменение цвета изображения родителя. Правильно ли я понимаю, что если детей с изображениями два или больше, то нужно цвета их изображений мануально менять? Или я что-то упустил?
>>443579То есть я хотел спросить, у них альфа-канал общий или что?
>>443590Как может быть общий альфаканал? Наркоман что ли? Может у них ещё и синий канал общий?
>>443596Вот и я не пойму. У меня есть панель с дитём-кнопкой. Меняю только панели цвет на прозрачный - кнопка тоже становится прозрачной. Как добавил ещё одну кнопку, так теперь она цвет с панелью не меняет.
Анон, помоги, есть переменная, которую нужно сохранить.Я сделал так playerprefs.setint("huy", penis);playerprefs.save();Но эту переменную мне нужно использовать в реальном времени. После ее изменения сразу же передать в другой скрипт. Если использовать playerprefs.getint, то смена переменной видна только перезапуска.Тоесть. Есть два типа пениса, по умолчанию выбран первый тип. Я меняю тип пениса на второй. Выбор сохраняется, но переменная пенистайп изменяется только после перезапуска, что логично. Что делать?
>>443651Вопрос снят, присвоил значение переменной в апдейте. Почему то весь день думал, что так не сработает
>>442177Двачую вопрос. Нихуя не могу сделать, пастебин мёртв.
Ох, блядь. Стоило оторваться от классов для NPC и повернуться к Unity передом, к остальному задом, как начались сомнения, что все написано более-менее по уму.Алсо, в Юнити реально делать open-world и подгружать чанки по мере необходимости? К единому NavMesh'у, смотрю, нельзя пришивать куски. Нормально ли держать довольно крупный запеченый NavMesh в памяти или зашквар?>>442177>>443653NavMesh. Внезапно работает в 2D.
>>443656>К единому NavMesh'у, смотрю, нельзя пришивать >куски.https://www.youtube.com/watch?v=n-RXnDGE72M&feature=youtu.be
Посоны, нужна помощь.2д.У меня есть две точки, А и Б, (два вектора2), мне нужно найти штук 15-20 точек между ними расскиданных равномерно. По какой формуле это делать?
>>443669lerp(a,b, i/20)
>>443669Пиздец, когда же вы научитесь вопросы формулировать?> штук 15-20Так 15 или 20?> мне нужно найтиЧто значит найти? С лупой будешь их искать что ли? Может быть не найти, а определить координаты?
>>443670Точняк. Затупил чет.БЛАГАДАРОЧКА~
>>443671поддерживаю
>>443671Ты полностью прав.Просто я на попехах. Извиняюсь. В следующий раз (если он будет) сформулирую вопрос лучше.
>>443666Осталось только обновить документацию.
>>443675>Просто я на попехах.
>>443681ssaniy ruski yazik
>>443675>я на попехахВначале подумал, что у тебя секс.
>>443656>NavMesh. Внезапно работает в 2D.Там надо что-то докачивать для этого?
Как предложите вывести в инспекторе List<List<int>>?Работать с кастомным EditorWindow также как с игровым окном? Мне просто надо кучу прямоугольников вывести как содержимое массива.
>>443861//Serializeablepublic struct Rectangle{Vector3 ...}public class Yoba{//SerializeFieldList<Rectangle> rects = new List<Rectangle>();}квадратные скобки вроде как здесь проебываются, заменил на "/"
Здравствуйте. Юнити2Д. Есть 40 точек выстроенных в линию. Из каждой точки мне нужно кастовать рей. Как мне сделать так, чтобы реи кастовались перпендикулярно линии вне зависимости от того в какой позиции и под каким углом находится линия?Никак не могу разобраться.
>>443969Линяя прямая? Точки загнаны в массив? Рейкаст должен светить в одну сторону или в обе? Если в одну, то в какую?
>>443970Линия прямая. Точки в аррее. Я не очень понимаю что значит в какую сторону, ну типа это же относительно. Ну допустим влево, если линия А Б перпендикулярна "земле", точкой А вверх.
>>443971> Я не очень понимаю что значит в какую сторонуНу у точки, лежащей на линии есть два варианта луча, который будет перпендикулярен этой самой линии.
>>443972Ну я понимаю. Я просто не знаю как описать эту сторону. Попытался описать как мог сообщением выше.
>>443971Линия статична или в процессе игры может менять своё направление?
>>443974В этом то и суть. Линия привязана к объекту и крутится вокруг него. Как будто объект держит селфи палку и передвигается и крутится с ней. И линия в данном случае айфон на селфи палке, который должен кастовать из себя лучи перпендикулярные себе же в сторону объекта.
>>443975Так что ли?
>>443976Или так понятнее.
>>443975Помогу разобраться с твоей хуйней за 500р, в дальнейшем тоже сможешь обрашаться. Если интересует, оставляй контакты.
>>443976да, вот так.
>>443982Упорядочиваешь все точки на линии, чтобы их rotation был одинаковый. Заранее ручками или в коде (я сделал в коде). И отбрасываешь луч на 90 градусов, но локально, а не глобально. Потом все эти точки прячешь под пустой геймобджект "палка" (хотя скорее всего так оно у тебя и есть) и всё, как ты эту палку не крути, в локальных координатах у точек ничего не изменится и они всегда будут светить куда надо.
>>443983Спасибо. Правда, я надеялся без пустых геймобджектов обойтись, но так тоже сойдет. Спасибо.
>>443985> я надеялся без пустых геймобджектов обойтись40 одинаковых точек в корневом уровне иерархии держишь что ли? Зачем, если можно их свернуть под пустой объект?Что ж вы за любители засирать иерархию? Потом же глаза сломаете.
>>443988А что конкретно ты имеешь ввиду?Типа создать 40 пустых гейомбджектов, приделать к ним рейкаст, и всех эти 40 геймобджектов сделать чайлдами еще одного геймобджекта? Ну я очень неопытный в этом всем, но мне казалось что всякое такое делать это типа НЕХОРОШО и неаккуратно. Я делаю все такие вещи через уровнения. И все не так сложно, все эти 40 точек и рейкастов определяются лупов из пары строчек.
>>442120 (OP)Пропиертарное говно не нужно.
>>442175Это не канон.
>>442176>постоянно хуячат фидбектак говоришь, как будто только у говнюнити есть фидбек.
Подскажите годные платные курсы по юнити в интернетах, чтобы давали в конце сертификат.
Ребят, есть ли какой-то толк чтобы в FixedUpdate домножать значения на Time.deltaTime?
>>444008> Типа создать 40 пустых гейомбджектов, приделать к ним рейкаст, и всех эти 40 геймобджектов сделать чайлдами еще одного геймобджекта? Нет. Твои 40 геймобджектов, которые составляют прямую, спрятать под один обджект "прямая". Большего тут не требуется.
>>444048Да
>>444047Сертификаты по курсам в интернете — это бумажка для вытирания жопы. Она стоит ровно нихуя.Хочешь бумажку, которую можно приложить к резюме — иди на курсы ИРЛ.
>>444048еще бы, даумножай на Time.fixedDeltaTime
>>444065Так в чём будет различия Time.fixedDeltaTime от Time.fixedTime? И ещё вопрос, что использовать в корутинах?
>>444066В том кто из твоих родителей будет шлюхой.
>>444066> Time.fixedDeltaTimeВремя итерации для физики. deltaTime — это время, за которое прошел один кадр. Первое статично, второе зависит от железа, выполняемых процессов, хуе-мое.> Time.fixedTimeЭто вообще сколько времени прошло с начала запуска приложения.> что использовать в корутинах?WaitForSeconds(); ? Что тебе еще нужно?
>>444066Пиздец, ну у вас и вопросы.> в чём будет различия Time.fixedDeltaTime от Time.fixedTime?Если ты в гугле забанен, то открой справку хотя бы.> что использовать в корутинах?Как разбанят в гугле — почитай для чего они вообще нужны. Вопрос сразу отпадёт.
>>444065Time.fixedDeltaTimeOther Versionspublic static float fixedDeltaTime;DescriptionThe interval in seconds at which physics and other fixed frame rate updates (like MonoBehaviour's FixedUpdate) are performed.For reading the delta time it is recommended to use Time.deltaTime instead because it automatically returns the right delta time if you are inside a FixedUpdate function or Update function.Note that the fixedDeltaTime interval is with respect to the in-game time affected by timeScale.
Можно ли как-то вручную задавать navmesh? Например, кисточкой рисовать, как текстурками по террейну.А то нужно чтоб навигация была только в определённом месте на плоскости, а запекается вся плоскость.Можно, конечно, все ненужные места обложить статичными объектами, потом запечь карту и убрать объекты, но это ж шестиколёсный велосипед.
>>444095https://docs.unity3d.com/Manual/class-NavMesh-ModifierVolume.htmlможно например этим делать то что ты хочешь. но рисовать до сих пор не дают.
>>444098О, спасибо. Кажись то что надо.
>>444098> GameObject > AI Что-то тут не так.
>>444100https://github.com/Unity-Technologies/NavMeshComponents на, качай. официальная хуйня которую по неизвестной причине так и не сунули до сих пор. как и много других интересных вещей.
>>444102> которую по неизвестной причине так и не сунули до сих порНаркоманы блять.Спасибо.
>>444098Нифига не понял как этим говном пользоваться. Может надо просто поспать.Вот я поставил этот куб на walkable поверхность, ставлю самому кубу что он not walkable, перезапекаю, и нихуя не меняется.
Это я, долбоёб с консольюНеожиданно выросла ещё одна проблема. У меня есть вертикальный лейаут, в который я динамически добавляю объекты определённой высоты. Родитель лейаута содержит скроллрект и дитя скроллбар (чтобы прокрутка работала). Всё это работает так-то, но есть одна проблема - в тот самый момент, когда добавляется 9ый элемент, он "съедается" и не показывается вовсе, хотя он существует и является элементом этого вертикального лейаута. Потом я догадался отключить маску и нашёл этот элемент за пределами поля, т.е. лейаут сам по себе съехал на какую-то величину вниз, когда ему пришлось расшириться.С хуя бы он это сделал и как это исправить?
>>442120 (OP)Уточню. Кому-нибудь еще ключ DevX Upacker'a еще нужен? Почти доломал его.
>>444134Прогу ломаешь? Вкидывай сюда, спасибо скажем
>>444134Даже если не захочешь делиться, выложи скринов что получилось с какой-нибудь настоящей игры.
Анон, почему не получается привязывать дополнительные 3д-объекты со skinned mesh renderer к старому персонажу? Я сохраняю новую модель вместе с костями, кости абсолютно идентичны старой модели. Встраиваю новую модель в старую иерархию, выставляю RootBone ссылку на старую кость.
>>444239Собственно, что сломалось то? аватар не забыл поменять?
>>444119У меня такое чувство сложилось, что либо я дурак неправильно вопросы задаю, либо здесь в треде никто панельки не ковыряет и с моими проблемами не сталкивается. Инпутфилдами, значит, все довольны, кнопками все довольно, панелями довольны - что вы там вообще кодите, что вас это говно не смущает совершенно?
>>444251у меня искреннее непонимание твоей проблемы. ты сказал "хочу хуйню в которую можно сунуть больше чем оно само", а потом жалуешься на то что элементы интерфейса сьезжают? разве это не то что должно было произойти? ты может схему нарисуешь че ты вообще получить то хочешь?я лично пишу код базовых механик. чтобы дамаг между персонажами синхронизировался, чтобы был менеджер патрон который бы за ними следил, чтобы ИИ пользоваться инвентарем мог, чтобы командовать можно было. чего с UI то возится когда игры нет?
>>444256>"хочу хуйню в которую можно сунуть больше чем оно само"Вертикальный лейаут динамически увеличивается в размере, если в него вставляется новый элемент. Можешь попробовать в редакторе добавить новый элемент несколько раз. Самое забавное же то, что после одного единственного съезжания лейаут затем нормально расширяется, без прыжков. То бишь так, как надо. Вот мне и непонятно, откуда взялся этот прыжок, если дальше всё норм идёт. >чего с UI то возится когда игры нет?Потому что УИ отражает на себе все базовые механики, и если поочерёдно делать УИ то всё равно над механиками работаешь. Вот сейчас, например, я закончил консоль (почти), а теперь делаю разные скрипты для генерации сцены, призыва юнитов и т.п. К тому же без УИ жизни нет, УИ имеет тот же вес для геймплея, что и вся совокупность механик.
Ребята, я уже не человек нахуй.Уже два часа сижу на ровном месте и просто охуеваю.Суть проста: есть "пушка", которая с помощью Physics.OverlapSphere получает массив коллайдеров, которые находятся от неё на определённом расстоянии. Из всех этих коллайдеров она должна найти ближайший.Вот, собственно, сам код и как это работает на примере 1-го видеорилейтеда:public Collider[] targets; // все коллайдеры вблизи пушкиpublic Transform curTarget; // трансформ объекта, который будет ближайшимpublic float distance = 2f; // радиус обнаружения коллайдеровvoid Update () {targets = Physics.OverlapSphere (transform.position, distance, 1 << LayerMask.NameToLayer ("Enemies")); // загоняем в массив все коллайдеры поблизости из нужного слояfloat minDist = distance; // ближайшее расстояниеforeach (Collider target in targets) { // начинаем перебирать элементы массиваRaycastHit hit; // готовим хитRay ray = new Ray (transform.position, target.transform.position - transform.position); // готовим лучif (Physics.Raycast (ray, out hit) && hit.distance < minDist) { // кидаем рейкаст, смотрим ближе ли объект нашего радиуса обнаруженияcurTarget = target.transform; // если да, то этот объект назначаем ближнимminDist = hit.distance; // дистанцию до объекта назначаем минимальной, чтоб если следующий объект окажется ближе - это отловить}}Debug.DrawLine (transform.position, curTarget.position); рисуем в дебаге лучи до ближайшего объекта}Как видите на 1-ом видео, всё нормально. Светит куда надо.А вот теперь начинается магия, в рот её ебать.После последней строчки я добавляю всего одну. Теперь это выглядит так:Debug.DrawLine (transform.position, curTarget.position); // эта строчка уже былаtransform.LookAt (curTarget.position); // смотрим на ближайшую цельТо есть добавилось всего то, что "морда" пушки будет смотреть на ближайший объект. И, нахуй блять, смотрите какая анальная клоунада начинается на втором видео.Почему так? Я уже все волосы на голове вырвал, я нихуя не понимаю почему это происходит.Если что, в инспекторе в обоих случаях видно что обе капсулы в массиве, то есть во втором случае он тоже ловит обе.
>>444250Не могу добавить новый skinned mesh объект к костям своего персонажа.Не, аватар не трогал, я ведь никак не вмешиваюсь в структуру костей. Кости не добавляю, только сетку.Не понимаю логики Меканима, ведь в любом 3д-редакторе можно легко сделать привязку к существующему персонажу новых объектов, можно даже перенести веса со старых. А тут уперся в такую элементарную фигню.Можно, конечно, сохранить fbx с новым персонажем и импортировать его с нуля, а потом копировать на него все коллайдеры, системы частиц и прочее, но это путь какого-то мазахиста.
>>444260Заменил> transform.LookAt (curTarget.position);на> transform.LookAt (new Vector3 (Random.Range (0, 360), Random.Range (0, 360), Random.Range (0, 360)));чтобы его пидарасило по полной и исключить возможность того, что проблема именно из-за движения "башни".Результат на видео.Короче, юнька меня затралила, у меня уже пена изо рта идёт.
>>444260>public float distance = 2f; // радиус обнаружения коллайдеровfloat minDist = distance; // ближайшее расстояниеА с этим никаких проблем не будет?
>>444268> А с этим никаких проблем не будет?Нет, здесь всё нормально. Сначала задаю минимальным расстоянием максимально возможное, чтобы с ним сравнивать.На первом и третьем видео с этим всё нормально, как видишь. Проблема начинается только когда прописываешь> transform.LookAt (curTarget.position);
>>444260ты 2 часа не можешь задампать в консоль все свои переменные?
>>444269Выведи в дебаглог переменные-то. А ещё у тебя lookat в теории может ссылаться на нуль.
>>444266Суукаааа. Я смотрю на это и ахуеваю. Сам ньюфаг, только вкатился. Уже думаю идти в анриал. Юнити часто таким образом троит?
>>444271>>444270> А ещё у тебя lookat в теории может ссылаться на нульЛол, как раз таки если его заставить смотреть на v3.zero, то всё нормально. Как и на любой другой v3, отличный от координаты капсулы.Там полторы переменные, на что там смотреть?В любом случае держите. Как видите, расстояние до правой меньше, но светит всё равно в левую
>>444274А если позицию curTarget'а перевести в новый вектор и скормить его LookAt'у?
>>444275Пробовал, та же херня. И целиком переводил и по координатам.
>>444275>>444277Тааак. Перебил ручками позицию curTarget по y из -0,2 в просто 0,2 и оно работает.Кажется он не жрёт отрицательные координаты.Теперь ищем почему.
>>444278Ты точно новый вектор делал? Ну, чтобы new и всё такое?
>>444279transform.LookAt (new Vector3(23.1f, -0.2f,30.9f));Это координаты капсулы, как ты видишь в дебаге. И так он светит через жопу.Ставлюtransform.LookAt (new Vector3(23.1f, 0.2f,30.9f));То есть по y минуса уже нет. И светит оно как надо.
>>444281Так, новый факт.Если по Y поставить -0.1, а не -0.2 (как в координатах капсулы и есть), то светит как надо. Возвращаю 0.2 - глючит.Буду шагами перебирать переломное значение.
>>444282Итого.Сама позиция капсулы по Y -0.2Распознавание перестаёт глючить в диапазоне от -0.3265 до -0.1236. То есть между этими числами — мёртвая зона.Как и почему это работает — понять не могу. Как это чинить — тоже. Разве что костылями.
>>444284От update'а быть не может? Фреймов в секунду стабильно?
>>444286> Фреймов в секунду стабильно?Вполне.> От update'а быть не может?При других высотах капсул работает же.Вот, смотри на этот цирк.
Короче, в пизду.Будет у меня не пушка, а какая-нибудь вышка, которой не нужно будет вертеть "головой".Я до сих пор нихуя не понимаю почему это происходит, но одно знаю точно — без LookAt всё работает как надо.
>>444288У меня тоже такая непонятная херь есть - рейкастер упорно видит одну особенную кнопку на другом конце экрана, хотя она находится на этом, и её можно нажимать там. Причём эта баженная область начинается ближе к центру и становится шире к краю экрана, т.е. как будто сектор на радаре. Я не знаю, как работают апдейты и рейкасты, но если область такая ровная, то, наверное, во время выполнения рейкаста в апдейте что-то отсекается случайно. Что-то вроде этого?http://answers.unity3d.com/questions/1141633/why-does-fixedupdate-work-when-update-doesnt.html
>>444287>>444288Обновился до бэтки и всё заработало.Ох уж эта юнька.
>>444259нет, я по прежнему не вижу что ты имеешь в виду. у лэйаут групп есть разве что эта нелепая проблема с тем что в редакторе к первому добавившемуся элементу не применяется лэйаут, но эта проблема только в редакторе.>>444264помоему рут бон в редакторе это рид онли, его изменение ничего не делает. вроде если имена костей и иерархия те-же то должно работать, но может настройки импорта какие особенные должны быть. я бы с радостью помог но я никогда особо не пердолился с тем чем ты. разве что один раз все перестало работать после того как переименовал кость.но кстати да, посмотри ка на всякий случай в старте веса костей. void Start () { SkinnedMeshRenderer meshRenderer = GetComponent<SkinnedMeshRenderer>(); Mesh mesh = meshRenderer.sharedMesh; Transform[] bones = meshRenderer.bones; BoneWeight[] weights = mesh.boneWeights; Vector3[] verts = mesh.vertices; Vector3 tPos = transform.position; for (int i = 0; i < weights.Length; i++) { BoneWeight w = weights; Vector3 pos = verts + tPos; Debug.DrawLine(pos, bones[w.boneIndex0].position, new Color(1, 0, 0, w.weight0), 100f); Debug.DrawLine(pos, bones[w.boneIndex1].position, new Color(0, 1, 0, w.weight1), 100f); Debug.DrawLine(pos, bones[w.boneIndex2].position, new Color(0, 0, 1, w.weight2), 100f); Debug.DrawLine(pos, bones[w.boneIndex3].position, new Color(1, 1, 1, w.weight3), 100f); } }>Потому что УИ отражает на себе все базовые механики, и если поочерёдно делать УИ то всё равно над механиками работаешь. ноуп. не работаешь. у тебя есть свой собственный интерфейс разработчика уже, игровой интерфейс тебе нахуй не нужен чтобы продолжать работать над проектом.>>444260для начала обнуляй curTarget в начале цыкла.вообще нахуй ты рэйкаст делаешь для нахождения ближайшего то?>>444273что у тебя там троит, наркоман?
>>444303не того процитировал не там. ну в общем и так все понятно.
>>444303> для начала обнуляй curTarget в начале цыклаОбнулял, нихуя.> нахуй ты рэйкаст делаешь для нахождения ближайшего то?Потому что мне нужна ближайшая цель, которую видно, а не которая за камнем стоит.В любом случае, при обновлении до бэтки всё заработало.
>>444305у меня не бета, у меня 17.1.0f3. дай посмотреть на сломанное. мне интересно что у тебя там не так было.>Потому что мне нужна ближайшая цель, которую видно, а не которая за камнем стоит.а нахуй ты всех то рэйкастишь тогда? отсортируй по квадратной дистанции и потом уже рэйкасть начиная с ближайшего.
>>444306> дай посмотреть на сломанноеКод есть, видео тоже. Смотри дальше по треду.> а нахуй ты всех то рэйкастишь тогда?Чтобы определить ближайшего видимого же.> отсортируй по квадратной дистанции и потом уже рэйкасть начиная с ближайшегоЗачем, если и так работает теперь?
>>444307>Код есть, видео тоже.и что, предлагаешь сидеть и делать все примерно как там у тебя? чтобы в итоге увидеть что у меня все работает, а у тебя нет потому что у тебя там коллайдер где-то в который луч утыкался. код прочитал, видео посмотрел, хуй знает что там у тебя.>Чтобы определить ближайшего видимого же.смари, я тебя сейчас трюку научу. то что ты делаешь делать будешь часто. можно написать так: static IOrderedEnumerable<T> OrderByDistance<T>(T[] array, Vector3 point) where T : Component { return array.OrderBy(x => (x.transform.position - point).sqrMagnitude); }и получать уже сразу отсортированные по дистанции элементы.и писать уже не эту ебурду с дистанцией, а сразуforeach (var item in OrderByDistance(Physics.OverlapSphere(transform.position, 2f), transform.position)) {//проверка видимости}можно ценой генерации мусора немножко сделать твое говно читабельней.>Зачем, если и так работает теперь?чтобы знать чё как и почему и узнать что-то новое как всегда.
>>444308> коллайдер где-то в который луч утыкалсяБез lookat почему-то не утыкался, а с lookat утыкался. Причём при lookat только в районе объекта, при рандомнои направлении всё нормально было.> я тебя сейчас трюку научуБлагодарю, буду дома — потестю.
>>444309дык, может, у тебя там коллайдер ориентированный по направлению обьекта. луч натыкался на небольшое слепое пятно, или ещё чего в этом духе. надо же проверять куда там все это тычется и все значения которые имеешь. хуй же знает что у тебя там в сцене, то что ты там в сцену сунул это как контекст в беседе.
>>444310> луч натыкался на небольшое слепое пятноНу в любом случае в бэтке не натыкается.
>>444303Троит не у меня, а у анона с башенкой. У меня не юнити троит, а я трою
>>444303>помоему рут бон в редакторе это рид онли, его изменение ничего не делает.Печально, если так. Не понимаю, как тогда редактор определяет привязку к костям. Берет skinned mesh, извлекает из него имена костей и ищет те же кости в иерархии? Не, у меня так не работает и никакие кости не находятся. Вообще нет деформации меша при анимации костей.За код спасибо, попробую.
>>444336вроде как да, имена костей в иерархии относительно компонента с аниматором. но тут я совсем не уверен и могу говорить хуйни.>>444318мне кажется у тебя что угодно троит>>444311по моему это говорит о том что там что-то не работает, или произошло то что ты не заметил.
>>444338> по моему это говорит о том что там что-то не работает, или произошло то что ты не заметилВозможно. Хотя у меня один раз была одна херня, которая была точно глюком самой юньки. Как раз таки на бэтке, только на старой.Элемент UI не отображался ни в сцене ни в игре. Контур есть, в инспекторе всё норм, а его не видно. Перезапускаешь юньку - всё нормально. До второго запуска.Плюнул, окатился до стабильной версии - всё нормально.Вечером, наверное, опять до стабильной версии откачусь, посмотрю остался ли тот глюк со сферами. Если да - скину, поиграешься, если хочешь.
2ch, получается что все объекты классов в unity уже созданы? Т.е. такие классы как input, debug и т.д.
>>444367лол а что по твоему в движки ложат то?
>>4443672ch, получается что все инструменты в набор инструментов уже вложены? Т.е. такие инструменты как шуруповёрт, перфоратор и т.д.
>>444368А ты не особо умный я смотрю, движков сотни и все они имеют разную архитектуру. Попробуй переформулировать свой вопрос на мой вопрос.
>>444367Ты тупой.
>>444367c# language reference -> static keyword
Анон, начал читать Unity in action и там говорят добавить фаерболу Rigidbody путем добавления компонента в инспекторе, но там его нет. Как быть? Начал гуглить, а там ответы вроде "Он тебе и не нужен", но он нужен мне, без него не робит.
>>444520Блядь, вот всегда так, тыкался час, гуглил и как только написал куда-то вопрос - сразу нашел блядь. Через поиск в add component не находило physics, а так он в списке есть, ахуенно.
Двач, я видимо даун-аутист, но я не могу сделать такую элементарную вещь, как анимированный прогресс бар.То есть, я слайдером тяну маску, все заебись, но как мне зациклить блядский спрайт? С текстурами обычно просто ебашил тайлинг и плюсовал оффсет, но со спрайтами такую хуйню не получается провернуть. И что самое стремное - гугол практически молчит. Спасай анон, чувствую себя умственно неполноценным.
Сап. Есть два объекта с circle collider 2d. Большой и маленький, один над другим(пирог). На большом висит OnMouseExit() вырубающий всю ветку элементов. На маленьком висит OnMouseEnter() включающий дополнительную ветку элементов. Каким способом можно сделать оба одновременно активными? Ебля с осью Z (2д же) приводит к двум результатам: маленький коллайдер над большим и на нём срабатывает OnMouseExit() большого, или маленький коллайдер под большим и соответственно вообще не работает. В идеале нужен первый вариант только без срабатывания OnMouseExit() большого коллайдера.По сути это меню с выпадающими окнами. Из-за нестандартной планировки (не списком) приходится велосипедить
>>444551Пока что изъебнулся с quad-ом, натянув на него текстуру, но это реально говно какое-то, пришлось все дергать по z, разъебывая весь ui.Надеюсь на знающих анонов.
>>444558у текстуры выстави full rect и укажи края в редакторе спрайта. потом в элементе интерфейса с прогресс баром добавь компонент sprite и выбери там tiled, всё
>>444560Я видимо чего-то не понимаю, но в спрайт рендере нет tiled, а если ставить в компоненте image, то там нет никаких параметров скейла и оффсета
>>444562
>>444562так, я понял, ты в спрайте не настроил границы
>>444566>>444565Все, разобрался, draw mode завезли только в 5.6, вот я его и не видел.Жаль, что не получается сделать через ui, но спасибо анон, всяко лучше, чем натягивать текстуру на quad.
Такой вот вопрос, может быть не по теме немного, но все же. Делаю я модель для юнити. И хочу сделать одну текстуру для него. Например, дом. Какой оптимальный размер текстур для юнити? Делаю обычно 4096х4096 Какой формат лучше подходит? Юзаю png
>>444508Один умный на трёх даунов, уже не плохо для двача.
>>444554Попробуй использовать различные слои и проверять рейкаст по слоям. Либо, если тебе достоверно известна форма меню (круг), то ты можешь посчитать отдельно для каждого элемента входит в него курсор мыши или нет.
>>444569> Какой оптимальный размер текстур для юнити?чет ты da. у каждой модельки свой размер текстур, и зависит он от пространства и времени, занимаемым моделькой на екране в процессе игры.> Какой формат лучше подходит? максимум da. любой формат. юнети всё переконвертит за тебя, исходники из папочки ассетс в релиз не попадают
>>444569> Какой оптимальный размер текстур для юнити?Какой нужен. Хочешь чтоб было оптимально - ебошь размеры в степени двойки. Остальное похуй. Хотя и это по большому счёту похуй
>>444569Ты ведь книгу из шапки даже не открывал, да, ленивый уёбок?
>>444619ты ведь юнети даже не открывал, да, ленивый уёбок?
>>444644А что, надо было?
>>444585Спасибо. Во сне пришла мысль - вообще не делать пересекающиеся коллайдеры. Так и сделал.
Как скачать новый навмеш в юнити?
>>444684Берёшь и без задней мысли скачиваешь.
>>444689Ну у меня комплексов много, чтобы так сделать. Мне бы знаешь, вот всё продумать, везде почитать, посмотреть там видосы, а так просто я не могу, ну стесняюсь шоле хз.
>>444619Спасибо. Нет, не открывал. Даже не видел. Выходит правильно делал, что пнг использовал. А то что он и псд съест, для меня приятная новость.
>>444694Ну вот, я тебя ленивым уёбком обозвал, а ты мне спасибо говоришь.Даже как-то стыдно что ли.
>>444617Я о том, что если я сделаю размер, например 16000х16000, все будет нормально? Или лучше не делать подобных вещей?
>>444696Да то что я ленивый это правда. А то что уебок, ну так это же двач, ты ещё относительно ничего обидного не сказал. Да и вообще по жизни стараюсь не обижаться на субъективное мнение других. Вот видишь, я тебя в ответ не обосрал, а поблагодарил за ответ, тебе и стыдно стало) ты меня лично не знаешь так что уебок я или нет, знать не можешь
>>444697> 16000х16000Лучше всё таки добавь/убавь до степени двойки. А то NPOT это не есть хорошо.
>>444700Хорошо. Я наверное не правильно выразился, так что лучше узнаю путем тыка. Спасибо) Про кратность двойки знаю, я имел в виду очень большой вес такой текстуры...
>>444697Максимальный размер текстуры в юнити ограничен 8192х8192, формат не имеет значения так как при импорте картинка конвертируется.
>>444703> так что лучше узнаю путем тыкаЯ тебе помогу.
>>444704>>444707Хм, спасибо большое. Как я сам не нашел, странно
>>442120 (OP)Как в юнити повернуть отдельный компонент?Мне конкретно надо повернуть NavMeshAgent по оси X на 90 градусов и по оси Z на 90, не поворачивая при этом 2D спрайт, вот.
Какого хуя каждый раз при перезапуске unity, половина скриптов теряет ссылки?
>>444741Отклеилось
>>444741Назначь их в редакторе и не будут теряться. Они у тебя инициализируются при запуске, все что произошло после запуска в редакторе не сохраняется.
>>444743Чего у тебя теряется, наркоман, ты в Awake ссылки получаешь при запуске скрипта. Можешь их private сделать чтобы в диспетчере не маячили.
>>444745Естественно я заскринил после того как нажал play.>>444744>Назначь их в редакторе и не будут терятьсяУгу, так и сделал.>Они у тебя инициализируются при запуске, все что произошло после запуска в редакторе не сохраняетсяЭто не объясняет почему они терялись. Хотя уже и не важно.
>>444747>Это не объясняет почему они терялисьТы искал по тегу. Тег меняется там где на MainButton в выпадающем меню выбрано untagged. Если такого тега нет то функция возвращает null, то бишь обнуляет твою переменную. Искать по названию объекта надо через GameObject.Find("...")
>>444748Естественно все теги я развесил. Искал по тегу потому, что GameObject.Find("...") тяжелее. Скорее всего дело было в том, что нельзя получить ссылку на объект если он .SetActive(false).
>>444743Бля, надо будет монодевелоп тоже в тёмный перекрасить. А то бывает глаза болят.
>>444704> формат не имеет значенияЕсли есть альфа канал, то имеет. А так да, один хуй будет DDS.
Ашот памаги :(
>>444758>> windows 8.1>> Substance painter>> Substance designer >> Notepad ++>> Unity 3d>> aimp>> Tor (vidalia bridge)>> Photoshop CC 2014 (так как 15cc ну устанавливается)>> 3ds max 2012 >> google browser- Эталонный говноед. Иди выпелись сука ебучая, пидр блять, сука блять, ёбаана блять.
>>444758Low - Poly Как раз для долгостроя.Делаю симулятор совковой борщеварки.
>>444760блэд, снова мудак. Быстро фикс
>>444758Ты б ещё в автокаде рисовал.
>>444759> google > browserТут что-то лишнее.
>>444755ДДС? Помню в сталкере ещё текстуры были в ддс
>>444764В автокаде рисовал, экспортнул в 3ds
>>>>444770Надо же как тебе повезло.
>>444569Нормальное разрешение сейчас 1024x1024/2048x2048Если ты делаешь дом атласом, то ты - долбаёб.
>>444778Как лучше текстурить дома? Нуфаг же
>>444569>> Какой формат лучше подходит?>> Юзаю pngЮзай дальше, тут нет что - то плохого. Сам его юзаю.
>>444779Окна - отдельно.Кирпичи - отдельно.Двери - отдельно. Если у тебя к примеру 4 двери - делай их атлосам.Окна около 4 штук - тоже атлас.Пример:
>>444765Ты!
>>444785Вот чёрт!
>>444783> атлосам
>>444787Знаю, я -мудак :(
Давно так не семёнили тут.
>>444783Спасибо за совет, попробую переучиться
Анон, выручай, есть:_rigidbody.MovePosition(_rigidbody.position + _movement * Time.deltaTime);Почему MovePosition игнорирует задание направления мышью. Как задать направление?
>>444869Скажи честно, вы все из одной пробирки? Или вы все ходили на один и тот же курс по хуёвой постановке вопроса?Где, блять, в твоём коде хоть намёк на направление мыши? Знаешь ли, хрустальный шар давно уже сломался от таких вопросов, так что давай конкретизируй.
>>444870В общем есть скрипт - моуселук, в котором берется трансформ капсулы и присваивается ротейшон.Есть второй скрипт - мувмент, привязанный к капсуле. В котором:_movement.Set(Horizontal, 0, Vertical);transform.Translate(_movement);Так все работает, как надо. Но если вмесно transform.Translate использовать rigidbody.MovePosition, то направление уже не задается. И вопрос в том, как задать направление для rigidbody.
>>444870>>444874https://www.youtube.com/watch?v=eToUMPUkZ4Qвспомнил и прослезился
>>444874https://docs.unity3d.com/ScriptReference/Transform.Translate.htmlhttps://docs.unity3d.com/ScriptReference/Rigidbody.MovePosition.htmlи самое главное:https://www.google.ru
>>444807И да, если ты собираешься делать здания более детализированным, то делай отдельными частями. Ну там... Рама от окон - отдельно. Забор - отдельно. Старайся что бы в одном mesh -е было не больше 15.000 Tris (Треугольников) И названия материалов тоже давай правильное.Кстати, если ты собираешься делать для UE (Unerial Egine) то коллизию тоже сделай. Всё вместе экспортни. Пример:
>>444874Таки нашел в чем дело. Нужно добавить transform.TransformDirection>>444902Ты совсем мудак?
>>444912Вау, это реально красиво. Про текстуры понял, буду пробовать. Пока что я только осваиваю юнити, она коллайдер ставит. На анреал позже может перейду, посмотрим
>>442120 (OP)Сап, а в unity можно где-то найти исходный код NavMeshAgent?
>>444927Ах да. Пробуй ещё текстурировать/рисовать текстуры в substance painter/designerСейчас все перешли на pbr material.Но ты должен не плохую развертку тогда мастерить. Без mix вообщем.
>>444912> Unerial EginePonyatno
>>444940Про наследование не слышал? Бери и ковыряй.
Сап, аноны. Я тут пытаюсь сам сделать передвижение персонажа на си шарпе, вот что язапихнул в Update:float x = Input.GetAxis ("Horizontal"); float xPos = x moveSpeed; float z = Input.GetAxis ("Vertical"); float zPos = z moveSpeed; float y = Input.GetAxis ("Jump"); float yPos = y; obj.transform.position = new Vector3 (xPos, yPos, zPos); И столкнулся с проблемой, заключаювшейся в том, что зона передвижения ограничена(квадрат от 10 до - 10).Хелп ми.
>>445012> transform.position = new Vector3Поехал что ли?
>>445013абъясни, я пытаюсь катиться в юнити и многого не знаю
>>444998Я не шарю, можешь разъяснить, пожалуйста? Я думал, все эти скрипты в опен доступе.
>>445015Катись на https://unity3d.com/ru/learn и делай туториалы.
>>445012>float y = Input.GetAxis ("Jump");>float yP = y;>float yPos = yP;>float yPosition = yPos;>float yObjectPosition = yPosition;transform.position не является функцией. Читай документацию внимательно https://docs.unity3d.com/ScriptReference/Transform.html
>>445053Тебе объяснить сложно?Нужно transform.position += или что писать?
>>445105>transform.position не является>Нужно transform.positionНе нужно setpositionandrotation, только кватернион вручную не пытайся задавать
>>444940Вбей в поиске в монодевелопе.
>>445107Тогда зачем transform.position можно задавать напрямую? >>445012Разве ты не определяешь положение по текущему значению осей? Ось же ограничена 10 и -10, нет?
>>445110Я обосрался. Не обращай внимания.
Сап, двощ, помоги. Надо поставить перед игроком выбор уровня. Допустим, ему показывают три варианта 1 - простой сложности, 2- средней, 3- сложной. У каждого уровня будет определенное количество врагов, свой террэйн, допустим еще каке-то свойства. Как я вижу: делаем класс УРОВЕНЬ в нём в конструкторе задаем метод Генерируй( сложность ){генерирует количество/вид монстров, в зависимости от _коэффициентов}. От класса УРОВЕНЬ наследуем классы террэйнов (прим. пустыня, тайга, казематы Путина), в наследниках переназначаем коэффициенты. Игрок видит варианты, делает выбор, играет. Все правильно делаю, или можно как-то проще и я зря тут фигню с классами и наследованием развёл?
>>445189ой, нет , фигню написал. Мне же надо зарандомить террэйн, и его нельзя рандомить в конструкторе базового класса.Значит метод Генерируй() будет в менеджере, и он будет возвращать объект класса УРОВЕНЬ, который внутри медота будет рандомить террэйн, вызывать конструктор(), который в свою очередь будет определять количество мобов и прочие свойства. Короче, двощ, я сдулал уже крутой инвентарь, отчасти благодаря тебе, помоги и с этим.
>>445191алсо, есть телеграм канал местный по юнити?
И еще,может вы видели крутые мануалы или туториалы по темам:Простые кривые сложности для левелов мобов/героя.Реализация дроп рейта предметов.Алсо, поделюсь винами: http://aushestov.ru/%D1%88%D1%80%D0%B0%D0%B9%D0%B1%D0%B5%D1%80/https://youtu.be/ZW6RCKVnqT4
>>445195> Реализация дроп рейта предметовВ класс Item добавь поле dropRate и рандомь число от 0 до 100. Чем ниже этот самый рейт, тем меньше шансов что он выпадет.Во всяком случае я так делал, проблем не было.
>>445199это понятноВопрос как лучше сделать: -- В базе айтемов на каждый айтем указать вероятность выпадания на определенном террейне.--- или в каждом террейне создать свою базу выпадающих айтемов со своими рейтами. Ну как словарь, например. Короче, не хочу изобретать велосипеды, и так реализуя механику боя уже наковырялся в своих гениальных костылях, пришлось все переписывать в ноль. Хочется пример, где есть реализация дропа в зависимости от чего-то. Вот еще идея:я для террэйна создаю массив айтемов[100], который заполняю :Редкий_предмет вероятность_выпадения редкого_предметаДругой_предмет вероятность выпаденияостальное заполняю обычными предметами. потом беру случайный индекс массива и таким образом монтекарлю себе рандомный айтем из текущего террэйна. Взлетит?
>>445200Ты ведь понимаешь, что это совершенно не принципиально? В варкрафт 3 ковырялся? Вот так и делай.
Аноны, читаю unity in action и там есть такая функция - private IEnumerator CheckMatch() { if (_firstRevealed.id == _secondRevealed.id) { _score++; Debug.Log ("Score: " + _score); } else { yield return new WaitForSeconds (.5f); _firstRevealed.Unreveal (); _secondRevealed.Unreveal (); } _firstRevealed == null; _secondRevealed == null; }Юнити ругается :only assignment call increment decrement and new objectв конце функции. Может подскажете в чем дело?
>>445216Форматированный код : https://pastebin.com/mtdNBPKS
Аноны, может кто-нибудь знает бесплатные реализации физики автомобиля? Неужели за столько времени никто не сделал какой-то шаблон?
>>445214>Ты ведь понимаешь, что это совершенно не принципиально? не понимаю. Просто уверен придется что-то менять и добавлять, поэтому охота посмотреть на эталонный велосипед и реализовать "как положено". Во-первых: не придется переписывать.Во-вторых: минимум ошибок.В-третьих: приучу себя к грамотным реализациям дефолтных задач. >В варкрафт 3 ковырялсяа он опенсорс теперь чтоли?Пока нагуглил паттерн фабричный метод. Вроде оно.
>>445218фигурные скобки с новой строки делай
>>445222это не решение, если что. Зато поможет не отпугнуть тех, кто знает ответ.
>>445200>как лучше сделатьЭто самый обычный двухсторонний мэни2мэни релейшн с доп полем.
>>445230сучка, заставил нуба гуглить. Нет, (насколько я понял), я как раз стараюсь отвязаться от мэни-ту-мэни.
>>445241Ты от него не можешь "отвязаться", это блять определение твоей ситуации.Если ты имеешь в виду, что ты боишься промежуточной таблицы - любая нормальная орм будет следить за связями в бд за тебя, так что не ссы (но только не поленись сразу разделить методы, которым нужно о конкретной орм знать, и собственно логику).
>>445245Антош, потрать на меня еще немного времени. Я правильно понимаю, что м2м это когда айтем знает на каком террэйне у него какой дропрейт и каждый террэйн знает, какой дроп рейт у него для каждого предмета?Мне всегда это знать не надо, связь в обе стороны тоже не нужна. Достаточно один раз узнать это при генерации. Напимер при генерации террэйна, посмотреть в поле этого террэйна с масиивом айтемов и дропнуть что-то оттуда, или пробежаться один раз по внешней базе всех айтемов и дропнуть оттуда все с ненулевым дропрейтом. Выше я уже декларировал свой инсайт, что скажешь, покатит?>(я для террэйна создаю массив айтемов[100], который заполняю :Редкий_предмет вероятность_выпадения редкого_предметаДругой_предмет вероятность выпаденияостальное заполняю обычными предметами. потом беру случайный индекс массива и таким образом монтекарлю себе рандомный айтем из текущего террэйна. Взлетит?)как вариант, если мне надо будет добавить дополнительный предмет в список дропа, я добавлю его в этот массив с его вероятностью, но чтобы не оверспавнить крутые предметы, перед этим увеличу количество элементов в массиве.Сорри за потоки сознания.
>>445189как бы всё это целиком зависит от того как ты структурируешь свой генератор. если хочешь захардкодить всю генерациию, то ебись с наследованием. я так делал, но после пятнадцатой закрывающей скобки я решил что нахуй и в пизду. >>445216_firstRevealed == null;_secondRevealed == null;оператор == проводит сравнение.
>>445253>после пятнадцатой закрывающей скобкиЧто ты там так нахардкодил, что аж 15 скобок?
Парни, я хочу сделать возможность редактировать статы и т.п. извне юнити. Я нашёл, как использовать File I/O и всё такое, вопрос не в этом. Там просто делаешь текстассет, при загрузке игры смотришь, есть ли нужный файл в нужном месте, если есть, грузишь его, если нет, грузишь внутренний текстассет и создаёшь его копию в нужном местеМне нужно сообразить, как лучше всего сделать парсинг данных из внешнего текстовика. Пока что у меня сделано это через сплит с разделителем по \n и затем с разделителем по ;, но это получается синтаксис текстовика очень требовательный. Да и метод для работы с этими текстовиками очень не-общий. Как нормальные люди такое делают? Пока что склоняюсь к созданию общего метода, который смотрит на заданный разделитель и ищет заданное количество элементов (которые выдаст наружу), если не находит их столько, то дополняет нулями. Но допустим, что есть 4 элемента, как определить, что пропущен 3ий, а не последний? Нужен специальный синтаксис опять.
>>445302Я даже хз, что тебе сказать. Есть куча бд любых видов, которые специально для этого предназначены, и имеют хуилион человекочасов вложенных в них - нет блять хочу изобретать велосипед. Ты бы еще предложил хранить в джипегах фотки узелковой вязи и тренировать нейросеть распознавать их.
>>445312>качай ассет качай ещё один ассет и ещё разВот так всегда. Либо говорят что-то очень охуенное, либо говорят качать ассеты. Что с вами не так? Совсем опрофессионалились? Чернь кругом видите?
>>445189>>445191вот этот ньюфаг с рандомными террэйнами и уровнями сложности на связи. Сделал. Нормально? Главный вопрос, я же смогу в будущем безе проблем работать методом родителя класса (который не переопределяется) с полями наследников класса?https://pastebin.com/gd5efWP1<iframe src="https://pastebin.com/embed_iframe/gd5efWP1" style="border:none;width:100%"></iframe>
>>445323поясните ньюфагу как вставлять нормальный отформатированный код?
>>445275это года три назад было, я так навскидку и не помню. вроде пытался в одну итерацию по главной маске сгенерировать шумы. в итоге на каждой развилке приходилось открывать новые скобки. получилась ебанистическая функция на 700 строчек. но зато лол, генерировала карту только через код. но было абсолютно нечитабельно.>>445302может просто воспользуешся XML сериализацией? оно читабельно и уже делает все за тебя.>>445323сначала генерацию ебани, потом эти вопросы сами найдут ответ.
>>445325И чё?
>>445326че и чё?
>>445325>генерировала карту только через код. но было абсолютно нечитабельноИграл в Зевса-Посейдона? Там была охуенная система генерации зданий-монументов. Банально был текстовик, в котором указывался начальный "камень", а затем параметрами материалы и т.п. и ещё направление, в котором поставится следующий камень. Если направления нет, то считается, что камень последний. Такая охуительная задумка - просто делаешь два метода, один читает, другой создаёт новый камень в нужном месте с нужными параметрами. Нужен рандом? Делаешь третий метод с генерацией параметров по какому-то алгоритму. Это я так, к слову. Поделиться увиденным хотелось. >может просто воспользуешся XML сериализацией?Спасибо, почитаю, как это работает.Ещё вспомнился метод парадоксодрочилен - берётся таблица csv, и из неё всё нужное выдирается.
>>445327Я не знаю.Как дела?)
Парни, а как можно воспользоваться навмешем без навмешагента? Ну т.е., вот я создал эту карту путей и хочу просто добавить в скрипт передвижение по ней, че там писать то надо?
>>445340> а как можно воспользоваться навмешем без навмешагента?Примерно так же, как водить грузовик без грузовика.
>>445343Бля, а хуле у них так всё неудобно? Этому агенту даже сторону, в которую он будет идти нельзя назначить, да и вообще он пиздец какой-то неудобный.
>>445340> добавить в скрипт передвижение по нейdestination что ли?
>>445329ноуп. не играл. в актуальное время не слышал про неё.методов генерации то можно придумать много, но как правило более интересная задача как структурировать это месиво. можно на коленке сделать красивую мешанину, но когда задумаешься "как сделать из этого уровень? где тут должны быть места интереса?" вот тут то и начинается генерация.>>445340на самом деле раньше был метод чтобы получить меш навмеша. но ты хочешь хуй знает что. что получить то хочешь?
>>445352Ну я хочу, чтобы мой енеми искал путь до игрока по навмешу. У меня проблемы с поворотом, просто. Игра 2D и с навмешагентом, мои боты колбасятся, пытаются идти по неиспользуемой оси и т.д.
>>445353ты ещё что-ли один из тех кто не смог повернуть навмеш из плоскости XZ в плоскость XY?
>>445352>"как сделать из этого уровень? где тут должны быть места интереса?"В случае с Зевсом всё просто: сложно предоставить в 2д-текстовике возможность моделировать 3д, поэтому вместо того, чтобы каждому камню просто задавать 3 координаты, сделали задачу координат относительно предыдущего камня. К тому же в самой игре здание не сразу ставилось, а его нужно было строить, и строители по заданной последовательности его возводили. >"как сделать из этого уровень? где тут должны быть места интереса?"Имхо, лучше всего заранее сделать определённое число кусков ландшафта, которые друг к другу прилепляешь. Какой бы рандом охуенный не был, он всё равно надоест, а так можно совместить рандом с ручной работой.
>>445353> Ну я хочу, чтобы мой енеми искал путь до игрока по навмешуagent.destination = player.transform.positionНе пойму с каким там поворотом у тебя проблема. Angular speed повысь, если агент поворачивает как полено.
>>445354Да, а как это сделать?>>445356Ну он поворачивается так, чтобы двигаться по оси Z в сторону игрока. Из-за этого спрайт поворачивается на 180 градусов и его просто не видно в игре.
>>445355>Имхо, лучше всего заранее сделать определённое число кусков ландшафта, которые друг к другу прилепляешь.А чалленджи, паззлы или что там для уровня задавать именно через куски ландшафта. Вот, например, есть игра на ПС2 Makai Kingdom, или ещё забавнее, на ПСП Valkyria Chronicles 3: там есть ограниченное количество кусков ландшафта, они присоединяются друг к другу от балды, но в каждом из кусков свой чаллендж есть, не зависящий от всего уровня, а входы и выходы в кусках расположены таким образом, чтобы общий чаллендж уровня воплотить.
>>445354Кстати, если есть, готовое решение по этому вопросу, то может еще можно нормально сам навмеш делать? А то я, для того, чтобы сделать навмеш добавляю кучу кубов, т.к. из 2д коллайдеров он не делает непроходимый путь.
>>445361> то может еще можно нормально сам навмеш делать? А то я, для того, чтобы сделать навмеш добавляю кучу кубовhttps://github.com/Unity-Technologies/NavMeshComponents
>>445358> Да, а как это сделать?Полторы секунды в гугле.https://github.com/Unity-Technologies/NavMeshComponents/issues/31
>>445355куча вариантов, большая тема. можно просто делить карту на связанные зоны, можно соединять карту из заготовок в гриде, можно написать нейросеть чтобы она тебе из мешанины уровни генерировала "вот тут на камне отличное место для вышки потому что рядом ещё камень" и прочее-прочее. очень уж сильно сами варианты зависят от контекста.>>445360я не настолько консолота чтобы знать такие примеры. но про Valkyria Chronicles ты что-то страшное рассказал, первая часть была замечательной, а теперь похоже ничего не осталось от положительных качеств.>>445358ссылку тебе только что дали. несколько раз, лол. скачай, посмотри, там есть экзампл где ось навмеша крутят. покрути ось. и в следующий раз ставь вопрос правильно "я хочу так. как получить?".
>>445370Я дико извиняюсь за свой долбоебизм, но где тут крутить ось? И самое главное: Я хочу, чтобы навмеш строился по 2D коллайдерам, как сделать?
>>442120 (OP)Господа, я ничего не понимаю в серверном программировании и поэтому спрашиваю тут. Подойдет ли Photon PUN для несложной ммо с онлайном максимум 1000?
>>445401Нет, это комнатки.
>>445415Писать сервер самому? Что почитать на эту тему для начала?
>>445416Единственные, кто обещают сделать заебись из коробки - спатиалос, но какие там подводные - не знаю, и сам давно жду хоть каких-нибудь постмортемов. Есть еще всякие подозрительные серваки в сторе и на гитхабе, но это совсем кот в мешке. Свой сервер, если тебе не нужна авторитарная физика, можешь хуярить на чем угодно, хоть на плюсах хоть на пхп.Почитать как сделать заебись нигде нет, только копать известные эмуляторы и те же подозрительные поделки.
>>445373Вопрос отклоняется, я наконец-то сумел сам написать кривой А-стар.
>>445468>>445373ты совсем тупой чтоли? там экзампл в папке лежит как наклонять, тебе >>445365 даже более детальную ссылку дали, а ты все равно хуйнёй страдаешь.
Ребятки, нубо-кун опять на связи. Короче я почти все реализовал. Есть генерация трех уровней разной сложности на выбор, каждый с рандомным террейном и своим рандомным набором мобов. Лист мобов для каждой локации публичный, я натаскивал туда префабы через инспектор, в ходе генерации их оттуда случайно вытаскивают. Но с выпадающим за прохождение локации шмотом так не сделать. Запарюсь перетаскивать. Как сделать проще? В идеале мне надо к каждому классу локации прифигачить словарь с (шмот, вероятность выпадания). Сама база шмота у меня в json. Как лучше сделать? Запилить для каждой локации еще json файлик? Или быстрее все-таки в инспекторе натаскать?Словари сериализуются вообще, если будут (ГО, инт) или (стринг, инт)??Хочу быстрое наполнение руками.
>>445302Снова яЗапилил жонглирование текстассетами и текстовиками, с этим, как и думал, проблем нет. Но вот начал читать про xml и csv и прихуел чутка.Мне нужна таблица, которую может редактировать сам игрок, то есть она должна быть достаточно простой, чтобы в ней можно было просто менять значения в полях, и при этом позволять вводить новые строчки со стандартными полями. CSV как работать будет мне понятно, есть пример парадоксодрочилен, а вот XML тёмный лес какой-то. Как оно будет выглядеть вообще? Есть какой-нибудь пример подобной таблицы? Методы для работы с ней тоже бы желательныИли вот захочу папку с картами, где каждый xml будет отдельной картой с последовательностью шагов постройки, как в монументах-зданиях в Зевсе-Посейдоне. Как это будет на xml выглядеть?
>>445689И ещё кое-что.При загрузке я заношу в один большой словарь все-все-все тексты из текстассетов и внешних текстовиков. Собственно, а не охуел ли я, и не трачу память впустую? Может, можно как-то заблокировать изменение внешних текстовиков во время выполнения программы? Чтобы никто не мог в них что-либо изменить.
>>445689>таблица, которую может редактировать сам игрок, то есть она должна быть достаточно простойXML не слишком для этого подходит. Почему не сделать текстовый конфиг? Я диванный, но скорее всего юнити умеет с чем-то подобным работать.<objects><item id="1"><param1>Значение</param><param2>Значение</param></item><item id="2"><param1>Еще значение</param><param2>Другое Значение</param></item></objects>XML это не таблица, то есть не двухмерная матрица, в нем доступна большая вложенность и редактировать неподготовленному человеку может быть сложновато.В примере, что я привел значения заключены между тегами параметров, которые в свою очередь вложены в объекты у каждого из которых есть уникальный атрибут-идентификатор.Это как бы тебе ликбез краткий.Так что думаю лучше смотреть в сторону текстовых конфигов.Что-то вроде:Fog = OnDifficulty = HardStartLife = 14
>>445700Если ты скажешь зачем тебе это нужно и чего ты хочешь добиться, то проще будет подсказать решение.
>>445732Спасибо примерно так я это и понял>>445733>Если ты скажешь зачем тебе это нужно и чего ты хочешь добиться, то проще будет подсказать решение.Моддабельность для игры хочу. Ну, и чтобы можно было ручками без вхождения в юнити фиксить разную ерунду вроде баланса. Тут вопрос в том, сколько памяти будет жрать загрузка всех текстовиков в условленной папке внутри папки с игрой. Вон, парадоксоигры грузятся довольно долго, потому что они все текстовики (в форматах txt для скриптов и csv для локализаций) грузят до запуска игры и, похоже, постоянно их держат в памяти. Объём всего текста там несколько мегов, но больше 20, хотя я не считал. Вроде бы звучит не страшно, но я не профи же Из-за того, что всё заранее загружается в игру, можно во время самой игры текстовики менять, как только вздумается.Есть альтернативный вариант - подгружать данные из текстовиков только по запросу, но тогда эти текстовики нужно либо как-то безопасно обустроить, либо заблокировать их изменение во время работы программы. Блокировка звучит гораздо лучше.
>>445734Я не совсем понимаю все-таки в чем твоя проблема. Почему так важно, чтобы текст нельзя было изменить во время игры? Кто вообще станет таким заниматься в теории?По поводу загрузки в память ты обсчитался имхо. Средний роман на 300 страниц весит 1,2мб в fb2 и это с обложкой в base64. Значит на деле будет 600кб. У тебя будет в игре текста на целый роман?
>>445732[ { "id": 0, "title": "Steel Gloves", "value": 6, "stats": { "power": 1, "defence": 4, "vitality": 2 }, "description": "Gloves made from steel", "stackable": false, "rarity": 2, "slug": "steel_gloves" }, { "id": 1, "title": "The Great Stick", "value": 543, "stats": { "power": 56, "defence": 2, "vitality": 45 }, "description": "It's a stick that's pretty great.", "stackable": true, "rarity": 2, "slug": "the_great_stick" }json не пойдет?довольно читабельный даже для юзера, есть редакторы, где еще проще.
>>445746ай, тебе именно таблица нужна.
>>445745>Кто вообще станет таким заниматься в теории?Кто-нибудь да будет. А от такого воздействия будут серьёзные ошибки. >По поводу загрузки в память ты обсчитался имхоМожет быть. Я ж не специалист. Везде пишут экономить на foreach, меняя их на for везде, где можно, а проку от этого крупицы. Что же тогда делать с 600 килобайтами мёртвого груза, которые нужны очень-очень редко? >>445746>>445747По сути, это та же таблица, только визуальное представление другое. Как и xml. Надо обмозговать это всё
>>445748> от такого воздействия будут серьёзные ошибки.Это уже, по-моему, вообще не твои проблемы.
>>445748Не нужно пытаться все заранее оптимизировать. Когда у тебя будет билд уже готовый и ты поймешь, что памяти действительно не хватает, тогда и будешь заморачиваться. На мой взгляд ты выдумал проблему себе.Олсо, этот анон >>445755 прав.
нашел на хабреКак уже заметили, проще для дата-классов использовать ScriptableObject. Урок от Unity как им пользоваться как раз для таких задач.Вообще, в больших проектах дизайнерам проще работать с Excel'ем. Забивать туда сотни и тысячи item'ов, высчитывать по странным формулам цену, графики рисовать и прочее. Потом всё это экспортится в xml или json. Хотя можно прямо из xls читать. Некоторые вообще по сети из google spreadsheet конфиги тянут.https://youtu.be/PjvMrJDiH-U
>>445777Дрочую этого, сам впендюривал в проект на аутсорсе поддержку гуглтаблиц со кучей стат айтемов, которые через жусон в скриптабл обджекты запихивал.Ну и собственно статы подгружались каждый запуск, пока ребалансили.
>>445784что почитать по теме? пока ушел смотреть юнити туториал по СО.
>>442120 (OP)Парни, можно ли проверить есть ли объект с тэгом на пути луча?У меня идёт луч от эмени к игроку и проверяет, касается ли луч тэга "wall". Я решил сделать стекло в игре, через которое враг может игрока увидеть, но не может пройти соответственно. Так вот прикол в том, что если стоит враг, потом стекло, потом стена, за которой игрок, то враг сагрится и побежит искать игрока.
>>445799> можно ли проверить есть ли объект с тэгом на пути луча?if (hit.transform.tag == "hueta")
>>445799Ещё один магистр по формулировке вопросов.> можно ли проверить есть ли объект с тэгом на пути луча?Можно.
>>445799Я не знаю как ты там делал, но ты явно велосипедишь. Вынеси стекло в отдельный слой, который будет игнорироваться рейкастом, и свети себе в сторону игрока. Упрётся луч в стену и никуда твой моб не побежит.
>>445802ти забыл что ти в юнете-треде
>>445760>Когда у тебя будет билд уже готовый и ты поймешь, что памяти действительно не хватает,Тогда будет слишком поздно. Вон, соседний тред глянь: >>411195Эта игра выдаёт 30 фпс максимум. ЭТА ИГРА ВЫДАЁТ 30 ФПС МАКСИМУМУ меня от этого Яндере-дев только он ещё 8 часов на разбор почты тратит Он ещё жаловался, что на проверку каждого нового изменения в игре ему надо по 10 минут новый билд компилировать. Нужно сразу по уму делать (насколько ум тебе позволяет), а не то будешь сидеть баготестить каждую переменную по полчаса>>445755>>445760В общем, послушаюсь вас. С одной стороны буду хранить не словари с книжного объёма стрингами, а пути к текстовикам внешним и/или название текстассета, с другой стороны буду иметь словарь с преобразованными стрингами, чтобы много раз одну и ту же стрингу не преобразовывать, который к тому же буду периодически подчищать. Благо, после моей ёбли с поисковиком путей у меня охуенный PriorityQueue скодился, можно по тому же принципу сделать подчищалку
>>445809> Тогда будет слишком поздноНе совсем понял что именно будет "поздно". Оптимизация — это последний этап игропроизводства. Шлифовка, так сказать.Очень многие так нихера и не выпустили, потому что не игру делали, а рисовали три сосны и потом ебали себе мозг как бы их оптимизировать.
>>445812>Очень многиеВсё время говорят про этих очень многих, но почему-то никогда их не показывают.
>>445813А потому что и показывать нечего.Ошибка выжившего, знаешь ли. Те игры, что выходят, это результат очень маленького процента тех, кто садился за разработку.
>>445813По-моему еще в этом треде кто-то спрашивал про оптимизацию анимаций. Нахуя — непонятно. До нас и так оптимизировали что могли.
>>445809>Тогда будет слишком поздно. что за чуш. этап разработки надо делать как можно быстрей, а не оптимизировать. за время разработки свое говно по пять раз перепишешь, прежде чем продвинешься. одно дело поменять имплементацию какого-то метода, другое дело когда придется сносить весьма приличный кусок кода, просто потому что он устарел.
>>445817> По-моему еще в этом треде кто-то спрашивал про оптимизацию анимацийВ этом, да>>443230
>>445803>в отдельный слой, который будет игнорироваться рейкастомВот. Про слои я знаю, а как сделать, чтобы слой игнорировался рейкастом? И можно ли проверять только один слой?
>>445836в функцию с рэйкастом лэермаск же можно сунуть. угадай что он делает.
>>445836Про перегрузку функции не слышал, не?
>>445839Не, я нуб.
Хочу в юнитях запилить небольшой двухэтажный дом внутрь которого можно зайти. И тут два вопроса.1)Пилить здание стоит одним мешем или каждую комнату отдельно + отдельно внешние стены?2)Как пилить коллизию? Меш колайдера достаточно или нужно самому растягивать боксы? Есть ли возможность запилить коллизию в максе/блендере?
>>4458541 советую пилить отдельно, меньше мороки. особенно если Occlusion Culling ебанешь2 если дом статичный то хули, ебани меш коллайдер
>>445785Я просто покупал плагин бачей за 15 или 20, спредшит 2 что-то там. Можешь просто его спиздить, там скрипт под гугловский апи, который заливается на драйв, и который под себя несложно адаптировать, и несколько скриптов с примерами для самой юнити.
Как проверить нажатие кнопки "Назад" на андроиде?Пробовал if (Input.GetKey(KeyCode.Escape)), не работает
>>445866http://answers.unity3d.com/questions/25535/android-back-button-event.htmlА здесь говорят, что работает. Ты в апдейте нажатие проверяешь или где? Точно код до места, где проверяется инпут.геткий, доходит?
>>445868Тестил через Remote Unity, надо будет скомпилировать и посмотреть, мэйби Remote врет
>>445869> Тестил через Remote UnityУ него вообще очень странное поведение. Например, мой персонаж бегает по клику ПКМ, но через Remote ПКМ вполне себе заменяется тапом двумя пальцами. Хотя я коде я ввод под ведро вообще не писал.
>>445854>> Хочу в юнитях запилить небольшой двухэтажный дом внутрь которого можно зайти. И тут два вопроса.Экстерьер - отдельно.Интерьер - отдельно.Можно одним mesh-ем, но следи за треугольниками. Делай до 15/20 тысяч треугольников.> 2)Как пилить коллизию?Можешь в самом 3d пакете делать коллизию. Но сетка должна быть упрощена (У вазы или люстры, к примеру) > Меш колайдера достаточно или нужно самому растягивать боксы? Достаточно mesh collider > Есть ли возможность запилить коллизию в максе/блендере?- Да.Но вот я лично хз на счет unity. Я всегда ставлю mesh collider.В UE можно и mesh использовать в качестве коллизий.
>>445896Я тоже всегда ставлю меш коллайдер
>>445896>>445897Адепты оптимизации говорят, что меш коллайдер это не труЪ, а надо обкладывать меш примитивными коллайдерами.
>>445898>Адепты оптимизации говорят>> 445896> 2)Как пилить коллизию?> Можешь в самом 3d пакете делать коллизию. Но сетка должна быть упрощена (У вазы или люстры, к примеру) Читай мудень.
>>445898Оптимизация это да, но этот геморрой стоит того только тогда когда очень много полигонов или большая сцена
Почему рекомендуют С# и JS, если можно и python, но>But I Would Not propose to use Python...ответ на буржуйском юнити форуме Хочу попробовать в гейдев, но впадлу учить новые языки, знаю Python/C++
>>445907И тут сагу случайно зацепилкукла, все дела...
>>445907>>445908>кукла>самоирония>питонПочему-то я не удивлён
>>445907> Почему рекомендуют С# и JS, если можно и pythonНу ебашь на питоне, в чём проблема? Тебе наше благословение нужно?
>>445921> Тебе наше благословение нужно?Бляя, как же я проорал с этих слов ;)
Анон, я вот тут начал ковырять юнити, до этого работал искал работу на asp .net mvc/core. И планирую работать дальше, просто по вечерам ковыряясь. Очень доставил геймдев, причем сразу. Буквально за пару глав "Unity in action" втянулся, такая-то душа. Так-вот, вопрос о чем, вы тут выше думаете над оптимизацией одного блядского дома, а на юнити можно понятно что можно, играбельно будет? запилить около опенворлд или просто большие локации полноценные, город там фентезийный с лесом вокруг него, парочкой пещер ну и в таком духе? При этом будет ещё какая-никакая боевочка ну все как всегда.
>>445927>а на юнити можно запилить около опенворлд или просто большие локации полноценныеДаже если нельзя, можно из темноты спавнить новые места, деспавня из мест, откуда вышел, старые
>>445928А есть мануалы на эту тему, типа как в клевых играх - дальний фон грубо-говоря в скайбокс улетает и прогружается по мере приближения, а тот что прошел - упиздошивается в скайбокс (если я правильно понимаю как работает скайбокс, надеюсь ты поймешь).
>>445927> вы тут выше думаете над оптимизацией одного блядского домаЭто свежий оптимизатор подошел, сейчас хотя бы вопросы более-менее адекватные. > запилить около опенворлдСмотри выше NavMesh Surface. Десять из десяти, самое то для опенворлда, потому что подгружать нормальный мир вместо LOD не звучит как что-то проблематичное, а вот болванчиков бегать между чанками хуй знает как еще заставить.Для примера пиздатых больших локаций можешь посмотреть какой-нибудь Tyranny (хотя там по-моему приемущественно 2D). Также на канале Unity на YouTube можешь глянуть на йобу из Unity 2017.> При этом будет ещё какая-никакая боевочка ну все как всегда.Пока пытался сделать хоть какое-то подобие РПГ системы, к Юнити не притрагивался вообще. Прицепить это к движку вообще не сложно, но там начинается период дерганья ползунков и дрочинга чисел, чтобы была DOOSHA.
>>445934Спасибо, ещё вопрос:планы у меня как у всех просто неебательские, дженерик/некст ген вотэтовсе. У самого с финансами не все прям хорошо, поэтому по началу до альфы точно планирую выезжать на фри ассетах. Стилистика гигантика очень доставила - есть шансы найти хотя-бы в 2 раза хуже халявные ассеты в таком стиле пикрил ? Алсо хочу ММО хотя-бы человек на 20, может посоветуешь что после "Unity in action" можно почитать/посмотреть?
>>445927>>445942Сделать можно что угодно, об оптимизации думать будешь когда будет что профилировать.Халявные ассеты кроме каких-нибудь общих текстурок - говно, платные - часто тоже, советую на этапе разработки бессовестно пиздить левые ассеты, а перед релизом взять кредит на нормального дезигнера. Любой левый код, кстати, включая сами дефолтные юнити компоненты, тоже советую оборачивать в свои прокси - потому что вполне может быть придется их менять к релизу.
>>445956>об оптимизации думать будешь когда будет что профилировать.Не совсем так. Об оптимизации будешь думать, когда увидишь 5 фпс на конфигурации, которая без проблем тянет гта 5 или ведьмака, и осознаешь, что нихуя с этим не поделать, кроме как резать графон/кол-во объектов в кадре, ибо движок оказался говном, а доступа с сорцам для оптимизации нет.
>>445962Плохому танцору сцена мешает.
>>445963Ну если сцена состоит из двух стульев, сам знаешь каких, и задача танцора балансировать на них, чтобы сберечь анальную девственность, тот тут уж как хорошо не танцуй, ничего хорошего не выйдет.
>>445965>моя сцена - это два стулаГоспода, вы сначала всякое говно кодите, а потом через пару месяцев достаёте напильники. Как бы хорошо говно не обтесать, всё равно говно будет, и движок тут не при чём, его сразу укрощать надо было.
>>445956Нахуя дефолтные-то менять? Пример приведи, если не трудно. Алсо на ютубах смотрел чувака, он там по чуть-чуть что-то рассказывал и как-то показывал пару платных сцен - вполне ничего вроде были.
>>445962Не суть важно. Оптимизировать шкуру неубитого медведа по чужим словам - это всегда выходит въебать кучу времени на какую-нибудь дающую 0.02% хуйню, и упустить дающую 40%.>>445973Что угодно - энтити системы, альтернативный физ движок или уи, надстройки над любыми дефолтными компонентами.
Господа, неспешно пилю игорь своей мечты и у меня возникла проблема с анимацией. Например я хочу чтобы гг мог подойти к любому нпс и выебать его в жёпу. Собственно как реализовать сей процесс. Нагуглил я только инверсную кинематику и если я правильно понял она только для статичных объектов. Типо стен, рычагов и др. Прошу хотя-бы пните меня в нужном направлении. В юнити вкатился недавно.
>>445976Нет, IK можно пилить к любому объекту, как именно это устроено я не знаю, но на этом строится большое количество анимаций. Судя по всему она выебет в жопу тебя и не раз, пока будешь разбираться.https://m.youtube.com/watch?v=o3bYZbbRVq4
>>445978> как именно это устроено я не знаюПо маске группы гуманоидных костей, ёбаный в рот, как ещё это может быть устроено?
Сап. Как реализовывается многослойный фон в 2Д платформерах? Например, статичное небо, медленный лес сверху и кусты, которые будут двигаться вместе с землёй
>>446004Одну группу спрайтов двигай с одной скоростью, другую группу — с другой.А вообще это всё потом, сначала игру сделай.
>>442120 (OP)ГТА5 на юнити!https://www.youtube.com/watch?v=eOIQtjU6Okg
>>445976Смотри все функции с IK в названии.https://docs.unity3d.com/ScriptReference/Animator.htmlВот в этом коллбэке https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnAnimatorIK.htmlставишь таргеты и веса для своих рук/ног и головы, при помощи вышеуказанных функций. Позиция - любой Vector3, то есть хоть жопа персонажа, хоть статика, что хочешь. Там даже пример есть, посмотри. В общем-то все значительно проще, чем могло показаться.
Аноны, скажите плз. Допустим я хочу создать убийцу маинкрафта (просто для себя). Будит ли юнити оптимизировать рендер мира? Допустим не выделять ресурсов на рендер блоков, которых не видно и всё в таком духе. Или может там какие-то удобные инструменты есть для оптимизации. Или же всё ручками придётся делать?
>>446042https://docs.unity3d.com/Manual/OcclusionCulling.html
>>445956>бессовестно пиздить левые ассетыа где принято это искать?
Мимонуб в тредеАдепты js, не поскпжете как сделать побуквенный вывод текста? Шот с корутинами ебался безрезультатно
Анон, пытаюсь по тутору реализовать подтягивание данных из инета о погоде и в зависимости от погоды - менять скайбокс. Так вот, создал пустой объект, добавил в него 2 скрипта и при старте юнити виснет наглухо.WeatherManagerhttps://pastebin.com/Szsw0U8ANetworkServicehttps://pastebin.com/1Rq4X2YjПодскажите где трабл? По идее вызываю в WeatherManager Startup>GetWeatherXML>CallAPI>IsResponseValid>OnXmlDataLoaded и даже если оно что-то плохо возвращает - там проверки есть. Алсо если ссылку копирнуть и в браузер вставить - он отдает валидный xml.
>>446073Добавлю что сцена стала странно себя вести, иногда бывает что я в сцене не могу камеру (свою, не сценовскую) двигать или двигается рывками, если двигаюсь в сторону середины сцены. Хз как описать.
>>446078>но можно же и только непосредственно в момент изменения хп обновлятьДелай так. Скажем, в классе интерфейса есть метод сбора хп, мп и прочей херни, который вызывается через ивенты или прямой вызов, случающиеся во время изменения информации. Сами ивенты вроде получения урона или чего там делаешь ручками, но ивенты вроде встречи коллайдеров и дёргания мышкой в юнити изначально есть.
>>446078>>446084а не проще просто сделать свойство HP , где в сеттере запустить изменение хада, или что там у тебя.
>>446073Короче, есть пустой объект, на который я навешиваю Managers и WeatherManager, в первом скрипте должны инициализироваться все менеджеры и мы в цикле ждем пока все менеджеры примут статус Started, я закоментил этот цикл и юнити не виснет, причем в логах выводится xml. Т.е. колбек срабатывает, статус присваивает, но из цикла не выходит.Managershttps://pastebin.com/gmV89AiS
>>446089>>446073Разобрался, проблема была в Managers, в строке yield return null; хуй знает зачем она там вообще, без неё работает.
пока тестировал одну важную фичу случайно поставил не то значение не там. получил забавную страну тупиков.>>445976ИК то чтобы ручки и ножки вставали куда надо, чтобы ручки вот за жопу хватали, а не за воздух рядом.сделай две анимации, где кто-то трахает кого-то, сделай чтобы две модельки подъезжали на нужное расстояние когда это должно случится и запускай анимации синхронно.>>446078ну напиши чтонибудь типа public void ChangeHealth(float healthDelta){health += healthDelta;if(health <= 0)Die();UpdateUI();}внутренние поля же все равно не должны меняться ничем кроме подобной хуйни.>>446089ты же из цыкла не выходишь.
>>446094а много ли систем вообще к ХП обращаются? UI, может ИИ, что ещё то?если хочется то можешь через делегаты например сделать подписку на события с ХП, чтобы когда ХП менялось то оно заодно инвокнуло все делегаты из списка. например как тутhttp://wiki.unity3d.com/index.php/Advanced_CSharp_Messengerили воспользоваться тем что юнити нагородило. есть например такоеhttps://docs.unity3d.com/ScriptReference/GameObject.SendMessage.htmlили чуть посовременнейhttps://docs.unity3d.com/Manual/MessagingSystem.htmlхотя у них свои недостатки.
>>446073проверяй Timeout подгрузки и вообще то, что там грузицца блеат
В общем, сделал я импорт данных из csv и инициализацию юнита из этого csv. И, кажется, я совсем ебанулся. Чтобы юнит мог принять в себя вообще абсолютно любые данные, я соорудил отдельный класс СТАТЛАЙН, в котором лежит словарь с стрингой в ключе, T в вэлью и методами для работы с этим. И этих статлайнов для каждого юнита несколько штук для интежеров и стринг и всего подряд. Когда юнит инициализируется из csv, он берёт в себя любое написанное там говно, сортирует по интежерам-флоатам-стрингам, а затем, когда нужен какой-то стат (который выбирается по ключу-стринге), открывает его из статлайна, но если стата нет, то он находит базовый csv файл для юнитов в текстассетах и присваивает в словарь внутри статлайна нужный стат из базового файла.Так вот. Я обезумел? Где-то тут говорили, что нужно по возможности не плодить лишние ходы для кода и использовать одни и те же методы, и такие статлайны (я думаю) сработают лучше и, чсх, выглядят лучше, чем вручную переписывать для каждого отдельного стата-переменной имя (это заменено string[] {все нужные стринги-ключи}; for i от 0 до string[].length, ну вы поняли).
>>446094Блядь сделай ты эвент менеджер, сделай в нем эвент OnPlayerDamage или еще какую хуйню, подпишись туда нужной хуйней и вызывай из другой хуйни, какого хуя тебя всему учить надо?
Объект с Fade материалом перекрывает UI элементы, при чем не важно на какой позиции по z они расположены. Ребят, кто знает как енто фиксить?
Еще вопросы про инвентарь. Видели где нибудь гайды, где делают инвентари для разных персонажей в одном экране? Ну как у олдовых рпг. Как там лучше реализовать все?Суть такова, есть экран общего инвентаря, есть панельки с квик-слотами(ну типа пояс), есть инвентарь перса. По клику на перса меняется панелька с его инвентарем, остальное не меняется. Как лучше сделать? я сейчас совсем опух и попробовал просто геймобжекты предметов выключать, когда окно персонажа закрывается и вместо него открывается другое. Но что-то не очень выходит. Вообще как такие вещи делаются проще? все на уровен бэкэнда, типа несколько массивов, потом операции с циферками и на выходе уже отрисовка, или можно всю"физику", перемещения предметов и прочее делать геймобжектами и их компонентами, а-ля фронтенд?не суди строго, опух, поехал.
>>446263Ты как-то всё усложняешь.Окно инвентаря просто отображает массив айтемов. Лично у меня они в List загнаны. Разные персонажи - разные List'ы. Как и у лутабельных объектов.
>>446263В предметах есть метод ShowMe, в инвентаре есть лист предметов. Когда открывается инвентарь, он вызывает ShowMe во всех предметах листа, и каждый предмет показывает через этот метод только свою иконку. Тебе же не нужно сам предмет выключать, только отображать его, верно?
>>446293а зачем делать всем предметам ShowMe() ри открытии, если они дочерние к инвентарю и мы когда закрываем инвентарь, они и сами появляться/убираться буудут.
>>446314У тебя предметы только в инвентаре существуют? Никакого влияния на статы и т.п. не оказывают? Я думал, они объекты в большом мире, которые могут существовать в разных обличьях и имеют влияние на мир.
>>446278>Окно инвентаря просто отображает массив айтемов.ну их же еще и перетаскивать надо из окошка в окошко, условия проверять. Таскаем мы за геймобжекты, а не за циферки. айтем у тебя это Геймобжект, или просто класс, описывающий поведение, с циферками, который ты вешаешь на ГО? Просто у меня есть получается такая картинка, есть Item, который объект, часть базы из json, эти объекты хранятся в массивах инвентаря и пр. Это циферки, грубо.Есть физическое представление этих циферок, класс, который реализует дропы, драги и проч. Наследуется от монобих. И есть геймобжекты, на которые вешается последний класс. не нагородил ли я лишнего?
>>446320влияние на персонажей оказывают. На мир не оказывают. Обычный лут, короче. Немного не понял твою мысль. повторю реквест, не видели гайдов, где не один инвентарь реализован, а несколько окон, для разных персонажей. Или, например магазин, думаю тоже подойдет.
>>446323> ну их же еще и перетаскивать надо из окошка в окошкоРеализуется элементарно.> айтем у тебя это Геймобжект, или просто класс, описывающий поведение, с циферками, который ты вешаешь на ГО?Айтем у меня это префаб, который по сути пустой геймобжект, с навешенным классом. В классе прописано имя, вес и тип предмета. А уже по имени подсасывается спрайт, который отображается в инвентаре.> img.GetComponent<Image> ().sprite = Resources.Load<Sprite> ("Sprites/" + it.iName);Инвентарь открыл - из листа всё заполнил. Закрыл - удалил.
>>446324Гайдов не видел, но можешь посмотреть на реализацию в Divinity: Original Sin 2. Торгует один играбельный персонаж, но можно быстро переключаться, чтобы получать плюшки с навыков/репутации. Все инвентари сделаны обычной сеткой в одном окне, только разделены по именам.
>>446337> В классе прописано имя, вес и тип предмета.а как база данных со всеми предметами реализована?
>>446351Лежат себе в папочке Resources, откуда загоняются в лист.Для моих нужд пока такого более чем достаточно.
>>446352то есть на каждый предмет по префабу в папке ресурсов?
>>446353Именно так. В каждом префабе прописаны все свойства.У меня всего 22 предмета, так что проблемы нет.
Господа, есть предложение.В целях повышения квалификации, я буду по вечерам заводить стримы и помогать решать ваши проблемы.Шо думаете?
>>446390как ты это видишь, ответы на вопросы? ревью кода?
>>446390Готов отвечать на вопросы вида "что такое нулл эксепшн" и "где скачать ассет инвентаря как в ММОРПГ"?
>>446396ну раз ты шаришь, называй время и собирай вопросы.
>>446401алсо, давно пора конфочку запилить в слаке или телеграм.
>>446402>конфоблядствовать на полумёртвой бордеЭлита из элит
>>446403ладно, соглашусь, хуйню сказал.
>>446390По вечерам по московскому времени? Тут люди со всех кругов ада присутствуют, не только с первого
Я тут уже спрашивал вопрос по поводу лучей, но у меня дополнение возникло:В общем-то, рейкаст врага теперь игнорирует стекло и видит сквозь него. Но у меня лучи еще служат для того, чтобы определять стену, в состоянии патруля. Ну и теперь вражина упирается в стекло. Как сделать так, чтобы стекло игнорировало одни лучи, но другие нет?
>>446410>Ну и теперь вражина упирается в стекло.Дай вражине модельку мухи и сделай вид, что так и надоПетросян.жпг
>>446410Два разных рейкаста. Один для визуального определения, другой физического. Ну я бы так сделал.
>>442120 (OP)Сейчас, компилируя новый билд игры, после обновления югити, уже около 15 минут идёт этап "Packaging assets - 8ce0a54f...", почему? (и как можно исправить,конечно)
>>442120 (OP)Аноны хелп. При приближении к объкетам они урезаются. Всё началось после добавления модели машины спи3женой с инета. Что посоветуете?
В настройках камеры есть параметр, который отвечает за это
>>446425Знать бы ещё какой именно параметр
>>446425Ух, всё анон. Разобрался. Не в этом трабл был. Сори за беспокойство, просто я ебан сразу в нескольких расширениях одну и ту же модель закинул и такая хуита получилась
>>446427Та я тебе не особо то и помог, но если что, всегда рад)
Тредик, у меня всрато.Есть сфера, на которую натянута текстура и карта нормалей (обе две dds) из интернета. При этом освещается это почему-то в обратную сторону, и впуклости выглядят как выпуклости.Как пофиксить?Инвертировать нормали пробовал, выглядит еще всратее.
>>446455ты тупой
>>446458Конструктивно.
>>446455>При этом освещается это почему-то в обратную сторону, и впуклости выглядят как выпуклости.Лол, а если реальную впуклость осветить лампой с другой стороны она станет выглядеть как выпуклость?Ну ты и тупой.
>>446455> Инвертировать нормали пробовалинвертировать нужно только зеленый
>>446455Отзеркаль текстуру.
Быстрый вопрос.Я генерирую карту из csv и задаю каждому созданному гексу высоту в -34F, потому что это та высота, на которой у меня расположен начальный гекс. Однако, когда гексы таки генерируются, они падают ещё на 34F. Почему? Это нормально?
>>446471https://docs.unity3d.com/ScriptReference/Space.html
>>446471И ещё. Я собираюсь при генерации гекса в месте другого гекса заменять старый гекс новым. Destroy() будет для этого подходить? Я ещё собираюсь все упоминания старого гекса из всех словарей и листов удалять мануально
>>446474у юнити есть сборщик мусора, не беспокойся.
>>446475И что это значит? Он что, сам полезет по вызову Destroy() во все мои листы и словари и сам всё удалит?
>>446476> во все мои листыну это твои листы, он в них не будет лезть потому что они твои. но из своих подчистит. не понимаю вопроса короч.
>>446478Ну, на мой вопрос ты ответил, так что спасибо>>446473Там написано буквально по строчке на Space, Self и World. Что я должен был из этого понять?
>>446480>строчке на Space, Self и Wну смотри, в трансформе указываешь в конце перегрузку Space.World и у тебя обжект генерится в мировых координатах, а если Space.Local то относительно координат создающего объекта.да, доки у юнити та еще дыра, приношу извинения.
>>446474подходить то, конечно, будет. но зачем такие подозрительные манипуляции, если гекс уже есть?>>446480тебе надо понять что все в этом мире относительно. вообще хули с тобой в шарады играть. напиши как спавнишь и мы скажем как надо и в чем ты обьебался.
>>446484>зачем такие подозрительные манипуляции, если гекс уже есть?у него же там СВОИ_ЛИСТЫ. вероятно ему проще удалить старый и создать новый чем пердолиться с заменами
>>446483Ясно, спасибо.>>446484>подходить то, конечно, будет. но зачем такие подозрительные манипуляции, если гекс уже есть?Я сделал генерацию через csv, где каждый следующий генерируемый гекс строится относительно предыдущего Зевс-посейдон и всё такое. Можно, конечно, старый гекс оставлять, но имхо логичнее, что если новый гекс хотят поставить поверх старого, то нужна замена. А если так, то нужно все ссылки на старый гекс подтереть.
>>446492>где каждый следующий генерируемый гекс строится относительно предыдущегоИ это очень дезориентирует, как оказалось, лол. Тут без хоть какого-то взаимодействия со старыми гексами, если конфликтует позиция нового шага и старого, не обойтись.
>>446491это разные системы. расскажи, зачем тебе фейд материал в гуи?
>>446485а вдруг нет? вдруг он делает что-то удивительное? например удаляет гекс под курсором чтобы вместо него заспавнить подсвеченный гекс! мы не знаем. надо узнать. а заодно узнать на какую платформу ориентируется, что делает, украсть код, идею, душу, ключи от квартиры.>>446491порядок орисовки UI элементов же зависит от их положения в иерархии в канвасе, не?хотя я фейд не трогал, может он особенный.>>446492ну тогда дестрой, да. кстати почитай про то как юнити интересно дестроит. обьект не исчезнет из твоих листов, но если ты будешь спрашивать у него нулл ли он то он будет говорить что он нулл.
>>446495>например удаляет гекс под курсором чтобы вместо него заспавнить подсвеченный гекс!Я меняю цвет одного из материалов - пока что. Когда начну корутины грызть, хочу испробовать их на подсветке сначала. >обьект не исчезнет из твоих листов, но если ты будешь спрашивать у него нулл ли он то он будет говорить что он нулл.занятно
>>446495Пробовал, порядок в Иерархии неважен.>>446494Куб в игр имеет Fade material, и есть кнопки(UI элементы, картинки UI). Так вот этот куб перекрывает их.
>>446495> например удаляет гекс под курсором чтобы вместо него заспавнить подсвеченный гексмое утро сделано, спасибо
>>446498Я тоже с рейкастером ебался по этому поводу. Тебе нужно собрать своё говно из палок, в котором сначала будешь смотреть на УИ элементы через один рейкастер, потом смотреть 3д объекты через другой рейкастер. Вот моя версия:>>442550
>>446498что, прямо из сцены поверх UI чтоли рисуется? какая охуительная проблема. а хуй знает че там тогда, я не пробовал. ну, если у тебя UI только в камере будет, а не в мире, то можешь решить эту проблему основательно. сделай отдельно камеру которая рендерит только UI и поставь у неё Depth побольше.
>>446500Мне не рейкаст важен, а то, что игровой куб перекрывает интерфейс.
>>446503Верно, ступил я. Но я всё равно уверен, что причина в том же самом. http://answers.unity3d.com/questions/1242578/ui-stays-behind-game-objects.html ?
>>446498Попробуй canvas render mode поставить overlay
Посоны, есть одна игра на юнити и мне очень хочется попробовать её перевести. Собственно вопрос в том, где в этих ваших юнити играх лежат ресурсы, т.е картинки, текст, шрифты? Папка resourses весит как-то подозрительно мало.Алсо вопрос номер два: чтобы их достать, нужно ли что-то кроме движка? Знаю, что по крайней мере в ue3 разработчик мог как угодно упаковать ресурсы, чтобы ни одна собака ничего не достала. С юнити аналогично или всем похуй и можно ковырять?
>>446529
>>446424Нормальную модель скачай.
>>446424Колесико мыши покрути, аутист
>>446395Ответы на вопросы, только в РИАЛТАЙМЕ показывать что как делается и т.д.>>446396Не готов, но считаю, что надо хотя бы пару-тройку эфиров провести, чтобы выводы делать.>>446409Да, по МСК. Где-то в 20:00. Ну а так да, мой косяк, не учёл того, что с часовыми поясами трабла.
>>446529Гугли всякие Unity Asset Explorer >>446491ZWrite On в шейдере ебани
>>446626круто. Если реально готов заняться, то веди трансляцию на ютубе, там и чатик, и потомкам будет что оставить со списком вопросов. Ну и в шапку можно добавить, если годнотой окажется.
>>446643Ну, я не шибко большой спец, но всё равно. Я считаю, что стоит попробовать.
Ребят, кто знает как можно сделать подобное?https://www.youtube.com/watch?v=f2OdrPBgOyYВерх легко можно сделать через Cloth, я его уже сделал, но вот как сделать низ жидкости?
>>446712>через cloth
>>446716Не, бля, как сделать саму жидкость, а не её уровень
Сколько времени нужно, что бы с нуля вкатиться в юнити и зарабатывать?
У кого-нибудь есть Third Person камера с нормальной коллизией? Чтобы камера не попадала за пределы стен/пола.
>>446732https://www.youtube.com/watch?v=keIANWPiUWE
Суп двощТакая проблема: мне нужно создать аи для игры, взял книгу Unity 5.x Game AI Programming Cookbook но когда запускаю пример из книги мне выбивает ошибкаNullReferenceException: Object reference not set to an instance of an objectКак фиксить хз, что делатьhttp://dl.dmkpress.com/978-5-97060-436-6.zip
Сап. Есть скрипт, который включается и отключается другим скриптом. Пользовался функцией enabled, но мне надо, чтобы при включении скрипт откатывался к ванильным настройкам, т.е. заново запускал все функции и считал все значения. Как сделать это?
>>446795Даже не так. Надо, чтобы он запускал заново все функции с ванильными настройками, кроме awake.
>>446778> Object reference not set to an instance of an objectТебе ж, блять, всё написали, не тупи.
>>446795void Reset()void OnEnable()Выбирай что тебе больше под твои костыли подходит.
Пришел в Unity из .NET и теперь не могу сообразить.Вот есть у скриптовый файл, в котором описан класс wheel с интересными мне полями. Я хочу их изменить в другом скриптовом файле, где описываю совсем другой класс. При чем изменить я хочу все объекты, к которым приписан этот скрипт (обозначил их все одним тегом). Как это можно сделать?
>>446815Пример кода кинь, а то нихуя не понятно.кроме то6о, что ты со школьной скамьи пришел, а не с .net
>>446816Как я пытаюсь сделать сейчас: https://ideone.com/YcqyHz
>>446818Ты какой-то велосипедист.
>>446815>При чем изменить я хочу все объекты, к которым приписан этот скрипт (обозначил их все одним тегом).Заносишь объекты в лист и меняешь.
Привет, геймдевач! Я в юнити буквально пару месяцев как, еще не до конца освоился. Реализовываю двадэшный платформер. Возникла необхоимость выводить имена объектов непосредственно над ними, когда ходишь по локации(да, как в Life Is Strange), то есть например вижу будильник - над ним надпись соответствующая и дергаящаяся, которая слегка увеличивается в размере, если на нее навести курсор, а по клику мыши уже возникает диалоговое окно с определенным текстом, имя объекта пропадает. Думаю, принцип понятен.Реализовал что-то подобное через tooltips, но беда в том, что сами эти подсказки по какой-то причине юнити анимировать не дает. Вторая мысль была сделать это с помощью кнопок, но через gui как это сделать, чтобы кнопки были прикреплены к какому-то определенному месту? (у меня камера следует за персом).Если некорректно/неясно сформулировал, могу как-то попытаться изобразить, что имею в виду и кинуть скрины с наработанным, чтобы было понятнее. я лишь прошу натолкнуть в реализации своей идеи
>>446732https://www.3dbuzz.com/training/view/3rd-person-character-system/simple-character-systemhttps://www.3dbuzz.com/training/view/3rd-person-character-system/enhanced-character-system
>>446824Создай отдельный Canvas. Задай Render Mode = World Space. Внутри уже размещай нужные тебе элементы.
>>446818Значит так.Берешь и в VehicleAssist прописываешь поля public Wheel leftWheel и т.д.Потом просто перетягиваешь геймобджекты со своими колёсами в свой ассист и работаешь через эти поля без каких-либо поисков компонентов.А ещё лучше не паблики везде хуячить, а использовать аттрибут SerializeField на приватных полях
>>446836> А ещё лучше не паблики везде хуячить, а использовать аттрибут SerializeField на приватных поляхКстати, почему? В книге из шапки вон тоже советуют делать так.
>>446852Потому что пабликами делаются поля, которые безопасно можно модифицировать и не сломать ничего. В этом же вся соль ООП, что по сути ты меняешь состояние объекта не зная, внутренней реализации.
>>446855Не, это понятно. Но если программирую только я, и я точно знаю, что ничего ломать я не буду и лишний раз паблики дрочить не собираюсь?Понятное дело, что если делать по канону, то паблики отдельно, приваты отдельно. Но в большинстве случаев это вроде не критично.Там, кстати, в книге автор ещё так советует писать.Например:private int _id;public int id {get {return _id;}}То есть айдишник вроде как и публичный, но можно его только получить, а не менять. Что логично, да, с точки зрения безопасности.Наверное, надо будет привыкать писать так, чтоб потом не краснеть если занесёт к приличным людям.
Я делаю rendererComponent.material.color = color; Цвет - зелёный, т.е. 0 1 0 1 Однако юнити на экране упорно рисует предварительно заданный ранее белый цвет, хотя в дебаге пишет, что цвет зелёный. Так бывает вообще?
>>446863Убрал предварительную задачу белого цвета - стал рисовать зелёный. Блядь, как так-то
>>446863> Цвет - зелёный, т.е. 0 1 0 1Ещё один велосипедист.Юзай Color.green
>>446857Знаешь, полезно писать код так, чтобы не замусоривать его комментариями типа "ЭТА ТОЛЬКА ДЛЯ РИДАКТОРА, НИТРОЖЬ". Вообще, в идеальном мире, код пишется так, что если ты смотришь на него спустя полгода а то и больше, то тебе не надо вспоминать, что он делал.В общем, правильно мыслишь.Ещё можешь почитать статьи на рефакторинг-гуру и совсем упороться "правильным" подходом к разработке, но мой тебе совет всё, что там описанр, не стоит воспринимать как 100% истину во всех инстанциях
>>446866Я его и юзаю. Дело не в этом.>>446863>>446865Всё, сам решил. Белый цвет задавался в Start(), и по какой-то причине из-за этого он задавался ПОСЛЕ задачи зелёного цвета. Как так-то?
>>446868> Белый цвет задавался в Start()А зачем ты задавал в коде один цвет, а потом в другом участке кода его менял? У меня вот стартовый цвет задаётся тупо материалом в инспекторе, а потом уже я его меняю в коде и всё норм.
>>446870Я уже разобрался, в чём дело. У меня был старт для главного контроллёра, где зелёный цвет и делается, и были старты для разных раскрашиваемых хуёвин. До этого момента я, видимо, всегда трогал только те хуёвины, которые стартились до главного контроллёра, и поэтому их цвета нормально работали.
>>446867Вот, кстати, на комментарии я тоже часто забиваю, надо отучиваться от этой лени.Но даже без комментариев если открываю код трёхмесячной давности (не пол года, но всё же), чтобы посмотреть как я там делал вот ту вот залупу, то всё предельно понятно.Опять же, сказывается тот фактор, что никто кроме меня мой код не читает, поэтому и комментарии писать лень. Хорошо хоть приучил себя к правильному форматированию и не называю переменные lampochka, а методы — VertimHuevinu, за такое ещё в универе монтировкой по ебалу били.
>>446873> к правильному форматированиюТочнее не "к правильному" (стандарты MSDN я хуй помню), а скорее "к единому". Это как свой почерк, даже если писал в темноте и бухой в слюни, то всё равно потом прочитаешь.
>>446828Да, я натыкался на это вчера, но при этом текст блюрится и делается четче только в том случае, если его сильнее увеличить. Как поправить?
Посоны, чем такие метки ставятся?
>>446888около имени обьекта в инспекторе выбираешь
>>446889Может я в шары долблюсь, но в инспекторе возле имени объекта я вижу только статик, слои и тэги.
>>446890на кубик цветной жми
>>446891Вот я слепой, земля мне пухом.Спасибо, братишка.
>>446884У тебя есть в канвасе настрой dynamic pixel per unit или что-то в этом роде.Покрути их.
Котаны, поясните за popup-кнопки.Суть такова: есть статичная камера, которая смотрит на карту. Камера охватывает всю карту и не движется вообще.На карте есть, например, кубики. Я хочу чтобы при клике по кубику над ним (кубиком) всплывала кнопка (а может и не одна).Короче, хочу чтоб было вот так https://www.youtube.com/watch?v=zd5CvQm1TZI но на видео у него позиция всплывающих кнопок статична, так как камера бегает вместе с персонажем. Мне же нужно чтоб кнопка привязывалась к позиции кубика, над которым всплывает.Не спал 22 часа, так что если объяснил как еблан — не серчайте.
>>446906А, всё, я идиот.Разобрался.
>>446906https://docs.unity3d.com/Manual/HOWTO-UIWorldSpace.html
>>446908Благодарю, изучил. Но сделал всё же иначе.
Что-то я конкретно охуел.У меня есть словарь с двумя ключами Team0 и Team1 в виде стринг. Я ввожу текст Team0, проверяю через дебаг.лог - это действительно Team0 - но сучий словарь отказывается этот текст принимать, говорит, что нет такого ключа. Как это возможно вообще? Русского текста там нет, только английский. Никаких невидимых символов.
>>446948Код выложи, мало ли что ты там нахуевертил.
>>446949Дело скорее всего в csv файлах, из которых я текст беру. Такое чувство, что одинаковый текст из монобихевиора и из csv по-разному воспринимается. В 99 случаях нормально работает, а вот в этом ну никак, блядь. Может, кодировка как-то влияет? Я уже охуел тут.
>>446960Нет входных данных - нет ответа.
>>446993Я распечатал посимвольно (через char[]) входной текст, и хуле я вижу? Один из символов ЁБАНОЕ НИЧТОЭто как вообще? s[0] - это строка из текстовика
>>447002И это не \n, я проверил
>>447002>>447003/0 или /r? Что так трудно вывести код этого символа? Да выше по коду можно отследить откуда он взялся, хотябы добавив кавычки в debug.log("\"" + xyz + "\"")Внимание! А теперь вопрос:Как заставить ScrollView скроллить по тачу только когда элемент не помещается во viewport (тогда же и скролбары появляются).
>>447004\r, оказывается. Спасибо большое.Собственно, я разделяю строки по Split('\n') Нужно как-то по-другому, выходит, их разделять? Да ещё и в зависимости от системы?
>>447008Environment.NewLine - конец строки на активной системе (но файлы то могут и на другой быть созданы)Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.RemoveEmptyEntries) - разделителей можно несколько указатьSystem.IO.StringReader.ReadLine() - Split медленный и не подойдёт для больших файлов, StringReader быстрее и не жрёт много памяти
Есть ли какое-нибудь пошаговое, грамотное руковдство по Юнити на любом языке, чтобы стать Юнити экспертом (очень нужно, для приёма на работу)?
>>447004Исходники UI открой и посмотри, когда активируются скроллбары.>>447078Таких нет, учи базу. Дальше уже сам догонишь.
>>447078>стать Юнити экспертомАххахаха. Экспертами по руководствам не становятся.>(очень нужно, для приёма на работу)?Для первой работы, чтобы взяли в норм проект, достаточно изучить документацию с офф сайта и прочитать пару базывых книг по архитектуре юнити-приложений или чем ты там заниматься хочешь. А дальше после каждого проекта вписываешь его название в резюме и увеличиваешь цифру в графе "желаемая зарплата".
Кодеры, помогите разобраться. Есть 3Д игра, и UI в ней. Ловлю событие onClick в UI элементе, всё обрабатываю, всё отлично, но onClick также срабатывает на игровом поле, сцуко. Есть ли правильный способ отключить событие в игре, если оно произошло на UI элементе?
>>447128Посмотри в сторону CanvasGroup. Там что-то было, что блочит последующее прохождение рейкаста.
>>447128https://docs.unity3d.com/ScriptReference/EventSystems.EventSystem.IsPointerOverGameObject.html
Решил попробовать побаловаться с юнити, какой язык лучше осваивать - шарп или юнитискрипт?
>>447143шарп. но учитывая твою цель то давай сразу Boo, точно веселья полные штаны будут
>>447145повеселился с этого
импорчу модельку из блендера, почему-то при импорте скейл остается как в блендере, а не становится равен единицам. Соответственно при нажатии на ресет, все сбрасывается. Как в юнити сделать, чтобы при импорте он считал модельку уже в нулях, а не трогал блендера цифры?Ну или как в блендере сохранить текущие параметры скейл-ротейт-трансформ, чтобы при импорте они в юнити не шли. Блендер только установил, не кидайте тряпками, лучше помогите.
>>447157Ссу на ебло тупому, бездарному, зачуханному чмырю-дегенерату, который даже не способен своими дряхлыми, немощными ручонками, измазанными по локоть в говне и сперме собак, открыть гугл и вбить пару слов. ПссссссссObject > Apply > Visual Transform
>>447157Ты совсем отбитый? Окно импорта модели видел?
>>447158Чашку чая тебе с валерьяночкой
вопрос. а пытался ли кто делать рут моушен через unet?>>447157применяй трансформ в блендере перед импортом, хули ты.
>>447168Предлагаешь каждый кадр анимации синхронизировать? Нормальные пацаны делают рендер отдельно от просчета, а потом анимации подстраивают под движение на клиенте уже.
>>447169да пока ничего особо не предлагаю, просто интересно. например как сделать перемещения когда персонаж побегал-побегал, а потом ему например надо после удара по ебалу красиво как-то покорячится в анимации и выйти из неё в другом месте отшатнувшись. синхронизировать позицию/ротацию, включить рутмоушен на время этой анимации? как сделать хитро экстраполяцию анимаций, если например геймплей предполагает что удар регистрируется через коллизии мужыка который медленно размахивает бревном накручиваясь в рутмоушене? вроде довольно предсказуемо. или например посадка в транспорт с анимацией, как это было в первом PlanetSide.
по клику на кубик надо превратить его в шарик. Подозреваю что в OnPointerClick на кубике убивать кубик дестроем и на его месте инстанциировать префаб шарика не очень хорошая идея. Есть ли варианты лучше?Можно ли просто меш менять с коллайдером или это лишние заморочки и проще поменять префаб?
>>447176а что не так в этой идее то? как бы, зависит от того как часто ты это собираешься делать.всегда можешь лезть в MeshFilter и менять меш там. но вообще нахуй ты задумываешься о таких проблемах то? ты главное делай. просто сделай этот процесс так чтобы его потом поменять можно было безболезненно, если оптимизировать захочется.
>>447179да, нужно пояснить:кубики, это клетки на сетке поля в игре. При клике будет меняться не только цвет, а и моделька. Условных кубиков много.Вот если бы не надо было меняь модельку, а только спрайт, или цвет, я бы сделал для всех клеток стейт от енум и менял бы просто его по клику, а дальше подменял текстурку или что там. Но если надо менять модельку без изменения положения Г-обжекта и прочего, стоит ли его убивать и спавнить новый? или это дурной тон?
>>447182А моделька чо, богоизбранная?
У меня есть лист префабов. При их инстанцировании, хочу навесить на них компонент скрипта, который потом навесит на префаб другие компоненты через RequiredComp. Как можно навесить скрипт на префаб?Я знаю варианты:перетащить на каждый префаб в инспекторе.навесить при спавне через AddComponentеще есть какие?
>>447207>При их инстанцировании, хочу навесить на них компонент скрипта, который потом навесит на префаб другие компоненты через RequiredComp
>>447207AddComponent ебашь.Только ты это, префаб не очень правильно используешь, если потом компоненты навешиваешь.
>>447222ну иначе мне на каждый префаб (штук 10) придется по несколько компонентов руками вешать.спасибо, посоны.
>>447207Юнити им блядь сериализатор дала. Бери, пользуйся. Не пиши код, сериализуй в редакторе.Не хочу блядь! Хочу говно жрать по-старинке всё хардкодить.СУКИ! ГОВНО СОБАЧЬЕ!
>>447224>Не пиши кодА что тогда делать? Ассеты воровать?
посоветуйте годный бесплатный шейдер для выделения объектов. Аутлайн, или легкое закрашивание.
>>447217
Делал генерацию карты, заодно юнитов, заодно локализацию их имён и прочего текста. Очевидно, нужен свитч для языка, и похоже, удобнее всего использовать статический класс. До этого я как-то лепил только в одной сцене, и задумываться над межсценным не особо нужно было. Это не принципиально, но всё же вопрос: как лучше всего делать всякие менеджеры ГУИ и переключатели языков? Какой-нибудь статический класс или же подгружать и удалять отдельные версии для отдельных сцен?
Как остановить вращение объекта, которое задано через transform.Rotate()?
Подскажите туториал, в котором для тупых разжевываются принципы ортографической камеры. Все эти pixels per unit и тд.А то я нихуя не понимаю. В том же гамаке у камеры есть ширина, высота. У спрайтов размеры в пикселях. И все понятно.А тут какие-то PPU у камеры, спрайтов, неба и аллаха.
>>447237Гугли IoC.>>447247if (krutitsya) transform.Rotate()>>447230Я имел ввиду, не пиши код, который дохуячивает объекты с настройками в рантайме, а то уже невозможно видеть как всякие костылепидоры суют свои обоссаные жсон и хмл, лишь бы не пользоваться редактором, а всё сделать по-старинке и каждый раз переписывать код своего обоссаного захардкоженого сериализатора.>>447249Насколько помню, то если ОТКРЫТЬ ДОКУМЕНТАЦИЮ ЮНИТИ, то там все расписано за единицы измерения. Я бы за тебя погуглил, но я на мобиле сижу.Если нихуя, тогда на пальцах поясню. В юнити 1 единица пространства равна 1 метру. Когда ты импортируешь спрайт в юнити, то по умолчанию размеры спрайта становятся 100 пикселей спрайта=1 метру. Например, если у тебя спрайт 100х100 пикселей, то когда ты его кинешь на сцену, то увидишь, что спрайт у тебя займет пространство ровно 1х1 метр (1х1 единицу пространства сцены)Алсо, аноны, я пока в больнице кисну, думаю есть ли заинтересованные в том, чтобы я в прямом эфире поотвечал на вопросы про юнити? Если есть, пожалуйста, напишите сюда в какое время (по мск) вам удобно бы было, чтобы я стрим запускал? Я с работы прихожу в 19:00 по мск
>>447257>Гугли IoC.То есть не статические классы? Ясно, забавно.
>>447257> В юнити 1 единица пространства равна 1 метру. Когда ты импортируешь спрайт в юнити, то по умолчанию размеры спрайта становятся 100 пикселей спрайта=1 метру. Например, если у тебя спрайт 100х100 пикселей, то когда ты его кинешь на сцену, то увидишь, что спрайт у тебя займет пространство ровно 1х1 метр (1х1 единицу пространства сцены)Cложна.Окей, тогда так. Допустим, я делаю игру под разрешение 1920x1080.Размер ортографической камеры я выставляю в 10,8 получается (она ж там по высоте выставляется)? 100 пикселей в 1 единице = 1080 пикселей.Потом выставляю аспект в 16:9 и все в шоколаде? То есть потом после компиляции игра будет выдавать картинку в 16:9 с черными полосами если юзер выбрал другой аспект?
>>447259Про 2560х1080 и шире не забудь
>>447259Чисто технически да, если у тебя все спрайты будут иметь PPU 100, и всё, что с UI связано тоже.
>>447271А если не все спрайты PPU 100? Или надо всю графику делать под единый PPU?Просто ща смотрю курс по юнити для нубов, там чел пихает объекты в игру и играется с PPU по ходу дела.
>>447273PPU можешь ставить какой угодно, хоть 1, чтобы все единицы юнити у тебя были в пикселях спрайтов. Только потом не сосни, когда у тебя float начнёт пидорасить.
>>447274Про физику я прочитал уже, что не стоит 1 к 1 делать, если используешь физику.Я больше про архитектуру сейчас. Нужно ли все спрайты пилить под единый PPU, чтобы потом делать нормальные отображения разных аспектов без черных полос?
>>447259Ты показываешь соотношение сторон в редакторе, соотношение сторон в билде в другом месте ставится, но так и должно быть, да. Никто тебе не запрещает сбилдить и посмотреть.
>>447249Когда ж вы научитесь шапку читать? Там же есть название книги, лень скачать что ли? В книге за всё это говно расписано.
>>447284> научитесь шапку читать?> Самый надёжный способ выучить Unity - это начать делать игру и по мере разработки гуглить непонятные моменты. Нассал тебе на ебло
>>447286Понятно, читать научился, но книги кажутся слишком скучными, да?
>>447286> и по мере разработки гуглить непонятные моменты> гуглитьЛол, ну так и шёл бы гуглить, а не тут спрашивать.
>>447287Я загуглил непонятный момент ИТТ. У тебя с этим проблемы?
>>447289Тут мой гугл.
>>447290Проблемы только у тебя, раз ты сел дрочить движок, не разобравшись с его основами.
>>447292Я пришел с другого движка. И по опыту знаю, что темы с разрешениями идут во всех книгах/туториалах не сразу. Поэтому я хочу заранее прояснить некоторые моменты по архитектуре.Алсо, я обложился курсами с юдеми.
>>447293> И по опыту знаю, что темы с разрешениями идут во всех книгах/туториалах не сразуЁлы палы, а оглавление для кого придумали? Что ж это у тебя за опыт такой, который не позволяет его открыть?Да, не сразу, потому как "сразу" там написано куда вообще надо нажимать чтоб движок завёлся. А уже со второй части оно внезапно "сразу", буквально первая же глава.
>>447296Там сразу расскажут как правильно планировать игру таким образом, чтобы облегчить ебатню с разными аспектами и девайсами?
>>447297Извиняй, как замутить кнопку "сделать пиздато" не расскажут, но если IQ не двузначное, то книга даст неплохой буст.Тем более что осваивается максимум за три вечера. Это если одной рукой листать книгу, а второй чесать яйца.
>>447298Поэтому я и спросил сразу блядь советы по архитектуре. Хуле ты такой тупой?
>>447299Я ж тебе и говорю — советы-то тебе дадут, но надо понимать что советы это не панацея и не заклинание, а ими нужно уметь пользоваться. Если умеешь, то бог навстречу.
>>447300Мне достаточно было пояснения с вершины опыта насчет тех же PPU, дальше я сам разберусь.
>>447301Ну открой, полистай. С тебя-то не убудет.
>>447302Да я уже скачала.
>>447304> скачала
>>447332Я и написал, что это не критично. У меня в коде и так везде "раскрываются" модули с initialize и задачей параметров, которые затем свои модули задают, но у меня начальный модуль для всего по логике вещей не начальный, а просто генератор карты. Если переделывать нормально, то нужно будет ГУИ на две части делить (общая и конкретно для этой сцены), ивенты делить, генераторы делить, всё делить, короче. Либо же сделать статические классы для всего и хитро переключать состояния, либо же иметь загружаемые отдельно для каждой сцены "полные" версии ГУИ, ивентов и т.п., которые будут заменять собой версии из предыдущей сцены. Деление, имхо, лучше будет, ведь по логике вещей меню, консолька и т.п. в любой части программы должны быть доступны.
А как сделать чтобы сцена имела 0, 0 в левом нижнем углу, а не как сейчас в центре?
>>447275Ну, все можно и не пилить. Это же просто масштаб твоего спрайта по отношению к пространству.Представь себе картину, что какой-нибудь васян рисовал арт в сантиметрах, а другой в метрах. И чтобы другой васян не переконверчивал арт в нужные масштабы есть ppu.>>447335Я хз, мож IoC зря посоветовал, но я вот что еще вспомнил, юньку можно заставить запустить код тупо раньше всех через [RuntimeInitializeOnLoad(BeforeSceneLoad)]static void MyInit() {}
>>447341Передвинь камеру.
>>447346И правда. Спасибо.
>>447335Я вообще не пойму о чем ты, шизофазия какая-то.Сцена - это просто рут для геймобжектов, никакого отношения к консоли или к локализации или к чему угодно кроме иерархии геймобджектов она иметь не должна.Статику нормально юзать когда ты код один раз написал и забыл. А чтобы 100 раз не переписывать код каждый раз, когда ты что-то решил переделать, и придумали иок/ди.
Юнити не открывает шарп скрипты по клику, как пофиксить? Запускается монодевелоп и все, а скрипт не открывает.
>>447365Монодевелоп из коробки или с сайта качал?
>>447366С сайта. У меня в линуксе. В проводнике по клику все открывает.
>>447368> С сайтаЮнька очень плохо дружит с версиями монодевелопа, которые не из коробки.
>>447368>>447369Косяк монодевелоп какой то. Пути с пробелами не может осилить, когда по клику пытаешься открыть. Через меню если самому открывать все нормально.Погуглю может есть что.
>>447372Я на пингвине давно не сидел, но может туда студия встанет? Там-то вроде без проблем всё.
Как быстро юньку освоить, что бы на масло с хлебом хватало?
>>447374Студия может и встанет, но под вайном.А так просто попробовать решил версию юнити под линукс, чтобы все нативно было.
Анонсы, у кого-нибудь есть электронные книги по мобильной разработке на Юнити? Что-нибудь из более-менее свежого, типа "Android Game Development with Unity3D".
хочу создать игру с палочным человечком. Так же хочу чтоб анимации не были заскриптованными, хз как правильно назвать, процедурными, рагдолл? Возможно ли это сделать на юнити? Нормально ли это все будет работать если таких человечков будет 10-20 на уровне? Программировать писать быдлокод умею.
>>447380Поясню. Например человечку надо взять предмет, который может быть разных размеров, как анимировать его руки так чтобы они прицепились за края предмета? еще пример, за ручку двери, кнопку?
>>447375Можешь за щеку освоить быстро.
>>447381Anima2D, там вроде IK есть.
Существует вменяемый туториал для тупых по работе со Spine анимацией в юнити?В гейммейкере все просто, там человеческий экспорт без лишних приблуд и удобные методы.А тут что-то какой-то пиздец судя по спайновским докам.
>>447381Для этого не быдлокод писать надо, а обучать нейросеть. В открытом доступе нихуя юзабельного естественно нет, можешь только ролики посмотреть как они учатся ходить с произвольным строением тела, траверсить любые препятствия, итд.Обычный рэгдолл просто включает физику для конечностей блендом к записанной анимации.
>>447381Инверсная кинематика.
>>447359>Сцена - это просто рут для геймобжектов, никакого отношения к консоли или к локализации или к чему угодно кроме иерархии геймобджектов она иметь не должна.Поэтому я собираюсь отрезать от нынешнего ГУИ, который имеет в себе методы для работы и с текстом, и с меню, и с прочей чушью, и методы для работы конкретно со сценой, половину и перенести в новый ГУИ, который будет подгружаться только со сценой.
>>447407Сама по себе нейросеть простая как бревно, чтобы ее написать математики начальной школы достаточно (или ты легко можешь скачать самую пиздатую готовую).А вот как ее обучать - тут тебе никто оптимального рецепта не даст. Человеческий моск тупо брутфорсит все что есть, ибо может себе позволить. А компьютерную ты так или иначе ограничиваешь, и тут тебе кроме личного опыта нихуя не поможет.
>>447402очень интересно, спасибо. Только я в 3д хочу, но я думаю что это мне поможет.
>>447392на нейросеть я не расчитываю, не для одного человека работа. Думаю несколько функций написать, а для предметов поставить точки за которые и нужно браться.
>>447412>>447423А что, нейросети новый тренд уже? Много где их используют?
>>447426когда придется писать слишком сложную функцию, тогда лучше сделать нейросеть. Анимации тому пример. Посмотри анимации в ГТА на ютубчике.Еще используют для распознавания образов.
>>447423И как ты себе представляешь то же открытие двери в "несколько функций"?Твин культяпки к ручке? А если не дотягивается? Ну посчитать заранее сектор и переместить в него тушу, хуле? А как тушу перемещать? Ну астар типа в анимации движения, потом твин культяпки к ручке, и бленд в айдл для всего остального? Поздравляю, ты сделал обычную записанную анимацию +- 5 пикселей, только непонятно зачем проебался с ней в 10 раз больше.
>>447380Подкину по темеhttps://www.youtube.com/channel/UCjXtDsYCZb4mABRRlo-j5bw/videos
>>447432Попрошу сильно не придираться, мне важен сам подход, такие анимации я буду использовать не для каждого движения. Тушку будет двигаться игроком, а вот ручки нет.5 пикселей записанной анимации это когда дверь стоит четко в одном месте всегда. А если нет? А если она сверху или снизу? Под углом как нибудь? Наверное будет как ты и написал, спасибо.
>>447426джва года уже тренд.
>>447429Блядь, ну какой же ты дебил.Где ты там нейросети в анимациях разглядел, пудель?
>>447423Придурок, тебе дважды написали, что есть IK, или инверсная кинематика, но тебе же лень почитать.Ослоёбина ты тупая.
Сап, Мэйлач-Геймс.Есть одна клиент-серверная дрисня. Данные (положение в пространстве и прочее) отсылаются всем клиентам по имеющемуся списку.Все ок, все красиво.Задача - сделать так, чтобы данные отсылались только об объектах вокруг персонажа. И тут я меня рвет на части моя собственная необучаемость: что быстрее: OnTriggerEnter(создали стороннего персонажа)\Exit(удалили стороннего персонажа), или OverleapSphere, и его поэлементный !List<БылиВПрошлыйOverleap>.contain(List<ЕстьВЭтотOverleap>) (получили ушедшие слишком далеко персонажи, ручками удалили) и потом еще раз сравнивать !List<ЕстьВЭтотOverleap>.contain(List<БылиВПрошлыйOverleap>) (получили всех новых, ручками добавили)?Как делают большие мальчики? Как принято?
ребятки, откуда качать арт и модельки? opengameart знаю, но он лежит. Где еще брать, кроме ассет стора.
>>447579> качать арт и моделькитут таких не любят
>>447395>>447456только для про версии((Юнити свою написать позволит?
>>447563Формулировка вопроса у тебя пиздец.В ммо делают тупо зону интереса - квадрат, близко к ребру - 2 квадрата, близко к углу - 4 квадрата. В танчиках на серве включена физика, и на изменение любого позишна пересчитывают двухсторонний m2m кто кого видит. Чистится все и там и там на клиенте без участия сервера.
>>447670> только для про версииПоехал что ли? Я на своей халявной версии эту хрень юзаю.
>>447678читал документацию и незаметил, что она для версии 5.3
Посоны, а вы пользуетесь SerializeField для чистоты кода? Или просто юзаете public?
>>447672Благодарствую, добрый человек: твоя мать достойная женщина а отец - настоящий мужчина.Я, примерно, понимаю то, о чем ты говоришь, и даже могу несколько дополнить список примерами реализации из Battlefield (которыми все уже хз сколько обмазываются).Вопрос именно в реализации расчета кто именно вошел в "зону внимания", а кто вышел. Поясню: предполагая, что OverleapSphere (который вроде бы даже легче чем CastSphere) вызываемый нифига не каждый фикседСтеп, должен меньше нагружать, я сделал через него. Но сравнение массивов, чтобы понять кто "новенький" в зоне внимания, убивают все что только можно. Тогда как очевидно более медленный OnTriggerEnter\Exit (более сложный в плане как рассчетов, так и обработки), тормозит на порядок меньше. Подобное несоответствие моего мировосприятия и результата и вызвало вопрос: как детектить вошедшего и вышедшего из зоны внимания.
вопрос из любопытства на который я не знаю ответа. юнити же дает вызывать StartCoroutine имея ссылку на объект наследуемый от monobehaviour. я, конечно, могу сам сделать метод который бы сохранял активные корутины в лист, смотрел там все. но я же могу запускать корутины без всяких вопросов и они за три пизды могут крутится без моего ведома. как узнать список активных корутин? как узнать в какую ногу я себе выстрелил?
>>447775А обязательно сферы оверлипить или кастовать? Нельзя, скажем, задать габариты объектам, посылать эти габариты + координаты объекта всем другим объектам, и если расстояние между объектами + габариты меньше радиуса обнаружения, то считать, что объекты друг друга видят.
>>447798Я сожалею, но ты только что описал OverleapSphere().
>>447810Я в эти ваши сферы ещё не вникал, мало ли как оно устроено, если вон человек жалуется, что медленно это работает.
>>447739Я пользуюсь. И как я уже неоднократно объснял, тут суть в том, чтобы ты сука своими кривыми руками не писал код, который в тысяче мест знает какая у тебя реализация конкретного класса.Например,batya.kokushekList.Add(goveha);В этом примере у тебя любой класс будет знать, что у бати 100% есть список с говёхами. Потом, по мере разработки, тебе не понравится List и ты решишь перейти на HashSet и если кто-то будет в отдельной ветке писать всё под тот же самый List соснёт хуев при мердже, т.к. ты сменил реализацию и новый код уже не сможет встать на текущие рельсы. Также при смене реализации, тебе придётся выебать себя в очко и руками обновить тонну классов, которые перестали быть совместимы с изменениями.А вот если бы ты, изначально сделал список приватным, а на любой чих-пых завел бы отдельные методы, то ты бы мог менять внутренюю реализацию класса как угодно, не боясь, что у тебя сотни классов тупо сломаются.Думаю, что объяснил понятно.
>>447783Я бы на твоём месте использовал профайлер в ГЛУБОКОМ РЕЖИМЕ.
>>447783Гугл предлагает к каждой корутине ручками реализовывать обозначение активной корутины. Можешь добавлять в глобальный словарь (типа, <GameObject, string>) элемент, потом перед окончанием корутины его вытаскивать.
>>447775Либо я все еще тебя не понимаю, либо ты меня. Еще раз:Для ммо: у игрока изменился позишн: переслать всем кто в квадратах интереса игрока ивент что он переместился, посчитать текущие квадратыесли появились новые квадраты: передать игроку все определения из этих квадратов, которых у него еще нет в кэше, на клиенте почистить все кроме кеша в уже неакутальных квадратахвся хуйня проиcходящая в квадрате рассылается всем игрокам, у которых этот квадрат в текущихВсе. Никаких оверлапов, никаких диффов массивов.Для танчиков:определения для всех загружаются в начале матча, многие ивенты транслируются вне зависимости от зоны видимости.у игрока изменился позишн: посчитали кого он видит (тут можешь оверлап юзать если устраивает), заменили м2м на сервере, на клиенте почистили тех, кто выполз из поля зрения.вся хуйня, совершаемая игроком, транслируется всем игрокам, которые его видят, через обратный конец м2м.Все. Снова никаких диффов.
>>447820это, конечно, вариант. но вдруг корутина безобидная? например прикинь как было бы здорово выводить рядом с объектом список активных корутин. чтобы дебажить какие-то короткие события сделанные с помощью корутин. или чтобы видеть вообще что я, или кто-то, какую-то хуйню натворил а она чето там делает.>>447829дааа, это конечно вариант и я предположил его своем вопросе и я сам так делаю в критичных местах. но другие так не делают и мне самому лень эту хуйню творить каждый раз, но иногда она бывает полезна и когда она полезна то экономит кучу времени. можно конечно написать что-то вроде MonoBehaviourExtended и делать все свое говно наследуясь от него. но чёт не понравился мне этот подход, решил на дваче спросить.
>>447831>ивент что он переместился, посчитать текущие квадратыКак? Главный вопрос - "как именно".>посчитали кого он видитКак? Как видит?Главный вопрос обоих моих сообщений (сорян, я кривоумный) - каким образом реализовывать это "видит", "находится в текущем квардате" и прочее. Как сделать "видит"? Как сделать "вошел в зону"?Точнее, ок, по квадратам я могу попробовать тупо описать сетку Х и Y координат, и потом каждые 0.1f секунд сравнивать. Криво, некрасиво, откровенно геморойно в плане дизайна, но имеет право на существование.Что делать в боле продвинутом, описанном тобою случае?
вопрос от пользователя гамака по 2дво всех туториалах предлагают перемещать объекты используя физический движок, то есть задавать вектор силы и прикладывать его к объектув гамаке я привык к тому, что перемещаю объект просто прописывая ему кол-во пикселей по x и yчто-то типаplayer.x += horizontal_speed;player.y += vertical_speed;в юнити так же можно или не стоит выебываться и просто юзать физический движок для перемещений?
>>447904А почему так?Некоторые предлагают просто делать что-то вродеtransform.position += new Vector3(hsp, vsp, 0);Это правильно?
>>447908ноуп. если будешь говорить трансформу позицию то он будет игнорировать физон. трансформ отдельно, физон отдельно. юзай физон.
>>447915Благодарю
>>447818А в каких случаях юзаешь public поля? Или используешь только свойства?
>>447918В системе статов для персонажей использую свойства где только могу. Очень удобно, особенно потому, что в get можно выводить хуевины типаreturn _thisPrivateVar + (var1+var2)*0.05;Хочешь выводить приватные поля в редактор — используй [SerializeField]. А так думай, что делает переменная, нужно ли ей быть публичной, и не будет ли удобнее написать две-три функции на три строчки, которые с ней работают.Мимокрок.
>>447903Можно сделать тело кинематическим и таскать за трансформу, если тебе не нужно физически реалистичное поведение. Силы на него действовать не будут.
Производительность на мобилкахВ прошлом году один мой друг пробовал устроиться мобильным разработчиком на Юнити. Так вот, на собеседовании он выполнил тестовое задание и они его отругали за то, что он использовал foreach вместо for. Типа это сказывается на производительности, и вообще НИЗЯ ТАК ДЕЛАТЬ, плохой погромист!На мобилках действительно всё так плохо с производительностью? И нужно использовать только for, забыть про свойства и стараться запихнуть побольше логики в один метод? Мне почему-то казалось, что по-настоящему на производительность может повлиять только графика, а всё остальное - микро-оптимизации, которые нахуй не нужны.
>>447930Это уже неактуально. Старые версии mono в foreach всегда создавали объекты, даже если GetEnumerator() возвращало struct. Шизики боялись что из-за этого будет срабатывать сборщик мусора и их матч-3 будет тормозить.
>>447908> transform.position += new Vector3(hsp, vsp, 0);Ну ты пиздец. Для таких объёбаных наркоманов transform.Translate придумали.
>>447930В любом программировании доебы до любой конкретики при рекрутинге - признак днище-конторы и синдром вахтера. Тебе блять в любом случае придется его переводить считай с нуля под свои практики, никто придя с улицы не будет писать ровно так, как ты хочешь.
Создал префаб, хочу инстанциировать его без драг энд дропа. Как это сделать?С драг энд дропом я так понимаю просто.public Obj obj;Перетаскиваем префаб в паблик поле и создаем в скрипте.Instantiate(obj, new Vector3(0f, 0f, 0f), Quaternion.identity);Как сделать без драг энд дропа? Просто указав нужный префаб в коде. Погуглил, там какие-то костыльные решения из 2010 годаvar instance : GameObject = Instantiate(Resources.Load("enemy"));Есть ли человеческий способ?
>>447965>var instance : GameObject = Instantiate(Resources.Load("enemy"));GameObject go = Instantiate(Resources.Load("enemy"));
>>447966то есть все равно надо делать папку resources, пихать в нее префаб и потом загружать таким образом?просто по имени префаба не найти?
>>447965У меня такие костыли но я вообще донный//Присваивает объект по названию из папки Resourcespublic GameObject huita = Resources.Load<GameObject>("Huita");Instantiate(huita, new Vector3(0f, 0f, 0f), Quaternion.identity);
>>442120 (OP)Сап господа геймдевы, возник вопрос, в каком виде хранить диалоги и описания объектов, какие БД лучше использовать? Или лучше парсить самому из txt файликов, или собирать json'ы?мб плагины какие есть для разрабов диалогов?
>>447967Используй ScriptableObject. Или тупо префаб, который внутри хранит другие префабы по имени.У меня есть префаб Weapons. Там, где мне нужен список все префабов оружия, я задаю ссылку на него и уже из него по имени получаю нужный мне префаб.
>>447976https://unity3d.com/ru/learn/tutorials/modules/beginner/live-training-archive/scriptable-objects
Пытаюсь сделать скроллящийся бэкграунд.Запилил объект, который себя двигает и ресетит позицию когда уехал за край.Потом создаю оба объекта рядом друг с другом (зазора нет).И получается просвет пикрелейтед. Как чинить?Создаю рядомInstantiate(background, new Vector3(0f, 0f, 0f), Quaternion.identity);Instantiate(background, new Vector3(8f, 0f, 0f), Quaternion.identity);Двигаю и ресечуvoid Update () { transform.position += Vector3.left speed Time.deltaTime; if (transform.position.x < -8f) { ResetPosition(); } }void ResetPosition() { transform.position = new Vector3(8f, transform.position.y, transform.position.z); }}
>>447980Не знаю как это сделать в Юнити (там есть спрайт пакер свой). Но вот как я это делал используя TexturePacker на другом движке:Extrude repeats the sprite's pixels at the border. https://www.codeandweb.com/texturepacker/documentationЛибо ты можешь использовать только целые числа для позиции бекграундов.
>>447980один боооольшой с повторяющейся текстурой слабо сделать?
>>447985слабо, я пока еще не знаю какно проблему решилfloat xx = transform.position.x + 8;transform.position = new Vector3(8f + xx, transform.position.y, transform.position.z);
>>447980В нахлест накладывай в пару пикселей.
>>447988Костыль
>>447987И как это что-то меняет?
>>447969> new Vector3(0f, 0f, 0f)Если что, есть Vector3.zero
>>448026Компенсировал небольшой съезд перемещаемого задника
>>448048Ты сделал х+16. Я не понимаю, как это могло что-то компенсировать, если у тебя оба изображения по 8 в длину, и ты в резете делал х+8
>>448050> Ты сделал х+16нет, я сделал 8f минус нимношка
>>448052А, ну ясно. Один раз 16f не равно два раза по 8f. Классика.
>>448027Это не пример товарища который спрашиваетно за инфу спасибо
>>447980Вот за эти вот 8f в приличном обществе лопатой по ебалу бьют.Запомни: чем меньше у тебя магических чисел в коде, тем больше посоны уважают, быдло боится, а тянки текут.
>>448059Дядь, я второй день изучаю юнити, а не проект пилю.
>>448061Ну я тебе просто сразу говорю, чтоб потом не переучиваться и не привыкать заново.Стиль вырабатывается как раз в первые дни и недели.
>>448062Да я знаю, я на гм до этого пилил.Просто ща я смотрю как работают те или иные методы и не заморачиваюсь для скорости.
>>448062Блэд, похоже я выработал привычку делать все переменные public. Похоже, пора резко переучится, пока не стало поздно.к теме про SerializedField
>>448064> SerializedFieldаштоэта и почему не надо делать паблик?
>>448064Сам не так давно переучился. И даже те public-переменные, которые другие классы должны только читать, но не должны менять, делаю через посредника и ебошу get{}
>>448066У меня ментальный ступор на свойствах. Простая хуйня, но я постоянно путаюсь в этих трех соснах и в итоге нихуя не работает. Ух, чувствую "выебу себя в очко"(С), когда буду убирать public и ставить свойства. Хотя для моего "проекта" можно оставить всё в виде велосипеда из костылейи слава б-гу.
>>448066Ну и нахуя?Одно дело, когда в переменной хранится ссылка, а другое, когда какой-нибудь интежер. Делать гетсеты для интежеров случайных, когда тебе не нужно каким-то образом их реобразовывать - нахуя?
>>448068> У меня ментальный ступор на свойствахМожет просто опыта мало.>>448069> Делать гетсеты для интежеров случайныхДля случайных и не надо. А если у меня в объекте уникальный айдишник, который если поменять — всё наебнётся, то нехуй мне его менять из другого класса. Как говорится, смотреть можно, но руками не трогать.
>>448071>>Может просто опыта малоКонечно мало. До сих пор в коде юзаю около 30% херни которую не до конца понимаю. Но мне и не надо, я и не хочу бы программистом
>>448071>нехуй мне его менять из другого класса.А зачем у тебя всё на айдишнике завязано? При создании класса задаёшь айдишник, и больше его не трогаешь. >Для случайных и не надоСам говоришь пабликов бояться, сам говоришь, случайные в покое оставить.
>>448074> При создании класса задаёшь айдишник, и больше его не трогаешьЕстественно не трогаешь. Как раз потому через посредника его и расшариваю, чтоб никто не трогал. Но если надо будет его прочитать — всегда пожалуйста.> Сам говоришь пабликов бояться, сам говоришь, случайные в покое оставитьНикого бояться не надо. Если число нахуй не нужно другим классам — private. Если нужно в полном доступе — public. Если нужно в ограниченном доступе — посредники.Вот и вся кухня.
>>448077>Как раз потому через посредника его и расшариваюНахуя его расшаривать вообще? В идеале классы должны лезть только в те классы, которые были из первых классов созданы. Так тебе вообще морочиться с доступом не нужно. А раз ты создал из первого класса второй, то второй безопасно может обращаться в первый, как первый безопасно обращается во второй.
>>448078> Нахуя его расшаривать вообще?Ну например, у меня есть много объектов, среди которых есть пары, определяющиеся одинаковым айдишником. И контроллер как раз для определения пары сравнивает айдишники. Читать для этого он их должен, а вот менять — не должен.
>>448079Ну например, я для подобной херни заебошил Dictionary<ID, List<Obj>> Одинаковые объекты суются в один и тот же лист под один айдишник.
>>448085Ну это замечательно. А я вот заебошил иначе.
>>447930> на собеседовании он выполнил тестовое заданиеА не в курсе что за задание хоть было? А то я б тоже куда-нибудь пристроил свою жопу, но понятия не имею что там спрашивают и какие задания дают.
спрошу и тутТакая беда: Два монитора, 4к и фулл хд. Если перетащить окошко спрайт эдитора на второй фуллхд монитор, то он сваливает из сраного низкого разрешения, спиздив сраное окошко. Вернуть его не получается, тк это не отдельное окно в винде и перемещение не работает. Работает сброс лейаута на заводской, но не буду же я каждый раз так делать, он и мои настройки трет. Знает кто-нибдуь решение?
>>448129С такими проблемами пиши лучше сюда: https://issuetracker.unity3d.com/
>>448129У тебя окно спрайт эдитора не помещается на 4к мониторе?
>>448182нет, если перетащить с 4к на хд, то окно сваливает за границы, откуда его не достать. Решил проблему, прицепил эдитор во вкладки панелей.
Пацанва, вопрос по рейкастам. Мне, надо узнать не точку, в которую попадает луч, и пересекается ли он с определенной коллизией. Поставить к другим коллизиям игноррейкаст не подходит, т.к. они используются для других рейкастов. Собственно есть ли возможность у луча определить пересекается ли он с конкретным объектом или, хотя бы, выдать все объекты, которые он пересекает. Если есть, то как сделать? Если нет, то что можете посоветовать?
>>448228layer mask, RaycastAll.
>>448228>>448234https://docs.unity3d.com/ScriptReference/Physics.RaycastAll.htmlCasts a ray through the scene and returns all hits. Note that order is not guaranteed.
Встретил проблему, мыкался туда-сюда около часа, решил спросить в треде. Пока формулировал вопрос по самым строгим критериям местных unity-богов, нашел решение. Телепатическая помощь. Секнс.
>>447980https://www.youtube.com/watch?v=HrDxnMI7pCcне благодари.если сам уже не нашёлGetComponent<Renderer>().material.mainTextureOffset = offset; для унити 5
>>448235>>448234Я правильно понимаю, что лучше использовать layer mask в моём случае? В плане производительности.
Можете подробнее пояснить за awake и start? Они вызываются каждый раз, когда активируется скрипт или только когда это сделали первый раз?
>>448374Старт при первом фрейме, авейк при первом фрейме после создания обекта.
>>448065> почему не надо делать пабликКто то делает игры, а кто то занимается анальным фистингом называя это инкапсуляцией.
>>448370> В плане производительности
>>448370Ты в любом случае рейкастишь, но в случае без слоёв используешь свой собственный фильтр. Если несколько миллиардов подсчётов в апдейт не суёшь, то даже не заметишь, что что-то там подсчитывается
>>448376этот дело говорит. повылезают из каменного века со своим программированием, какими-то модификаторами доступа. в 2к18, лол.качаешь ассеты, хуяришь их на сцену и заебись. ну можно ещё тумана пиздануть чтоб края замылить. и всё, готово.
>>448349в следующий раз ещё схему нарисуй в пэйнте. почти всегда помогает.https://en.wikipedia.org/wiki/Rubber_duck_debuggingу меня вот на столе аниме-фигурка для таких целей!
>>448404> в пэйнтеЯ карандашом на бумаге рисую. Блок-схему ебанёшь и уже считай проблема решена.
>>448380ти так говоришь будто это не такэти охуевшие потом своё говно на фуллассетах на сторы льют, потом говорят что они начинающие инди игродел камандынет, серьёзно, пока ты, я, анон, кирилл, серега, вот мы все — пока мы сидим на дваче в юнетитреде беспокоиться о чистоте кода, да и вообще качестве своих поделий мягко говоря рановато. делай хуяк хуяк, чтобы было хоть что-то, выдумывают тут блять себе проблемы.
>>448376Я вот не могу спокойно программировать, если код мне не нравится.
Анон, либо я полный долбаеб, либо я под кислотой. Эта ебучка не хочет двигаться по велению зажатого курсора, какого хуя? Я не знаю. Спасай крч.
>>448455>This function is called on Colliders marked as Trigger if and only if Physics.queriesHitTriggers is true.
>>448456Так, блджат, что мне сделать???77
>>448457IsTrigger включи на бокс коллайдере.
>>448458Дык нихуя. Тото и оно.
>>448459Пригорает с хуйни, что в двух строчках кода ничего не робит.
Анончик, подскажи. Есть у меня 3 одинаковых плитки, на них висят триггеры. Во всех случаях их коллайдеры должны пересекаться, но OnTriggerEnter срабатывает только когда я встаю в ту, которая расположена выше всех (пикрил). Что я делаю не так? Хочу чтобы плитка лежала на полу и срабатывал триггер.Если увеличить коллайдер на плитке то всё работает, но это какая-то хуйня и смахивает на костыль.
Как прервать выполнение всех оставшихся функций через другую?
>>448480Через булеаны и если?
>>448465> OnTriggerEnter> Notes: Trigger events are only sent if one of the Colliders also has a Rigidbody attachedЕсть риджидбади на плитках?
>>448455Что это за куб и что он символизирует?
>>448486Не слушай этого, ригидбоди только на игроке должен быть (если конечно они неподвижны)
>>448501> ригидбоди только на игроке должен бытьСхуяли? Риджидбади должен быть на любом из объектов, которые будут реагировать на OnTriggerEnter, OnTriggerExit и т.д. На каком именно — вообще похуй.А так как на игроке, судя по скрину, риджидбади нет, то я потому и спросил есть ли он на плитках.
Почему Resources.FindObjectsOfTypeAll и Object.FindObjectsOfTypeAll не ищет мои инстансы скриптабл обжектов?выдает пустой массив. Как правильно искать объекты не в сцене?Или лист со скриптабл обжектами лучше сразу дополнять при инициализации каждого экземпляра?
>>448564Лучше положи эти объекты на сцену.=ДА-ДА, НЕ НАДО УДИВЛЯТЬСЯ!!!=Хочешь научу класть любой объект на сцену? Просто впихни ссылку и сериализуй её в сцене и хуяк, юнити САМА ВСЁ ЗАГРУЗИТ!!!11111111РАЗБЕРЁМ НА ПРИМЕРЕ:::Сначала ПИШЕМ РУКАМИ, ВОТ ЭТА::class SerGAYsexSIMONOV : MonoBehaviour{[SerializeField]myScriptableObject my33cmDIeCK;void Awake(){my33cmDIeCK.Suck();}}Потом СОЗДАЁМ НА СЦЕНЕ GAYmObject, вешаем скрипт SerGAYsexSIMONOV и в инспекторе просто перетягиваем наш ScriptableObject в поле скрипта SerGAYsexSIMONOV.ГОТОВО!!!!!11111111)))))И такое можно проворачивать с ЛЮБЫМ ОБЪЕКТОМ. Все ссылки, которые видит юнити на сцене, она автоматом загрузит.Только долбоёбы в 2017 году пишут свои загрузчики ассетов. Ровные пацаны ебашут референсы.На самом деле можно ещё через ассетбандлы, но для тебя сложно будет скорей всего.======ДОБРА И СВЕТА, ВАШЕМУ ДОМУ!!!======Какой же я уебан.
>>448487На кубе я ловлю касание мышки и передаю коорд. Икс в car.position
>>448586Ну начинай отлавливать где что не так.Попробуй повесить в тот же скрипт void OnMouseDown () {print ("yoba");}Если по клику мышкой тебе в консоле что-то выдаст - уже хорошо. Если нет, то проблема не в тех твоих двух строчках.
Два дэ. На player висит неактивный Laser. По нажатию кнопки он должен становится активным. Не понимаю почему выдает NullReferenceException, если я добавил Laser в инспекторе. Поиск по тэгу приводит к тому же результату. Где я проебался?
>>448585
>>448587"Еба это ты?"-нихуя. Молчит как рыба.
>>448592Собери своё говно для определения, зажата ли кнопка мыши. Если мышка двигается во время зажатия, то двигай это говно.
>>448588А если вместо> laserWeapon.SetActive(true);влепитьthis.transform.GetChild (3).gameObject.SetActive(true);тогда норм?
>>448592Ну если у тебя даже OnMouseDown не прокатывает, то тут одно из следующего (переводить впадлу):Make sure the script is attached to the game object you want to be clickable.Make sure you have an enabled colliderMake sure you have not resized or changed the position of the colliderMake sure there are no other colliders in the way. OnMouseDown() works just like a Raycast()...the first thing hit is what gets the OnMouseDown().If everything looks okay and it still does not work, delete the object and start over by adding the new object, adding the script...
>>448588Нулл референц на лазере или на трансформе возникает? Какая строчка у ошибки?
>>448594Тоже самое :(
>>448596На лазере (26):laserWeapon.SetActive(true);
>>448556Потому что игрок будет двигаться, а плитки скорее всего нет (но если да, то и на них надо). А на статичных объектах ригидбоди лишний
>>448588Судя по ошибке, он у тебя жалуется на LaserWeapon.Shot (shotSpawn), а не на сам laserWeapon. в ту сторону ковыряй. Может он shotSpawn и не видит.
>>448599В принципе поебать, если на префаб плиток повесить риджидбади и хуйнуть isKinematic.Но по-хорошему да, лучше вешать на игрока. Только вот там висит CharacterController, так что на игроке риджидбади будет так же лишним.
>>448601В данном случае shotSpawn мне не нужен и я его не использую. Я не могу понять что с ним нужно сделать что бы он мне мозг не ебал.
>>448605Либо убери, либо всовывай туда default(shotSpawn).
>>448606Первое делает метод не рабочим, второе тоже не работает. Блятьчтозанахуйсукаятупойблять.
>>448615Наговнокодил, чо. Бывает.
>>448615Мне вообще кажется странным, как у тебя это устроено. В курсе, что если скрипт прикреплён к объекту, то геймобжект можно по gameObject вызывать?Как варианты: ты забыл сохранить скрип, нужно перезагрузить юнити, возможно, ты всунул не тот лазер.
>>448585так, падажжи, еманато есть я не смогу собрать себе лист ассетов, если на них нес ссылки из сцены чтоли?
>>448622>>В курсе, что если скрипт прикреплён к объекту, то геймобжект можно по gameObject вызывать?Как это правильно загуглить?
>>448629А похуй. Просто поменяю логику игры. Будет у меня спецабилка на Q.
>>448629http://docs.unity3d.ru/ScriptReference/GameObject.htmlhttps://docs.unity3d.com/ScriptReference/Component-gameObject.htmlЕсли у тебя есть объект на сцене, и ты лепишь к нему скрипт (через AddComponent, например, или же если скрипт заранее прикреплён), то через transform и gameObject можно вызвать те Transform и GameObject, к которым прикреплён скрипт.
>>448603> вешать CharacterControlleор
>>448635Ор ором, но на скрине >>448465 именно он.
>>448632Благодарочка
Скажите, как Юнити сочленяется с Гудини?
Есть 2 объекта. Один создает второй и хочет получить от второго его высоту используя публичный метод.Получаю ошибку >unity object reference not set to an instance of an objectСкрипт родителя.public Slot slot;void Start () { Slot s = Instantiate(slot, new Vector3(0f, 0f, 0f), Quaternion.identity); print(s.GetHeight());}Скрипт детенышаpublic Sprite[] icons;private SpriteRenderer spriteRenderer;void Start () { spriteRenderer = GetComponent<SpriteRenderer>(); spriteRenderer.sprite = icons[Random.Range(0, icons.Length)]; } public float GetHeight() { float height = spriteRenderer.bounds.size.y; return height;}ЧЯДНТ?
>>448788Засунь детёнышу в Start() print или Debug.Log и посмотри, когда он будет выполняться
>>448635>>448637Риджидбади нет нигде, на персе висит чар контроллер я нуфак и читаю unity in action, не бейте лучше обоссыте. Пробовал вешать и туда и сюда, ничего не меняется.Суть-то в том что плитки все одинаковые, но на одной триггер не срабатывает, а на другой которая расположена например на 10 пикселей выше - срабатывает, хотя коллайдеры должны пересекаться в обоих случаях.
>>448791Да, видимо не успевало создать там че-то.
Псоны, нубский вопрос.Вот есть у меня класс Pushka, в котором есть поле (или свойство?) private damage. И вот создаю я класс OhuennayaPushka и наследую его от Pushka, а не от MonoBehaviour. Правильно ли я понимаю, что пока я не сделаю damage публичным (а не приватным, как он сейчас) моя OhuennayaPushka не будет знать что это за дамаг такой?
>>448881protected будет "видно" в наследуемых классах, public видно отовсюду, private только из самого класса.
>>448882> protectedТочно. Спасибо, братишка.
>>448881
>>448927Что, пацаны, аниме?
>>448928Чмо, пацаны, аниме.
Наконец-то закончил (почти) генерацию карты, и теперь нужна камера. Стрелочками и мышечкой запилил, но теперь нужно сделать границы движения камеры. У меня есть карта, состоящая из отдельных гексов, которые сами из чего-то состоят. Как мне весь размер карты найти, чтобы камера не могла сбежать из определённого радиуса от ближайшего гекса?
>>448993что за странный вопрос. ты же сам свою карту генерировал, сам и знаешь как из неё извлекать что-то.
>>449044Что странного-то? Мне нужно как-то слепить все гексы на карте в одну фигуру и забрать из этой фигуры габариты. Это вообще возможно? Можно, конечно, искать ближайший гекс к текущей позиции камеры, но как-то по-нубски это выглядит.
>>449052сам факт вопроса. как будто твой генератор генерирует пустоту, или белиберду в которой ты сам ничего понять не можешь. просто взять минимальные и максимальные позиции вертексов по нужным тебе осям тебе не нравится что-ли?
>>449059Это предполагает, что карта прямоугольная. В общем-то так сделать тоже вариант, но я много в каких играх видел, как камера привязана к ближайшей "твёрдой" точке, а не к минимуму и максимуму.
Юнитаны, что это я сломал? Освещение?
>>449066мож у террайна дубликат?
>>449081Та не, один-одинёшенек.
>>448927Ой, иди на хуй отседова.Сегодня ты не позаботился о чистоте кода, а завтра городишь проект из костылей, которыми управлять становится невозможно.https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%B4%D0%BE%D0%BB%D0%B3
>>449106Каким образом private или protected чище, чем public? Я-то думал, они разное количество байтов занимают или что-то вроде.
>>449165Мать твою ебал.
>>449165Заебали, блядь.https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D0%BA%D0%B0%D0%BF%D1%81%D1%83%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)
>>449165> Я-то думал, они разное количество байтов занимают или что-то вродеВелики познания твои, странник.
>>449165>разное количество байтовТы вообще хоть час уделил ООП в шарпе?
>>449213Нет, я просто по наитию ебошу.>>449210Так что, это всё просто затем, что великие умы постановили так делать?
>>449214> Так что, это всё просто затем, что великие умы постановили так делать?Тебе выше уже давали ссылку на статью про инкапсуляцию. Если ты не можешь её осилить, то у меня для тебя плохие новости.
>>449215Ты сам-то понимаешь, нахуя это нужно, ммм? А то сдаётся мне, что ты просто как все делаешь без понимания сути.
>>449217> Ты сам-то понимаешь, нахуя это нужно, ммм?Для защиты данных, прикинь.Но ты не задумывайся об этом, смотри дальше уроки на ютубчике и двигай ассетики по сцене.
>>449218>Для защиты данных, прикинь.Для защиты от кого, от тебя самого? Ты что, настолько себе не доверяешь, что тебе нужна инкапсуляция, чтобы по соседним классам методы для работы с этим классом не распихивать? Серьёзно?
>>449221Это траленг тупостью?
>>449221Ты небось оголённую проводку изоляцией тоже не обматываешь, да? Ну а чё, не доверяешь себе что ли?
>>449217Ну ты и кретин. Тебя носом ткнули куда пойти почитать чтобы не завадавать дебильных вопросов. Твое предположение про байтики - вообще оскара стоит. Можно ради лулзов в шапку добавить. Модификаторы доступа нужны для (внезапно) модифицирования доступа. Если ты хочешь унаследовать свойство - protected, если свойство нужно только этому классу или на нем завязано поведение класса - private, если тебе нужно использовать свойство из других классов - public. Место в памяти занимает само свойство, а не модификатор доступа к нему. Опять таки, я описал очень поверхностно и не совсем правильно, пиздуй читать основы блядь программирования, а не строй из себя идиота, но можешь и построить, это-же двач.
>>449225Да он тралит просто.
>>449221>от тебя самогоВнезапно - да. Ну в том числе и себя.
>>449222Ооо, мемасы пошли.>>449224Тут вопрос не в том, уебёшь ли себя током, а в том, не пойдёт ли ток не по тому проводу. Даже с изоляцией риск будет, так-то.>>449225То есть это разделение не несёт прямой практической пользы, а только косвенную (и весьма сомнительную). Всё ясно с вами. А сколько гонору-то, спрашиваешь, тут же начинают "ыыы бля да у нас на раёне за такое убивают!" Вообще охуеть. Лепят и не задумываются, нахуя оно надо.
Ребят, перетащил инвентарь из Джейсона на скриптабл обжекты. Прикольно, офигенно. Но можно ли как-то сделать, чтобы если ты редактируешь объект в кастомном эдиторе, при изменении одного значения, можно было бы автоматом менять и другие, не выходя в плей мод? Пока что я вижу вариант только через кнопку, типа ApplyChanges, нельзя ли как-то на лету? Например я добавляю элемент в лист, и в другом листе у этого-же объекта добавляется определенный другой элемент.
>>449229Понятно.Как я уже говорил — двигай себе ассетики по сцене и не отвлекайся.
>>449230есть там что нибудь типа OnValueChanges() или подобная хурма?
Представляю за сколько секунд этот грамотей сломал бы движок, будь в монобехэвиоре и далее по цепочке все переменные публичными.
>>449231Ага, не признаёт авторитет стариков непререкаемым - значит, ассетики двигает. Да ты совсем тут зажрался. Небось, по 300к в секунду зарабатываешь, да? Молодой успешный специалист в молодой динамично развивающейся компании?
>>449235Не не, тут тебе ничего не обломится.Говорю же — проходи, не задерживайся. Ты не на лекции.
>>449182Что ты мне тут своей библией размахиваешь. Лучше прочитай как люди делают игры на самом деле.https://godotengine.org/article/how-actually-make-your-dream-game
>>449237> I didn't become rich (yet :D) making gamesАвторитетно.
>>449233Наоборот, вопрос в том, насколько бы всё было проще. Ты пробовал нормальные кнопки в юнити сделать? Это же кошмар просто. Или эти рейкасты, которые просвечивают сквозь УИ всё под УИ? Вот и лепишь велосипеды с костылями, только бы подальше от стандартного набора фич отбрехаться.
>>449239> Вот и лепишь велосипеды с костылямиА ты не лепи, а документацию читай. Методы есть на любой случай жизни, просто о них не знают даже те светлые умы, что на ютубах свои "уроки" ебошат, а сами кроме трансформ и ротейт нихуя не знают.
>>449240>А ты не лепи, а документацию читай.В соседнем треде (или вообще на политаче) про собеседования программистов было такое. Мол, не знаешь хуйни, которой в жизни вообще ни разу не пользовался и не воспользуешься, ведь другие способы и роднее, и лучше - значит, плохой, плохой программист! Зазнались вы, батенька. Вот объективно - плохие ли стандартные фичи юнити? Ну, понятно, что хоть что-то лучше, чем ничего, но всё же.
>>449238>Despite being the lead developer of Godot, I have almost 20 years of experience developing and shipping games, and a decade of experience as technical consultant.
>>449241> плохие ли стандартные фичи юнити?А я только про стандартные и говорил. Их до сраки, просто не на поверхности лежат.> про собеседования программистов было такое. Мол, не знаешь хуйни, которой в жизни вообще ни разу не пользовался и не воспользуешься, ведь другие способы и роднее, и лучше - значит, плохой, плохой программистНу собеседования — то отдельная тема. Тут смотря на кого попадёшь. Бывший одногруппник говорил что ему замечание сделали из-за того, что он фигурную скобку с новой строки в коде открывает.
>>449243>А я только про стандартные и говорил.А что, ещё и продвинутые есть? Я как бы про не модифицированные самим пользователем (или велосипеды) фичи говорил. >Их до сраки, просто не на поверхности лежат.Например?
>>449238Разве НИИ пердуны в 90-х придумавшие анально огораживаться от всего мира инкапсуляцией богатые?Гора денег на твоем творении никак не выставляет тебя как опытного разработчика а во времена говностартапов это должно быть особенно очевидно. Автор статьи создал опенсорс движок, создал вокруг него сообщество, сделал десяток игр и имеет огромный опыт в игровой индустрии и смежных направлениях. Но для кириллов итт критерием профессионализма программиста конечно являются деньги.
>>449244> плохие ли стандартные фичи юнити?> А что, ещё и продвинутые есть? Тебе виднее, ты же спрашивал.> Например? Недавно вон кто-то (может ты, лол?) лепил здесь велосипед, чтобы обработчик клика мышки срабатывал только тогда, когда курсор не перекрывает UI. Пердолился с рейкастом, определял во что рейкаст упрается, пыхтел и пыжился, а мог бы всего лишь прописать EventSystem.current.IsPointerOverGameObject () и готово. Узнал он об этом слишком поздно, велосипед выбрасывать было уже жалко.Или вот ещё один тут целый трактор изобрёл для сортировки геймобджектов по расстоянию относительно объекта. Там такое нахуевертил, что глаза болели.А можно было сделатьIOrderedEnumerable<T> OrderByDistance<T>(T[] array, Vector3 point) where T:Component { return array.OrderBy (x => (x.transform.position - point).sqrMagnitude); }и пиздец.Много чего удобного зарыто.
>>449245>сделал десяток игрЕсли ты не поленишься и решишь загуглить, что он сделал, то увидишь, что он по сути был КОНСУЛЬТАНТОМ ПО ТЕХНОЛОГИИ, а не разработчиком какого-нибудь говна.МАМ, Я АПИ НАИЗУСТЬ ЗНАЮ, МАМ
>>449248Если ты сможешь в пару глав статьи, то будешь менее похож на умственно отсталого.
>>449247>обработчик клика мышки срабатывал только тогда, когда курсор не перекрывает UIЯ такой велосипед собрал ещё полгода назад и очень счастлив, что сделал его. Никакой ёбли с юньковским сумасшествием. И весь пердолинг заключался в гугле - и это для меня, который в жизни раньше не программировал. Предпочитать своё удобство юньковским заводским костылям - ну уж извините.https://docs.unity3d.com/ScriptReference/EventSystems.EventSystem.IsPointerOverGameObject.htmlПосмотри внимательно на это и скажи, кто и в каких условиях мог придумать такой дизайн для определения, UI это или нет под мышкой.
>>449250> Никакой ёбли с юньковским сумасшествиемАж целая одна строчка, какая жестокая ебля.
>>449251Ну, может быть и не жёсткая, но в целом удобнее воспринимать и УИ, и объекты на сцене, как предметы одного класса.
>>449253Ну то уже такое. Ты просил пример, я его привёл. То, что оно тебе не нужно и не привычно — это уже твоё дело.
>>449230Кастомный инспектор пиши.https://unity3d.com/ru/learn/tutorials/topics/interface-essentials/building-custom-inspector
Антоний, поясни что за дичь ебаная!?Делаю простые вроде бы вещи:Есть некий WeaponBehaviour : MonoBehaviourИ есть вот такое, чтобы сделать мини-БД привязки пребафа с этим WeaponBehaviour к строковому ID[Serializable]public struct WeaponPrefabConfig // похуй, что struct, что class делал{ public string Id; public WeaponBehaviour Prefab;}[CreateAssetMenu(fileName = "WeaponPrefabsConfigAsset", menuName = "Beehit/WeaponPrefabConfig", order = 1)]public class WeaponPrefabConfigSO : ScriptableObject{ public WeaponPrefabConfig[] Weapons;}После я в редакторе создаю из этого WeaponPrefabConfigSO ресурс, заполняю его (пока что всего 2 элемента) и делаю на него ссылку еще в одном моно. И вот к моменту ссылки на этот ресурс он УЖЕ может стать каким-то "поломанным"/не валидным и ссылку на него дать нельзя. Возвращаешься к нему в ресурсах, а инспектор при его выделении ничего не показывает. А может и все будет работать пока не запустишь игру и только тогда все слетит. Какой-то полный рандом в этом отношении.Есть предположения что за..?
>>449347быстрофикс:пробовал на 2017.1 и 2017.2
>>449347Попробуй Save Project сделать.Я нихуя не понял, что у тебя слетает.
>>449263это понятно, а как в кастомном инспекторе подхватывать изменения на лету?Там же только OnEnable есть. Для того, чтобы запустить метод какой нибдуь, надо или туда пихать, или кнопки городить.
>>449397можно ли как-то свойство или индексатор сериализовать в кастомном инспекторе?
>>442120 (OP)Нуу всё, можно вкатываться. Наконец-то хоть что-то нормальное добавилиhttps://youtu.be/Fi9dHD7TTpY
>>449421Обновился, пошёл обмазываться.
Есть спрайт оружия на персонаже для анимации. Хочу из него сделать иконку для инвентаря, для этого надо сдвинуть рамки у спрайта( сделать меньше). Ручками для каждого предмета делать не хочу, хочу программно. Есть инспектор скриптабл обжекта с предметом, есть два спрайта, начальный(для анимации персонажа, то что пойдет ему в руку) и тот, который хочу получить, на него в инспектроре превью прилеплено. Пытаюсь создать второй спрайт от первого так:SpriteIcon = Sprite.Create(SpriteOnPlayer.texture, new Rect(0, 0, SpriteOnPlayer.textureRect.width, SpriteOnPlayer.textureRect.height), new Vector2(v1, v2), 100, 0, SpriteMeshType.FullRect, new Vector4(border1,border2,border3,border4));непонятные переменные задаю ползунками пока для наглядности. Ничего не выходит, как обрезать сраный спрайт?все
>>449519Сделай отдельный спрайт-превьюшку и не еби сам себе мозг.
Эй, девелоперы, свеженький курс плюраслайта(лежит на персии) полная хуйня или для вкатывания норм?
>>448993>>449052А вот и смежный вопрос подъехал.Допустим, я хочу подсветить границы какого-то поля из гексов, причём только внешние. Как взрослые дядьки это делают? Первая мысль - разделить гекс на 6 "стенок", собрать подсвечиватель, который будет высчитывать, граничит ли гекс стенками с другими гексами из группы, и если нет, то подсвечивать не граничащие стенки.
>>449545> Первая мысль - разделить гекс на 6 "стенок"Правильная мысль.
Перекатывайте тред, геи.
Перекат >>449619 (OP)
>>448788>Есть 2 объекта.
>>448595Ебаная хуйня не хочет видеть нажатие, што не так анон.
>хуюнити>лучшийУ моего друга Шалфея есть возражения
>>451487Функцию в апдейт вызови.
>>451487Я долбаеб, здесь дело в onMouseDown(), должно быть OnMouseDown().>>452750-кун
Посоны, у меня такой вопрос.Делаю мобильную игру по классической схеме с выбором уровней, которые различаются лишь декорациями/набором противников/доступным оружием (примерно как Angry Birds).Разумеется нелогично было бы на каждый уровень делать отдельную сцену.Как лучше организовать сам проект? Я так понимаю, что у меня будет 3 основных сцены: стартовый экран, экран с выбором уровня и сам уровень.Соответственно, в сцену с уровнем мне нужно будет подгружать параметры: доступное оружие, фоновый спрайт, время и место появления врагов. Как это правильно сделать? Можно ли хранить набор параметров в отдельном массиве в контроллере (или в файле конфига) и при клике передавать в загружаемую сцену? Есть в Юнити какие-то нативные возможности?