24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
На 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 лицензию.
- Движок Если ты уже умеешь использовать язык, то можно приступать непосредственно к изучению движка. Крайне рекомендется купить/скачать книгу 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 - это начать делать игру и по мере разработки гуглить непонятные моменты.
Ну и для затравки. Попробовал Unity ECS, выглядит весьма охуенно. Помимо очевидных профитов от разделения логики и данных, завезли оптимизон и многопоточность. Пикрелейтед 50к кубов летают туда-сюда, 40 фпс в редакторе на пеке из 11 года.
>>505729 Не думаю что для моих проектов это даст какой-то буст производительности, у меня в основном всё графика съедает. Это скорее для каких-нибудь ртс лучше всего подойдет
У меня какая-то чертовщина творится с Юнити. Когда я в Scene-окне двигаю мышкой Именно в самом окошке со сценой - в профайлере увеличивается количество объектов и с невероятной скоростью растет память на текстуры, в результате если не замечать это юнити пожирает всю память и крашится. И это даже не запуская игру, всё происходит в эдиторе. В чём может быть проблема, как такое дебажить?
Сейчас проверил - такое происходит только если выбрать shaded мод для отображения, любой другой вид решает проблему, что довольно странно, потому что по логике Shaded Wireframe должен быть еще тяжелее, потому что там и текстурки отображаются и каркас, но в нём тоже всё работает как надо, вроде. Какой-то пиздец.
Просто пиздец, просто пиздец, как же заебался ковырять это говно, webgl - это хуже червя пидра, опарышный гной. Блядь. Баг на баге и багом погоняет, через раз собирается , ебля в анальную жопу, только но на бете оно сука заработало и только с выклчюенным pre-build engine. И все равно я не могу заставить эту блядскую ссанину работать с вебсокетами. Пидорский плагни из ассет стора высылает сообщение в виде хуйни которую сервер не распознает, пока сам не поправил с помощью джаваскрипт говна, а почему я вообще должен шкварится об эту динамодрысню вместо номрального апи белого человека? Теперь же имею возварт ноля на любой сокет инсансайди от чего моя жопа воспаляется еще сильнее.еще чуть-чуть и я здаюсь.
>>506941 Ну я вообще-то сижу на стандалон сборочке и в хуй не дую, но тут парни попросили веб-версию, ну а почему бы и нет, тем более что юнити якобы поддерживает, и мне все заебись, крмое блядь ебанойсукаврот сети, кто ж знал что там ЛОВУШКА?. Кроме того, это вышло случайно, мне просто захотелось собрать трейды с разных бирж для более удобного отображения, а так как я нихуя не умею, юнити был единственным возможным варинатом для меня в реализации задуманого.
>>506971 > парни попросили веб-версию, ну а почему бы и нет За такое "попросили" обычно деньги берут, а не "почему бы и нет". Но то уже сам смотри. А вообще, судя по твоим видосикам, ты и правда на юнити зря полез, не для этих задач этот движок. Но если осталось только сточить пару напильников, а всё остальное уже написано, то перелезать уже поздно, да.
Господа, есть ли какие-либо варианты google protobuf, чтобы заработало на ios с il2cpp (а то System.Reflection.Emit и не планируется поддерживать в il2cpp на сколько я понял)
зря новый тред создали, теперь его же школьники видят.
>>506983 в итоге не нашел где спиздить. хотел сделать быструю растеризацию капсул на смену текущей хуевой. репу почесал-почесал, заимплементил альтернативную версию с обычной геометрией. вышло хуево. потом репу ещё почесал-почесал, поискал в гугле, нашел чуть получше, но как всегда квадратные корни и деление всё испортили. решил спиздить из анрила - там нет, а те места которые меня интересуют написаны лет 10 тому назад. сегодня весь день думал над этим, заимплементил теперь уже вариант со скриншотика. авесоме. оптимизону накатить так будет как минимум в 6-7 раз быстрей теущего.
>>506985 да я забыл как тот сайт называется с регистрацией раз дохуилион лет.
>>506971 стоит сказать что ты занят чем-то мистическим и мне интересно что происходит там что ты показываешь
Почему у юнити текхнологиез https://github.com/Unity-Technologies такой засраный гитхаб, это норма? Всё в говне просто. В говнище стены, небо, аллах. Всё в говне. Эталон засраности, имхо.
Всем привет. Подскажите пожалуйста, как в Юнити сделать реалтайм текст, как текстуру на 3д модели? Пробовал искать в интернетах, нашёл только как тупо поверх сделать, а не с наложением на модель.
Как декали с грязью типа пикрелейтеда запилить? Нужна прозрачность, как fade в стандартном шейдере, но фейд тени не принимает. Неужели до сих пор не завезли?
>>507274 Ну да, там можно нодами в блупринте напихать хоть сотню текстур в один материал с какими захочешь преобразованиями. Никакие декали не нужны. Потом всё, что нужно, объявишь переменными и дёргаешь из игровой логики. Тут кровь по полу, там моча по штанине, на крыше снег или дождь. Некстген, епта.
>>507283 ну собственно они пилят свой визуальный редактор шейдеров, его даже можно попробовать, но он пока дико глючный и не стабильный
>>507274 там все блюпринтами. потыкал ноды, порисовал переходы, посмотрел что получается на каждом шагу. в юнити же пока приходится таки кодить, а кодить шейдеры можно только если понимаешь как оно работает, что весьма проблематично для человека первый раз столкнувшегося с шейдерами
У меня вопрос по архитектруе, есть одна биржа которая прислает данные, данные могут иметь различные каналы, trade, ortderbook и тд (пик 1), вполить до десятка. Для каждой такой хуйни у меня создан евент. Но по каналу могут идти различные данные, десяток торгуемых пар. В итоге на канал подписывается скрипт как такого рода скрипты правильно обзывать, скрипты которые имеют контроль над дрпугими скриптами?, и когда скрипт принимает данные с евента, пытается в словаре найти нужный подскрипт( пик2), и запиздячить ему данные. В общем мне не очень нарвится то что на каждый сука трейд нужно продрачивать словарь. А в случае феникса(биржа такая), нужно дважды продрачивать словарь. Первый раз продрачиваение происходит во время получения данных с вебсокета, ибо сам вебсокет имеет каналы, например BTCUSD trade это 1, а BTCUSD orderbook это 2, вот и выходит сначала продрачиваем словарь чтоб понячть кому вообще данные предназачены с вебсокета, потом уже отсылаем евентом, ну и там еще раз. Тут дело еще в том, что в основном на евент подписан один скрипт, а значит поидее вместо евента можно было бы напрямую по ссылке передавать данные, стоит ли сэкономпленный перфоманс выделки. И вообще, сильно ли евенты нагружают систему? Во время мощных мувов, на всех парах начинается ад, сотни сообщений в секунду по всем каналам. Но слабое место кажется в этом всем это десериализация, так как там есть ебанутые модели(пик3), замечал как иногда профайлер подспайкивал в функции парсинга сообщений с вебсокета. Но большую часть перфоманса в аднный момент жрут апдейты ректТрансформов, так как визуализхация с помощью них, а делать текстуры с помощью шейдеровя не умею. ПК бояирн может проявить смекалочку с многопоточностю и костылями а вебблядь точно соснет. Хуй знает, пока что работает вроде и заебись. Может я просто идиот .Возможно в будущем стоит осилить шейдеры, так как это снимит нагрузгу с СПУ и даст возможность строить горзонтальне профили объема, в том числи и реалтайм.
>>507111 >стоит сказать что ты занят чем-то мистическим и мне интересно что происходит там что ты показываешь
Ну короче с сообщения выше должно быть немного понятно что это торговый терминал и просто удобноя визуализация биржевых торгов уровня АНАЛОГОВНЕТ. Я решил поискать золотой грааль в тихом доме, но пока что нашел хуев в рот. Ну нет, конечно, некоторые вещи выглядят совсем по другому и мысли соответствующие мы в матирце и выхода отсюда нет(пик4, пацаны высыпали 10% supply коинов [STRAT/BTC], а цене похуй, она вверх идет, это говорит о том что там были мощные ордера на покупку, аккумуляция короче) и как следствие мощный памп. А стандартные свечки на чарте не учитывают объем на продажу или покупку, они просто отдают свечки с суммарным объемом. На чарте эти столбики выглядят зелеными, ведь цена то идет вверх. Но такое далеко не всегда. В общем мой порыв сугубо исследовательсий.
>>507463 Ну и что за хуйня. Понял, что делать через плагины эти андроидовские. Ничего сложного, на джаве там хуе-мае, саунд пул и все такое. Но проблема в том что даже пример из документации (https://docs.unity3d.com/ScriptReference/AndroidJavaObject-ctor.html) не создаёт экземпляр чертовой строки. Возвращает Null все время. Что не так я делаю?
Честно пытался в это ваше юнити после уича. Что могу сказать, движок пригодный конечно, простой, но в то же время много чего не хватает и много надо писать самому, либо покупать.
Вот это меня насторожило. То есть то, что я имею в уече мне нужно купить здесь, а так конечно если нет видяйки хорошей, юнити вполне пригоден для игр под мобилки самое оно, но мобилки должны быть 10К-15К+, не для дешёвых моделей, где нехватка ОЗУ и места на карте памяти.
>>507590 >Юнити - 1,5 годных игры >УЕ4 - несколько десятков Найс стори бро.
На самом деле не хейта ради, сам начинал с юнити. Однозначно лучший движок для начинающих разработчиков и простых проектов, но нужно понимать, что однажды тебе в любом случае придется вырасти из него и переходить на УЕ4 или КрайЭнджин.
>>507601 И какой бюджет у этих десятков? И какой бюджет в /гд/? Если ты хочешь на успешной галере делать ААА, то надо идти джуном устраиваться, а не часы делать.
>>507607 >И какой бюджет у этих десятков? Не больше, чем у тех 1,5 годных игр на Юнити, а то и меньше. >И какой бюджет в /гд/? А уровень /гд/ это твой максимум? Печально если так. >Если ты хочешь на успешной галере делать ААА В твоём мире есть только инди и ААА? Не сложно жить в мире где всё только черное и белое? Или подростковый инфантилизм еще в жопе играет?
>>507601 >однажды тебе в любом случае придется вырасти из него и переходить на УЕ4 или КрайЭнджи Ты так говоришь как будто все инди вырастают в ААА, достают из жопы многомиллионные бюджеты и основывают студии
Переписал чутка, пишет что: 1.error CS1061: Type `UnityEngine.GameObject' does not contain a definition for `isActiveAndEnabled' and no extension method `isActiveAndEnabled' of type `UnityEngine.GameObject' could be found. 2.error CS0131: The left-hand side of an assignment must be a variable, a property or an indexer Так ну смысл понятен, допилить осталось. Эххх 3й час над таким простым скриптом сидеть, это боль однако..
>>507646 >Там другие кнопки управления И чо? У тебя игра должна хранить инфу о своём режиме работы. И если режим поменялся, нужный интерфейс сам должен это обнаружить и включиться/выключиться.
>>507662 Пиздец говнокод. А что будет, когда ему понадобится третий canvas? Почему нельзя сразу правильный код советовать? Или это такое тонкое устранение потенциальных конкурентов?
>>507656 Не слушай его советов. Заведи себе перечисление enum huipizda {Peshkom, VMashine, VSamoliote, VPizde, VAdu} затем переменную huipizda GdePlayer; затем в Start() установи значение GdePlayer либо по умолчанию для новой игры, либо загрузи из сохранения. Затем сделай массив канвасов и опрашивай их в цикле одной строчкой: Canvas(i).gameObject.SetActive = (i == GdePlayer);
Поясните по лицензиям. Как я понял можно разработать игру на бесплатной версии, купить 1 месяц подписки plus, выпустить игру и отказаться от подписки. Так ли это?
>>507844 А теперь ты представляешь себе локацию опенворлда, где сотня разных объектов в одно время обращается к разным полям для получения данных и теряешь сознание вместе с оперативкой и диском.
>>507853 >купить 1 месяц подписки plus Размечтался. Минимум 1 год покупаешь. Просто ты можешь выбрать, выплатить всю сумму сразу, либо платить ежемесячно.
Наебать их вполне можно. Но, блять, если ты зарабатываешь больше 100к-200к в год на игре, неужели тебе тяжело купить лицензию? Тем более ты наверняка подключишь Юнити Адс.
Обратите внимание: использование Unity Personal ограничено.
Если годовой оборот вашей компании составляет больше 100 000 $ или же если вам удалось привлечь на разработку более 100 000 $, вы не имеете права использовать Unity Personal, будь то для прототипирования или в иных целях — см. наше Соглашение с конечным пользователем.. Вы можете воспользоваться версией Unity Plus для компаний с годовым оборотом до 200 000 $ или Unity Pro без ограничения дохода или привлечения финансирования.
Помогите нубу, юнитаны: есть префаб тайла из которого строиться поле, со скриптом который по клику меняет спрайт на другой. В итоге все тайлы инстанциируются, на них есть скрипт и коллайдер, ничего никуда не съехало, но на некоторых тайлах скрипт не работает, или работает не с первого клика. Что это может быть? Вот скрипт, собственно: [CODE]public Sprite [] spriteStates; private void OnMouseDown() { gameObject.GetComponent<SpriteRenderer>().sprite = spriteStates[1]; } private void OnMouseUp() { gameObject.GetComponent<SpriteRenderer>().sprite = spriteStates[0]; }[/CODE]
>>507975 Вообще OnMouse использовать плохая идея, он будет срабатывать даже сквозь UI, который накрывает объект, лучше сразу всё делать через: using UnityEngine.EventSystems; public class ClassName: MonoBehaviour, IPointerClickHandler { public void OnPointerClick (PointerEventData event) { //if (event.button == PointerEventData.InputButton.Left) {} } } Тогда даже коллайдеры вешать не придётся, только на камеру надо будет навесить Physics Raycaster
>>507986 > он будет срабатывать даже сквозь UI, который накрывает объект Проверка в одну строчку и никаких проблем void OnMouseDown > { > if (!EventSystem.current.IsPointerOverGameObject ()) > { > ... > } > }
>>508001 Ты можешь сколько угодно витать в своём школоманямирке, но ECS - это подмножество ООП, просто у него вместо наследования СУБД с таблицами-полями-запросами. Ща боевые картиночки полетят от тупорезов. 3... 2... 1...
>>508051 Только вот в ECS физически не может быть "сотни разных объектов". Там есть системы, по одной на каждый тип поведения (подвинуть персонажа, отрендерить персонажа и т.д.), которые итерируют через лежащие линейно в памяти сущности.
>>508027 Я сразу начал на хардкоре, уже две недели перетаскиваю проект в Pure. Вроде Entity Debugger хватает, чтобы понять, что происходит. Для всего остального есть студия.
>>508092 Я тоже начал с пюре, но потом понял, что у них из готовых компонентов только позиция и рендерер, а мне и анимации нужны, и коллизии, и куча всего. Кстати, а как совместить гибрид и пюре? https://pastebin.com/DC9NUv97 Гибрид выдирает компоненты через GetEntities<State>(); где State это класс с компонентами. В пюре надо [Inject], но оно нихуя не работает с классами-потомками MonoBehaviour (типа того же Animator) и кушает только структуры от IComponentData. Я плохо представляю, как это работает под капотом, нагуглить способа совместить обе системы как-то не получилось.
>>508129 Я особо не разбирался, как гибрид работает. Вроде там ecs компоненты обернуты во wrapper, который уже наследуется от monobehaviour. >только позиция и рендерер А мне пока больше и не надо, потом буду в день релиза новых фич их прикручивать. Все равно лучше, чем перекатывать проект после, потому что после надо будет больше работы по переписыванию кода сделать.
Пытаюсь создать аккаунт разработчика в аппле, а он мне постоянно выдаёт ошибку, что у меня двухфакторная защита отключена. Как это пофиксить? Это может быть из-за того, что нет ни одного устройства связанного с аккаунтом?
>>508318 Ну вот, обиделся. Погромирование для начинающих я читал, но мне все еще интересно, почему ты считаешь, что итерировать по данным, лежащим в неуправляемой памяти друг за другом, хуже, чем по объектам, разбросанным как придется в куче. У тебя какой-то другой процессор с каким-то другим кэшем?
>>508355 Потому что не всем объектам всегда требуется обращаться ко всем системам? Как думаешь есть разница между тысячей мульёнов стационарных объектов, которые через ивенты обращаются к системе движения, когда захотят подвигаться, и системой, которая постоянно опрашивает энтити не собрались ли они идтинахуй?
>что итерировать по данным, лежащим в неуправляемой памяти друг за другом, хуже, чем по объектам, разбросанным как придется в куче Что то уровня кеширования transform. При том, что объекты можно держать в пуле. При том, что работа с памятью - одна из сильных сторон шарпапо сравнению с плюсами например
Впрочем как верно написали выше это вопрос не оптимизации, а архитектуры, а насколько удобна эта архитектура видно из того, что неофициальная реализация ecs существует уже давно, а игры на ней сделано полторы, считая переделанный туториал.
>>508394 >опрашивает энтити У тебя настолько отсутствует понимание, что вообще такое entity, что даже как-то не очень с тобой спорить. Но тем не менее. А что будет, если твои сто мульенов объектов захотят подвигаться одновременно? Правильно, будет фреймдроп секунд на 10. А ECS будет похуй, она просто как обычно поставит объекты на позиции.
>объекты можно держать в пуле Они все равно останутся лежать в куче, и для того, чтобы изменить их трансформ, нужно будет прочитать память столько раз, сколько у тебя объектов. При линейной аллокации память читается один раз.
>Впрочем как верно написали выше Этим альбертинштейном был я. Мне удобно. Причина непопулярности больше в том, что все туториалы по юнити начинаются с "создайте геймобджект, добавьте скрипт" и в том, что реализация неофициальная.
Еще раз запостишь боевую картинку - будешь общаться сам с собой.
>>507894 Очень хуево, если так. Годовой оборот 100к$ - это 6.2 млн рублей. Если ты работаешь один и получаешь такие деньги с инди - это дохуя. Уберем половину на налоги-хуйоги, процент стима и еще какую-нибудь поеботу - останется ~ 3 ляма. Годовая подписка на unity plus стоит 20к рублей/год, на unity pro - 95к рублей/год. Не думаю, что это такие уж большие деньги, если у тебя минимум 6.2 ляма рублей в год крутится.
Если у тебя фирма, создающая игоры, и ваш годовой доход меньше 6 лямов при ~ 4-6 оплачиваемых сотрудниках и офисе, то это очень хуево, если только ты не создал фирму меньше года назад.
>>508539 >Да вы что здесь все специально оборот и доход путаете? А ты специально приводишь идиотские примеры? Да, я выпустил инди, оборот у меня 100к баксов, но получил я только 10 рублей и теперь юнитеки посадят меня на бутылку, потому что нет денег на лицензию. Иди нахуй, дурачок.
>>508398 >Правильно, будет фреймдроп секунд на 10. А ECS будет похуй, она просто как обычно поставит объекты на позиции. Следите за руками: В ООП фреймдроп будет в момент, когда игра захочет подвигать множество объектов. А ECS не будет похуй, в ECS фреймдроп будет (9,8 секунд по сравнению с ООП), когда первый из объектов захочет подвигаться и всё поле БД загрузится в память со всеми трансформами. Унижайте ECS-блядей, гоните, надсмехайтесь.
>>508668 Я просто плохо помню C# поэтому сильно не ругайте, только сегодня засел вспоминать что и как. Я так понял что transform.localEulerAngles просто получает ссылку на новый вектор, и так раз-за разом?
>>508668 Что у тебя за вопросы? Когда ты делаешь int a = 1; куда у тебя деваются все эти единицы? Переменная их жрёт что-ли? Конструкция new Vector3(a,b,c) в данном вопросе равноценна единице, это не что-то особенное.
>>508668 >new Vector3(a,b,c) Создать новый вектор и положить его в стек. >transform.localEulerAngles = Скопировать значение вектора из стека в поле localEulerAngles, которое располагается в куче, потому что трансоформ это класс, экземпляры классов вместе с полями лежат там.
Когда функция вернет свой воид, стек чистится от её данных, и vector3 отправляется к аллаху.
Короч не надо тут ничего оптимизировать, все норм.
>>508669 >получает ссылку Вектор3 примитивный тип данных, передается по значению.
зашквар ли в update объявлять new? Там же за секунду создадутся тыща новых объектов. Наверно, лучше сделать темповые переменные типа temp_vector, или temp_raycast в start, чтобы именно в них запихивать в update
>>508693 Откуда пошла такая тупость что new - значит сразу кучу срача в памяти? Вы вообще доки читали? Если ты там стотыщь страктов создаешь - похуй вообще.
>>508712 ну ок тогда, я просто предположил, вроде ж логично. В доках про это не видел, или ты имеешь ввиду, что там в каждом примере в update ебашат new? Я думал, это просто ради примера же, чтобы когда поменьше в доках писать
>>508693 >Там же за секунду создадутся тыща новых объектов update раз за фрейм вызывается вроде, так что раз 30-60 вызовется за секунду, не так уж это и много
>>508672 > Без него нельзя вектор объявить А полем класса его сделать никак? Объявить без него никак, пиздец просто. Ты вообще знаешь что такое конструктор, куча, память? Не?
>>508862 Конструктор - это специальным образом спроектированная процедура, выделяющая память для объекта. Куча - это специальным образом размеченный сегмент памяти, так размеченный, чтобы системе было удобнее вытаскивать из этой кучи твоё говно, которое ты туда кладёшь. Память - это специальным образом организованная микроэлектроника, которая в виде модулей вставляется в твою пеку.
>>508917 Хуй знает, как по мне все эти интерфейсы выглядят одинаково, что в юньке, что в годоте, что в уече, просто серые/белые/чёрные безликие панельки с кнопками и цифрами, по сути весь интерфейс во всех редакторах спизжен из фотошопа, а в нём ещё откуда-нибудь.
>>508990 А что тут непонятного? Ищет компонент по геймобжекту, возвращает первый который подойдет. Сорцы не смотрел поэтому точно сказать как работает не могу, да и нахуй тебе это надо
Вечер в хату, посоны! Сейчас открыл туториал нубтут из шапки (который https://noobtuts.com/unity/2d-pacman-game) и делаю по нему пакмена. Почти сразу же столкнулся со следующим: в скрипте, который управляет перемещением пакмена есть FixedUpdate, где делается следующее:
Vector2 p = Vector2.MoveTowards(transform.position, dest, speed); GetComponent<Rigidbody2D>().MovePosition(p);
То есть пакмен перемещается в позицию заданную вектором, с этим вроде все нормально, далее проверяется движется ли пакмен или нет, делается это так:
if ((Vector2)transform.position == dest)
Если Пакмен не движется, т.е. позиция transform равно dest и можно обработать Input.GetKey чтобы добавить к dest (заданному, как Vector2) Vector2.up/right/left/down в зависимости от того, какие кнопки нажаты. Но в том, то и проблема, что это условие у меня не выполняется никогда и получается, что пакмен бесконечно двигается, хотя визуально он остается на одном и том же месте, т.е. transform.position и dest как-то не сравниваются. Почему же в туториале так написано? Или там какая-то старая версия Юнити и сейчас так делать уже не правильно?
Хочу сделать процедурно генерируемый мир с маленькими элементами как в Lego Worlds. Интересует как в этой игре сделана отрисовка блоков. Готовые 3D-модели? Рисуются ли они полностью или невидимые полигоны отсекаются? Как хранится информация?
>>509097 Но я не траллю, правда, я новичок, месяц в юнити, и был уверен, что не существует абсолютно никакого способа объявить произвольный вектор без использования new.
Есть код с туториала https://pastebin.com/Ud6pvv29 1) Вектор m - Vector3 movement 2) Вектор p - m_Rigidbody.position Верно ли 1)? Верно ли, что m_Rigidbody.position вернет вектор p с рисунка или нечто подобное. Как работает m_Rigidbody.MovePosition(m_Rigidbody.position + movement);?? Если складывать m и p, то танк не поедет вдоль x, однако все работает, как на самом деле работает функция? Движок в своих недрах учитывает ротейшн объекта?
>>509456 Объявить это просто "Vector3 mamkaPosition;" Т.е. ты объявляешь переменную, но она не инициализирована. Чтобы её инициализировать надо сделать new. А того дауна не слушай, если инициализация поля происходит неявно в конструкторе по-умолчанию, это не значит, что её нет.
>>509542 >Объявление обычной переменной, простейшей формы прямого декларатора, указывает имя и тип переменной. Оно также указывает класс хранения и тип данных переменной. >я подразумевал
>>509497 > ответ оказался в том, что transform.forward это вектор относительно локальных координат танка, а не вектор глобальной оси Z А мог бы читать что тебе пишут.
>>509551 Ну зачем ты определение высрал, я ведь говорил в контексте беседы, а всё началось с присвоения фиксированных значений вектору в апдейте, напомню.
Как же мне горит, кто-нибудь может пояснить мне тупорылому, почему в юнити внезапно перестают корректно играться все сцены? Я ничего не могу запустить, происходит глобальный фриз любых сцены на старте. Причём консоль не ругается на компайлер эрроры или что-то ещё, оно просто в один момент сдохло без объяснения причин. Это "лечится" переносом всех ассетов в работающий проект (теперь постоянно делаю бэкапы), но теперь эта хуйня случается стабильно раз в день и фикс этого говна отнимает кучу времени. Кто-нибудь с этим сталкивался, как отдебажить проблему и найти виновника?
>>509592 Как правило когда случается такая хуйня, то какой-то из твоих ассетов все портит, скрипт какой-нибудь или шейдер. Нужно методом удаления искать - удалять часть, и смотреть исчезла проблема или нет, и так методом исключения найдешь. Как вариант можно попробовать переустановить юнити. Дохуя делов конечно а что делать
>>509642 А ты много выпустила, дура? Видела ты, ебанушка. Я тоже видел игры на анриале. Рим - слэшер ПУБГ - батл-рояль(включает в себя как элементы шутера так и многих других жанров) Фортнайт - батл-рояль Стрит Файтер, Теккен - файтеры Хэллблейд - слэшер Парагон - МОБА Арк - опен ворлд выживальщик Психонавты вторые - платформер Мото-рэйсер четвертый - гонки Готик Армада - стратегия Драгон Квест - РПГ Вампир - РПГ Фридэй 13 - онлайн выживальщик И еще дохуя Юнитипозорище багованное, заткни дыру свою ротовую, а то моча вытекает.
>>509651 >Что-то я не припоминаю таких проектов в /gd... Наверное, потому что это игры уровня ААА и их разрабатывали игровые студии! Согласен с тобой, что уеч это топ, а юнитиговно для гдачеров. >>509650 >Где твоя игра на анриале? >Жду. Хуя аргумент юнитишкольника, ух как озадачил! Если у меня нет игры на анриале, значит... Что же это значит? Дура блять, нихуя это не значит. Я так понимаю это опять намек на то что анриал для нормальных игр, а юнитиговно для двачеров-говноделов.
>>509666 >https://goo.gl/dzhPXC Такой понос, пиздец, я уж подумал, что придется похвалить юньку и разраба, но это опять трешговно. Реально юнька только для говноделов, это раз за разом просто подтверждается, высрал хуйню и еще не хочет пить анриаломочу. Примитивный геймплей и специально еще графику ухудшают, даже теней нет с лайтмапами, и пиздят про другие движки, что там чего-то не хватает, юнитидебилы.
>>509701 >>509683 Но ведь вы даже такую не сделали, вы по дефолту проебываете в споре. Я даже ссылку не открывал, это неважно, там может быть пустая сцена с клубами, один хуй он вас сделал потому что пока вы не показали своё вы кукаретики и говно
>>509737 >Но ведь вы даже такую не сделали, вы по дефолту проебываете в споре. Спор о том, что юнитиговно хуже лучшего в мире движка анриала не решается предъявлением сценки с кубами, тупица.
>>509766 Ой нет, опущенка, давай-ка я тебе на пальцах объясню. 1)Вы начали спор о том что лучше юнити или анриал 2)В ходе спора прозвучал аргумент>>509647 что никто ЗДЕСЬ не делает игр, после чего унрилопетушку была предъявлена игра сделанная тут 3)В ответ унрилопетушок ничего своего объявить не смог и начал кукарекать "азаза игра то гавно", хотя это никакого отношения к предмету спора не имеет, в итоге был закономерно обоссан юнитибоярином.
Спор о том что лучше юнити или анриал можно вести на любых уровнях, если хочешь сравнивать профессиональные игры, пожалуйста - Ghost of a tale, Ori and the blind forest, Heartstone, escape from tarkov, и ещё дохуя игр - юнити есть что предъявить, на местном уровне тоже были предъявлены игры, давай сравним с вашими.
>>509782 >В ходе спора прозвучал аргумент>>509647 что никто ЗДЕСЬ не делает игр Нет, аргумент звучал как - сначала сделай игру, потом критикуй, сродни сперва добейся. Не можешь атаковать мысль, атакуй мыслителя. Этот аргумент школьного юнитиговна полностью позорит его и заканчивает спор на поражении юнитиговна.
>>509790 Унрилопетушки тут кидают списки ААА игр на уе4, что этот аргумент должен значить? Такое же петушиное кукареканье. Других аргументов от унрилопетушков услышано не было, так что и поражение тут только у тебя в маняфантазиях
>>509794 >Унрилобоги тут кидают списки ААА игр на уе4, что этот аргумент должен значить? Это значит топ уровень топ движка, и то что на нем можно создать игры множества жанров. А юнитиговно придумывает, что анриал это конструктор и на нем ничего кроме шутеров нельзя спрограммировать, это означает тупость юнитидебилов.
>>509800 >уе4 для ААА игр и больших студий Ага, все нижеследующий игры сделаны на твоем говноУЕ:
Ori and the Blind Forest Ori and the Wills of the Wisps Escape from Tarkov Subnautica Life is Strange 2 Telltale's Stranger Things Pillars of Eternity II: Deadfire Battletech Life is Strange: Before the Storm Torment: Tides of Numenera Endless Space 2 Sudden Strike 4 Syberia 3
>>509801 >Ага, все нижеследующий игры сделаны на твоем говноУЕ: Все говно, кроме таркова, но и у него ничего выдающегося, да еще и дикие позорные просадки по фпс https://youtu.be/xvS-XxiYDuY?t=128 >>509800 >юнити для инди Это приговор, это как юнити для твг-говна.
>>509805 >МНЕ НИНРИЦА ЗНАЧИТ ГОВНО!!!!111 Назад в /v/ с такими аргументами, дауненок
>юнити для инди >Это приговор >юнитибояре сидят и делают игры, унрилошкольники сидят и пиздят какие охуенные топ игры делают на унриле корпорации Спасибо что подтверждаешь мои тезисы,
>>509797 >множества жанров Но только если там кто-то бегает/прыгает/летает. Для всего остального юнити подходит лучше. Напомню, что именно на юнити сделана самая инновационная игра последнего десятилетия - Kerbal Space Program.
Добрый день! Я забежал сказать, что не нужно динамически подменять материалы динамически. Пусть лучше будет несколько объектов с разными материалами и лучше заменять объекты целиком. На это все. До свидания!
>>509809 Не сравнивай редчайший баг с просто плохой повсеместной производительностью юнитиговна. В последней демке книга мертвых фпс ниже 30 падает, это они продемонстрировали свои достижения. Смарити, наш юнитя мыльное говно 30фпсное! >>509810 >Kerbal Space Program Не удивлюсь, если их аудитории с юнькой совпадают. Вспомнил случай, на сайте американской газеты включили голосование и в финале остались констракт2 и ксп. И за ксп в итоге гораздо больше голосов было, раза в 3 больше. Но там можно было накручивать, голосуешь, трешь историю браузера, перезапускаешь и еще раз можно проголосовать. И организаторы потом написали, что сдетектили накручивальщика из финляндии, он короче часов 15 ебашил подряд. Дело в том, что конкурс шел несколько недель, там по два приложения соревновалось из штук 30 в каждом это ебанько накручивало. Победу присудили обеим программам и, конечно, ничего этот конкурс не значил. Вот юнитидебилы такие же пизданутые.
>>509818 >Не сравнивай редчайший баг с просто плохой повсеместной производительностью Редчайший баг это что блядь, полная неиграбельность пабг на иксбоксе? Может просто у разрабов руки из жопы, также как и у разрабов таркова и движок тут не при чём? >В последней демке книга мертвых фпс ниже 30 падает Нищенка закукарекала, лол. У меня ни разу не просаживалось ниже 30, плюс это демка графона, никто её не оптимизировал под реальную игру
>Вспомнил случай, на сайте американской газеты включили голосование меня твои истории доебали уже
>>509822 >Нищенка закукарекала, лол. Дак а на кого твоя вонючая юнитя ориентирована? На нищих поедателей дешевого индиговна. >>509822 >никто её не оптимизировал под реальную игру Все там оптимизировано, и разрабы столько и ожидали, анриал выдает еще лучшую картинку на супер фпс.
Есть один персонаж, у него 2 коллайдера. Есть предметы которые должны выполнять некоторое действие при соприкосновении с коллайдером объекта с тегом игрока. Но вот только коллайдер у которого включен is triger предметы игнорируют а тот что с выключенным - работает как нужно. Почему все так а не наоборот?
>>509830 >Дак а на кого твоя вонючая юнитя ориентирована? На нищих поедателей дешевого индиговна. Юнити ориентирована на всех, долбоеб, смотря что ты на ней сделаешь. Сделаешь инди для мобилок - будет идти на мобилках на 60 фпс, сделаешь ААА графон - будет у нищенок тормозить > анриал выдает еще лучшую картинку на супер фпс. И что теперь, деградант? Никто не спорит что графика в анриале лучше, вот только для нормальной графики нужны нормальные бюджеты и тут мы снова упираемся в >юнитибояре сидят и делают игры, унрилошкольники сидят и пиздят какие охуенные топ игры делают на унриле корпорации Ты говнарик всё продолжаешь и продолжаешь обсираться и подтверждать мои тезисы, всё никак не уймешься, уже всё личико в говнеце
>>509831 Ну смотря что у тебя там в коде, действия с триггером выполняются в OnTriggerEnter, а действия с коллайдером в OnCollisionEnter, смотри мож че напутал
>>509866 > Я имел в виду про это Input.GetKey() -> Input.GetKeyDown() Ну так это просто разные методы, но оба рабочие. GetKey срабатывает всегда, когда кнопка нажата/зажата. GetKeyDown срабатывает только один раз при нажатии, хоть ты кнопку нажми и пол часа держи.
>>509872 Ну никто тебя не заставлял изначально GetKey прописывать, кто ж тебе виноват. Я просто говорю чем они отличаются и почему у тебя не работало даже так.
Да успокойтесь, над троллем посмеялись, его порвало, посмеялись еще громче. Тут и сказке конец, опоздуны остались с тупыми вопросами и недоуменными глазами.
Как вы боретесь с нулреференс ексепшон? Он у меня всегда вылетает, до этого час искал ошибку а оказалось что просто в файнде ошибся строчной буквой. А сейчас при нажатии на любую кнопку он вылетает, разные участки кода и всегда он, подумываю дропнуть это говно.
>>509996 > Как вы боретесь с нулреференс ексепшон? Отслеживаем чтобы все референсы были на месте. Ну и ещё советую ничего из проекта не удалять через проводник/тотал и т.д., только через саму юньку.
>>510003 Допустим, у тебя есть префаб домика внутри которого различные NPC, интеректив итемы и так далее. Всё это будет одним префабом. И если ты захочешь изменить NPC, тебе придётся его изменять везде, во всех префабах.
>>510005 А, то есть теперь можно заменить (условно) префаб чухана на префаб шлюхи, и во всех домах, где раньше был чухан, появится шлюха, при это префаб самого дома останется с рабочими референсами? Да, занятно. Там ещё речь шла про Prefab Mode, если они наконец-то сделали нормальное редактирование префабов, то я просто счастлив буду.
Вообще, штука очень крутая и полезная. Давно ждал этого. Можно использовать вложенные префабы для конструктора мобов, например. У тебя есть базовый префаб человечка. Ты создаёшь ещё один префаб, который реализует ИИ управление для этого человечка, либо Инпут управление для игрока. И так далее.
>>509975 >>509973 >>509972 >>509971 >>509940 Хуя вас порвало, чмоньки. По всему разделу носились все движки поносили, а как начал юньку обоссывать, сразу заплакали и жаловаться побежали. Это же не троллинг, а возмездие и чистая правда.
>>510003 Это не нужно. У тебя получится ебаный ад из зависимостей, когда изменение в одном префабе будет затрагивать изменения половины проекта, если этим злоупотреблять. А из практики программирования понятно, что если чем-то можно злоупотреблять, то этим непременно будут злоупотреблять.
Ограничение на префабы - это хорошее ограничение, которое принуждает к правильной архитектуре. Вложенные префабы будут приводить к неконтролируемому аду.
>>510040 > А из практики программирования понятно, что если чем-то можно злоупотреблять, то этим непременно будут злоупотреблять Это как оправдывать свои обосранные труханы фразой "если ты можешь обосрать свои белоснежные труселя, то ты их обязательно обосрёшь".
На офсайте написано что в 2018.1 завезли "Tessellation for Metal". Что такое тесселяция я в курсе, но что это за "Metal" да ещё и с большой буквы? И да, что будет если я прихуячу тесселяцию, а потом билд запустят на платформе, которая её не поддерживает? Никаких эксепшенов не повылезает? Просто тесселяция отвалится и всё пойдёт как надо, только без неё?
>>510370 Напрашивается очевидный ответ, что Метал в этом контексте это ТОТ САМЫЙ МЕТАЛ, КОТОРЫЙ ИСПОЛНЯЮТ ВОЕНЫ МЕТАЛА, КАРАЯ ПЕДОВОК ХРУСТАЛЬНЫМ МЕЧОМ
Пацаны, вот что спрошу. Реально ли пилить игорь под какой-нибудь старой версией, например пиратской 3.5, а потом её просто перенести в 2018, такое вообще реально по идее, ничего не сломается?
>>507884 >Наебать их вполне можно Каким образом? Указать для оплаты карту, на которой только за 1 месяц оплата и выкинуть ее в мусорку? Написано, что в таком случае они блокируют твой аккаунт, но ты обязан будешь оплатить за весь год энивей. Какие возможны рычаги давления?
Анон, скажи пожалуйста вот у меня в юнити 10 персонажей меши с одинаковой топологией- мне мимику, морфы и анимацию полностью делать каждому отдельно? или у Юнити на дворе все таки 2018?
>>511461 Хули толку продолжать, для многих поехавших на этой борде "годная игра" это многомиллионный ААА проект от корпорации, а инди игры они изначально отбрасывают как "годные" впринципе. Непонятно только почему я как инди разраб должен выбирать движок на котором студии по 300 человек делают игры, что это мне даст вообще. Казалось бы борда разрабов, но походу тут один хуй 90% школьники из веге сидят, у которых один аргумент МНЕ НИНРАИЦА ЗНАЧИТ ГОВНО!!! Заебали уже
>>511482 Тролли на любой борде всегда есть. Самое хуёвое, когда на борде появляется ЕДА и начинает КОРМИТЬ. Вот тогда борде и приходит пиздец. Вот нахуй ты высрал свой пост? Ты же покормил тролля.
Похоже в ближайшем будущем Юнити будет полностью переработан. Столько всякий штук выкатили в превью. И ещё переход на последние версии C#. https://www.youtube.com/watch?v=iauWgEXjkEY
>>511532 Ну так это единственный выход для Unity. Баги, отсутствие игр, токсичное комьюнити - всё это рано или поздно убьёт движок. Нужно что-то менять. Мне конечно Unity уже не интересен, я пользуюсь более профессиональными инструментами, но двумя руками за конкуренцию и надеюсь ребята из Unity возьмутся за голову и создадут движок на котором можно делать хотя бы простые игры.
>>510942 Ну же анон, был же какой-то формум, где можно было выцеплять платные ассеты из ассетстора. Я ссылку проебал, но она вроде в каих-то тредах раньше была, может даже в шапке.
Есть элемент интерфейса фиксированного размера, на который требуется выводить определённую пикчу из папки с игрой. Запилить это, вроде как, получилось, используя Raw Image со следующим скриптом: using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI;
public class LoadWeb : MonoBehaviour {
IEnumerator Start() { WWW www = new WWW("file://" + Application.dataPath + "/sample.jpg"); while (!www.isDone) yield return null; Debug.Log(www.texture.name); GameObject rawImage = GameObject.Find("RawImage"); rawImage.GetComponent<RawImage>().texture = www.texture; } } Проблема: изображение растягивается по всей площади элемента. Если соотношение сторон у изображения другое, то выглядит это так себе. Можно ли как-нибудь запилить автоподгон размера изображения без растягивания?
Сап, туч. Написал алгоритм поиска пути, запускаю игру - бот начинает меня искать ,но проходит секунд 5 и Юнити зависает с концами. Что это может быть? Зацикливание? Если так то как делать отладку этого дерьма?
>>511844 - Просчитывается она в тот же момент ,что и кадр(если бот видит игрока) - Ее цель найти клетку ,которая приблизит бота к игроку и сдвинуть бота на эту клетку
>>511916 Во-первых, когда делаешь что-то, из чего в теории может получиться бесконечный цикл, всегда добавляй дополнительный, не зависящий ни от чего счётчик, который останавливает цикл после тысячи/десяти тысяч/любого нужного кол-ва итераций и выдаёт сообщение в консоль.
>>511916 Во-вторых, в один for можно впихнуть несколько переменнных. В-третьих, вместо проверки i, i-1, i+1, j, j-1, j+1 можно проверять направление вектора.
Делаю в 2д игру с видом сверху, настраиваю движение персонажа через RigidBody Как сделать, чтобы он двигался строго определенными по длине шажками? Как будто бы существует квадратная сетка на поле, и чтобы он при каждом нажатии вписывался в следующий квадратик
>>511918 > когда делаешь что-то, из чего в теории может получиться бесконечный цикл, всегда добавляй дополнительный, не зависящий ни от чего счётчик, который останавливает цикл после тысячи/десяти тысяч/любого нужного кол-ва итераций и выдаёт сообщение в консоль Добавлю этого господина. Когда ебошишь while с сомнительным условием, то лучше хуярь его в корутине с yield return null; в конце тела while'а, и попутно в этом самом теле выводи какую-нибудь инфу о количестве итераций или ещё какую хуйню. Так ты не повиснешь даже если цикл упиздонит в прекрасное далёко, зато дебажную инфу точно увидишь и всё порешаешь.
>>512106 > а как обычно в ФПС передвижение делают, через РБ или через трансформ пос.? На юнити? Для этого есть встроенный CharacterController с методами Move и SimpleMove А уж вариантов велосипедов хуева гора
>>512131 Чего не так? Не любишь корутины — делай как выше советовали. Просто ебошь левый счётчик, ставь ему лимит и выходи из цикла если лимит заполнился.
>>505728 (OP) Чуваки, хочу сделать свою особенную физику. Думаю использовать коллайдеры-триггеры и прописывать поведение при столкновениях, поворотов у объектов не будет, какие подводные?
Есть один гейобжект. Ничего необычного, получает рейкаст, теряет хп, хп 0 - уничтожается и спавнит руду. Но как только я пытаюсь заменить уничтожение на деактивацию, объект перестает даже терять хп.
Вот по идее должно быть так, 0хп, выполняется Destroy(), устанавливается время спавна nextSpawnTime, создается руда. Как только таймер подходит, объект активируется с 100 хп. Но что то идет не так, вопрос что?
>>512707 У деактивированного объекта не работает апдейт. Можно сделать корутину, но нормальным подходом будет сделать менеджер, который будет заниматься спавном объектов, чем пихать всё это в скрипт на объекте.
Я пишу собственный трехмерный редактор (убийцу 3D Studio MAX, лол), скажем на C# + WinForms (или WPF, но не суть) или на плюсах + Qt, что тоже не принципиально.
У меня есть интерфейс, кнопочки, менюшечки и есть, скажем некоторый контрол (какая-нибудь панелька), у которой есть дескриптор (под виндой это HWND) и я знаю как имея этот дескриптор руками создать контекст воспроизведения под DirectX, OpenGL, еще что нибудь, НО:
Я не хочу руками выводить туда графику, я не хочу велосипедить собственный движок, я хочу воспользоваться всеми прелесями и мощью самого лучшего движка на планете (и я имею ввиду Unity, конечно же).
Как мне подключить Unity к своему проекту, желательно как стороннюю библиотеку (как было раньше: у нас есть OBJ/LIB/DLL библиотеки движка и у нас есть заголовочные файлы, мы их просто включаем в свой проект и дергаем нужные нам функции API) так, чтобы Unity выводил графику в окно моего приложения, а точнее на тот самый контрол?
Или единственный вариант подключить Unity к десктопному приложению - это делать это самое приложение на самом движке и в его редакторе используя библиотеки UI сделанные на нем?
>>512730 А ну то есть оптимальный вариант - делать UI прямо на движке теми UI-библиотеками что там есть и забить на WPF, WinForms и Qt?... Ну ОК, наверное...
>>512723 Похоже незаданное значение nextSpawnTime постоянно дает срабатывать ReActivate. Значит эту функцию можно вынести в пустой геймобжект. И при срабатывании Destroy и уже установке заданного времени включается этот геймобжект с скриптом на проверку таймера. Где после срабатывания он сам себя выключает.
>>512731 Юнити - это движок для игр, а не для неба и аллаха, был тут недавно один челик, который пытался какой-то биржевый интерфейс на юньке запилить, заебался он знатно, скажу я тебе.
>>512735 > Похоже незаданное значение nextSpawnTime постоянно дает срабатывать ReActivate. Да, неинициализированный float равно как и int по умолчанию считается равным нулю.
>>512734 Что значить разбирать? Я просто хочу подключить движок к своему проекту, чтобы выводить графику через него, а не велосипедить свои движок. Что не так то?
>>512737 Совладал с порядком выполнения всего, работает. Но суть в том, что объект с скриптом у меня один, а руды больше чем один, и как мне не создавая тыщу геймобжектов контролировать спавн каждого блока руды?
>>512736 Ясно, ну ОК, буду смотреть в сторону других движков, попроще, например Irrlicht...
Ну или блин велосипедить свой на чистом OpenGL/DirectX, раз уж как оказывается у меня такая специфичная задача - создание собственного 3D-редактора/тулзы/CAD-а...
>>512820 Татышо! И почему бы мне не переложить эту самую простую часть на сторонний, надежный и протестированный движок, а не велосипедить glBegin()/glEnd()/DrawIndex итдтп? Что меня останавливает и почему?
>>512884 Бля, там бы сразу и сказал что у тебя 2д-рэйкаст, он-то не bool возвращает, а RaycastHit2D > Условие всегда true Ну наверное ты всегда во что-то попадаешь, не?
Как бы в стандартном скрипте на фпс контроллере отключать лок мыши и движение камеры за курсором? Не могу понять где именно ставить условие нажатой клавиши.
>>513051 Без UpdateCursorLock() не сможешь обратно прятать курсор наверное. А вообще хз, я эту вермишель в гробу видел. есличо попробуй просто m_cursorIsLocked теребить.
>>513270 Я не он, но в студии можно найти откуда вызывается тот или иной метод по Alt+F7, дико удобно. Также есть переход к методу/классу/полю по контрол+клик. Подсветка unreachable-кода, помогает сразу увидеть если ты проебался. Конвертация обычных конструкций в LINQ, что сокращает количество строк (но это уже мелочи). И самое вкусное. Если ты хочешь в коде прихуярить что-то, что находится в неподключенном пространстве имён, то оно автоматически подключится. В монодевелопе же у тебя даже в выпадающем списке не будет того, что тебе нужно, только после того как ручками подключишь. Может это всё и в монодевелопе есть, я в нём не сильно ковырялся, хоть и довольно долго на нём просидел. На студию перелезать очень не хотел, но выбора не было (на работе только она), но теперь нарадоваться не могу.
Мне нужно прямоугольник на котором я могу расположить разные объекты и ходить игроком. Как это сделать? Все туториалы - какая-то хуита про таилмапы и всякий прочий сойбойский мусор не представляющий никакой пользы.
>>513736 Просто создаёшь прямоугольник и располагаешь на нём разные объекты и ходишь игороком, зачем для этого какие-то туториалы? Это же элементарное действие, проще чем хэллоуворлд.
как организовать красивую скриптовую составляющую в проекте? чтобы не было миллиона повторяющих строк для последовательности действий как вообще это организовано в юнити?
>>513811 > как организовать красивую скриптовую составляющую в проекте? Берёшь и без задней мысли организовываешь. > чтобы не было миллиона повторяющих строк для последовательности действий Это называется "метод".
>>513812 без задней мысли я наговнокодить и так смогу, хотелось бы сделать пограмотному Понятно что метод, вызов их организовывать через делегаты, например?
Сап, Кириллы. Давно не был на доске и не обновлял Юнити, возникло сразу несколько вопросов.
1) Я использую Visual Studio 2013, потому что MonoDevelop заебал багами с раскладкой/буфером обмена/шорткатами. Из возможностей студии пользуюсь только поиском и Code Map (здорово помогает, особенно если у вас ООП в плохом смысле). 2013 версию поставил, потому что более новая будет грузиться долго на моем некроноуте. Не проебался ли я? Может в новых версиях какая-нибудь киллер-фича есть, такая же полезная как Code Map?
2) Что там с Nested Prefabs в новой версии Юнити? Ввели уже? Стабильно работает?
3) У меня проект на древней 5.6. версии. Раздражает работа с Macanim, приходится кучу движений мышкой делать, чтобы создавать новые анимационные транзакции. В новых версиях есть возможность копировать транзакции?
>>513817 > Не проебался ли я? Вроде нет. На крайняк накати решарпер, если он на 2013 ставится. > Что там с Nested Prefabs в новой версии Юнити? Ввели уже? Стабильно работает? Пока в бетке, но вангуют релиз уже "скоро" (с)
По третьему вопросу нихуя не понял какие там тебя движения мышкой заёбывают.
>>513829 Ну хз, нужен ли мне решарпер. Я говнокожу, то есть рефакторингом и юнит-тестированием не занимаюсь совсем.
>По третьему вопросу нихуя не понял какие там тебя движения мышкой заёбывают. Если Меканим-контроллер дохуя сложный, то добавление нового state всегда больно. Ведь в него и из него выходит туча transition. В 5.6. нет возможности просто взять соседний state c похожими transition копировать и сохранить все эти transition. Приходится как истинный ассетотаскатель кликать мышкой и создавать новые переходы.
>>513837 Але, Вася, при чем тут количество строк? Ты можешь весь свой проект открыть на карте или несколько классов отображать на одной карте. Я вообще на карте не заглядываю в классы, смотрю на связи между классами обычно.
>>513768 Я этот >>513817 Пересел с MonoDevelop на Студию 2013. Ни разу не тормозил проект на некроноуте с i5-4200M. Открывается быстрее чем Моно. Проект нормальный >= 10000 строк кода должно набраться.
>>513866 > Я говнокожу Ну если ты знаешь что такое > рефакторингом и юнит-тестированием то очень сомневаюсь что ты прям совсем пионер и долбоёб, не пойму в чём твоя проблема.
>>513878 >Что-то я не улавливаю Так ведь я же пояснил, почему не улавливаешь - даун тупой.
>Ты хочешь сказать, что нужно писать лапшу на 5000 строк? Да всем похуй, что там у тебя в твоей говноподелке. Пусть даже state of the art code - покупателю фиолетово. Если игра говно - твой прекрасный код ее не спасет и ты потратил кучу времуни на прихорашивание того, что вообще не релевантно.
Meanwhile, игры с говнокодом, типа Conan Exiles, PUBG или YandereSimulator принесли авторам нехилые бабки.
>>513881 >Да всем похуй, что там у тебя в твоей говноподелке. Пусть даже state of the art code - покупателю фиолетово. Эффективность кода нужна не покупателю, а тебе самому. Это твой собственный инструмент.
>>513885 Эта книжка поможет моей игре продаться 100к+ копий? Твой игре помогла? Кажи свою игру, что тубу безбедную жизнь обеспечила. Ах, нету? Вот и нахуй иди с тупыми рекомендациями.
>>513884 >Эффективность кода нужна не покупателю, а тебе самому. Мне нужна не эффективность кода, а покупатель. Вот когда будут покупатели, тогда и буду думать об эффективности кода в патчах.
>>513881 Попрошу Yandere Simulator вон из этого списка. Автор пилит игру уже 5 лет без должного прогресса. Продавать ему нечего, только с Патреона деньги капают, едва достаточные для бомжевания в США. Хотя код говнистый у него, да. if () {} else { if () {} else { if () {} else { if () {} else { За такую лажу у нас на доске расстрел.
>>513889 >>513899 Вообще, правильным отношением будет заделать прототип из говнокода. Потом показать прототип публике. И только если публика оценит, тогда брать, удалять исходники прототипа нахуй и писать с нуля игру. А не как >>513906 этот, который прототип 5 лет пытается игрой сделать.
>>513908 Моя игра не принесла ни копейки. Но чуть не занял призовое место на предыдущем TWG! В упорной борьбе проиграл Бластер-копу. Но я то хуи с горы без реального опыта в геймдеве. А Yandere Sim делает великовозрастный разраб, который убежал из коммерческого геймдева. Алсо, он на своей прошлой работе наверняка больше 4к зеленых получал, это же США. Разве это успех? Вот если бы он выкатил законченную игру в Стим и продал, был бы успех.
>>513920 >А Yandere Sim делает великовозрастный разраб, который убежал из коммерческого геймдева. Что, блять, за оправдания, пошли? Ты сам-то в это веришь, глядя на его код? Почитай его смету, он сам ВООБЩЕ почти нихуя там не делает, 3D-моделинг, анимация, войсовер - все аутсорсинг на деньги патреона.
>Но чуть не занял призовое место на предыдущем TWG! А даже если бы и занял - оно бы тебе 50к в месяц принесло? Стабильно, на 5 лет?
>Разве это успех? Ты СВОЙ успех, который заметно лучше продемонстрируй? Окромя жалкого и смешного "чуть не занял призовое место на предыдущем TWG". Мамкин борщехуй.
> Вот если бы он выкатил законченную игру в Стим и продал, был бы успех. Так нахуя, если можно доить патреонодебилов годами?
>Алсо, я не >>513910 Да похуй кто, аргументация такая же несостоятельная.
>>513922 По делу есть что сказать, кроме: "сперва добейся"? Я уже несколько лет слежу за его проектом. И факты таковы: 1) Разраб занимается только кодом, геймдизайном и пиаром, да. 2) Несмотря на говнокод он - профессиональный кодер. Он сам говорил, что работал в геймдев-конторе. Занимался прототипами. 3) 4к в США - зарплата электрика. Патреон подходит только для нищуков из стран СНГ и Индии. Поток этих копеек иссякнет как только пропадет внимание публики. 4) Игра настолько раскрученная, что если бы выпустить ее в Стиме можно было бы получить миллион-другой баксов на старте продаж.
>>513930 >По делу есть что сказать, кроме: "сперва добейся"? Нет. А зачем мне тебя слушать, если у тебя нет опыта? Вот девелоперов Hollow Knight или Celeste или Stardew Valley я бы послушал, у них, т.с., first-hand experience на примере за плечами. А у тебя что? Ты кто, хуй с горы? Зачем мне тебя и твои завывания про твою чистоту кода слушать?
Или у тебя есть личные примеры, где твой чистота кода тебе миллионный продажи принесла? Так кажи, делись.
>Я уже несколько лет слежу за его проектом. И факты таковы: Это не факты, это твой ублюдочное мнение, которые ты, за неимением аргументов и в жалкое попытке ответить - представляешь как факты, как субституцию аргументам.
Мне на его проект, как таковой, похуй. Я его привел лишь как пример того, что твоя чистота кода нужна лишь одному тебе, а не покупателям. Не нравится YandereDev? Так давай возьмем Hollow Knight - дырявый singleton на Юнити, костыль костылем поправляет. У них послерелизное добавление простых изолированных боссов заняло почти год, потому как при малейшем изменении говнокода ВСЮ игру нудно тестировать, от А до Я, ибо разваливается.
У твой пропаганды кода нет никаких весомых аргументов за плечами. Все похуй, люди покупают игру, а не код. Свой код можешь вылизывать, когда продашь 100к+ копий, в новом доме, со служанкой, отсасывающей тебе под столом.
>>513934 Вот это рукожопый унтерменш подорвался от чистоты кода. До сих пор в себя прийти не может.
Объясняю дурачку еще раз, что чистота кода и миллионные продажи ортогональны, то есть никак не связаны. Чистота кода позволяет сделать код более эффективным. То есть возможно сократить время разработки, уменьшить число багов. Время разработки - это ресурс. То есть чистота кода приводит к сокращению бюджета разработки игры.
>>513934 >У твой пропаганды кода нет никаких весомых аргументов за плечами. Ты же только что его привёл, лол: >У них послерелизное добавление простых изолированных боссов заняло почти год, потому как при малейшем изменении говнокода ВСЮ игру нудно тестировать, от А до Я, ибо разваливается.
>>513935 >Единственный мой пост про качество кода был >>513907 Ну так елки-палки, Михалыч, чего-ты тогда вообще влез в эти говнометания?
>>513937 2 часа спуся, 10 постов спустя и ни одного примера. Сдулся, как шавка трусливая.
>>513938 >Ты же только что его привёл, лол: Ну пиздец, приехали - передергивания уровня /b/. Прекрасно знаешь, что данный пример был приведен как подтверждение моих слов и все равно опустился до жалкого передергивания. Ну или просто тупой и не понимаешь.
Поясняю на пальцах - вместо того, что бы тратить время и усилия на "ле чистоту кода", они игру делали. И какой результат? На июль 2018, у них 1 миллион проданных копий, и это за 1.5 года, при максимальной скидке в 33%. Вместо того, чтобы хуйней страдать, они себе безбедную жизнь обеспечили. А дальше вес просто - наняли кодомакак, таких вот святых идеалистов-дебилов, как ты, и они стали весь этот код причесывать и переписывать для Switch-релиза.
Вот и смотри сам - где они, с их миллионами, и где ты, в грязной комнатушке, с красными глазами свои жалкие пару штук отрабатываешь, переписывай чужой говнокод.
>>513934 >Вот девелоперов Hollow Knight или Celeste или Stardew Valley я бы послушал, у них, т.с., first-hand experience на примере за плечами. Авторы придумали идею и наговнокодили как могли. Совершенно неинтересная история, ничем не отличающася от пост-мортема какой-нибудь игры с ТВГ. Никакого полезного опыта ты не наберешься.
>>513940 >Ну так елки-палки, Михалыч, чего-ты тогда вообще влез в эти говнометания? К тому, что Yandere Dev не имеет ничего общего с авторами Hollow Knight, Celeste, Stardew Valley, которые миллионерами стали. Игра не сделана даже на половину, контент частично с ассет-стора или вообще рипнутый. И говнокод ему боком вышел. Он начинал на Unity 4, не может перенести проект на актуальную версию движка из-за говнокода. Не может "боссов" и сюжетную часть в разумные сроки в игру встроить, тоже благодаря говнокоду. Говнокод ему помогал в начале разработки, позволил быстро показать фичи аудитории и стать популярным. Но в последние годы каловый камень кода тянет на дно.
>>513949 >К тому, что Yandere Dev не имеет ничего общего с авторами Hollow Knight, Celeste, Stardew Valley, которые миллионерами стали. У них общее одно - они не страдают хуетой и не пропагандируют чистоту кода, они пилят свои игоры, каким-бы они не были. YandereDev был приведен как "приземленный" пример, что бы было понятно, 50к в год там, или миллиона два - - суть одна и та же.
>>513960 Для игр такого жанра придётся почти что свой движок пилить, по крайней мере многое с нуля придётся делать, искаропки у тебя дрифт не получится.
>>513906 > if () {} else { if () {} else { if () {} else { if () {} else { > За такую лажу у нас на доске расстрел. А как по другому проверять множество условий? мимонюфаг
Лол охуеть можно с этим юнити. Обнаружил что хуй знает когда они всетаки добавили возможность иметь коллайдеры на деревьях. Нука думаю пойду пособираю коллайдеры с деревьев, посмотрю где там чё. И хули? это что вообще они сделали, мудаки? Справа дерево на террейне, немножко заскейленное и повёрнутое. Слева снизу дерево в той-же ориентации и скейле как на террейне. Слева сверху дерево в том-же скейле но не повёрнутое.
Тоесть лол у деревьев на террейне коллайдеры не вертятся вместе с деревом. Спасибо. Пидоры.
>>514106 На самом деле тут вообще ничего невозможно сделать неправильно. Потому как у юнити из настроек коллайдеров террейна только наличие, или отсутствие их. Само дерево, если интересно, идёт как экзампл к юнитевскому SpeedTree.
А на линии можешь сам посмотреть, Window > Physic Debugger, включи отображение дебага для террейна. Он никогда и не работал правильно для него.
>>514109 хули? когда проверял в раёне 5 версии можно было иметь коллайдер только на самом префабе и только один. притом ещё и игнирировалась его ориентация. а теперь хопа я неожиданно узнал что тут что-то поменялось. поменялось но всё так-же бесполезно.
>>514116 кстати ещё о замечательных фичах юнити. коллайдеры деревьев похоже существуют только в плеймоде. поэтому если делать Physics.OverlapBox то в эдиторе тебе вернется только террейн. однако в плеймоде вернется террейн за каждый коллайдер дерева попавший туда. сделают же!
>>514144 >а в Юнити такая же хуевая документация Unity docs - state of the art. Я серьезно. Таких хороших доков еще поискать. После того устарелого мамонта - тебе вообще рай будет
А то придут такие из интерпрайза, обколются своими объектами по стопицот полей и ноют, мол, а чо у них юнька тормозит. И на Update все как один дрочат такие, кококо велосипеды нинужны, кудахтахтах.
Прямо любопытно будет наблюдать за переобуваниями, после того как Мишаня их под шконку загонит.
>>514258 Алсо, нахуй из Интерпрайза в Юнити перекатываться? В геймдеве ведь нет бабла и развития. Надо наоборот. Я вот хочу в интерпрайз, блядские формочки клепать для бухгалтеров за 100к в месяц. Но этому учиться так лень, хотя Юнити вот неплохо так задрочил за пару лет.
>>514279 >Я вот хочу в интерпрайз, блядские формочки клепать для бухгалтеров за 100к в месяц И что это тебе даст? Хочешь просто плыть по течению, как овощук?
>>514298 Увы, большими бывают только ААА+ проекты. Куда вообще никого не берут, кроме серьеров 10+ лет опыта. Ну не писать же инди-игру 5 лет, чтобы она выросла до большой? Обычные инди-игры на говнокоде и говнокода им бывает достаточно, если только игра внезапно успешной не становится.
>>514298 >Ну в юньке если большой проект Ты недооцениваешь глупостью юнитимакака. Они в любом проекте могут такого нагородить, что волосы дыбом встают. Простой проект, который можно сделать за пару месяцев с нормальной архитектурой, они могут мучать годами, а потом еще годами исправлять баги.
>>514303 ты сейчас описал любого начинающего геймдева, если ты думаешь что любой школьник возьмется за уеч или сурс и вдруг выдаст охуенный продуманный и эффективный проект то ты либо жирный либо жирный
>>514304 >ты сейчас описал любого начинающего геймдева а ты думаешь начинающий геймдев чем-то отличается от опытного? хорошему коду нужно учиться. это искусство, дисциплина. юнитимакака как писала говнокод в одной игре, так и продолжить писать его в других играх.
Mike Acton, работал в Insomniac Games. Известен как отец-основатель методики Data-Oriented Design, которая, на самом деле, является подытоживанием опыта борьбы с консольным железом прошлого/нынешнего поколения.
Собственно, сама методика про cache-friendly размещение данных в памяти. ООП-блядтсвовать никто с ней не запрещает, просто все данные хранятся в фабрике в виде массива на каждое поле, а работа идет с прокси-объектами, которые никаких данных кроме индекса элемента не содержат.
>>514317 >просто все данные хранятся в фабрике в виде массива на каждое поле, а работа идет с прокси-объектами, которые никаких данных кроме индекса элемента не содержат
То есть выкинуть нахуй инкапсуляцию данных для ублажения железа, я правильно понял.? Так это и называется процедурным программированием, ващет, без инкапсуляции уже все - не ООП нихуя, по определению .
>>514319 >То есть выкинуть нахуй инкапсуляцию данных для ублажения железа, я правильно понял.? Так это и называется процедурным программированием, ващет, без инкапсуляции уже все - не ООП нихуя, по определению .
Инкапсуляция остаётся на уровне прокси-объектов. Просто data layout меняется с того, который обеспечивается языком/рантаймом: [{x:1,y:3,z:5,w:16,hui:30,pizda:140},{x:1,y:3,z:5,w:16,hui:30,pizda:140},{x:1,y:3,z:5,w:16,hui:30,pizda:140},{x:1,y:3,z:5,w:16,hui:30,pizda:140}]
На удобный для процессора и оптимизатора компилятора: { x:[1,2,3,4,5], y:[1,2,3,4,5], z:[1,2,3,4,5], w:[1,2,3,4,5], hui:[1,2,3,4,5], pizda:[1,2,3,4,5] }
Вообще, этот момент должен в компиляторе/рантайме решаться, просто сговор с производителями железа мешает это сделать и приходится пилить вот такие костыли руками.
Собственно, доклад мишани про то, что он эту хуитку запилит как раз на уровне рантайма и в юнити наступит счастье.
Так их нет, поэтому и рисуют данные костыли. Причем если в байтоебских языках AoS определено стандартом, потому что там структуры и экземпляры классов обязаны лежать в памяти непрерывным куском, то вот нахуя AoS перетащили в жабу и шарпей, если в рантайме можно смело хуярить данные как угодно - кроме заговора не объяснить ничем. Все что нужно - это перпилить у моно менеджер памяти, что бы он строго SoA хуярил.
>>514304 >>514309 Внезапный бывший учитель Unity для школоты (Код-класс) в треде. Авторитетно заявляю, что школьники программировать не любят. Им видите ли не нравится сам процесс набивания текста в IDE. Они хотят больше картинок и движения. Так что засилье школьников в Юнити - не более чем миф. Наверняка их больше в UE4, ведь там можно блюпринтами собирать лапшу.
>>514311 В геймдеве мало возможностей писать хороший код. Ты пока продумаешь архитектуру и будешь писать универсальный класс для спавна мобов и бонусов, говнокодер Вася уже вакатит свой прототип с копипастой кода, сотнями корутин и проверок в Update(). Игра Васи будет тормозить, никогда не будет толком доделана и пофикшена, но он все равно успеет сорвать куш. А ты с идеальной игрой будешь хуи сосать. В интерпрайзе же Васе просто никто не позволит уродовать проект говнокодом. Твоя зарплата напрямую зависит от качества кода.
>>514330 >Игра Васи будет тормозить, никогда не будет толком доделана и пофикшена, но он все равно успеет сорвать куш. А ты с идеальной игрой будешь хуи сосать.
И всё это закономерно ебнется, как ёбнулось овер 30 лет назад:
Поэтому лучше уж кресты задрочить и OpenGL велосипед написать, после чего пойти анальным рабом-падаваном к крупняку в польскую студию, чем в специальной олимпиаде со школьниками-говноедами участвоватью
>>514339 >И всё это закономерно ебнется, как ёбнулось овер 30 лет назад: Что ебнется, даун тупой? Код Undertale - сплошной пиздец. Тоби сейчас - миллионер. Ему уже сама игра и ее продажи нахуй не всрались даже, она на мерче да остальной оклоигровой хуете стабильно зарабатывает.
>>514348 >Код Undertale - сплошной пиздец. Тоби сейчас - миллионер. Ему уже сама игра и ее продажи нахуй не всрались даже, она на мерче да остальной оклоигровой хуете стабильно зарабатывает.
На атари в 1979-1982 тоже несколько лет успешно клепали говно за 5 недель включая отправку рома на фаб картирджей и запуск линии, не в первый год это ебнулось.
>>512438 Я пытался и сделал что-то по этому поводу. Но очень много отладки, заебался. Важно определять хотя бы с какой стороны столкновение, потому что объект Collider, который приходит в триггер, тебе ничего не расскажет.
>>514381 уже накидал, вроде стало получаться, но ситуация следующая, я подхожу к ней, нажимаю клавишу, и она должна повернуться на 90 градусов, пока что реализовал все кроме поворота - нужно чтобы игрок или что то еще не застряло во время открытия
Могу я как-нибудь через шарп получить объект, а затем менять его свойства? Просто присвоить переменной ведь не получится? Через ссылки? И как тогда с ними работать?
>>507111 После небольшого перерыва вернулся к этой проблеме. Вообще заебись вышло. даже не в 6-7 а в 11-15 раз быстрей текущего. Я уже стал упиратся в чтение и сувание в массивы, чем актуальную геометрию. Интересно как бы сделать сувание в массив быстрым-быстрым.
>>507137 А я забыл сказать. Спасибо за напоминание! Кстати, то что я оттуда спиздил хуже чем моё. Я себя почувствовал крайне умным.
>>514432 как всегда. почитай документацию. если лень читать то видяшечки посмотри тематические. если даже это лень то можешь тупые вопросы в треде позадавать. у юнити-хуюнити то нормас документация.
>>514545 Ты не видишь, что в юнити своя Queue с элементами одного класса? Там тред мёртвый. Ну тебе сложно ответить? В доках об этом нет. Там магическим образом возвращают через var. А в методе так нельзя
ура. эти преобразования матриц в юнити меня уже доебали. целый час понимал как же так хитровыебанно там сферы скейлятся. ещё и этот полуработчий профайлер физона который работает только в рантайме во время которого конплюктор начинает гудеть как будто сейчас взлетит.
>>514506 >рынок в миллионы раз больше и растёт постоянно так что такая хуйня невозможна
Пузырь раздувается, все логично. Тогда он тоже рос пиздец как. И тоже каждый мудила со своими поделками лез, пока это все не ёбнулось и нинтенда не придумала современную консольную модель в виде анального рабства для компаний-разработчиков платформодержателем. Где платформодержатель приказывает компании как она должна делать свою игру и имеет право отменить её выход.
>>514579 Ой блядь проснись, аналитик жопоголовый, ты обосрался В 82 году было 3,5 компании с парой оверпрайс консолек и несколькими миллионами пользователей, на которые они высирали оверпрайс говно, из-за чего эти пользователи и перестали это говно покупать. ПОТОМУ ЧТО ОНО БЫЛО ОВЕРПРАЙС И ВЫБОРА НИХУЯ НЕ БЫЛО
Сейчас в триллионной индустрии сидит миллиард пользователей, в стиме, на десятках консолей, на миллионах мобилок, в социальных сетях и где хочешь блять, хоть у тебя на холодильнике, сидят и ебашат в свои любимые игры. Что там наебнется? Какой пузырь?
новая гта преестанет продаваться? Люди перестанут в клаш оф кланс играть? В кэнди краш сага? В батл рояли в стиме? Корейцы перестанут в лолец играть? Сотни тысяч разрабов с голодными глазами перестанут игры делать и миллионы новых пользователей из развивающихся стран перестанут в них играть? Чё ты несешь сука, ты вообще думаешь чё ты пердишь тут?
Единственное что произойдет, и уже происходит, это то что стим превратится в гугл плей в котором 99.9% индюков будут разорятся потому что они клепают говно и не могут в маркетинг. Иди нахуй отсюда, клоун ебаный
>>514584 Ну это естественно сравнимо с текущей индустрией, ага. Чё ещё пизданешь, мастер википедии? Может средние цены на игры сравним,а? А может перечислишь фритуплей игры в 82 году? Ах да, их небыло нихуя, точно, ты снова обосрался
А как к экземпляру класса то подключить другой скрипт? А то в [SerializeField] можно только спрайты таскать. А мне нужно методы вызвать и получать переменные.
>>514687 Ты к чему мне этот обучающий видосик для нубасов прислал, Маня? Если ты не можешь жить без замечательных видосиков от юнитеков, это еще не значит, что остальные не могут. Я и так минимальную связность компонентов обеспечиваю в своих проектах.
В очередной раз убеждаюсь, что Юнити - это для школоты, дрочащей на новые фичи от юнитеков и их зажигательные выступления на конференциях. Реальные пацаны в интерпрайзе. Поскорее бы съебать от вас в интерпрайз.
>>514560 На самом деле я уже давно написал его. Там уже полно клевых фич, вроде динамических обстаклов, автоматического определения укрытий, хранения данных в самом навмеше и управлением их из компонентов, гпу растеризации и прочего-прочего говна.
Мне недавно один мой постоянный пользователь написал "чето деревья не работают как надо" и тут то я обнаружил что юнити добавили возможность совать в деревья коллайдеры от чайлдов. ну охуеть теперь. когда начал исправлять это то понял что повсеместное обилие примитивных коллайдеров это пиздец. сел оптимизировать растеризацию хотябы сфер и капсул. попутно рефакторя приличный кусок старого кода. теперь вот всё это заработало, но надо соединить три куска нового кода в один большой и сунуть в старую часть.
жду не дождусь когда юнитеки сделают свой новый террейн. вот наверно веселья полные штаны то будет.
>>514569 да ладно на самом деле я начал писать далеко не в самый первый тред! где-то начиная c 5.6 версии я тут иногда появляться стал. и показывал я не только этот велосипед! вообще может скоро покажу один забавный прототип игры, у меня тут появился один мой старый мудак полный желания реализовывать мои охуительные идеи.
>>515230 Ты в состоянии мысль сформулировать? Что тебе нужно? Функция, вызываемая каждый кадр, но запускаемая вручную и вручную же останавливаемая? Если да, то это корутина. Если нет, то попробуй сначала сам понять чего ты хочешь.
>>515241 > Функция, вызываемая каждый кадр, но запускаемая вручную и вручную же останавливаемая? > Если да, то это корутина. Можно ещё прикреплять к объекту скрипт с апдейтом, а потом дестроить его, когда больше не нужен.
Нужно писать очень много очень мелких скриптов. Создавать MonoBehaviour на каждый чих и ждать полчаса рекомпиляции не хочется. Какие имеются популярные альтернативы?
>>515253 Ну например у меня заскриптованная игра. Мне надо каждую дверь открывать немножко по разному, например. Для каждого монстра сделать разные скрипты.
>>515254 > Мне надо каждую дверь открывать немножко по разному, например По разному это как? Под другим углом? С другой скоростью? Делай нужные поля сериализационными и запросто один и тот же скрипт будет делать "немножко по разному" на разных объектах.
>>515257 > Методы триде спокойно вызываются в объектах двадэ Чего-чего? На 2д-ОБЪЕКТАХ 3д-метод и так спокойно вызовется, если на нём использовать необходимые компоненты, например бокс-коллайдеры вместо 2д-коллайдеров. Даже на 2д-объекте, да. Это как купить ютуг вместо ботинка и жаловаться что на ногу не налезает.
>>515262 Это понятно. Я у тебя и спрашиваю, чем у тебя будет отличаться открывание одной двери от открывания другой. Если значением пары переменных, то делай их сериализуемыми. Если чем-то сложнее, то делай разные методы. Если вообще пиздец как отличаются, то пиши разные скрипты. А то у тебя постановка задачи на уровне "хочу делать много скриптов, но не хочу, а то их много будет".
>>515264 >А то у тебя постановка задачи на уровне "хочу делать много скриптов, но не хочу, а то их много будет". У меня постановка задачи в том, что мне нужно писать скрипты внутри юнити. Не только для дверей. Двери это просто пример.
Аноны, такая проблема. У меня есть допустим 3 бота, которые двигаются вперед назад. За их движение отвечает один и тот же скрипт, который рандомно выбирает их направление. Боты двигаются синхронно. Как это фиксить ?
>>515269 Потому что C# - это не скрипты. Компоненты - общие для объектов, скрипты пишутся для каждого конкретного объекта. Суть скриптов в быстрой итерации. На C# не удобно создавать и редактировать сотни мелких скриптов.
>>515273 > Потому что C# - это не скрипты Называй как хочешь, суть не поменяется. > скрипты пишутся для каждого конкретного объекта поведаю тебе тайну — один и тот же скрипт (или как ты там их называешь) можно повесить на любое количество объектов. > На C# не удобно создавать и редактировать сотни мелких скриптов Создаёшь ты не "на C#", на С# ты их пишешь.
>>515278 > Моя проблема - это твоя глупость Я же сказал, мне похуй как ты это называешь. Хоть скриптами, хоть евангелиями. Так с какой бедой ты пришёл в тред?
>>515283 >Нужно писать очень много очень мелких скриптов. Создавать MonoBehaviour на каждый чих и ждать полчаса рекомпиляции не хочется. >Какие имеются популярные альтернативы?
>>515286 > Нужно писать очень много очень мелких скриптов Пиши не очень много. > Создавать MonoBehaviour на каждый чих и ждать полчаса рекомпиляции не хочется Не создавай на каждый чих.
что за пиздец творится в треде? почему тут дают советы уровня "не суй кубик в круглую дырку"? почему тупые вопросы находят такой-же тупой ответ? поскорей бы лето кончилось.
>>515289 > почему тут дают советы уровня А какие ещё советы давать? Тут или годотошизик ошивается, или уечепидор, или пара нубасов. Тред на каникулах и отпусках, ничего не поделать.
>>515287 Ты тупой? Ты вообще представляешь что такое заскриптованная игра? Квесты, РПГ, адвенчуры, многие заскриптованые шуторы. Мне буквально нужно писать сценарий игры по шагам. Я не хочу писать тяжелые убер компоненты и городить изощреные системы там, где это не нужно.
>>515292 Как правило это все решается сериализацией и созданием универсальных скриптов для одинаковых типов объектов Я незнаю почему ты этого не можешь понять
Давай приведи примерь про двери, какие ты хочешь отличия в функциональности двух дверей для которых нужно было бы писать новый скрипт
>>515302 >Как правило это все решается сериализацией и созданием универсальных скриптов для одинаковых типов объектов Это решается, если можно сделать общую абстракцию компонента для объектов. Скрипты нужны чтобы писать логику для каждого объекта. Компоненты и скрипты прямо противоположны.
>>515313 Вот например в юнити сделали абстракции Rigidbody, Animator, Cinemachine. Мне же нужны скрипты для каждого объекта. Я не могу сделать универсальную абстракцию каждого конкретного поведения.
>>515316 Да это либо жиробас, либо зелёный, который юньку два раза в жизни запускал. Хотя скорее первое, потому что зелёный на прямые ответы уже давно бы ответил, а не крутил пластинку по кругу.
>>515314 Проще будет купить специальный ассет для этого дела. Для простой игры подойдет Fungus. Я на Фунгусе реализую диалоги персонажей и квесты. Можно быстро добавлять новые действия и логику переходов между блоками. Плюс, у тебя будет готовый компонент для вывода текста в любых мыслимых формах.
>>515316 Речь не о том, как должна открываться дверь. Это 2 двери с разными сриптами. Например, из квеста. Одна может открываться с заданными интервалами, Другая, например, может проверять инвентарь игрока и быть закрытой, пока игрок не выполнит какое-то условие.
>>515324 > Одна может открываться с заданными интервалами, Другая, например, может проверять инвентарь игрока и быть закрытой, пока игрок не выполнит какое-то услови Запросто делается одним скриптом.
>>515327 И? Как это отменяет то, что я могу повесить один и тот же скрипт на несколько дверей и все они будут работать как я захочу? Какая-то с интервалами, какая-то с песнями и плясками? Ты сам себе сложности создаёшь.
>>515323 Отсюда >>515292 Сценарий игры по шагам как раз в Фунгусе удобно собирать. Алсо, его можно не только для диалогов использовать. Любую хуиту, которая у тебя в компонентах вызвать можно или Событие дернуть.
>>515324 ну смотри есть класс Door bool isLocked; bool isOpen; KeyType key; bool autoOpening; float interval;
и пишешь в скрипте все варианты взаимодействия там с учетом всех этих условий. И проблем нет. Понимаешь дверь это дверь. Ничего сверхъественного ты с ней не сможешь сделать. Она либо закрыта, либо открыта, либо заперта, у неё ограниченное количество характеристик. И так с большинством других объектов.
Если что то более комплексное то делай наследование, например класс BaseEnemy, от него наследуется BaseBandit, от него например BanditLord и так далее, и в каждом скрипте прописывай что-то комплексное
>>515328 Не можешь ты ничего повесить. Тебе нужно будет создавать кучу специальных компонентов со специальными поведениями такими, какие требует сюжет.
>>515324 Говорю же, в Фунгусе делай. Создаешь сценарий, создаешь в нем переменные. Сценарий опрашивает игрока bool IsHuitaInInventory(), bool IsQuestDone(), сохраняет в переменные результат. Сценарий выполняется при контакте с дверью, проигрывает нужный блок, проверяет переменные.
>>515333 Да епта ты говоришь об игровых системах общих для всех объектов этого типа. Игровые скрипты это прямая противоположность. Скрипты создаются чтобы создать конкретное поведение объектов в конкретный момент игры.
Давай ещё один пример приведу. Вот тебе например надо сделать скриптовую сценку - трое солдат выбегают в разные точки, один открывает дверь, второй кидает гранату.
Что я предлагаю: Делаешь общий класс Soldier делаешь в нем список структур Action с данными type, position, interactableObject,message Вешаешь скрипт на 3 солдат, у одного в список вносишь Actions типа Move в позицию которую тебе надо, у второго вносишь Move потом Interact, подвешиваешь дверь и посылаешь message Open и т.д
Что ты предлагаешь: Делаешь 3 класса Soldier1, Soldier2, Soldier3 Каждому пишешь вручную что надо делать
>>515350 Ещё один блядь. Это не скрипты это код Это не код это программирование Это не программирование это сишарп Это не сишарп это магнитные волны в анусе на орбите юпитера блять
>>515348 > Ты про StateMachineBehavior? Да про обычную анимацию. Вот наглядный пример набросал. Тут тебе и временная шкала, и доступ к свойствам компонентов. Расставляй себе ключи как хочешь.
>>515324 Разделяешь дверь умеющую открываться и закрываться, делаешь интерфейс IActionListener. Делаешь базовый абстрактный класс ActionCondition который умеет дёргать IActionListener на том же объекте. Потом делаешь пачку разных реализаций ActionCondition. Всё. Дверь открывается пероидически? PeriodicActionCondition? Дверь открывается по предмету? CheckInventoryActionCondition. Бонус-трек - ты можешь скрыть за IActionListener что угодно и эти условия будут точно так же работать! Ты подменяешь дверь на сундук и большая часть кода не меняется! Абстрагировать дверь за неким AnimatedActionListener который в анимации будет дёргать дверь и выключать коллайдер - и у тебя дверь (или сундук) как таковые исчезают из кода. Это ёбаная азбука программирования и самой базовой декомпозиции. Которой похоже ебучих УНИТИ ПОГРОМИСТОФФ никто не учит. Нет, их учат писать "скрипты" вместо программирования.
>>515357 > Которой похоже ебучих УНИТИ ПОГРОМИСТОФФ никто не учит Да этот гений вряд ли юнити даже скачивал. Уже сколько постов ноет что ему предлагают код, а не скрипты.
>>515357 Ты не понимаешь, что есть 2 парадигмы разработки игр: это программирование путем создания игровых систем, и программирование путем скриптов. Каждая имеет преимущества и недостатки и подходит для решения особых задач.
Например, ИИ в шутере лучше сделать системами, что-нибудь behaviour tree или GOAP. Скриптованные враги в шутерах не интересны. В jrpg же, наоборот, лучше будет простой заскриптованный ИИ.
>>515363 Нет никакой парадигмы разработки путём скриптов, ты хуйню придумал. Не бывает блядь такого чтобы для каждого объекта в игре писался свой уникальный скрипт, надо конечным быть чтоб так делать
>>515370 Так в юнити и так все и всегда используют скрипты, только ты заявляешь что "ваши скрипты - не скрипты". Уже два часа мозги ебёшь, вместо того чтобы игры делать на скриптах.
>>515372 >Так в юнити и так все и всегда используют скрипты Потому что это пользовательские/программируемые компоненты, а не скрипты. Я имел ввиду скрипты в классическом понимании.
>>515379 В тес как раз таки сериализация на сериализации и сериализацией погоняет. Программисты написали базовые классы а потом художники просто данные туда по забивали и все. Ты хуйню несешь реально.
>>515382 > В тес как раз таки сериализация на сериализации и сериализацией погоняет Походу он даже не знает что это. Ему уже раз пять про сериализацию говорили, а он всё про Ерёму.
>>515373 >>515363 Чем, ебанашечка, набор компонентов такого рода тебе не скрипт? Ты, дебилушка, понимаешь что для использования DSL (чем скрипты по сути и являются) это самый DSL сначала создаются, чтобы было этот самый Domain в котором мы оперируем. Скрипты они по определению относятся к data-driven подходу, компилировать C# намертво в игру не data-driven ни разу.
>>515324 см>>515357 Другого ответа нет. Создаешь асьтрактный интерфейс и генерик-классы для каждого типа двери. Повторяющегося базового кода не будет, он будет на родителе. Даже плодить детей много не надо, можно группировать по субгруппам - "дверь открывается по предмету" - похуй какой предмет, один скрипт для всех таких дверей.
что-то в треде просто какая-то огромная куча хуйни насрана теперь. умерьте пыл. пощады.
алсо какая занимательная проблема. для сферы максимальный угол посчитать было легко, там просто трешхолд по высоте. а вот для повёрнутого элипса как-то дохуя сложно и у меня не хватает на это мозгов. поэтому я просто посчитал для каждого сегмента угол. но в итоге иногда можно увидеть такую вот залупу слева.
>>515290 надо делится своими достижениями, отвечать на конструктивные вопросы и быть резиновой уточкой для тупых вопросов.
>>515251 один хуй после конпеляции проекта там будут нормальные делегаты. не представляю чего тут на сендмессенджи бузят. как будто в эдиторе игры играют.
>>515479 бгг. хорошо. я скажу самое популярное решение для скриптинга в юнити: ты, короче, ебошиш как можешь. хорошо ебошиш, пока что-то не сломается. а потом когда видно что получается хуйня ты садишся, вдумчиво смотришь почему же так и садишься пишешь уже как надо учитывая ошибки прошлого. и стараешься больше их не делать. желательно никогда.
рекомендую. я всегда так делаю. до сих пор эта тактика скриптинга меня ни разу не подводила.
>>515494 хуйня-говно. пишешь код, он что-то делает. как там кто называет процесс изложения глупой машине чё ты от неё хочешь ващепохуй. когда тебя спрашивают "че ты там делаешь" ты что отвечаешь? "я скриптую"? "я погромирую"? правильный ответ - "я делаю хуйню". и да, спагетти в уе для дегенератов. я называю это не скриптованием, я называю это деградацией. и ты называй.
>>515499 типа чем оно различается то? если погромист через код говорит "хочу чтобы хуй завернулся в калач" то это погромирование, а если артист через спагетти говорит "хочу чтобы хуй завернулся в красивый калач" то это скриптование? в чем у тебя там различие то? ты давай вот раз выдвигаешь теорию то ещё и раскрывай её. в чем отличие то? в методах изложения? в базовой профессии? может быть в цели? типа пишешь игру это скриптование, пишешь инструмент это погромирование? а может позе в которой ты это делаешь?
>>515409 Да что ты пристал к этим дверям? Как насчет квестов для РПГ? Ты можешь сделать мощную систему квестов, которая бы учитывала все возможные варианты наперед, или для каждого квеста писать небольшой скриптик.
Вот еще такое определение. Для игровых систем создаются ассеты с данными, которые влияют на заранее созданное поведение игровых систем. Например, можно создать ассет квеста, указать в нем какие-то данные и система просто будет использовать эти данные. Скрипт же является ассетом с кодом.
>>515503 >Ты можешь сделать мощную систему квестов, которая бы учитывала все возможные варианты наперед Я могу сделать мощную систему квестов, которая бы учитывала все возможные варианты наперед
Я всё же склоняюсь к тому, что это тралинг тупостью, но всё же применю свои навыки перевода с гуманитарного. Речь скорее всего идёт о создании игровых сценариев, то есть ему нужен инструментарий для выстраивания иерархии игровых событий. И вопрос был о том, есть ли в юнити кнопка "сделать игру". Ответ: из коробки нет, надо купить ассетна сижиперсии.
>>515516 >нужны скрипты >Речь скорее всего идёт о создании игровых сценариев Ебать ты переводчик А я и спрашивал популярные решения/ассеты. Есть, например, fungus, визуальный скриптинг заточенный под новеллы, адвенчуры.
>>515516 Он хочет редактор мира как у беседки, чтоб уже готовое было, просто забиваешь диалоги/анимации и всё, только он сам этого понять и объяснить не мог и всем доказывал что программисты этот контент пишут а не художники (парадигма разработки скриптами понел да), а ему тут всем тредом пытались объяснить что программисты просто написали редактор, и всё, на этом их работа закончилась, и что ему нужно такой же редактор писать для своей игры и в него уже контент забивать
>>515516 Чего ещё ожидать от гододетей. Игры они не делают, остаётся только срать в юнити-тредах, где кто-то делает игры. От зависти ли или просто от тупости.
https://unity-coin.appspot.com/ Что думаешь анон? Можно встраивать в свои игрушки и майнить монеро за счет компов пользователей. Вполне себе неплохая схема монетизации если её оглашать при этом
Аноны, через один скрипт делаю SetActive(false), и все прекрасно работает. Через другой пытаюсь сделать SetActive(true); и выдает ошибку: NullReferenceException: Object reference not set to an instance of an object
"This function only returns active GameObjects. If no GameObject with name can be found, null is returned. If name contains a '/' character, it traverses the hierarchy like a path name."
Ребята! Помогите с векторами и матрицами. У меня есть шар, типа планета. Я хочу ходить по ней контроллером от первого лица так, чтобы локальное пространство поворачивалось относительно центра планеты и это отражалось бы на вводе с мышки - если я смотрю вниз, то это не глобальный низ игрового пространства, а центр планеты у меня под ногами. Как бы мне это организовать?
Какого хуя унити не активируется, выбираю Personal и она висит, сделал ручную активацию, ей похуй "Sucksessfully loaded" и висит блять, уу сука уууу нахуй!
>>515652 вводе мышки то зачем? матрицы то тебе и не нужны, сделай Quaternion который крутит на текущий верх и перемножай на него все векторы которые тебе там надо. хотя тут уже были личности которые пытались планеты, может советы получше дадут, если появятся.
>>515700 а вдруг он не на асфальте дрифтует? и машинки у него весят не дохуилион как это надо для стандартных настроек?
>>515711 а я к тому что хуй его знает что он там наворотил! надо сначала выудить подробности. может там игра про дрифтование игрушечных машинок в песочнице? а может игра про дрифтование на телегах? а может тут ещё и завоулированный вопрос как с этими дверями "двери тут просто для примера". и вопрос вовсе не касается колёс?
>>515718 >Есть реальный смысл в это задрочиться и построить таким образом свой проект? Нет. Знаю только, что подобным страдают в больших игровых студиях, но там свои подходы используют.
Тебе стоит использовать какие-то основные подходы для улучшения читабельности кода, но только по мере разрастания проекта. Увидел, что класс твоего персонажа стал слишком большим? Разбей его на несколько классов, чтобы было проще (если есть смысл).
>>515718 разве что если речь идёт про первую половину видео и ты недостаточно наступал на грабли чтобы узнать это уже самостоятельно. там да, все советы где он выражал примеры с бобом это он за тебя на грабли наступал. а вторая половина уже более специфичная.
>>515781 >речь идёт про первую половину видео там вообще никакой инфы нету. выступление о том, как какой-то дурачок нахватался вершков и продвигает анти-паттерны.
>>515809 И я не про AAA, а просто собираюсь наконец сделать объёмную production-ready игру, и отправить в стим. И чтобы я был уверен в работе каждого отдельного компонента перед каждым релизом.
>>514687 >>515818 Тупые докладчики даже не понимают суть dependency injection. Dependency injection значит лишь то, что объекты с которыми взаимодействует этот объект указывают не во время конпеляции, а во время выполнения. Только и всего. Например: // без DI class MyScript : MonoBehaviour { void Start() { GameObject.Find("OBJECT").SendMessage("message"); } }
// c DI class MyScript : MonoBehaviour { public GameObject obj; void Start() { obj.SendMessage("message"); } }
О чем они говорят на самом деле называется service locator, известный анти-паттерн.
>>515841 Вот еще более очевидный пример // без DI class Text { string text; public void Print() { IPrinter printer = new FilePrinter("c:\file.txt"); printer.Print(this.text); } }
// с DI class Text { string text; public void Print(IPrinter printer) { printer.Print(this.text); } }
Для одиночной разработки проще всего создать что-то вроде синглтона Services, который в зависимости от настроек проекта будет инстанцировать релиз/дебаг префаб. А потом вот так получаешь нужный сервис Services.Instance.GetComponent<ISocialService>();
>>515879 Антипаттерщики. Любому, кто посмотрит на этот код с локатарами, сразу становится очевидно, что что-то не так с этим говно. Этот код какой-то нечистый. От этого кода ВОНЯЕТ.
Аноны, вопрос по мобильному Input'у в Юнити. Как сделать этот ебаный наэкранный джойстик для 3д управления персом? из стандартного ассета? Я не пойму, то ли есть готовые ассеты среди стандартных (там вроде что-то есть, но не могу заставить работать). Ютуб толковых туториалов не выдает кроме как изобретания велосипеда с нуля.
А в плеймаркете я вижу массово в говноиграх даже самый конченный разраб умеет вставлять в свою игру этот джойстик. При том судя по его игре он вообще НИХУЯ не умеет делать только ассеты собирать готовые.
Вот не прет мне с джойстиком. Если в кратце, как я это вижу: 1. Есть стандартынй фпс-контроллер от юнити. 2. Есть "кросплатформинпут" какая-то хуевина, которую на экран добавляешь и она какие-то две равноразмерные полупрозрачные рамки на экран добавляет. А че дальше то? Как их связать чтоб работало как джойстик?
Короче аноны поведайте откуда школьники на андроид берут свои джойстики и как их собирают в игру прикрепляют своему управляемому персонажу.
p.s. я смотрел смотрел туторы на ютубе, не надо мне тут. Просто там слишком сложная хуйня изобретается с нуля, это не то. Сука не могу допереть пиздец заебало.
Суп. Как сделать, чтобы объект, приземляясь, как бы проваливался на некоторое расстояние и плавно поднимался на уровень соприкосновения? Хочу леветирующего перса сделать. Не знаю как это загуглить.
>>515956 >Просто там слишком сложная хуйня изобретается с нуля, это не то Это кажется, что сложно. Там ничего сложного. Я так написал свой джойстик на основе дефолтной реализации, игроки довольны.
>>515976 > И сразу решил делать хуйню не по уровню? А тебе-то что, блядь? Охуеть заявление. Просто скажи, про что почитать, чтобы получить информацию, необходимую для реализации задачи.
>>515982 > Охуеть заявление Ну это примерно как сказать "посоны, решил вот выучить немецкий, скачал Шлегеля и чёто нихуя не понимаю". С азов начинать надо. > Просто скажи, про что почитать, чтобы получить информацию, необходимую для реализации задачи Про азы. В шапке достаточно ссылок.
>>515984 > Ну это примерно как сказать "посоны, решил вот выучить немецкий, скачал Шлегеля и чёто нихуя не понимаю" А с чего ты взял, что я решил выучить немецкий, мань? Я знаю немецкий, но не знаю слов по сабжу, лол. Просто скажи, что мне нужно конкретно названия, чтобы я мог в доках найти, ну ебана.
>>515988 > Совсем в аналогии не можешь? > Я знаю немецкий, но не знаю слов по сабжу Ты - видимо да, если не тралишь. Я могу в кодинг, блядь, да и изначально какая разница, если я прямо попросил. Тебе-то что от того, как я этим воспользуюсь? К чему вся эта демагогия? > не удивительно что ты шапку не осилил В шапке доки. Те самые, из которых я хочу прочесть инфу, знать бы что именно из них читать.
>>515995 > знать бы что именно из них читать Да ты гений просто. Тебе ж уже написали >>515969 Или твой гениальный разум не может загуглить аж несколько слов?
Мужики, подскажите пожалуйста. Есть анимированый персонаж, также есть есть партикалы, конкретно - горящие глаза. Как заставить эти самые партикалы двигаться за анимированым мешем?
>>516035 > Как заставить эти самые партикалы двигаться за анимированым мешем? Сделать меш родителем партиклов, например. Если сами партиклы настроены локально, само собой.
>>516036 Simulation space - local, scaling mode - local, Render aligment - local, всё равно не работает, партикалы просто стоят на месте. Анимации делал в блендере, если это имеет знание.
>>516051 > меш - один обьект Ну тогда не удивительно. Тебе нужны локальные позиции именно глаз/головы, и под них уже подсунуть эти огни. Судя по видео, у тебя меш с костями, можешь попробовать найти кости на глазницах и прихуячить огни туда. Но это велосипед в квадрате, и то не факт что получится.
Парни, что лучше? К какому варианту вы чаще прибегаете, как разработчики?
Вариант а) Есть стандартный или чей-то ассет к примеру FPS Controller. Вы - запихнули "как было", главное шоб работало. Иметь в итоге пару лишних функций, всяких заебов лишних в коде, но зато работает и время не тратится на перфекционизм. Когда понадобится зато потом что-то исправить приходится разбираться в этих дебрях чужой логики.
Вариант б)Написать по аналогии свой FPS Controller без лишней хуйни, пространств имен которые тебе нафиг не сдались, всяких вещей, которые так хитро написаны, что вы до конца не врубаетесь. Иметь полный контроль и понимание. Но в итоге на это надо время, вы его тратите, а таких вещей мелких может быть в игре с десяток.
Мне просто интересно как вы относитесь к подобным ситуациям и как сильно запариваетесь.
Есть одно 2д колесо. Так вышло что по умолчанию оно почему то ехало в обратном направлении. Повернул его на 180 градусов и оно начинает с дикой скоростью крутится, в чем может быть проблема? Точнее крутитс только спрайт колеса, колижн неподвижен.
>>516198 ну так ты это. потереби настройки фрикшена. или материал какой на пол ебани. я не думаю что тебе вообще можно дать какие-то настройки которые тебе полезны будут.
>>516206 какой трюк провернуть то хочешь? юнити не дает пользоватся своим API не в основных тредах почти. поэтому сделай говно в других тредах, вернись в основной и закончи там.
>>516209 а хуй знает что у тебя там менеджер делает. если генерирует какие-то изменения для террейна или сам террейн то можешь из побочных тредов делать очередь из того что надо сделать в основном треде. и в основном треде уже через корутины или какую другую хуйню расчехлять и применять эти изменения.
вообще советую подождать с этим. там в следующей версии новый террейн подъедет вроде как, хуй его знает чё они там сделают но обещают перфоманс.
>>516218 https://youtu.be/CWgi6hE26ig?t=1976 вон даже видео показали! ух заживём! и нестед префабы! и мемори профайлер! и новая хуйня для инпута! и даже чето там с нетворком шабуршат. прямо всё что у них просили лет этак пять тому назад. ещё бы сериализацию сделали по человечески так вообще заебись стало бы.
>>516220 да что ты. мне ты нихуя не говорил. нахуй иди. а как насчет кейса когда я пишу код другим людям? м? вот выкладываю я в ассет стор свой код, мне что, жирным писать на нём "эта хуйня заработает только если сделаешь хуйню"? или когда расширяешь ебучий интерфейс юнити который нормально работает только с тем что может сериализовать тут то что сделать предложишь? м? нет, эта жопа по имени "сериализация в юнити" неотвратима, если не хочется ещё большей жопы.
>>516219 Лучше бы они тратили деньги не на эти бессмысленные конференции каждый месяц, а на разработку движка. Такое чувство, что в юнити работает целый штат маркетологов, а в грязном пыльном чулане сидит 2 программиста, которые собственно и пилят движок.
>>516226 > в грязном пыльном чулане сидит 2 программиста, которые собственно и пилят движок Не в таком уж и пыльном, попрошу вас. один из двух программистов
https://pastebin.com/RRQuYx5t Двощ, почему у меня перс с этим кодом в какой-то момент перестает двигаться с одну из сторон? Как пофиксить? В гугле есть рабочий вариант, но с ним он скользит как по льду.
>>516241 вообще хуй его знает, я внимательно не вчитывался. но хочу поинтересоваться. а нахуй ты сделал значения public, если ты всё равно переназначаешь их на старте? почему ты ловишь момент нажатия и отпускания кнопки, вместо того чтобы смотреть просто когда кнопка нажата? почему пользуеьшся кейкодами, вместо инпут.гетаксис? почему игрок двигается до того как получит апдейт инпута?
>>516244 > а нахуй ты сделал Я не сделал, я спиздил из видоса. У меня тот же вопрос к аргументу в функции движения. Мб он дальше в видосах что-то с этим мутит. > вместо того чтобы смотреть просто когда кнопка нажата Как?
про аксисы что же ты сам не загуглишь то? https://docs.unity3d.com/ScriptReference/Input.GetAxis.html вот хуяк аксис. имена и прочую хуйню можно настроить в Edit > ProjectSettings > Input Про класс инпута советую почитать повнимательней, раз ты собрался какую-то 2д хуйню творить.
>>516247 > про аксисы что же ты сам не загуглишь то? Ну, я пробовал какой-то варик с аксисами, говорю же. Только с ними перс скользит, когда отпускешь кнопку. Да и, кстати, иногда один хуй стопоется.
>>516270 >когда отпускешь кнопку дык бери GetAxisRaw и это. Update не для манипуляций с физоном.
а что там у тебя стопается - сам дебаж свою хуйню. проверь правильное ли ты говно скармливаешь юнити. если виноват не инпут то проверь по кадрам что там происходит.
У меня элементарный вопрос, на который я почему-то никак не могу нихуя толкового нагуглить. Как настроить текстуру, чтобы на разных гранях фигуры показывались разные куски текстуры? Нашел что-то про шейдеры, но там вообще хуй что поймешь, а конкретно по моей проблеме ничего похожего нет.
>>516307 Ну опять же нихуя нормального не гуглится. Вот эту хуйню читаю https://unity3d.com/ru/learn/tutorials/topics/graphics/unwrapping-and-chart-reduction?playlist=17102 и все, что можно понять, что если выбрать режим "UV Charts", то будут видны какие-то цветные квадратики, которые чего-то там. Просто охуеть. Может, уже кто-нибудь подскажет, как правильно гуглить это дерьмо? Я уже целый день пытаюсь хоть что-нибудь найти по этой теме. В блендере создавать UV умею, можно ли как-то оттуда импортировать в юнити? В гугле опять же нихуя не найти.
>>516415 Представь, что есть 3д-модель головы, и есть голова, нарисованная просто на картинке, и ты просто применяешь текстуру в юнити перемещением мышки на модель. Как думаешь, все детали головы будут сразу же изображаться на своих местах? Понятно, что нет, и тут надо вручную устанавливать, где и какие куски будут отображаться. Это все, что мне надо узнать. Тема элементарная, а материалов - вообще нихуя нет.
>>516198 Взгляд обывателя: да нормально машина ездит. Я вообще не прочитав сути сначала глянул видео и ничего плохого не заметил. Потом прочитал и снова пересмотрел - нихуа. Не парься
>>516419 Думаешь, я не гуглил эту тему? Запрос "unity uv unwrap" выдает только ссылки на всякие говнофорумы, где спрашивают про это. Ни одного внятного ответа типа "это делается в такой-то вкладке" нет. Возможно, uv не создается, а импортируется откуда-то. Но блять даже запрос "unity uv import" тоже нихуя не выдает. Может, ты уже скажешь, как у тебя получается настраивать текстуры именно в юнити? Я думаю, не сложно будет сказать что-то типа "это делается в такой-то вкладке". >>516424 Охуительные аналогии. Это как если бы я спросил у биологички, почему при фотосинтезе выделяется кислород, она бы мне ответила "тебе к химикам, это не по моей теме".
>>516430 То есть, uv привязывается к самому 3д-объекту? Ну вот, я даже не видел, чтобы это было где-то написано. Хорошо, попробую. >дура Вот это обидно было.
Аноны, у меня на сцене присутствуют два клона персонажа, к ним прикреплен один скрипт, скрипт отвечает за HealPoin. Когда враг наносит урон одному персонажу, то урон уменьшается у обоих. Как это исправить?
>>516612 Ну загоняй их в массив, а там уже смотри какой ближе IOrderedEnumerable<T> OrderByDistance<T>(T[] array, Vector3 point) where T:Component { return array.OrderBy (x => (x.transform.position - point).sqrMagnitude); }
>>516614 Чёт я не догнал. Это метод? А чего бы не написать так: IOrderedEnumerable<Component> OrderByDistance<Component>(Component[] array, Vector3 point) { return array.OrderBy (x => (x.transform.position - point).sqrMagnitude); } Да даже ещё короче можно. Вроде Component можно где-то не писать.
>>516630 А вот так будет работать? public static IOrderedEnumerable<Transform> OrderByDistance(this Transform[] array, Vector3 point) { return array.OrderBy (x => (x.position - point).sqrMagnitude); }
>>516635 Не, ну делай как тебе надо. Я вообще не пойму нахуй тебе велосипедить всего лишь для определения ближайшего объекта по тегу. Я бы загонял вышеуказанным интерфейсом все объекты в массив, а потом его перебирал.
>>516640 > почему ты так написал Ну потому что у меня так в моём коде, лол. Я там, правда, потом ещё кое-какие махинации делают, но в массив загоняю и упорядочиваю именно так.
Как бороться с пикрил? Это вызывается cullingom? Выкрутил near на 0.01, dynamic occlusion убрал. Не помогает. Как бороться с тем что рядом с камерой фигня происходит? Размер персонажа 1.5, глючащий объект - 7х7м где то.
>>516219 >нестед префабы Сколько лет они были главной проблемой? 10? Ну вот они ещё столько же будут раскачиваться. Потом забросят на полпути как было с каждой новой фичей. >и новая хуйня для инпута! Они про него года два говорят, никаких движений за это время не сделано. Они даже выпустили "превью" которые в принципе невозможно использовать, кек. >даже чето там с нетворком шабуршат Они с 5.0 шебуршат. Забросили в районе 5.2, в этот раз будет то же самое. Много шума, сделают какую нибудь базу - и забросят. >>516122 Вариант а в принципе не жизнеспособен - тебе надо интегрировать контроллер в свою архитектуру что обычно невозможно без переписывания (код типичных ассетов - тотальный кал). Не проблема для паршивой индишатины или ассетфлипа конечно. Можно использовать только для того что работает по принципу "кинул и забыл" и с чем тебе не придётся взаимодействовать.
https://www.youtube.com/watch?v=mQ2KTRn4BMI Столько усилий, чтобы опитимизировать простой платформер с десятком активных объектов. Производительность C# вообще пушка: не используйте вектора, не двигайте объекты, не используйте Update Юнити и правда настолько бесполезный?
>>516785 Есть много скриптовых языков специально оптимизированных для игр. Нет, давайте возьмем C#, который в принципе создавался для других задач и не подходит для производительных реалтайм приложений. Что может пойти не так?
>>516693 >Сколько лет они были главной проблемой? я бы не сказал чтобы они были главной проблемой. я бы не сказал что вообще можно выделить главные проблемы. можно конечно перечислить дохуилион старых притензий, но то что показали лучше чем есть, хули.
>сделают какую нибудь базу - и забросят. да ладно главное что постоянно возвращаются. если она станет более юзабельная то я только за. сейчас самой высокой прослойкой этой абстракции невозможно пользоватся.
>>516785 >Unite 16 половина советов оттуда уже не валидна. форич поменяли, трансформ и так уже кешируется класс с векторной математикой они конечно могли и получше написать, да. да и хуй с этим.
>>516785 >Столько усилий, чтобы снять видос. Платформер бы и так не тормозил, а кеширование трансформа и в более сложных проектах давало такой гигантский прирост производительности, что про него можно было бы и не вспоминать.
>>516781 > коей ты, естественно, не являешься? Мне зарплату платят :3 >>516785 То не C#, то УНИТИ и вызовы между нативным и управляемым кодом. >>516796 Какая нибудь LUA намного медленней C#. >>516798 > но то что показали лучше чем есть, хули. Они много что показывали. Разговор может идти только когда это будет завершено и готово к использованию. > главное что постоянно возвращаются Когда они возвращались к сетевому коду после 5.2? Спойлер: NIKOGDA. Они решили забросить обещанное и всё переписать. Опять. >>516788 В прошлом он генерировал мусор. Вроде поправили года два назад.
>>516821 А ты сделай бешовный стриминг на УНИТИ, посмотрим что не будет тормозить. Загрузка сцены сделана через такой анус что в некоторых случаях ручная сериализация в XML работает быстрей. Алсо, при загрузке есть синхронный этап вызывающий явно видимый разрыв.
>>516823 >Они много что показывали. Разговор может идти только когда это будет завершено и готово к использованию. лол когда ты последний раз видел в сфере погромирования инструменты которые завершены и готовы к использованию? сфера в которой ничего вообще никогда не готово до конца.
>Когда они возвращались к сетевому коду после 5.2? на самом деле возвращались. я помню. написали какое-то корявое лобби.
>>516823 >Какая нибудь LUA намного медленней C# В бесмысленных бенчмарках. Для игровых скриптов нужен язык ТОЛЬКО с подсчетом ссылок, а не сборщиком мусора. Интерпретируемость тоже является дополнительным плюсом, т.к. можно редактировать код в реальном времени.
В юнити нужно писать на C# не так, как это планировалось, а с кучей хаков. Это просто грязный, неприятный опыт хакания языка для задач под которые он не предназачен. Вся эта головная с мусором, пулами. Зачем это? Почему не сделать так, чтобы просто работало быстро?
>>516836 Ты дурак? Я кажется ясно написал, что GC неприемлем для риалтаймовых приложений.
Как только тебе сталкиваешься с задачей написать высокопроизведительное риалтайм-приложение, ты сталкиваешься с куче GC-проблем, и приходится люто изъебываться и хакать язык.
>>516841 что за чертовщину ты пишешь? какие нахуй хаки? не хочешь чтобы GC срал - не плоди сущьности. пользуйся массивами, структами, хуюктами, всем что не генерирует мусор.
>>516846 Это невозможно. Сам дизайн языка и библиотек спроектирован с расчетом на создание мусора. Не создавать мусор, значит использовать язык не так, как задуманно. Значит не использовать большинство возможностей. Создавать себе трудности.
>>516848 на создание и сразу его собирание. понимаешь? не понимаешь? у шарпа довольно могущественный сборщик мусора и пиздец случается только если ты сам его устроил. вообще. хули ты тут раскудахтался то? ты давай примеры приводи, как так тебя там шарп ограничивает. будем рассмативать что-то конкретное. а то развелось тут школьников.
>>516850 Ты тупой? GC вызывает лаги в игре. Создание любых объектов вызывает лаги в игре. Создание объектов, в языке который спроектирован для создания множества объектов. Для обхода этого ограничения нужно не создавать объекты в языке, который полностью задизайнен под создание объектов. Ты не понимаешь всей асбурдности происходящего? C# и любой другой GC язык просто не подходит для игор. Для игр нужные специально спроектированные под эти задачи языки.
>>516854 Под хаканием языка я имею ввиду решение задач не традиционным для данного языка способом, а нестандартными, "неправильными" способами ради повышения производительности. То есть использовать язык не так, как это задумано.
>>516854 >>516856 поскорей бы дегенераты вроде тебя отправились обратно в школу. GC у него там вызывает лаги. охуеть вообще. что ещё у тебя там лаги вызывает? какие у тебя там языки спроектированы без сборщика мусора? м?
Юнитидаун узнал о сишарпе вместе с тем, как узнал об юнити. На перемене между русишем и матешой однокласник показал крутую игору на мобиле и сказал, что она написана на УПИТИ. Юнитидаун уже третий месяц пилит игру мечты и внезапно оказалось, что GC у него тормозит процесс. Во дела! Давайте же пожелаем юнитидауну поскорее узнать о тредах в сишарпе.
>>516888 Псоны, как узнать что корутина отработала? Приходится костылить с bool'ом, но может всё же как-то корутина отчитывается что вернула свой IEnumerator и это можно как-то отследить?
>>516897 Ну просто сборка мусора занимает столько-то микросекунд времени, которые прибавляются к времени твоего фрейма. Чем тяжелее твоя игра, тем заметнее будут фризы.
вообще о байтоёбле. вот делаю я растеризацию этих ебучих деревьев. уже какие только хитрости в ход пошли. биты смещаю, байтики в структах считаю, обжекты пулю. ух.
>>516906 > ты давай детали рассказывай чё ты там делать собрался Ну вот, например, мне надо запустить корутину (из другой корутины), которая в цикле выкручивает альфа-канал SpriteRenderer'а из ноля в единицу за три секунды. А может и не за три. Короче, дальнейшее действие мне нужно сделать только после того, как эта корутина отработает. Пока делаю так - создаю булеву переменную yoba, в конце корутины присваиваю ей true, а после самого запуска корутины ебошу while (!yoba){yield return null;} То есть этот цикл крутится пока корутина не отработает, затем я из цикла вылетаю и иду дальше. Оно-то работает, но меня не покидает чувство что я пиздец велосипедю.
>>516903 Для 60 фпс время одного кадра - 16 мс. Сборка мусора например занимает 100 мс: 6 кадров как с куста. И так раз в N секунд. Энджой ер mono вместо скриптового языка.
каждый раз когда собираю этот пост чувствую будто выебываюсь.
>>516936 вообще когда я начал его делать то юнитевский навмеш наже не мог генерится в рантайме. а так. да в общем-то дохуя всего. с ним очень уж сложно делать ИИ.
нет возможности регистрировать свой контент на навмеше, чтобы например вернуть за один заход удалённость ближайших объектов нужного типа на графе навмеша. чтобы хоп негр каждые пол секунды проверял нет ли где поблизости грибочков а если рядом есть и жрать хочет то пойти собрать ближайший и сожрать.
нет возможности возвращать какую-то информацию при генерации пути через какой-то участок навмеша. видеорелейтед. агент проверяет может ли он пройти по синей зоне, ссылку на синюю зону имеет кнопка, а при попытке прохождения через синюю зону агенту сообщается где эта кнопка.
нет возможности задавать свои правила генерации оффмеш линков.
и по моему там до сих пор не сделали всякое клёвое говно вроде нахождения ближайшего места встречи двух агентов. или маршрута убегания откуда-то. (у меня тоже нету но я хотя-бы это поменять могу довольно легко)
в конце концов нет возможности переиспользовать информацию для генерации собственного говна. например на скриншоте хопа немного поколдовал с существующими вокселями и у меня есть и карта укрытий и полуукрытий. и возможность взять несколько ближайших доступных для перемещения точек и например протестировать видимость для них. мегаполезно. и всякие мелочи вроде рэйкастинга на навмеше в юнити по моему тоже не завезли.
>>516941 А игру то к этому всему не сделал? На этом этапе есть смысл доработать, сделать нормальную документацию и выложить в ассет стор, хоть там и немного заработаешь
>>516942 ноуп. хотя имею миллион вагон прототипов, разумеется. самый клёвый умеет обращаться со своим инвентарём и работает по сети. так то у меня не только навмеш в загажнике есть. вообще у меня недавно вернулся один мой знакомый артист с которым мы наконец порешали как совместит наши интересы в одном проекте, так что периодически работаю над этим. может скоро покажу что-то помимо этого говна мамонта.
он давно на ассетсторе лол бесплатный лежит https://assetstore.unity.com/packages/tools/ai/k-pathfinder-85181 даже хуёвая документация есть с картинками. хотел выложить платно да в итоге решил что ну его нахуй. в итоге ко мне периодически приходят люди, суют деньги в трусы, просят сделать им что-то. хотя дорабатывать это ещё наверно с пол года буду чтобы перестать звать это альфой и назвать бетой хотя-бы. надо починить некоторое количество старого говна, накатить оптимизации в некоторых местах, ввести некоторые ключевые фичи которые я сам хочу иметь. сильно уж объемный проект для одного человека. ебучий локал авойденс три месяца сожрал в итоге.
хотя да, надо бы ебануть что-то со всем этим добром. это же какое могущество!
Сап гдач. Решил запилить аркадную гоночную игру, в духе ridge racer, tokyo extreme racer или wangan midnight. Первоначальной задачей стоит разработка физической модели автомобиля. Ключевой особенностью в подобных играх является то что во время поворотов машина входит в режим дрифта и скользит как бы "по мылу", практически не теряя в скорости. Подскажите с чего можно начать разработку, какие маны почитать и вообще, в какую сторону копать.
>>516949 >Увеличь все объекты на сцене. Была такая мысль. Но хотелось бы сохранить естественный масштаб, даже вроде это где то очень рекомендовалось..
>>516947 >но зачем? Привет, братишка Чтобы симулятор бассейна сделать, например (потому что могу). А меш воды при близости к камере как то глючно оклюдит
>>516965 я же кейсы применения не знаю, может ты там катсцену с бабами в бассеине делаешь. и в рендеринге я тоже смыслю не так и много чтобы отвечать на такие вопросы.
>>516966 >я же кейсы применения не знаю, может ты там катсцену с бабами в бассеине делаешь Да там все проще, даже не в воде дело. Просто: как избегать клиппинга объектов отрисовываемых близко к камере (от 0.01 до 0, скажем). Для нуба.
>>516966 >кстати а в сбилженном проекте то та-же хуйня? Да, тоже
>>516835 Подсчёт ссылок тоже форма сборки мусора а так же ведёт к циклическим ссылкам, что очень плохо для предельно тупого интерпретируемого языка. Ах да, в lua нормальная сборка мусора и ты можешь даже контролировать из C-кода сколько времени она займёт (например собирать мусор в ожидании vsync). >>516835 >Зачем это? ПРОСТ))). Вообще говоря ты можешь упереться в ограничения C# только если постоянно делаешь говноалогритмы с квадратичной и выше сложностью или делаешь какую то совсем лютую ЙОБУ. В первом случае ты говнопогромист и никакой язык тебе не поможет, во втором непонятно зачем ты УНИТИ выбрал. Ну и УНИТИ то ещё говно под капотом. И C# не является скриптовым языком тут. Вообще нормальные проекты на УНИТИ стараются использовать УНИТИ как можно меньше и держать его за хорошим слоем абстракций, чтобы писать код нормально. >>516828 Корявое лобби было уже в 5.2, я его даже использовал. >>516841 Приемлем. Надо просто GC делать нормально. Есть рилтаймовые GC которые гарантированно работают заданное время. >>516850 В MS-шарпе. В том Mono что идёт с УНИТИ предельно тупой сборщик из учебника едва ли не первого курса, без поколений и всего этого, обёртка над malloc. Они давно говорят что заменят когда нибудь в будущем, но пока ноль движений. >>516854 В УНИТИ проблему вызывает говнокод под капотом и переключения между нативным и управляемым кодом на каждый чих. Ну и PC-драйвер для видеокарты - который например может реально загружать текстуры или компилировать шейдеры только при первом использовании, не когда ты сказал их загрузить. >>516911 Нахуя тебе короутина если есть АНИМАТОР? Спойлер: аниматор может вызывать методы на GO на котором он живёт! >>516926 Старый как мир приём: no malloc per frame. Ты содздаёшь всё что тебе надо с пулами и прочим при загрузке, собираешь мусор и никогда ничего не создаёшь до конца уровня. Так же чтобы GC занял 100мс тебе надо насрать кучу как стадо поносных слонов или запускать игру на счётах.
>>516968 >Ты содздаёшь всё что тебе надо с пулами и прочим при загрузке, собираешь мусор и никогда ничего не создаёшь до конца уровня. А если опенворлд?
Есть скрипт который при нажатии на эту картинку должен сделать что-то. В нете прочитал, что UI не поддерживает void OnMouseDown() и что нужно использовать Event систему. Вопрос как к этому прикрепить скрипт и аналог OnMouseDownOn()?
>>517181 > я не добавил эвент систему Она сама добавляется при создании любого UI-элемента. Так что если её не было, то только потому что ты сам её и удалил.
Help, намутил апк - на xiaomi с 8 ядерным хз чем и андроидом 8.1, запускается норм. На Sony с arm64 Snapdragon 835 MSM8998 под андроидом 8,0, не запускается, сразу ошибка. В настройках поставил галку на arm64, всё обновил - и Юнити от 12.10.2018 и в андроид студии все инструменты обновил и джаву. в гугле ответы только от 2017го года, где обещают завести поддержку arm64, а в нынещней юнити оно уже есть но не робит. ПОМОХИТЕ!!!
Прошлый тред: https://2ch.hk/gd/res/498593.html
Официальный сайт: https://unity3d.com/ru
Документация: https://docs.unity3d.com/ru/current/Manual/index.html
Уроки: https://unity3d.com/ru/learn/tutorials
Форум: https://forum.unity3d.com/
Магазин ассетов: https://unity3d.com/ru/asset-store
UnityWiki: http://wiki.unity3d.com/index.php/Main_Page
На Unity сделано много замечательных игр - Rust, Блицкриг 3, Pillars of Eternity, Tyranny, Kerbal Space Program и многие другие. Главным преимуществом Unity перед другими движками является его простота для одиночной разработки. Не нужно иметь целую компанию девелоперов, чтобы сделать хорошую игру. Если ты один или имеешь небольшую команду и хочешь сделать хорошую игру без претензий на ААА, то Unity станет лучшим выбором. Тем не менее, даже крупные корпорации зачастую выбирают для своих игр именно Unity.
FAQ
- Какие у Unity сильные стороны?
- Простота разработки, удобный инструментарий, кроссплатформенность, богатая документация, огромное сообщество.
- Какие у Unity слабые стороны?
- Сложность в создании фотореалистичной графики. Для графики "как в Crysis" рекомендуется взять другой движок. Хотя Unity вполне способен выдавать не уступающую любым другим движкам картинку, это требует определённого навыка от разработчика.
- На каких языках я могу писать скрипты для Unity?
- На выбор два языка - C# и UnityScript. UnityScript - это что-то среднее между JavaScript и ActionScript. Выбирай язык по своему вкусу, они оба вполне удобны, но помни, что большинство примеров написано на C#.
- Для каких жанров подходит Unity?
- Для абсолютно любых! Жанр ограничивается лишь фантазией разработчика (и его умением писать скрипты, разумеется). Можно создавать и РПГ, и стратегии, и слэшеры. Можно делать VR-проекты или Minecraft-подобные песочницы.
- На каких платформах работают созданные с помощью Unity игры?
- Windows, Linux, MacOS, SteamOS, Android, iOS, Windows Phone, PlayStation4, Xbox One, WebGL, Oculus Rift и многие другие. Полный список можно найти на официальном сайте. Таким образом, игры Unity работают на десктопах, на смартфонах, планшетах, приставках, в браузерах, VR-очках и некоторых других системах.
- Часто вижу скриншоты с красивой природой на Unity. Как такое создать?
- Очень просто! В Unity встроены удобные инструменты для создания террейна и SpeedTree для создания деревьев и готовая реализация ветра - не нужно ничего писать или скачивать и подключать плагины - ландшафт в Unity создаётся в пару кликов.
- Что такое стартер киты?
- Starter Kit - это набор скриптов и префабов, а зачастую и графических элементов для игры. Они призваны облегчить разработку игры определённого жанра и как правило разбиты по жанрам (Action-RPG Starter Kit, RTS Starter Kit, 3D Shooter Starter Kit, Space Game Starter Kit, VR Starter Kit и так далее). Также бывают стартер киты различных игровых элементов, не связанных с геймплеем (Nature Starter Kit с дополнительными природными объектами, Medieval Starter Kit со средневековыми объектами и так далее). По сути, стартер киты выполняют в разработке игры ту же роль, что и фреймворки в программировании. Однако стоит отметить, что использование геймплейного стартер кита принуждает разработчика изучать большое количество чужого кода и чужой структуры для внесения своих изменений и полноценного использования. В связи с этим большинство разработчиков предпочитает писать почти всё с нуля, получая полное понимание работы своей игры. Новичкам крайне не рекомендуется начинать знакомство с Unity со стартер китов.
- Что нужно уметь делать для создания полноценной игры, кроме Unity-разработки?
- Кроме непосредственной разработки игры на Unity, требуется также уметь создавать 3D модели (3ds Max, Blender, ZBrush), 2D рисунки (GraphicsGale, Aseprite, Piskel), текстуры (Substance Designer, NeoTextureEdit), музыку (FruityLoops, Ableton). Не обязательно учить это всё - например, в 2D играх не нужны 3D модели, а музыка необходима далеко не всегда. Также вы можете скачивать элементы для ваших игр на бесплатных сайтах. Если у вас есть деньги, то все необходимые элементы можно заказать у фрилансеров на https://www.fl.ru/ (русскоязычный) или https://www.upwork.com/ (англоязычный).
- Бесплатен ли Unity?
- Можно свободно скачивать, использовать и продавать готовые игры на Unity с лицензией Personal - это абсолютно бесплатно! Но на бесплатной версии при запуске игры будет появляться короткий стартовый ролик "Made with Unity", а также ваши доходы ограничены 100 000 долларов в год. Для снятия этих ограничений нужно приобретать платные версии лицензий Unity. В конечном итоге, платные варианты используются лишь крупными компаниями с огромными доходами, тогда как обычные разработчики в большинстве своём используют бесплатную Personal лицензию.
Обучение
- Язык
Итак, с чего же начать изучение этого замечательного движка? Прежде всего, с изучения языка. Самые основы C# можно узнать на интерактивных курсах здесь:
https://dotnetcademy.net/CSharp/Beginner
или в текстовом туториале здесь:
https://www.tutorialspoint.com/csharp/csharp_quick_guide.htm
Для изучения основ UnityScript выучи вначале основы JavaScript:
https://learn.javascript.ru/
Помни, что далеко не все элементы JS есть в US. Чтобы понять, в чём разница между этими двумя языками, прочти эту статью:
http://wiki.unity3d.com/index.php/UnityScript_versus_JavaScript
Помни, что тебе достаточно одного языка из двух и учить их оба одновременно не нужно.
- Движок
Если ты уже умеешь использовать язык, то можно приступать непосредственно к изучению движка. Крайне рекомендется купить/скачать книгу Unity in action (Unity в действии). В ней подробно описываются множество возможностей движка.
http://www.ozon.ru/context/detail/id/34792570/
Также посмотри на видеотуториалы с официального сайта:
https://unity3d.com/learn/tutorials
Если же ты не любишь видеотуториалы (или не понимаешь разговорный английский) и предпочитаешь текст, то посмотри здесь:
http://catlikecoding.com/unity/tutorials/
Тут крайне подробно описан процесс разработки и приведены примеры кода. Эти туториалы универсальны и описывают множество различных частей игры, от работы с текстурами до генерации карты мира. А вот в этом туториале описыватся разработка двухмерной игры с видом сверху:
https://www.raywenderlich.com/61532/unity-2d-tutorial-getting-started
Это будет полезно, даже если ты планируешь разрабатывать трёхмерную игру. Ни в коем случае нельзя обойти вниманием этот сборник туториалов:
https://noobtuts.com/unity
В нём подробно описывается процесс пошагового создания разных игр - двухмерных и трёхмерных.
Разумеется, все эти туториалы охватывают лишь часть возможностей Unity. Самый надёжный способ выучить Unity - это начать делать игру и по мере разработки гуглить непонятные моменты.
Шапка: http://www.writeurl.com/publish/zukmrogwv45ptyuseyol