Gamedev

Ответить в тред Ответить в тред
Check this out!
Unity thread # 10 Аноним 20/04/20 Пнд 07:59:47 6594861
image.png 210Кб, 512x225
512x225
image.png 310Кб, 485x255
485x255
image.png 2962Кб, 1920x1080
1920x1080
image.png 981Кб, 1200x630
1200x630
Добро пожаловать в тред Unity - лучшего 3D и 2D игрового движка современности!

Прошлый тред: https://2ch.hk/gd/res/647163.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
Аноним 20/04/20 Пнд 08:02:12 6594892
77f9a4a469bd.png 61Кб, 652x491
652x491
>>659486 (OP)
Где включается ZTest For After PostProcess? Вообще никто не знает, его там нет этого чекбокса.
Аноним 20/04/20 Пнд 09:20:08 6594953
>>659489
Во Frame settings. Ты читать не умеешь?
Аноним 20/04/20 Пнд 09:24:56 6594974
>>659495
Ты читать не умеешь что ли, нет там этого чекбокса.
Аноним 20/04/20 Пнд 09:33:52 6594995
FoknShaders.png 67Кб, 1355x780
1355x780
Добрый день!
Такая проблема - создал PostEffect, пытаюсь юзать PostStackProcessor (или как там)

Навязывают использовать context.command.BlitFullscreenTriangle, но этот метод просто создает черный треугольник в центре сцены, который видно сквозь все стены и при этом отключает все эффекты в стеке.

context.command.BuiltinBlit - работает, НО, если добавить еще какой-нибудь эффект через этот метод, то предыдущий эффект полностью игнорируется и вообще в старой версии юнете BuiltinBlit оч сильно резал производительность.

Кто-нибудь знает как правильно использовать BlitFullscreenTriangle?
Аноним 20/04/20 Пнд 11:42:42 6595206
>Итак, с чего же начать изучение этого замечательного движка? Прежде всего, с изучения языка. Самые основы C# можно узнать на интерактивных курсах здесь:
https://dotnetcademy.net/CSharp/Beginner

При нажатии на кнопку "Проверить" появляется ошибка:
Run-time error during test.
System.Security.SecurityException : Request failed.
В чем проблема?
Аноним 21/04/20 Втр 06:39:46 6599187
>>659497
Скрин окна фреймсеттингз в студию, а пока твоя масть - сучий пиздабол.
Аноним 21/04/20 Втр 07:11:07 6599208
В какой игре (готовой или в разработке) сейчас самый топовый графон на юнити?
Аноним 21/04/20 Втр 07:13:25 6599219
image.png 104Кб, 819x960
819x960
>>659918
>Скрин окна фреймсеттингз в студию
Оно длинное, какое тебе место заскринить? Ну вот нашел только это
Аноним 21/04/20 Втр 12:01:45 65996910
>>659920
Тарков неплохо выглядит
Аноним 21/04/20 Втр 12:59:07 65998311
>>659920
Если тебя интересуют максимальные возможности графона в юнити то чекай демки самих юнитеков типа https://www.youtube.com/watch?v=iQZobAhgayA
А графон в играх больше зависит от бюджетов которые циркулируют в студии разработчиков, если у разрабов бабла очень много то они пилят игру уже на своем движке а не на юнити или уече, потому что могут себе позволить.
Аноним 21/04/20 Втр 13:12:55 65998812
ybPRjzFC2fc.jpg 303Кб, 1080x829
1080x829
>>659969
HRPL (или как там) и модельки с текстурками хорошего качества.
(скрин из таркова)
Аноним 21/04/20 Втр 13:43:50 65999713
>>659988
Ну хуйня же, нахуй ты это запостил
Аноним 21/04/20 Втр 22:59:14 66023814
Почему шейдер так долго компилируется, если в нём много shader_feature. Он что, для всех комбинаций дефайнов свой шейдер делает. То есть, если у меня shader_feature 8 штук, то будет поочереди компилироваться 256 исходников?
Аноним 21/04/20 Втр 23:24:45 66028115
Аноним 21/04/20 Втр 23:45:23 66031416
04m8NaX2FC.mp4 898Кб, 1252x536, 00:00:09
1252x536
Пытаюсь реализовать следующее. Чтобы игрок знал, с какими объектами можно взаимодействовать, их надо как-то обозначить. Сделал это так - когда игрок проходит мимо объекта, вылазит какая-нибудь иконка, пока пусть лупа. Сразу может быть несколько иконок, если, например, на столе лежит куча объектов, так что сделал это через динамическое создание/удаление ui компонента.
Аноним 21/04/20 Втр 23:59:49 66033017
>>660314
Можешь заморочиться и сделать прозрачность иконок зависимой от расстояния до объекта
Аноним 22/04/20 Срд 00:58:59 66043718
Как понять, какие свойства надо кешировать? Вот например я в update обращаюсь к Screen.width. Может лучше это в переменную записать в Start()?
Аноним 22/04/20 Срд 00:59:31 66043919
84951-outline.png 38Кб, 261x200
261x200
>>660314
хуй знает, вроде выгядит нормально, но будет пиздец если много объектов будет или если они маленькие
почему просто не подсветит при наведении?
Аноним 22/04/20 Срд 01:01:20 66044520
>>660437
ps в документация юнити часто кешируют gameobject.transform. Как я понял, это потому, что transform - это геттер вроде как? Как понять, а не геттер ли Screen.width
Аноним 22/04/20 Срд 01:04:06 66044621
>>660445
ты в программировании не силен?
transform - класс, кешируется референс
width - простой тип, кешируется значение
Аноним 22/04/20 Срд 01:19:23 66046622
sCXHMIAWIh.mp4 687Кб, 772x626, 00:00:10
772x626
>>660439
Я идею с резидент evil стащил, хочу сделать как там. Когда на расстоянии - иконка №1. Когда подошел близко - иконка меняется на другую, типа, теперь можешь нажать Е или Еnter или что там. Если на столе например несколько объектов, то активной для взаимодействия будет та, на которую смотришь, там придется ray бросить
Аноним 22/04/20 Срд 06:22:00 66056723
>>660238
Да, потом при релизе проекта часть шейдеров удаляется из проекта за ненадобностью.

>>660281
Всё правильно нашел, из минусов будет работать только на винде.
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool GetWindowRect(HandleRef hWnd, out RECT lpRect);
и user32.dll наверное нужно в проекте держать

>>660445
Раньше transform как геттер каждый раз создавал новый инстанс через c++ pinvoke, уже как год они закрыли эту дыру и можно спокойно юзать все свойства без кеширования.
Стоит кешировать только GetComponent т.к. он идет по дереву компонентов и go каждый раз при обращении.
Еще при создании и изменении свойств в Canvas->UI там тоже начинает все дерево трястись, заметил когда у картинки менял opacity через цвет и в профайлере огромное дерево вызовов UpdateUiRenderElement (или как-то так)

>>660466
Классная идея, украл в свой проект
А по делу, у тебя же есть Vector3.Distance, проверяй какой достаточно близко и все
Аноним 22/04/20 Срд 07:11:15 66056924
>>659918
>Скрин окна фреймсеттингз в студию, а пока твоя масть - сучий пиздабол
Показывай где галка, а пока твоя масть - сучий пиздабол.
Аноним 22/04/20 Срд 08:48:33 66057525
>>660567
>Еще при создании и изменении свойств в Canvas->UI
Да там по сути на малейший чих весь канвас перерисовывается. Рекомендую пилить на каждую группу элементов отдельный канвас, сам так делаю, брат жив, зависимость есть. Олсо маска типа скрывает элементы, но они рендерятся, потому скроллпаны большие будут тормозить.

>Vector3.Distance
Коллайдер в режиме триггера тоже есть.
Аноним 22/04/20 Срд 09:41:30 66059126
Хочу начать изучать геймдейв на юнити, такой туповатый вопрос возник.. Стоит ли выебываться и ставить интерфейс юнити на английский или оставить на русском?
Аноним 22/04/20 Срд 09:42:23 66059227
Насколько точнее перестановка интерфейса на английский продуктивна для обозримого(не обозримого) будущего?
Аноним 22/04/20 Срд 10:15:21 66059628
>>660591
>>660592
Разве русский есть?
Англ удобен тем, что когда ты начнешь смотреть какие-нибудь туториалы, то из-за разных названий могут возникать неудобства, тем более, что менюшки могут в разных версиях находиться в разных местах.
Аноним 22/04/20 Срд 13:16:49 66078029
>>659486 (OP)
Здравсвтуйте, я нюьфаг в юнити, изучаю его несколько недель.
Шарп знаю давно.

Не могу понять, как нормально научить спрайт бегать в 2д игре в точку клика. видеогайды как-то мутно приподносят тему, потому решил спросить тут - может кто или помочь с поиском нормального гайда - или поделиться куском кода.
Аноним 22/04/20 Срд 13:18:18 66078130
>>660314
лучше добавляй эти иконки на Start и храни референс на них. когда подходишь близко iconRef.SetActive(true). любой Instantiate в рантайме это плохо, а дурной тон и в маленьких проектах тоже дурной тон
Аноним 22/04/20 Срд 14:35:42 66083631
Есть какие-то гайды по созданию Top-Down RPG или что-нибудь, что можно почитать, чтобы примерно понимать как это осуществить?
в задумке что-то вроде DOS, но куда проще, на уровне "слепил в гараже"
Аноним 22/04/20 Срд 15:04:19 66085632
unnamed.jpg 9Кб, 355x238
355x238
>>660836
у юнити есть creator kit: rpg. там практически всё drag and drop и есть встроенный туториал и вот ссылка на курс:
https://learn.unity.com/project/creator-kit-rpg

ты только начинаешь? если да, то рекомендую планку занизить. долбиться в rpg это тебе на много месяцев работа. запал пропадёт, в лучшем случае, через неделю когда заебёшься от собственных компромиссов из-за того что не может реализовать большинство идей. вот missle command на скриншоте тебе довольно простая игра.
когда сможешь прикрутить к этому делу ui, использовать делегаты, избавиться от лишних синглтонов (они все лишние), не городить везде публичные поля и когда сможешь хоть один проект закончить, тогда ты готов к rpg или ещё чему.

>в задумке что-то вроде DOS
в смысле DOS как MSDOS или это аббревиатура от названия игры?
Аноним 22/04/20 Срд 15:14:32 66085933
>>660781
Мне это тоже не нравится. Но иконок может быть неизвестное число. Тогда получается надо сразу примерный максимум иконок добавить на сцену.
Аноним 22/04/20 Срд 15:16:37 66086634
>>660856
Абривеатура от Divinity: Original Sin.
Хочу полноценно вкатиться в юнити, но и сам понимаю, что сразу пытаться в создание чего-то подобного - глупо. Просто хотел узнать как это всё делается, чтобы понять с чего мне стоит начать и на чём акцентировать внимание, если хочу в итоге реализовать задуманное.
Спасибо за совет.
Аноним 22/04/20 Срд 15:31:51 66087435
>>660859
надо добавлять на сцену столько иконок сколько на сцене есть объектов которые можно использовать (это простой метод) или прикинуть сколько их может быть максимум в кадре (например 10) и использовать повторно просто перекидывая из другого места. гугли object pooling. удалять и создавать новые это очень плохо.

>>660866
я начинал с повторов понга, змейки, сокобана, потом перешёл на nes'вские игры, потом в 3д
Аноним 22/04/20 Срд 15:40:58 66087736
Как делать изогнутые интерфейсы для виара? Есть какие-то отработанные техники уже? Для диплома надо ебануть виарную приложуху с удобным UI
Аноним 22/04/20 Срд 16:34:07 66089837
444444444444444[...].png 215Кб, 1920x1080
1920x1080
Сап. Столкнулся с банальной и как потом узнал популярной проблей в движке.

При запуске движка выдает две ошибки. Сами ошибки пустые без описания. В инете нашел способ это пофиксить. В секции Configuration изменить Scripting Runtime Version. Проблема в том, что в моей версии нету Scripting Runtime Version в Configuration. Нигде нету. Как это проблема исправляется на новых версиях?
Аноним 22/04/20 Срд 16:50:25 66090438
Screenshot 2020[...].png 73Кб, 1418x466
1418x466
>>660898
мой конфиг, косяков нет
Аноним 22/04/20 Срд 17:14:29 66092639
>>660904
А те, что есть пробовал менять? То же самое?
Аноним 22/04/20 Срд 17:20:32 66093040
>>660926
ставил в бекенд IL2CPP и в апи .net 4.x и получал крэши во время разработки. ошибок не помню. на сколько мне известно на данный момент моно и 2.0 это то что нужно юзать, а il2cpp это то на чём нужно билдить в продакшн
Аноним 22/04/20 Срд 18:27:30 66094641
>>660930
Попробуй переустановить Windows.
Аноним 22/04/20 Срд 18:38:05 66095142
15872321831151.mp4 6785Кб, 400x224, 00:01:24
400x224
>>660946
зачем? мне на mono и 2.0 хорошо. к тому же у меня мак
Аноним 22/04/20 Срд 18:54:23 66095743
images.jpg 6Кб, 222x227
222x227
Ребят,юнити изучаю недавно,в основном 3д. Программировать также только учусь,но основы понимаю. У меня есть крутая идея для 2D пиксельного сюжетного выживания на мобилки,но у меня нет товарищей с которыми могу этим заниматься только пару ребят что могут что то запилить в фш или нарисовать пиксели,также есть один друг 3дшник
Все что надо могу рассказать,если вы заинтересованы
Также прошу вас кинуть ролики/статьи на изучение юнити 2д простым языком
Заранее обнял
Аноним 22/04/20 Срд 19:19:01 66096244
Где прочитать про генерацию?

Хочу сделать вагон поезда, где за окном будут генерироваться ландшафт из готового набора деревьев кустов и тд.

Любая дока сойдет, сам иосник разраб.
Аноним 22/04/20 Срд 19:46:54 66097145
>>660962
https://www.youtube.com/watch?v=sRn8TL3EKDU
можешь из лоуполи докрутить до хайполи и повесить карту шума на высокоплигональную плоскость. деревья делаешь слева, передвигаешь их вправо и по Y поднимаешь при помощи этой же карты. собственно прямо генерировать ничего не надо ибо это дорого, нужно управлять вершинами
Аноним 22/04/20 Срд 20:16:29 66098646
>>660971
Спасибо, ну слушай, генерировать придется, представь 10 часов реального аутизма геймплея. Генерировать по сути плоскость с объектами надо будет, прямроугольничек в лоуполи
Аноним 22/04/20 Срд 20:29:23 66099147
>>660986
да нет же. размещаешь плоскость с полигонами, её генерировать не надо. открываешь шейдер граф, берёшь шум, накидываешь его на дисплейсмент. белый это высоко, чёрный это низко. сдвигаешь шум в каждом кадре и создаётся ощущение что ландшафт двигается, а на самом деле смещается только карта шума. никакой генерации

вот этот дурачок условно делает то что тебе нужно
https://www.youtube.com/watch?v=4qLJlMpPdK0

всё зависит от того какой сложности шум ты решишь замутить. там вон у девчёнки что я выше кидал сложнее и выгляит лучше, но она решила это делать кодом потому как разукрашивает треугольники и плюс сам мэш генерирует, а тебе можно всё это сделать просто кликая мышью в шейдерграфе с минимальной нагрузкой на видеокарту и процессор
Аноним 22/04/20 Срд 21:56:03 66101348
Анончики, подскажите пожалуйста: есть 2д игра, делаю в ней анимации монстрам. У монстров идентичные состояния- бегай, стой, атакуй. НО разные спрайты.
Скажи, я же могу сделать один анимационный контролер (который со стрелочками) и много разных анимаций (в которых разный спрайт соответственно для разных монстров) и использовать в разных мобах один контролер, а не делать и настраивать каждый раз новый?
Аноним 22/04/20 Срд 22:01:25 66101549
Screenshot 2020[...].png 524Кб, 994x484
994x484
>>661013
могёшь. называется animator override controller. вставляешь туда контроллер в котором хочешь подменить анимации, выбираешь какие анимации подменить и своему монстру выбираешь в аниматоре этот самый оверрайд
Аноним 22/04/20 Срд 22:12:33 66102250
>>661015
Охуеть, никогда бы сам не нашел, спасибо тебе огромное анончик :3
Аноним 22/04/20 Срд 22:30:20 66102451
>>660991
Ух блять. это не кнопки красить
Анон у меня вопрос Аноним 23/04/20 Чтв 01:18:33 66107752
image.png 1161Кб, 853x480
853x480
Скоро буду выкладывать игру в плей маркет. Думаю стоит ли подключать рекламу или нет, потому что вряд ли будут играть сотни или хотя бы десятки тысяч игроков. Или все таки сделать игру без всякой рекламы? Прибыльно ли подключать рекламу если нет пиара и рекламы игры? Делитесь своим опытом.
Аноним 23/04/20 Чтв 01:35:49 66108853
>>661077
если игра говно вроде той что в соседнем треде со сложением чисел, то выкладывай просто так. добавить туда рекламу можно и позже. сколько на неё потратил?
Аноним 23/04/20 Чтв 02:05:30 66109754
>>661088
В рублях 0. Рисовал, анимировал и программировал сам.
Аноним 23/04/20 Чтв 02:12:04 66109955
>>661097
я про время, рубли ничто хех. покажи чтоль что-нибудь
Аноним 23/04/20 Чтв 12:35:09 66116356
анон подскажи советом. не могу определиться. делаю 3д рпг игру под андроид

и вот надо делать локации. простые данжи из тайлов-моделей. Но блин, как же убого сидеть и мышкой расставлять стены, пол, потолок в редакторе юнити, а потом еще подгонять координаты чтобы дырок не было.

Набросал одну комнату и просто заебался, редактор неудобный (да еще progrids не хочет ставиться - выкидывает с ошибкой при закачке )... Ааааа

И конечно же я подумал - почему бы не сделать тайлы префабами, и не генерировать карту из скрипта.

но тут возник вопрос - я смотрел простые ассеты по генерации данжей при старте игры- почему млять оно так долго создают локации? Что тогда будет на андроиде?

И вот теперь думаю, дальше ебаться с говноредактором юнити расставляя эти дурацкие стены, или все таки попробовать из кода.. просто проверить не смогу - у меня нет реального андроида.


А может есть какие-то годные решения для быстрого создания префабов из кода?
Аноним 23/04/20 Чтв 13:00:12 66116457
>>661163
есть одна штука которую ты можешь попробовать. из package manager установи 2d tilemap. надеюсь с ним работал. он позволяет рисовать спрайтами на сетке и дыр никаких нет. к этому делу есть официальный экстеншн
https://github.com/Unity-Technologies/2d-extras
тут добавляются кисти которые разрешают рисовать префабами(!) рандомизировать тайлы и делать для них правила. то есть ты рисуешь прямоугольник, а тебе углы заменяются автоматом на угловые тайлы. я только не уверен что можно использовать и префабы и правила одновременно. вот тебе официальный видос с овервью
https://www.youtube.com/watch?v=UqhK6GpCgrM

олсо процедурная генерация это всегда полная хуйня, кроме тех случаев когда этим заняты люди которые знают что делают и планируют на разработку алгоритма генерации проебать очень много времени (не пару выходных). делай руками и способ выше должен тебе жизнь облегчить
Аноним 23/04/20 Чтв 13:12:40 66116758
>>661164
>есть одна штука которую ты можешь попробовать. из package manager установи 2d tilemap.
а там можно 3д? у меня модели (просто кусками порезано и это тоже называется тайлами)
Аноним 23/04/20 Чтв 13:14:27 66116859
>>661167
я же тебе видео скинул, там чувак в конце рисует 3д деревьями по сетке и деревья рандомизируются
Аноним 23/04/20 Чтв 13:16:14 66117160
>>661164
>планируют на разработку алгоритма генерации
не, я и не собирался случайногенерируемые данжи.
просто в коде сделать массив, в этом массиве указать где стены, пол и т.д. Просто заполнить массив немного быстрее чем в редакторе щелкать.

и с него создавать карту через какой-нибудь prefab Instantiate... но вот не уверен будет ли у этого метода приемлемая скорость, потому что по примерам - оно капец как долго создает префабы при выполнении, и это на пк
Аноним 23/04/20 Чтв 13:17:30 66117361
>>661168
>я же тебе видео скинул, там чувак в конце рисует 3д деревьями по сетке и деревья рандомизируются
хм, ну попробую
Аноним 23/04/20 Чтв 13:18:24 66117462
>>661171
тогда я тебе подкинул идеальный способ. просто разберись с тайлам, почитай/посмотри как юзать экстеншн и браши для него и проблема будет решена. если застрянешь совсем, то пиши и придумаем как решить
Аноним 23/04/20 Чтв 19:28:58 66136363
Блять, можете кинуть пример того как импортировать анимацию из Unity в Blender? Имею ввиду файлик с расширением .anim. Чето гугл молчит.
Аноним 23/04/20 Чтв 19:39:13 66136664
Аноним 23/04/20 Чтв 20:02:36 66139265
>>661366
Типо в самой юньке создавать анимации? Я не въезжаю как их тут делать, да и в гугле вроде пишут что хуйня и лучше в блендере.
Аноним 23/04/20 Чтв 20:44:52 66141166
>>661392
обе статьи об импорте анимаций
Аноним 23/04/20 Чтв 20:50:21 66141467
>>661411
Первая об импорте и создании именно в юньке, вторая об импорте в юньку. Я подумал что ты намекаешь на то что надо делать их в юньке.

Мне бы наоборот из юньки достать и запихнуть в Blender
Аноним 23/04/20 Чтв 21:34:37 66142068
>>661414
оу нет, о таком я не слышал. в хамбл бандл был редактор анимаций для юнити, он умел экспортировать. в другом случае нужно или самому писать или на гитхабе искать
Аноним 23/04/20 Чтв 22:19:01 66144069
Аноним 24/04/20 Птн 00:22:38 66149670
SLu1y6b4Ce.mp4 338Кб, 1020x756, 00:00:03
1020x756
Запилил анимацию для одной дверци + ее ручки. Это мне получается с каждой дверцой такое сделать? было бы неплохо, если бы как-то одну анимацию на всех набросить
Аноним 24/04/20 Птн 00:24:59 66149971
>>661496
ps думаю лучше открывание через скрипт сделать. тогда один скрипт можно будет навесить на нужные мне дверцы
Аноним 24/04/20 Птн 00:31:17 66150772
Screenshot 2020[...].png 27Кб, 578x208
578x208
>>661496
какая у тебя иерархия? если сделать что то типа того что на скрине, то тебе нужно модели хранить в "Model", а анимировать "Window" и "Handle". таким образом анимация будет одна и та же, а модели туда можешь подставлять какие угодно
Аноним 24/04/20 Птн 00:33:44 66151373
okna-steklopake[...].jpg 73Кб, 629x661
629x661
>>661496
кстати кто делает две ручки на, хоть и высоком, одинарном окне? я последний раз видел такое на совковых деревянных окнах в 90х чтоб они зимой лучше запирались
Аноним 24/04/20 Птн 00:45:21 66152574
image.png 196Кб, 766x803
766x803
EJUyNzOXkAAPLSo.jpg 58Кб, 1024x684
1024x684
starye-derevian[...].jpg 85Кб, 800x600
800x600
старое-окно.jpg 56Кб, 500x450
500x450
>>661507
Иерархия вот.
>>а модели туда можешь подставлять какие угодно
В смысле, это через скрипт сделать? Не совсем понял, можна чутка поподробнее? В смысле я могу запилить анимацию только для одной дверцы+ручки, и использовать этот .anim для других?
>>661513
Мне вот такие окна нужны, действия будут проходить в старом советском доме, да.
Аноним 24/04/20 Птн 00:59:50 66153375
window.mp4 1098Кб, 824x720, 00:01:44
824x720
>>661525
я отделил объекты для анимации, от объектов отображения. то что я вращаю не имеет никакого рендера, а уже вложенные объекты имеют и потому их можно заменять
Аноним 24/04/20 Птн 01:02:05 66153576
>>661525
>>661533
собственно я цилиндр в конце видео добавил чтоб ты видел что анимация отделена от моделей
Аноним 24/04/20 Птн 01:05:19 66153677
>>661535
Спасибо братишь, попробую
Аноним 24/04/20 Птн 04:34:35 66158978
Какой подход более правильный в юнити?
Допустим у меня есть 10 видов оружия, то как правильнее сделать? :
- Создать интерфейс оружки, 10 классов оружек, наследующие этот интерфейс и работать через интрфейс
или
- Создать 1 класс оружек с паблик полями, накидать на 10 префабов этот класс, везде просто сменить поля, чтобы оружки вели себя по разному и работать непосредственно с одним лишь классом?
Аноним 24/04/20 Птн 05:03:00 66159679
>>661589
если всё что твоё оружие делает это выплёвывает префабы, то твой второй способ это то что нужно. только публичных полей там не должно быть. смотри [SerializeField]. интерфесы и что-то подобное стоит навешивать только тогда когда без них получается через жопу или не работает. овериндженириг это большой рак начинающих разрабов. везде пихают интерфейсы

> накидать на 10 префабов этот класс
тебе нужен один префаб с оружием и 9 его вариантов Prefab Variant
Аноним 24/04/20 Птн 05:17:00 66159780
Аноним 24/04/20 Птн 06:11:59 66160281
>>660569
> скринит общие настройки, просит показать галку блока фрейм сеттингз
Ты совсем тупорылый пидоран?
Аноним 24/04/20 Птн 07:56:15 66160582
image.png 52Кб, 907x397
907x397
>>661602
>скринит общие настройки
Это настройки блока фрейм сетингз
Вся суть юнити треда, только троллить и обзывать.
Аноним 24/04/20 Птн 09:20:55 66161883
>>661440
Спасибо, посмотрю, отпишусь.
Аноним 24/04/20 Птн 18:21:52 66201484
>>661163
Тебе ведь нужно только один раз префабы расставить. Почему бы не сгенерировать данж один раз и сохранить? Но важнее того, ты собираешься делать игру на андроид, не проверяя, как она на нём работает? У меня вот есть эмулятор Genymotion
Аноним 24/04/20 Птн 21:20:32 66220785
>>659486 (OP)
Юнитианон, есть два вопроса.

1) На пике сетка в редакторе, квадраты 10х10 ячеек, можно их как-нибдуь в 8х8 или в 16х16 переделать? А то пиздец как режет глаза и неудобно объекты расставлять. (PPU = 1)

2) Можно ли как-нибудь перевернуть систему координат в 2Д проекте, так чтобы ось Y отсчитывалась сверху-вниз (чтобы X=0, Y=0 было в левом верхнем углу, как у людей) ?

Если что, юнити 2019.3.2f1
Аноним 24/04/20 Птн 21:33:04 66222086
cartcoord1.jpg 10Кб, 250x250
250x250
>>662207
1. пик забыл

2. на сколько я знаю нельзя. а зачем тебе? кстати на моём пике классическая декартова система координат. обрати внимание в каком углу нули
Аноним 24/04/20 Птн 21:42:35 66222287
unity-grid.png 21Кб, 985x530
985x530
>>662220
>1. пик забыл
Сорян, вот он.
Аноним 24/04/20 Птн 21:47:51 66222488
>>662220
>на сколько я знаю нельзя.
Хреново.
>а зачем тебе? кстати на моём пике классическая декартова система координат. обрати внимание в каком углу нули
В жопу классическую систему. В любом графическом редакторе используется система с началом отсчета в верхнем левом углу. Плюс все 2Д движки, с которыми я раньше работал тоже по тому же принципу были построены. Теперь же придется постоянно переключать мозги туда сюда, плюс пердолиться с переделкой всех своих наработок по физике.
Аноним 24/04/20 Птн 22:09:00 66223089
>>662224
это типа чтобы в 2д пространстве сделать прыжок тебе приходилось отнимать от Y и падать "вверх"? хорошо что юнити это не графический редактор
Аноним 25/04/20 Суб 09:44:50 66231090
>>662230
Хуй знает тоже это очень напрягает. Везде где везло работать - x\y плоскость, z высота.

Когда всякие сайдвью делаешь наверно удобно, а вот топдаун - пиздец начинается дрочево.
Аноним 25/04/20 Суб 12:16:19 66234291
TApbx.png 13Кб, 1200x672
1200x672
>>662310
ну z в игровых движках глубина как минимум из-за z буфера. привыкайте, тут ничего не поделать
Аноним 25/04/20 Суб 12:30:11 66234692

Сап, есть массив Point, который я загружаю из файла в редакторе

При этом Point имеет дочерние классы, например FunctionPoint у которого есть дополнительные поля.

В редакторе я редактирую этот массив и некоторые точки привожу к FunctionPoint. Но после запуска/перезагрузки скриптов все классы в массиве сводятся к Point. Как можно сделать чтобы юнити все таки этого не делала и оставляла классы как есть?
Аноним 25/04/20 Суб 12:52:33 66235193
>>662346
ты же где-то там итерацию делаешь по массиву, верно?
что-то типа
for (int i = 0; i < points.Length; i ++) {
и тут какие-то действия с points.
}

вот points будет всегда Point из-за того что массив у тебя Point. если ты знаешь какие именно из них FunctionPoint, то можешь кастовать так:

((FunctionPoint)points[3]).поле

но если сделаешь это на точке которая FunctionPoint не является, то получишь эксепшн. самое простое что ты можешь сделать это делать массив того класса что тебе нужен
Аноним 25/04/20 Суб 12:56:40 66235394
>>662351

Ты походу неправильно понял вопрос. Я выводил в дебаг GetType, все правильно там кастится. Суть проблемы в другом
Аноним 25/04/20 Суб 13:19:51 66235895
Вот примерно то что я хочу сделать.
Добавьте скрипт Beda на обьект, потом инициализируйте, запустите игру

https://pastebin.com/bCHFE3RE
Аноним 25/04/20 Суб 13:22:21 66236096
Аноним 25/04/20 Суб 13:39:49 66236697
>>662358
И не работает?
Я делал эти штуки через
public abstract IDataClass : MonoBehaviour {}
И в
public class Beda : MonoBehaviour
{
public List<IDataClass> myValues = new List<IDataClass>();
}
Тогда можно в самом инспекторе драгать эти элементы и всё норм
Аноним 25/04/20 Суб 13:47:16 66236998
Аноним 25/04/20 Суб 13:55:41 66237999
>>662366
это при условии что BaseClass и ChildClass наследуют от него. и то я не уверен что не будет вызываться метод самого абстрактного класса. если не заработает, то сделай для них общий интерфейс и тогда имплементация будет только у тех кто этот интерфейс реализует
Аноним 25/04/20 Суб 20:38:02 662569100
>>662207
>>662222
>1) На пике сетка в редакторе, квадраты 10х10 ячеек, можно их как-нибдуь в 8х8 или в 16х16 переделать? А то пиздец как режет глаза и неудобно объекты расставлять. (PPU = 1)
Если вдруг кому понадобиться, то решил эту проблему так:
1) в Package Manager установил компонент ProGrids
2) В файле \Library\PackageCache\com.unity.progrids@3.0.3-preview.6\Editor\GridRenderer.cs нашел строку:
const int k_PrimaryColorIncrement = 10; и исправил на 8.
Аноним 25/04/20 Суб 20:39:46 662570101
unity-grid1.png 40Кб, 803x425
803x425
>>662569
Опять пик забыл. Вот что получилось:
Аноним 25/04/20 Суб 20:47:07 662571102
Screenshot 2020[...].png 152Кб, 846x350
846x350
Screenshot 2020[...].png 123Кб, 728x504
728x504
>>662569
погоди. в юнити же есть встроенная сетка без прогридса. кажись они от прогридса вообще отказываться собираются
Аноним 25/04/20 Суб 20:52:24 662573103
>>662571
Во встроенной сетке нельзя настроить так чтобы было 8х8 ячеек между основными линиями.
В ProGrids тоже нельзя, но там я хотя бы в нашел где в коде можно это исправить.
Аноним 25/04/20 Суб 20:58:23 662576104
>>662573
всё, теперь я догнал чего ты хочешь. хардкодить это рак конечно, но и тратить время на расширение столь незначительного функционала ещё больший рак. не думаю что из коробки это как-то можно сделать иначе
Аноним 25/04/20 Суб 22:41:40 662629105
>>662366
Попробовал. Не выходит. Пишет что MonoBehaviour создаются только через AddComponent.
Аноним 25/04/20 Суб 22:46:41 662634106
>>662629
покажи что ты там накастрюлил
Аноним 25/04/20 Суб 23:01:17 662648107
image.png 2Кб, 638x43
638x43
image.png 19Кб, 726x313
726x313
>>662634
1 - сами точки
Они записываются в массив из файла в редакторе и в редакторе та или иная точка приводится к нужному мне подклассу мной же в редакторе.
2-код самого приведения в редакторе.
Аноним 25/04/20 Суб 23:08:14 662653108
>>662648
сейчас тебе всё объясню, надо только определить понял ли ты вообще что тот хрен выше предложил?

> public abstract IDataClass : MonoBehaviour {}
что вот это означает и зачем ясно?
Аноним 25/04/20 Суб 23:15:16 662659109
>>662653
ну как я понял реализовать мой базовый класс как наследника MonoBehaviour
Аноним 25/04/20 Суб 23:42:34 662690110
>>662659
тебе не нужно базовый класс наследовать от MonoBehaviour ибо его не нужно прикручивать к объектам в инспекторе. как я понял ты хочешь чтоб можно было редактировать в инспекторе в списке. не уверен что с полиморфизмом это возможно в твоём случае.

обычно вот такие свичи это сигнал к тому что архитектура не очень. расскажи подробнее что это за система в целом. тебе же не тип их нужно получить, а какие-то действия выполнить в зависимости от типа

Аноним 25/04/20 Суб 23:56:35 662700111
>>662690
Есть массив точек, по которым движется обьект. Некоторые точки могут иметь свои поля, которые передаются обьекту. Например - хранить разрешенную скорость на участке, либо пенять путь в зависимости от переменной
Аноним 26/04/20 Вск 00:06:24 662707112
>>662700
окей. предположим объект который движется это Train.

делаешь у точек интерфейс

public interface IWaypoint {
public virtual Action(Train train);
}

дальше делаешь наследников от них со всякими умениями

public class WaypointSpeedLimit : IWaypoint {
public override Action(Train train) {
train.SetMaxSpeed(10f);
}
}

public class WaypointRotate : IWaypoint {
public override Action(Train train) {
train.Rotate(40f);
}
}

соответственно у поезда должны быть публичные эти методы или поля.

список вейпоинтов у тебя будет List<IWaypoint>. когда твой поезд достигает определённой точки то ты его же передаёшь этой точке. например на точке 3 будет так:

_waypoints[3].Action(train);

таким образом у тебя не поезд отвечает за всякие ебаные действия у вейпоинтов, а вейпоинты отвечают за то что делает поезд.

вопросы есть?
Аноним 26/04/20 Вск 00:08:33 662712113
>>662707
>public virtual Action(Train train);
я тут опечатался virtual не нужен и в интерфейсе все методы public

точно так же и в наследниках не нужен override
Аноним 26/04/20 Вск 00:22:48 662721114
>>662707
Вопрос есть - что тут заставит сериализатор юнити не приводить к общему классу?
Аноним 26/04/20 Вск 00:25:05 662722115
>>662721
возможно я не понял вопроса, но у них нет общего класса
Аноним 26/04/20 Вск 00:42:50 662730116
>>662722
но в целом это вроде можно пересадить и на абстрактный класс и насаживать на GameObject
Аноним 26/04/20 Вск 06:06:26 662752117
image.png 41Кб, 733x417
733x417
2Ejl9rfCT6.mp4 1246Кб, 848x496, 00:00:12
848x496
Запилил два класса для создания простенькой череды анимаций. Можно воспроизводить задом наперед.
Аноним 26/04/20 Вск 07:13:40 662754118
>>662752
красаучег. немного оптимизации не повредит: сделай метод SetupAnimation куда и впердоль создание своей анимации и вызови в Start(), а на инпут вызывай только animate.Go() или animate.Reverse(). иначе у тебя получается что при каждом клике ты создаёшь новую анимацию и сохраняешь её в памяти
Аноним 26/04/20 Вск 11:59:11 662803119
image.png 35Кб, 427x644
427x644
>>662707
Попробовал. С таким методом оно просто пропадает, а не сводится к общему
Аноним 26/04/20 Вск 12:44:57 662812120
быстро подкиньте видеоурок как сделать столкновение камеры от первого лица со стенкой. некогда разбираться, надо сделать
Аноним 26/04/20 Вск 13:24:43 662826121
>>662803
сейчас попробую тебе прямо видеоурок накидать. будем надеятся не обосрусь заживо
Аноним 26/04/20 Вск 14:04:57 662847122
traintut1.mp4 7067Кб, 1776x1080, 00:07:13
1776x1080
>>662803
>>662826
держи первую часть, сейчас вторая доэкодится и закину. я там пару раз оборсрался и в целом можно было сделать абстрактный класс чтоб не делать GetPosition, но по большому счёту похуй ибо работает
Аноним 26/04/20 Вск 14:13:12 662848123
traintut2.mp4 13726Кб, 1780x1080, 00:13:20
1780x1080
>>662847
держи вторую половину
Аноним 26/04/20 Вск 15:23:20 662866124
>>662848
>>662847

А теперь попробуй заполнить этот массив в редакторе, а не в старте и запустить.

Короче, походу мне будет проще наследовать от MonoBehaviour и создать GO-пустышки
Аноним 26/04/20 Вск 15:46:29 662889125
traintut3.mp4 4927Кб, 1788x1080, 00:05:22
1788x1080
>>662866
там есть куда улучшать, тебе просто общий принцип описал. вот держи видос без интерфейса и с пустышками. тебе остаётся добавить в OnGizmos линии чтоб было видно в каком порядке они идут и, если надо, обучить вейпоинты хранить указатели на следующие и вейпоинты и отдавать их поезду
Аноним 26/04/20 Вск 15:49:26 662896126
>>662889
Это и так понятно, только интересно как пустышки будут нагружать систему, т.к. их около 3 тысяч
Аноним 26/04/20 Вск 15:52:47 662899127
>>662896
а почему бы их тебе не генерировать в коде как я в старте? зачем их на сцене держать?
Аноним 26/04/20 Вск 15:59:31 662908128
>>662899
потому что они изначально не настроены как мне нужно, и поэтому я настраиваю их в редакторе.
Аноним 26/04/20 Вск 16:02:08 662911129
>>662908
откуда у тебя данные приходят? всё же можно отконвертировать или заранее и импортировать нормально в юнити или в рантайме
Аноним 26/04/20 Вск 16:04:52 662915130
>>662911
список точек скриптом из 3д максовского сплайна. Там только позиции
Аноним 26/04/20 Вск 16:06:18 662919131
Единственное что приходит в голову - написать скрипт который делает бинарные файлы с моими классами и потом его уже в рантайме загружать
Аноним 26/04/20 Вск 16:31:46 662952132
>>662919
ты можешь написать экспортёр из макса или заполнить точки в редакторе, сериализовать их с теми данными что тебе нужны и сохранить для использования в коде, но тогда рак будет с изменениями. не знаю как в максе плагины пишутся, но можно попробовать для начала вставить в блендер и оттуда уже высирать пайтоном. 3 тысячи MonoBehaviour на сцене это полная хуйня
Аноним 26/04/20 Вск 16:35:55 662955133
>>662952
Да, я тоже думаю что столько их это многовато. Короче, напишу редактор с сохранением в файл а не в массив
Аноним 26/04/20 Вск 16:50:33 662962134
>>662955
ну удачи тебе. надеюсь увидим тут в ближайшее время результаты
Аноним 26/04/20 Вск 16:52:34 662965135
>>662962
Ну результаты не факт что покажу, но про метод расскажу
Аноним 27/04/20 Пнд 10:22:25 663235136
cameraRaycast.png 97Кб, 869x463
869x463
Почему я пишу как в доке:
var ray = actor.CurrentCamera.ViewportPointToRay(new Vector3(0.5f, 0.5f, 0f));
Ссылка на доку:https://docs.unity3d.com/ScriptReference/Camera.ViewportPointToRay.html
А получаю спавн под камерой, а не из центра камеры?
Это очередная "фича" которую будут фиксить 2 года?
Аноним 27/04/20 Пнд 11:57:15 663269137
>>663235
покажи что у тебя выдаёт на hit.transform.name и покажи как ты спавнишь и что это за объект
Аноним 27/04/20 Пнд 12:00:08 663271138
Аноним 27/04/20 Пнд 14:36:59 663487139
Помогите, а то я даже не знаю как это гуглить. Вобщем игра будет в жанре квеста, мне надо сделать панельку, на ней будут кнопки сохранения, перехода к карте мира, деньги и т.п. Я не могу придумать ничего лучше кроме как для каждой локации делать свою панель, что не вариант. Вот что мне искать? Если не получится узнать, то тупо сделаю все кнопки в стартовой локе.
Аноним 27/04/20 Пнд 15:57:39 663605140
Аноним 27/04/20 Пнд 16:31:37 663646141
>>663487
я вообще не понял что тебе нужно. локация это сцена? что тебе мешает сделать из панели префаб? ui вообще можно хранить в отдельной сцене так как можно рендерить больше одной сцены

https://www.youtube.com/watch?v=6ztY9-IX3Qg
Аноним 27/04/20 Пнд 21:25:31 663858142
>>662962
Так, все-таки добился результата. Отвязал редактор от самого обьекта-хранителя пути в отдельное окно. Сохранение сделал в папку Resources через JSON + перед ним определение какой тип, по типу:
0|{JSON}\r\n, где 0 - тип

Кстати, юнитевский JSON тут тоже соснул, так как он работает тоже только с монобехами, даже тот который EditorJSONUtility, пришлось использовать добрый Newtonsoft.JSON
Аноним 27/04/20 Пнд 21:30:56 663860143
Аноним 27/04/20 Пнд 21:34:35 663861144
Аноним 27/04/20 Пнд 22:01:33 663879145
>>663861
странно. у меня работает пример из мануала. бывает json очень капризный из-за лишних символов типа пробелов в начале или в конце или как раз \r или \n. но, думаю, это уже не имеет значения
Аноним 27/04/20 Пнд 22:04:24 663884146
>>663879
\r\n у меня как разделитель работает, он удаляется
Аноним 28/04/20 Втр 07:25:04 663992147
raycaststst.png 95Кб, 1968x1069
1968x1069
>>663271
>>663269
Написал максимально простой скрипт и вообще не понимаю откуда берется разница по Y координате, объекты камеры 100% одинаковые
Аноним 28/04/20 Втр 10:23:07 664010148
>>663992
Разобрался, нахуивертил свою систему и в промежуток когда я пускаю лучи у меня считается физика положения камеры
Аноним 28/04/20 Втр 13:41:27 664096149
>>664010
в смысле у тебя коллайдер на камере чтоль?

>>663992
и уровень кода тебе нужно поднимать. возьмут за жопу если будешь куда-то устраиваться на работу или делиться кодом. затрахаешься потом переучиваться.
много публичных полей
getccomponent в старте
на 26й строке ещё и на null проверяешь не очень ясно зачем
с 18й по 33 строку нужно выделить в отдельный метод
var нужно использовать умеренно или не использовать вообще. чаще всего только там где видно что ты в него запихиваешь. пример:
var list = new List<int>();
в ide сразу идёт хайлайт что там List<int>
var radius = GetRadius();
нихуя не видно, можно предположить что это float или double. и даже если в вызываемом методе есть тип аля GetRadiusFloat(), то ide не подсвечивает

и рекомендую начать использовать новую систему ввода юнити. по началу как-то не очень привычно, но не нужно городить проверки на нажатия кнопок в каждом кадре и в любой момент можно визуально перемепить кнопки или добавить их альтернативу
Аноним 28/04/20 Втр 14:16:06 664112150
>>664096
>var нужно использовать умеренно или не использовать вообще.
Мб он из тырпрайза, ибо я оттуда и тоже привык var при любой возможности юзать, ибо так код короче и понятнее, без длинных и бессмысленных названий типов.

И кстати тип у var можно посмотреть просто наведя мышь на название переменной в любом месте кода, как минимум в вижуалке 2019 так.

мимо другой анон
Аноним 28/04/20 Втр 14:22:49 664113151
>>664112
да я сам из тырпрайза, а водить мышью в ide это рачьё. тут же вопрос не в том что невозможно узнать тип, а в том что тебе об этом вообще думать не надо если он указан чётко. так то понятно что если пишешь код для себя, то можешь делать и поля с дебильными названиями, но в лонгране это плохо
Аноним 28/04/20 Втр 14:51:48 664122152
>>664113
>а водить мышью в ide это рачьё
Лол, пацаны в падике засмеют?

>а в том что тебе об этом вообще думать не надо если он указан чётко
Хз, никогда проблем не возникало с тем что я неправильно понял что за тип у переменной объявленной через var, я понимаю если бы ты в том же JS жаловался, но C# же язык со статической и безопасной типизацией, тебе сама IDE начнет жаловаться если ты тип где-то перепутаешь.
Аноним 28/04/20 Втр 15:22:08 664133153
>>664122
> падике засмеют?
бестолковое действие просто. это как рукой себе рот открывать когда ешь. помогает если ты не умеешь это делать нормально

>тебе сама IDE начнет жаловаться
не надо дожидаться когда у тебя ide начинает жаловаться, просто пиши чистый код. примеры тебе выше привёл где невозможно заранее знать что у тебя в переменной
Аноним 28/04/20 Втр 19:09:31 664195154
>>664096
Нет, у меня 2 скрипта меняли позицию камеры и луч пускал между сменами, примерно так:
[1 - камера.position.y - 5]
[2- пускать луч]
[3- камера.position.y + 5]
>и рекомендую начать использовать новую систему ввода юнити
Завтра посмотрю
А весь код снизу это гавно, чтобы повторить баг, его вообще не стоило бы ревьюить на "читаемость"
Аноним 29/04/20 Срд 03:02:58 664257155
15880204746541.png 489Кб, 970x545
970x545
Screenshot 2020[...].png 196Кб, 1292x1128
1292x1128
Screenshot 2020[...].png 35Кб, 792x632
792x632
читал соседний тред и напоролся там на скриншот прототайпа legend of zelda breath of the wild. стало интересно как они реализовали тени у спрайтов. спрайты и бекграунд под прямым углом от камеры и соответственно спрайты (например кустов) параллельны фону. но тем не менее тень идёт от "основания" спрайта как-будто он перпендикулярен фону. есть идеи как это повторить без костылей с динамическими тенями?

прикладываю свой кривой вариант решения. хотелось бы делать проще ибо это 2 разных материала на один объект и тени чётче
Аноним 29/04/20 Срд 05:01:21 664268156
image.png 55Кб, 303x254
303x254
>>664257
посмотри внимательно на первый скрин из твоего поста

как сделать? там спрайт рисуется два раза

спрайт тени - просто рисуешь серым, при этом сдвигаешь две вершины в сторону.. вот неакуратно нарисовал
Аноним 29/04/20 Срд 05:21:51 664271157
6660ed7f-4210-4[...].png 587Кб, 1192x671
1192x671
Юнитаны, если хочу создать 3d платформер, то что мне использовать для реализации движения персонажа? CharacterController или Rigidbody?

На уровне будут динамические физические объекты, вроде летающих платформ, изменяющих высоту блоков. Но персонаж при этом на них воздействовать физически не будет. То есть он не должен толкать какие-то объекты или ещё что-то с ними делать.
Аноним 29/04/20 Срд 05:52:03 664281158
>>664257
Как вариант каждая тень это отдельный спрайт. И все эти тени-спрайты на одном слое
Статические объекты типа деревьев могут быть изначально прорисованы с тенями в Tile Palette + вариант когда одно дерево бросает тень на другое
Аноним 29/04/20 Срд 06:29:41 664285159
>>664271
CharacterController создает gc мусор каждый тик и вместо OnTriggerEnter и OnCollisionEnter там OnCharacterControllerHit (или как-то так)
Rigidbody - если хочешь плавность, то тоже сомнительно т.к. выставляя фичиеский тик меньше (делая его более плавным) весь мир начинает грузить систему сильнее в разы.

Короче это сложный вопрос и дать 100% ответ сложно, просто нужно выбрать какие минусы тебя будут меньше беспокоить.

И всегда есть альтернатива - написать свой простой контроллер, судя по описанию ты будешь только прыгать, можно кастить несколько лучей вниз (для проверки коллизии) и делать SetParent когда встаешь на платформу, короче думай, удачи.
Аноним 29/04/20 Срд 10:09:14 664321160
>>664257
Скорее всего просто шейдер. Берёшь оригинальный спрайт, обсериваешь его и сдвигаешь несколько пикселей в зависимости от направления света.
Аноним 29/04/20 Срд 10:37:22 664326161
>>664271
CharacterController будет лучше. Ну, поверх него тоже свой скрипт нужно подвесить, само собой.

>>664285
Cпециально запустил профайлер, стёр всё, кроме GC, с контроллером около 5 мс пики сборщика мусора, а без него - около 5 мс. Райкаст скорее всего будет медленнее и уж точно гораздо хуёвее.
Помогите с кватирионами мать их Аноним 29/04/20 Срд 11:16:11 664333162
2020-04-29.jpg 174Кб, 1293x544
1293x544
Хочу сделать турель , чтобы поворачивалась за камерой - башня по горизонтали -ствол по вертикали - нашёл чей то скрипт - всё работает как надо - но стоит турельку наклонить и всё летит к хуям. Подскажите ,что добавить или исправить)
Аноним 29/04/20 Срд 11:40:14 664341163
oof.png 11Кб, 841x193
841x193
>>664326
Суть не в "сколько мс на пик", а в том, что этот контроллер вообще их создает.
>Райкаст скорее всего будет медленнее и уж точно гораздо хуёвее.
KinematicController с пика этого >>664271 как-раз сделан на коллайдерах ковырялся в сурсах
Держи еще пик перфоманса райкастов на некро-мобилках

Аноним 29/04/20 Срд 11:55:29 664347164
>>664333
>башня по горизонтали -ствол по вертикали
Это как? Башня обычно вертикально стоит.

И что значит поворачиваться за камерой? Камера где стоит относительно турели?
Аноним 29/04/20 Срд 12:03:37 664350165
>>664341
Как ты вообще отследил, что контроллер мусорит? У меня что один, что пять, что вообще ноль по всем параметрам идентичны.
>с пика этого
Когда я нашёл официальный тпс сэмпл с ригидбади персонажем и движением через рутмоушн, сразу понял, что все сэмплы это полная хуйня.
Аноним 29/04/20 Срд 12:10:50 664352166
>>664347
Башня как у танка - крутиться вправо-влево ( по горизонтали)
Ствол вверх-вниз (по вертикали)
Турель поваричивается туда куда смотрит камера
Как то так)
Аноним 29/04/20 Срд 12:18:37 664356167
Мое видео4.mp4 4172Кб, 1920x1080, 00:00:18
1920x1080
Аноним 29/04/20 Срд 12:20:54 664359168
characterCon tr[...].png 43Кб, 982x300
982x300
>KinematicController на коллайдерах
Хотел сказать на райкастах

>>664350
Твоя правда, он создает мусор, только если добавить метод void OnControllerColliderHit(ControllerColliderHit hit), а обычные OnCollision и OnTrigger не будут работать
Аноним 29/04/20 Срд 12:23:20 664362169
>>664356
А с наклоненной моделькой?
Аноним 29/04/20 Срд 12:39:50 664373170
xxx.mp4 19867Кб, 1920x1080, 00:00:17
1920x1080
Аноним 29/04/20 Срд 12:48:28 664375171
>>664373
Не охота вникать почему чужой код работает неправильно. Я бы сделал так:
1. Вычисляем координаты цели в базисе основания турели (у трансформа есть такой метод). С помощью atan2 узнаем угол поворота цели относительно локальной оси y, поворачиваем башню на этот угол.
2. Когда башня уже смотрит на цель, вычисляем координаты цели уже в базисе башни, узнаем угол поворота относительно оси x и вращаем на этот угол ствол.

В этом методе недостаток, что сперва поворачивается башня, а потом ствол. Но можно его модифицировать и чтобы они одновременно вращались.
Аноним 29/04/20 Срд 12:51:22 664377172
>>664375
Ну спасибо - буду дальше ковырять)
Аноним 29/04/20 Срд 12:52:03 664378173
>>664377
А что, тебе мой способ не понравился?
Аноним 29/04/20 Срд 12:52:38 664379174
>>664359
>OnControllerColliderHit
Юзаю collisionFlags и не ебу себе мозг. Всё отлично работает.
Аноним 29/04/20 Срд 12:59:45 664381175
>>664378
Ну просто я в кватирионах не понимаю - буду ща изучать)
Аноним 29/04/20 Срд 13:03:55 664384176
>>664381
Мой способ без кватернионов.
Аноним 29/04/20 Срд 17:42:51 664510177
На один Object можно навесить несколько процедурногенерируемых мешей?

Как обходить ограничение в 65к вершин на один меш, если объект имеет больше?
Аноним 29/04/20 Срд 17:46:41 664512178
>>664510
>На один Object можно навесить несколько процедурногенерируемых мешей?
>
>Как обходить ограничение в 65к вершин на один меш, если объект имеет больше?
Ты пробовал повешать два и создать больше вершин на один меш?
Аноним 29/04/20 Срд 17:48:48 664513179
>>664512
Нет, пока играюсь с импортом из Magica Voxel. Проверять долго. От возможности/невозможности зависит архитектура.
Аноним 29/04/20 Срд 17:51:55 664514180
>>664513
Думаешь в юнити нельзя запихать меш с 100к полигонов?
Аноним 29/04/20 Срд 17:55:09 664515181
>>664514
Проверял - не жует больше 65к.
Аноним 29/04/20 Срд 17:57:48 664518182
>>664514
Ты только когда про 32х битные буферы заливать начнёшь, не забудь упомянуть о совместимости.
Аноним 29/04/20 Срд 18:02:01 664520183
>>664518
Не понимаю о чем ты
>>664515
>Проверял - не жует больше 65к.
Что значит не жует, импортируется с ошибкой?
Аноним 29/04/20 Срд 18:03:20 664521184
>>664520
Процедурно генерируемые меши отрисовывает коряво - максимум 65к вершин.
Аноним 29/04/20 Срд 18:05:35 664523185
>>664520
>Не понимаю о чем ты
О переключении мешей из режима "65535 вершин" в режим "4 миллиона вершин".
Аноним 29/04/20 Срд 18:15:48 664527186
>>664521
>Процедурно генерируемые меши отрисовывает коряво - максимум 65к вершин.
Ты же говоришь не проверял. Судя по всему кто-то проверил и тебе уже сказал результат? Ты хочешь чтобы еще я вместо тебя проверил?
Аноним 29/04/20 Срд 18:19:39 664528187
>>664527
Ну я забыл, что проверял. Вот, вспомнил.
Я хочу ответ получить на вопрос
"Как мне отрисовывать воксельную модель полигонами, у которой в итоге получается больше 65к вершин."
Аноним 29/04/20 Срд 19:05:18 664544188
interface A {
void B();
}

class C : MonoBehaviour, A
{
void B() {}
}

Можно так
B x = new B
И оказывается можно и вот так?!
A x = new B;
Странно, не ожидал что можно название интерфейса перед объявлением вписать.
Аноним 29/04/20 Срд 19:06:26 664545189
C x = new C;
A x = new C

fix
Аноним 29/04/20 Срд 19:14:24 664546190
>>664545
А зачем тогда по-твоему интерфейс, если не для этого?
Аноним 29/04/20 Срд 19:16:17 664547191
Имеет ли смысл помещать (т.е. делать атлас) несколько вытянутых текстур для декалей (трещины) в одну текстуру? Чтобы потом использовать decal projector с этой текстурой?
Аноним 29/04/20 Срд 20:22:17 664557192
image.png 50Кб, 1059x184
1059x184
image.png 55Кб, 1049x205
1049x205
image.png 4Кб, 303x97
303x97
image.png 13Кб, 507x116
507x116
Двач, спасай. Я с проблемами не лезу обычно, а сам их решаю (даже если на это дни уходят).
Но щас блять я с ебаниной какой-то столкнулся, которую вообще никак не могу решить.

Приложение под андроид почти готов. Ставлю ебанину эту для рекламы от Unity. И сразу мне триллиард варнингов и ошибок выходит. Посмотрел на форумах у индусов и у жиробасов из США - нихрена там из решений нет толком, кроме как удалить кеш - что я и сделал, но эта ссанина так у меня и осталась висеть на почти готовом проекте.



Аноним 29/04/20 Срд 20:24:49 664561193
>>664557
Юнити, к слову, 2019.3.4f1
Аноним 29/04/20 Срд 20:48:40 664577194
image.png 10Кб, 468x149
468x149
Не жестко ли так геймобжекты удалять?
Аноним 29/04/20 Срд 21:50:49 664591195
>>664557
Кинь фул скрин сайдбара сервисов(конкретно вкладки ADS)
Аноним 29/04/20 Срд 22:01:01 664593196
Может кто-то пояснить за штуки вроде Photon или Firebase? Что стоит изучать? Какие вообще мультиплеерные решения стоит потрогать и где про это узнать получше?
Аноним 30/04/20 Чтв 01:01:00 664635197
image.png 25Кб, 306x524
306x524
Аноним 30/04/20 Чтв 01:55:49 664640198
>>664326
>CharacterController будет лучше
Я тут сразу заметил одну проблему. Если есть динамические физ. объекты, которые могут отталкивать персонажа, то на CharacterController всё это поведение придётся с нуля писать. Условно я стою на месте, сбоку прилетает платформа, которая меня отталкивает.
Аноним 30/04/20 Чтв 03:07:15 664648199
>>664577
Если имеешь ввиду, выполнится ли удаление из списка - то все будет ок, так как будет использован хэш-код объекта, чтобы найти его в списке и удалить. На твоем месте я бы добавил проверку на наличие элемента в списке при добавлении, чтобы избежать дубликатов. А с удалением - добавил бы проверку, что в результате удаления не вернется false и писал бы в лог ошибку, если это случится.
Аноним 30/04/20 Чтв 11:17:52 664696200
Подскажите по архитектуре.
Допустим у меня есть последовательность событий, каждое из которых занимает неизвестное время.
После завершения одного события я стартую следующее и так до конца.

Событием может быть что угодно: перемещение объекта, ожидание ввода пользователя и тд.
Есть ли какой-то удобный способ не скатываться в сорт оф callback hell? Типа я из метода старт вызывают первое событие, отдаю ему коллбек по завершении оно вызывает этот коллбек и запускается следующее.
Таким образом у меня в классе куча методов больших и маленьких.

Можно ли как-то обойстись одним-двумя?

В js я бы каждый эвент обернул в промис и делал бы что-то вроде (условно)

async myMethod() {
await event1();
await event2();
...
await event99();
}
Аноним 30/04/20 Чтв 12:44:31 664716201
>>664557
Выручайте с этой парашей.
Аноним 30/04/20 Чтв 13:14:18 664725202
>>664716
У меня было что-то похожее, я не помню, так подсказал бы.
Вообще помню дрочился с manifest файлом для андроида т.к. он создавал все эти конфликты, возможно туда нужно добавить этот UnityAds как пакет или зависимость нативную.
Еще лучше я бы посоветовал попробовать сделать всё в ручную, а не через менеджер пакетов.
А судя по логам, у тебя там скрытые файлы дублируются.
Аноним 30/04/20 Чтв 14:24:25 664752203
Процедурно генерирую сетку из вокселей. Каждый воксель имеет свой цвет.

Как реализовать раскраску сетки? Стандартные шейдеры не поддерживают vertex colors.

Если буду вместо vertex colors наваливать сплошную текстуру (тупо цветной квадратик, соответствующий цвету вокселя), будет ли это бить по производительности? Нормальное ли решение?
Аноним 30/04/20 Чтв 18:06:18 664786204
>>664696
Оборачиваешь каждое событие в IAlternatable собираешь их в очередь и в каждом событии либо меняешь статус, либо колбеком даешь клиенту команду запускать следующее событие.
Аноним 30/04/20 Чтв 18:58:10 664800205
>>664696
В юнете есть Tasks-ы,тип делаешь
public async Task Blah(){
your logic
await getFromNetForExample();
await Task.Delay(1000); // for example
}

и дергаешь этот метод как в js, ну ты понял, загугли про таски в юнете и всё
Аноним 30/04/20 Чтв 20:08:31 664824206
>>664557
Кароче в очень глубоких недрах интернета наконец-то нашёл решение. Если кому пригодится - папку Packages удалите в вашем проекте, - она вновь появится потом, но всё исправится.
(Я ебал и на это я столько времени потратил).
Аноним 30/04/20 Чтв 23:20:12 664857207
Если я часто выполняю такой код во время игрового процесса:
someList.add(new Obj());
//
someList.removeAt(index)
то это плохо? Вроде тут мусор будет лишний скапливатся? Хоть я я и удалил из листа, сам объект, который я создал, будет висеть в памяти?
Аноним 30/04/20 Чтв 23:32:59 664861208
>>664857
ты ж из листа только референс на объект удаляешь
сам объект не удаляется
Аноним 01/05/20 Птн 09:25:55 664919209
Подскажите, вот есть объект z с спрайтом, в этом объекте ещё кнопка и текст, при запуске объект отключен а когда персонаж столкнется с обьектом x то объект z нужно включить. Вот думал как это сделать, .Find не находит выключенный объект, а сначала найти его->отключить->выключить при действии не работает, мне приходит в голову только вынести объект за сцену и при действии переместить его. Подскажите, должно же быть более разумное решение?
Аноним 01/05/20 Птн 09:47:45 664922210
>>664857
Если на объект больше нигде нет ссылок, то он соберется сборщиком мусора и занимаемая объектом память освободится.
Аноним 01/05/20 Птн 11:34:44 664955211
а есть такой скрипт для редактора, чтобы я взял несколько префабов (например префаб пола, 3 префаба стен, и префаб потолка), выставил их в редакторе, затем запустил этот скрипт, и оно бы из них мне сделало одную сплошную модель?
Аноним 01/05/20 Птн 13:17:11 664987212
15882392558930.png 86Кб, 512x512
512x512
анон, я ни хуя не понимаю, зачем нужен dependency injection. Зачем-то привязывают классы к интерфейсам, очень сложна, аж башка трещит, ты не мог бы мне разъяснить попроще на Воване и говне, или там на Хоро и яблоках? Я аж слышу как в голове ржавые шестерёнки с выкрошенными зубцами скрипят и заедают.
Аноним 01/05/20 Птн 13:21:41 664989213
>>661525
>В смысле, это через скрипт сделать?
Coroutines
Аноним 01/05/20 Птн 13:37:04 664992214
>>664955
а зачем?

>>664987
тут у одного товарища была задача. у него был поезд и вейпоинты по которым он двигался. каждый раз когда поезд доезжал до вейпоинта, он чекал его тип и делал какие-то действия. возьмём для примера 2 типа вейпоинтов. один меняет цвет поезда, а другой его скорость. первая реализация была приблизительно такая:

if (поезд достиг вейпоинта) {
var waypoint = current_waypoint;
switch(waypoint.type) {
case WaypointColor:
ChangeColor();
break;
case WaypointSpeed:
SpeedChange();
break;
}
}

что-то в этом духе. суть проблемы в том что когда он решил добавить ещё один тип вейпоинта, например тот что издаёт звук, то ему пришлось в switch добавлять ещё одну запись и код поезда разрастается

один из вариантов решения проблемы это dependency injection. для вейпоинта создаётся интерфейс. интерфейс означает что независимо от того что там за код у его наследников, определённые публичные методы там точно будут присутствовать. например

public interface IFartable {
void Fart();
}

public class Square : IFartable и public class Circle : IFartable должны в себе обязательно иметь метод public void Fart(); иначе ты не скомпилируешь. что в этом методе будет всем похуй.

интерфейс позваляет ссылаться на эти классы и использовать эт методы, но не оставшиеся методы класса. пример:

IFartable circle = new Circle();

если в class Circle есть метод Hello(), то сделать circle.Hello() у тебя не получится, ссылка в данном случае только на контракт. зато circle.Fart() получится так как в контракте это прописано.

возвращаемся к поездам. все вейпоинты у нас наследуют от одного интефейса в котором есть метод Action с параметром самого поезда. в интерфейсе:
interface IWaypoint {
void Action(Train);
}

в самом поезде наш ебаный свич мы заменяем на:

if (поезд достиг вейпоинта) {
IWaypoint waypoint = current_waypoint;
waypoint.Action(this);
> обрати внимание как здесь в вейпоинт мы передаём this, то есть сам поезд. это и есть dependency injection
}

после этого в вейпоинте уже делаешь чего хочешь. аля:

public void Action(Train train) {
train.setColor(Color.red);
}

в этом же треде для анона записывал вышеописанную задачу. смотри здесь:
>>662847
>>662848

Аноним 01/05/20 Птн 13:41:29 664993215
48115684-b1c52e[...].png 34Кб, 389x554
389x554
>>662754
>>662752
>>662803
Пилите велосипеды камрады.
Если у вас задача сделать простенькую анимацию, где вы будете вращать, перемещать, скейлить go - интегрируйте себе в проект dotween, все настройки через инспектор и скрипт. Очереди, функции плавности и др. доступны из коробки.

Если же не хотите готовый функционал, то тогда используйте компонентный подход - пишите компоненты которые будет "управлять" игровым объектом, по средствам карутин. Да так работает dotween

Аноним 01/05/20 Птн 14:08:26 665000216
>>664992
>а зачем?
надо. просто говорю - у меня отдельная моделька для пола, отдельная для стен, отдельная для потолка. таких моделек много.

из этого надо собрать комнаты - префабы. но в инспекторе такой мусор что нихрена не найти (группировать тоже не вариант - вечно все развернуто).

Плюс страдает оптимизиация - так как все эти модельки - их там получается тысячи (оно там конечно батчит, но не очень)... но при этом у меня же все должно быть статическим, почему бы в самом редакторе префаб комнаты не сбилдить в одну модель...
Аноним 01/05/20 Птн 14:20:53 665003217
Аноним 01/05/20 Птн 14:22:59 665004218
>>665003
спс, попробую, посмотрю то, не то
Аноним 01/05/20 Птн 15:19:48 665029219
>>664992
дак получается, что если у него например в классе Train методы ChangeColor() и ChangeSpeed(), то они публичные и вызываются через вэйпойнт? То есть у него будет типа
public void Action(Train train) {
train.ChangeColor(Color.red);
} или как?
Хуй знает, вроде как немного понятнее стало, спасибо анон. А вот когда в зенжекте они в начале биндят интерфейсы к конкретному классу, это зачем вообще? Типа чтобы при вызове интерфейса всегда вызывался именно этот класс. Вот от этого у меня вообще мозги сломались, нахуй тогда вообще интерфейс, можно в классе синглтон сделать и всё.
Аноним 01/05/20 Птн 15:23:27 665032220
>>665029
именно так мужик, посмотри видосы на которые я тебе указал, там эти публичные методы и есть
а зенджект я ни разу в глаза не видел
Аноним 01/05/20 Птн 18:51:02 665078221
>>665032
туториалов по зенджекту посмотрел всяких, вроде что-то начало понимание какое-то появляться медленно, прямо как говяха вылазит. Спасибо ещё раз друг анон.
Аноним 01/05/20 Птн 21:04:49 665127222
>>665078
не, говяха обратно всосалась, всё равно ничего не понимаю. Зенжект это какой-то пиздец, всё тупо усложняется на ровном месте в несколько раз. Вот на примере проекта посмотри, говорят, Zenject-Hero. Охуительные истории, написано куча инсталлеров, сигналов и прочих штук, но при этом сам функционал, например, нанесения дамага лазером по-прежнему реализован обычными вызовами чужих методов через GetComponent. Нахуй вообще это всё? Можно без него? Анон сказал - вот зенжект это приличная архитектура, надо вот так делать. Ну я хуй знает вообще.
Аноним 02/05/20 Суб 00:18:43 665162223
Объясните дураку, почему синглтон плохо?
Аноним 02/05/20 Суб 00:35:33 665169224
>>665162
ничего плохого в синглтоне нет, но поскольку он позволяет глобально ссылаться на разные части кода, нубы всякие начинают пихать их куда попало. типа 500 синлтонов, менеджеров и прочего говна. это создаёт много жестких зависимостей и лишает возможности кодить модульно. по факту это паттерн из-за которого программист ленится и в лонг ране получает код который сложнее заменять. я перестал юзать их как челендж и это "вынудило" меня чаще использовать другие паттерны и изучать декапелинг (decoupling), что в свою очередь подтянуло уровень кода. так что технически отказ от синглтонов это лучшее что со мной случилось за время изучения c# и юнити
Аноним 02/05/20 Суб 03:41:46 665194225
>>665169
где про декаплинг почитать (для тупых)?
Аноним 02/05/20 Суб 04:00:09 665197226
>>665169
>но поскольку он позволяет глобально ссылаться на разные части кода, нубы всякие начинают пихать их куда попало. типа 500 синлтонов, менеджеров и прочего говна. это создаёт много жестких зависимостей и лишает возможности кодить модульно

ну хз. просто если несколько объектов в коде связаны, хоть что делай, они все равно будут связаны. Например есть менеджер звуков - его придется передать и пуле, и травке, и топору, и интерфейсу.

Или данные игрока - их также придется передавать и монстру, и интерфейсу...

Можно конечно абстрагировать эти данные, или передавать через прокси - но все равно связность остается.

Короче не знаю как это можно решить
Аноним 02/05/20 Суб 04:50:10 665198227
>>665194
самый обычный декапелинг это делегаты. в юнити есть очень простая штука называется UnityEvent. по факту тебе создаёт в инспекторе поля которые позволяют связывать между собой объекты
https://www.youtube.com/watch?v=mC_yUEnGQXM
это старт, но тут жопа в том что в коде нельзя связывать (или нельзя было, или можно в коде, но в инспекторе это не отобразится, я не помню). в любом случае там постоянно на форумах жалуются что unityevent это клёво, но не оптимально. хотя, как всегда, для мелких проектов вообще ништяк. я не юзаю unityevents, мне влом в инспекторе мышью кликать. события связываю обычно из кода и выглядит это так:

например есть у нас компонент игрока и есть компонент который отвечает за отображение кол-ва хелсов

public class Player : MonoBehaviour {
public event Action<int> OnDamaged;
> ключевое слово event означает что вызывать (Invoke) OnClick можно только из этого объекта
> Action это обёрта для делегата по факту
> <int> это параметры метода которые будут в этом делегате

private int _health = 100;

public void GetDamage(int amount) {
_health = Mathf.Max(_health - amount, 0);
> это чтоб хелсов не было меньше нуля
OnDamaged?.Invoke(_health);
> это мы вызываем этот самый делегат
> ?. это проверка на null. если на делегат никто не подписан, а мы вызовем его (просто OnDamaged.Invoke(_health)), то получим ошибку
> Invoke это вызов и _health это тот самый параметр <int> в объявлении делегата
}
}

а у отображения класса хелсов будет такая хуйня:
public class UIHealth : MonoBehaviour {
private void Start() {
FindObjectOfType<Player>()?.OnDamaged += Change;
> findobjectoftype это корявый способ, но для примера сойдёт
}
private void Change(int value) {
> тут твой код для замены текста. в value из класса игрока будет переданы его хелсы.
}
}

суть примера в том что если ты удалишь любой из этих компонентов, всё будет в порядке и ничего не обосрётся. декапелинг мать его
Аноним 02/05/20 Суб 05:08:27 665201228
>>665198
это разве декаплинг? это паттерн observer
Аноним 02/05/20 Суб 05:27:53 665202229
>>665201
observer pattern в числе других задач решает и проблему декаплинга. я закинул пример откуда надо начинать смотреть. декаплинг это довольно большой пласт и ссылок на какое-то вменяемое чтиво где собрано много информации у меня нет
Аноним 02/05/20 Суб 05:59:47 665203230
>>665202
ты пользуешься инжектом интерфейсов в конструкторы например?
Аноним 02/05/20 Суб 06:05:17 665204231
>>665203
ну я могу представить себе зачем такая хуйня нужна, но ни разу не использовал. в целом в моих проектах почти всё на monobehaviour и потому там конструктора нет
Аноним 02/05/20 Суб 06:31:08 665205232
>go.GetComponent<RectTransform>();
или
>go.transform as RectTransform;
или это одинаковая хуйня?
Аноним 02/05/20 Суб 06:35:30 665206233
Аноним 02/05/20 Суб 06:37:20 665207234
>>665206
RectTransform наследник transform, не знаешь не пиши
Аноним 02/05/20 Суб 07:14:18 665210235
>>659486 (OP)
Аноны, я немного аутист, вторую неделю оптимизирую. Пилю кубач, пытаюсь ужать кубы максимально шакально. Пока что смог выжать 180 мб на 1 миллион кубов. Остановиться или ебаться дальше? Сейчас главная проблема - дохуя сжирают памяти указатели на дочерние ноды. Вот бы выпилить их, но как мне высчитывать дочерние ноды без прямых указателей?
Аноним 02/05/20 Суб 07:42:27 665212236
>>665210
Надо понять где ты хранишь ноды, как хранишь и уже от этого отталкиваться.
На дотсе можешь выжить перфоменс или через алгоритмы, например вместо хранения от 0 до 1000 хранишь ноду с данными startIndex = 0, endIndex = 1000, data = {какие-то данные}
Аноним 02/05/20 Суб 07:46:08 665213237
1473718699593.png 7Кб, 419x223
419x223
>>665212
Вот так нода выглядит.
Аноним 02/05/20 Суб 08:01:09 665214238
>>665213
И ты их хранишь как List<Node> ?
У тебя есть метод который обновляет меш? Или сейчас только 1 раз вызываешь метод типа BuildWorld()?

Я бы копал в сторону Range-ов
Аноним 02/05/20 Суб 08:39:11 665215239
>>665205
Почти одно и то же. Трансформ под обёрткой есть список, составленный из геткомпонентов раз в сколько-то фреймов, а геткомпонент заставляет найти в данный момент. Всё, что ты часто используешь из стандартных юнитовских классов, нужно хранить где-нибудь.
Аноним 02/05/20 Суб 09:49:19 665222240
>>665214
> И ты их хранишь как List<Node> ?
Просто динамические массивы. Вложенные друг в друга. Как на пике, с корневой по последнюю ноду так.
> У тебя есть метод который обновляет меш?
Только изменённые ноды, да и похуй на скорость, мне надо ужать память.
> в сторону Range-ов
У меня и так по умолчанию нет дочерней ноды - считается диапазон из текущей. При записи чекаю и тру лишние ноды.
Аноним 02/05/20 Суб 11:17:15 665228241
>>665197
Это не совсем понятие связности, если упростить малая связность означает что изменения в топоре не вызовут изменения в саунд менеджере, и наоборот, если ты возмешь другой менеджер тебе не придется переписывать топоры. А то что у тебя есть вызовы саунд синглтона по коду это естественно. В идеале у тебя есть интерфейс взаимодействия, и кроме как через него ты лазить в разнесенные системы не должен.
Аноним 02/05/20 Суб 11:57:23 665236242
>>665222
Еще как вариант ты можешь выгружить инфу в какой-нибудь кеш файла и ассинхронно выгружать / подгружать необходимую информацию, тогда сразу появится легкая управляемость памятью

> У меня и так по умолчанию нет дочерней ноды - считается диапазон из текущей.
Мне все еще кажется, что мы про разные вещи говорим, лол.
Аноним 02/05/20 Суб 13:35:35 665260243
анон, где можно по быстрому прочитать весь синтаксис C# чтобы серьезно вкатиться в юнити?

Сразу - я уже умею программировать (моим основным рабочим (зарабатывал на нем деньги) языком является С++), так что мне нужна только минимальная выжимка языка

Времени читать тома по 2к страниц особо нет. MSDN конечно клевая - но такая же объемная, так что тоже нет - хочется еще более краткого

Ну и понятно что видосы сжирают еще больше времени (хотя если есть что-то типа Шарп за час, то наверное сойдет)
Аноним 02/05/20 Суб 13:42:08 665262244
>>665260
https://www.w3schools.com/cs/
Без лишней воды, правда тут всё максимально поверхностное (т.е. без многопоточностей и тд)
Аноним 02/05/20 Суб 15:08:58 665273245
>>665260
>где можно по быстрому прочитать весь синтаксис C# чтобы серьезно вкатиться в юнити?
>я уже умею программировать (моим основным рабочим (зарабатывал на нем деньги) языком является С++), так что мне нужна только минимальная выжимка языка
Слабо верится что чел зарабатывающий знанием плюсов может задавать такие вопросы.
Аноним 02/05/20 Суб 15:23:06 665276246
>>665260
Качай Альбахари и пройдись по оглавлению
Аноним 02/05/20 Суб 15:50:15 665284247
>>665273
Верится как раз легко, Луговский не даст соврать.
Аноним 02/05/20 Суб 17:06:47 665293248
>>665236
> ты можешь выгружить инфу в какой-нибудь кеш файла
Я-то могу, на самом деле шикарная идея. Но что если это потом попробовать запустить на HDD? Бывает чтение до 3-5 мб/с может упасть на ноутбучном диске. Даже не представляю как с этим работать в реалтайме. У меня в один поток в ОЗУ ноды пишутся примерно 100 мб/с, читаются 500 мб/с. Есть вообще из игр пример использования дискового кеша? А то это получится эталонный лагодром с говнокодом, который только на топовом железе работает.
Аноним 02/05/20 Суб 17:50:49 665300249
image.png 49Кб, 966x587
966x587
image.png 43Кб, 919x651
919x651
image.png 136Кб, 1138x711
1138x711
Двачик помоги, вообще не понимаю что делать
Пилю мультиплеерную стратегию с Photon, пытаюсь заполнить список доступных игроку строений в начале, а мне выдает все время пустой список. Список заполняю в другом статичном классе, выдает что-то такое. На тебя последняя надежда, совсем не понимаю что с этим делать, перерыл пол интернетов. Игрок создается специальным инстансом фотона, разные игроки в клиентах видны сразу говорю. Просто переменные их не меняются. При запуске сцены независимо, с искусственным добавлением игрока все работает, дело полюбому в каких-то фотоновских мудростях
Аноним 02/05/20 Суб 17:55:12 665302250
>>665300
Классы, наследуемые от MonoBehaviour, нельзя создавать через new(). Попробуй убрать наследование у класса House.
Аноним 02/05/20 Суб 17:57:54 665303251
image.png 19Кб, 572x237
572x237
>>665302
так объект создается, в списке в едиторе он есть, пусть и имя отображается калично, но как я говорил, без фотона все норм работает
Аноним 02/05/20 Суб 18:08:17 665307252
>>665303
Нет, он не создается. В инспекторе отображается пустой элемент, значит, не создался. "None" в буквальном смысле означает, что там пусто. При обращении к полю пустого элемента будет исключение. Даже в консоли тебе пишут, что нельзя создавать через new.
Аноним 02/05/20 Суб 19:53:21 665334253
>>665307
почему тогда я могу при обращении напрямую обратиться к элементу? Если миновать лобби я могу создать префаб внутри этого объекта, понимаешь? Почему? В чем разница?
Аноним 02/05/20 Суб 20:16:29 665338254
image.png 68Кб, 570x790
570x790
>>665307
Смотри, убрал наследование, теперь объект нормально отображается, но ошибка все равно вылетает. Проблема все еще в синхронизации с фотоном
Аноним 02/05/20 Суб 20:39:01 665343255
Дорого ли обращаться к чайлдам? Или лучше при старте создавать массив с ссылками на них?
Аноним 02/05/20 Суб 20:44:40 665346256
Аноним 02/05/20 Суб 20:47:39 665347257
>>665343
Охуенно важные у тебя вопросы. Ещё выясни, что дешевле - делить на 2 или умножать на 0.5

До тех пор, пока ты не делаешь 10000 обращений к чайлдам за кадр - строго похуй.
Аноним 02/05/20 Суб 20:47:48 665348258
>>665343
>Дорого ли обращаться к чайлдам? Или лучше при старте создавать массив с ссылками на них?
>
Да, Да
Аноним 02/05/20 Суб 20:58:47 665352259
>>665347
>Ещё выясни, что дешевле - делить на 2 или умножать на 0.5
Разумеется сдвигать биты вправо.
Аноним 02/05/20 Суб 21:03:50 665356260
>>665347
>До тех пор, пока ты не делаешь 10000 обращений к чайлдам за кадр - строго похуй.
У меня как раз все забито каждый кадр, правда не чайлдами, каждый процентик важен! Просто тут писали, что обращение к свойствам обнулили, я не сильно шарю и слежу. Некоторые штуки сильно затратные, каждую не потестируешь.
Аноним 02/05/20 Суб 22:23:05 665386261
Подскажите тред по настольной игре на unity который тут был на двачах, ну или название игры
Аноним 02/05/20 Суб 22:35:05 665390262
Аноним 02/05/20 Суб 23:10:56 665407263
>>665338
Отлично. Теперь а показывай ошибку и код, на который она ссылается. На скриншотах у тебя 53 строка в классе Player является причиной, этой строки на изображении не видно. И включи нумерацию строк в текстовом редакторе.
Аноним 02/05/20 Суб 23:15:52 665408264
>>660439
Как делать такую подсветку?
Аноним 02/05/20 Суб 23:21:55 665409265
Аноним 02/05/20 Суб 23:55:02 665421266
>>660874
> удалять и создавать новые это очень плохо.
Кстати, почему?
Аноним 03/05/20 Вск 00:48:25 665428267
>>665407
Я в итоге просто выключил генерацию списка, решил просто делать префабы для возможных игроков с заранее заготовленными списками. Заработало, ибо они генерятся до момента входа в лобби. Но другие игроки все равно ничерта не видят. Все еще считаю что ты не на то грешишь, анончик :c
Аноним 03/05/20 Вск 01:12:51 665432268
image.png 12Кб, 414x291
414x291
Короче, я запустил корутину, которая вызывает другую функцию, а в этой функции я хочу отлавливать нажатия, но они отлавливаются не всегда.
Аноним 03/05/20 Вск 01:25:11 665437269
>>665432
Хотя, вроде дошло почему нельзя.

В этом скрипте нет функции update, это не monobehaviour, как мне тогда отлавливать нажатия?
Аноним 03/05/20 Вск 01:42:37 665440270
Аноним 03/05/20 Вск 02:56:00 665450271
>>665432
Потому что WaitForFixedUpdate. FixedUpdate вызывается далеко не каждый кадр, легко пропустить нажатия. А нахуя тебе корутина?
Аноним 03/05/20 Вск 02:59:48 665451272
>>665440
Он Input и пользуется, в глаза долбишься? Лол, сейчас бы с игровым движком под рукой дотнетовские методы вызывать. Плюс то, что ты скинул, это Windows Forms. Помимо того, что это устаревшая хуйня, используя её ты нахуй посылаешь кроссплатформенность.
Аноним 03/05/20 Вск 03:00:17 665452273
>>665421
GC передает привет
Аноним 03/05/20 Вск 04:12:08 665457274
>>665428
Грешил я на то, что в случае выявления исключения, код юнити перестает исполняться. Создание MonoBehaviour через new генерирует исключение, хотя юнити прописывает его в предупреждение, а не ошибку.

По поводу того, что игроки ничего не видят - у тебя выполняется синхронизация через RPC? То есть функция помечена аттрибутом PunRPC и вызывается по типу?
>PhotonView PV = GetComponent<PhotonView>();
>PV.RPC("Setting", RPCTargets.All, someValue);
Аноним 03/05/20 Вск 07:29:42 665464275
>>665293
Тот же майнкрафт хранит снапшоты и грузит не весь снапшот, а его часть, сохраняет раз в 10 минут весь мир (примерно, точно не знаю), а чтобы не висло - читай из файла ассинхронно, сделай свой формат, например в 1 строке у тебя информация о дате внутри файла, примерно так:
line 0: {fromX:0, toX:100, line: 10},{fromX:101, toX:900, line: 60}
line 1: .. data ..
line n: ..
line 10: {Value:15, Level:0, Position: 0}
Так ты лишишь себя проблемы "грузить 500 мб" т.к. сможешь грузить только то, что тебе нужно. А через асинхронщину, сможешь грузить постепенно, чтобы вся игра не зависала, опять же вспоминая майнкрафт там чанки грузятся не целиком, а по 1 пикселю в глубь.

Вообще это первое что в голову пришло, над этим можно еще подумать и высрать что-нибудь адекватное
.
Аноним 03/05/20 Вск 07:57:55 665466276
>>659499
Бамп вопросу, так и не разобрался
Аноним 03/05/20 Вск 08:50:19 665468277
Чем отличается (Vector2)vec от vec as Vector2?
Аноним 03/05/20 Вск 08:59:53 665469278
>>665468
В первом случае, если vec не может быть сконвертирован, будет исключение, во втором null.
Аноним 03/05/20 Вск 09:08:52 665472279
Аноним 03/05/20 Вск 20:26:40 665599280
Насколько адекватно использовать сабмеш на каждый воксель?
Аноним 04/05/20 Пнд 04:44:25 665649281
Посоны! Я взялся изучать C# для Unity. Изучаю его по одному из курсов от Udemy. Учусь неспешно. За 3 недели добрался до раздела с классами и теперь реально шарю, как с ними работать. До этого у меня был опыт изучения C++, который я дропнул именно на классах (изучив их).

Вообще, эти два языка очень сильно похожи. И, насколько я помню, даже синтаксис практически одинаковый, не говоря уже о структуре классов, конструкторе и т.д.

Чужой код я могу читать, и понимаю логику, но если натыкаюсь на незнакомые для меня внутриюнитевские методы, меня это огорчает. Хотя я примерно понимаю их суть по их названию и все что остается- загуглить их.

Меня очень интересует, как далеко я нахожусь от того, чтобы можно было претендовать на роль джуниор разработчика?

Помимо этого у меня 5+ лет опыта с 3д/2д графикой и работой в UE4 на уровне создания сцен, освещения, материалов и анимаций. Программированием на жизнь я раньше не зарабатывал. Но меня почему-то тянет именно в эту область
Аноним 04/05/20 Пнд 06:17:43 665654282
>>665649
>Меня очень интересует, как далеко я нахожусь от того, чтобы можно было претендовать на роль джуниор разработчика?
Сам то как думаешь? Для начала сделай что-нибудь, что можно назвать игрой.
Аноним 04/05/20 Пнд 07:47:09 665657283
vintage-video-s[...].jpg 142Кб, 1000x1080
1000x1080
>>665649
У меня было 2 собеса на жун юнете разраба:
1 - пришел мужик знающий с++ и начал дрочить алгоритмами. Их фирма делала зомби шутан (и видимо не доделала)
2 - Дали тестовое: сделать мультиплеерный space arcade, и я сделал, но они просто загосились и ответили "вы нам не подходите, всего доброго".

Хуже всего когда не говорят в чем проблема даже
Аноним 04/05/20 Пнд 07:49:32 665658284
image.png 7Кб, 839x69
839x69
image.png 10Кб, 411x176
411x176
Анон, подскажи, что делать. Сделал текстуру tex статиком, чтобы оперативка не утекала. И теперь оказалось, что drawable_texture меняется вместе с tex.
Аноним 04/05/20 Пнд 07:52:18 665659285
>>665657
>сделать мультиплеерный space arcade
Долго делал? Собеседование по сети?
Аноним 04/05/20 Пнд 07:58:57 665660286
>>665658
Сделай static readonly Dictionary<string fileName, Drawaable_texture>

>>665659
Обычно неделю дают, я дня за 4 сделал.
Собеседование по зомби шутану было в офисе и без тестового, где попросили мультиплеер сделать вообще не собеседовали
Аноним 04/05/20 Пнд 08:32:36 665664287
>>665660
Работает. Спасибо
Аноним 04/05/20 Пнд 09:15:59 665668288
Может кто-нибудь объяснить, как работает сборщик мусора? Прочитал мануал, потыкал туда-сюда, но у меня не работает это правильно. Выдаёт по 100 мегабайт сбора мусора то ли из-за вызова сборщика мусора (причём память всё равно не освобождается), либо из-за создания мусора. Ладно бы память освобождалась - натыкал бы сбора в нужных местах, частоту сбора настроил, хуё-моё, но ведь нет же, сборщик мусора показывает 100 мегабайт в профайлере (и в сумме юнька в диспетчере показывает полтора гига по итогу), а память всё равно занятая, и каждый последующий вызов занимает больше и больше времени. Ссылки тру, значения переменных обнуляю, что за дела вообще

Похоже, придётся переделывать тонну скриптов и выносить все локальные переменные в глобальные, но это слишком дохрена переменных и чревато ошибками.
Аноним 04/05/20 Пнд 12:16:41 665685289
>>665668
Он срабатывает в 2х случаях: 1 - какой-то интервал (на всех машинах по разному, 2 - когда память растет или начинает выходить за заранее определенную память (которая потом увеличивается после очистки и при нехватки памяти).

Когда делаешь new class MyClass - это создает новый объект,
Если делаешь MyClass existingClass = new MyClass() - это не заменяет объект, а создает новый и по факту после этого у тебя будет 2 объекта в куче, предыдущий будет удален позднее, удалить прям сдесь и сейчас нельзя, те кто советуют делать GC.Collect аутисты т.к. это явный костыль, что у тебя с логикой или архитектурой проблемы.

Я сейчас выношу все локальные переменные в глобальный и кешы и мое гавно раз в 2-3 секунды создает 40kb мусора.

new struct MyStruct() - это НЕ создает мусор, так что как альтернатива можешь переписать все свои алгоритмы на структуры.

Давным давно был движок от мелкомягких XNA, там в каждом гайде было написано "используйсте структуры где только можете" как-раз из-за этих соображений.

Кидай куски кода, будем всем харкачем оптимизировать
Аноним 04/05/20 Пнд 12:24:17 665686290
>>665654
Я слабовато знаю рынок в области программирования. В моем понимании джуниор разраб, это тот же самый студент, у которого главная задача - изучать Юнити на практике, делая несложные задания и помогая команде во всяких мелочах, но уже получая зарплату которой хватит нолько на еду, естественно
Аноним 04/05/20 Пнд 17:11:58 665745291
image.png 28Кб, 803x458
803x458
Посмотрел урок на тему движения 2d персонажа с видом сверху, но не могу понять код. Может кто-нибудь объяснить пикрил? Мне важно понять логику и значения этих строк. В уроке как то расплывчато
все объяснил.
Аноним 04/05/20 Пнд 17:40:16 665750292
>>665745
public float speed - переменная, которую можно менять через редактор unity + из других классов, отвечает за скорость перемещения.

Rigidbody2D - штука для физики в юнити
private Vector2 moveVelocity - приватное (значит будет видна только в этом классе) направление движения, будет считаться дальше.

void Start выполняется 1 раз при начале игры (или когда создал этот объект), в этом методе ты ищешь на gameObject-е компонент Rigidbody2D (который нужно повесить на этот объект до начала игры)

void Update - вызывается каждый кадр (может вызваться 60 120 1000 раз, FPS короч).
В этом методе ты считаешь направление движения т.е. заполняешь приватное значение moveVelocity.
Точнее Input.GetAxisWar() - получают силу нажатия на кнопку, Horizontal и Vertical это настройки ввода т.е. лево и право.
moveInput.normalized - сам не знаю, не использовал за 5 лет опыта))0, moveInput speed - усиливает это значение, в инспекторе можешь менять прям в игре значение, поймешь зачем.
Horizontal и Vertical в настройках проекта можно назвать как угодно.

FixedUpdate - вызывается тоже очень часто, но частоту можно редактировать в юнете, стандартное значение стоит 0.02 кажется и работает 48 раз в секунду (т.е. если у тебя игра зависнет на 3 секунды, то этот метод будет вызван 3
48, а метод Update не будет работать пока игра зависсла).
Вообще FixedUpdate рекомендуют использовать для работы с физикой, в твоем методе ты это и делаешь, просишь Rigidbody переместить позицию объекта на rb.position (текущая позиция) + moveVelocity (направление движения) * Time.fixedDeltaTime (разница между кадрами метода fixedUpdate, пока считай за плавность, потом поймешь)
Аноним 04/05/20 Пнд 18:03:24 665755293
>>665750
Хуя подробно расписал, добра, анон!
мимо
Аноним 04/05/20 Пнд 18:40:02 665776294
>>665745
Вместо GetComponent лучше поле rb сериализировать и уже запихнуть прямую ссылку в испектор.
Ну или через Awake(), а не через Start()
Аноним 04/05/20 Пнд 18:43:54 665779295
>>665745

[SerializeField]
private Rigidbody2D rb;

И в инспекторе перетащи компонент в поле скрипта.
Аноним 04/05/20 Пнд 18:46:08 665780296
>>665685
Спасибо, доходчиво. В общем, что я боялся делать, то и надо.
Аноним 04/05/20 Пнд 19:21:28 665794297
image.png 59Кб, 652x491
652x491
Где включается ZTest For After PostProcess? Вообще никто не знает, его там нет этого чекбокса.
Аноним 04/05/20 Пнд 19:35:15 665799298
>>665794
Он включается в коде шейдера строкой ZCull ON (примерно, я не помню точно), завтра напишу, сейчас пьян в гавно держу в курсе
Аноним 04/05/20 Пнд 19:45:35 665804299
>>665799
> в коде шейдера строкой ZCull ON
Написано же чекбокс во фрейм сеттингс? Не могу ничего найти, наеб чистой воды.
Аноним 05/05/20 Втр 04:10:42 665958300
>>665779
Нахуя если в коде все за тебя сделано?
Аноним 05/05/20 Втр 06:47:42 665968301
Есть тут аутисты которые делают игру мечты с надеждой нарубить миллионы?
Аноним 05/05/20 Втр 06:49:47 665969302
>>665968
Я сейчас делаю просто игру, в которую хотел бы сам играть и не стыдно друзьям показывать.
Нарубить миллионы вряд ли смогу т.к. я аутист-специалист и не умею в маркетинг, а переосиливать себя не хочется
Аноним 05/05/20 Втр 07:06:04 665971303
Аноним 05/05/20 Втр 07:16:45 665972304
>>665968
Уже нарубил миллионы. Не знаю зачем, правда.
Аноним 05/05/20 Втр 10:47:05 665988305
>>665958
Это правильный подход unity style.
Аноним 05/05/20 Втр 11:24:20 665992306
Можно ли как-то изменить цвет фона в 2d с темно-синего на другой? Или мне в ручную надо все заставлять спрайтами?
Аноним 05/05/20 Втр 11:49:30 666000307
image.png 19Кб, 1067x518
1067x518
image.png 74Кб, 590x322
590x322
Когда создаю Text, то появляется огромный канвас с огромным текстом, который я не могу нормально уменьшить. Что делать?
Аноним 05/05/20 Втр 11:55:35 666001308
>>666000
Не надо его меньшать, это нормально, что тебе мешает?
Аноним 05/05/20 Втр 12:24:55 666006309
>>665969
Всегда ору с таких утверждений. Типо: "я узкий специалист, я не лезу в области не касающиеся моей узкой специализации".
А потом эти клоуны женятся и рожают детей. Вот какой отец получится из такого узкого специалиста? Как он может воспитать ребенка, если воспитывать детей не его основная специализация?
Но эти довны даже не задумываются об этом и не проводят параллели.
Ну вот если ты научился хорошо чистить зубы, вытирать жопу ты уже не сможешь? Ведь для вытирания жопы нужны уже другие навыки? Что за хуйня у вас в голове творится?
Мне кажется, что вы очень впечатлительные. И когда в школе вам рассказали про разделение труда и его эффективность, вы с этого момента выдумали себе манямирок, в котором вы займете узенькую ячейку.
Вот только есть одно но. Разделение труда еффективно на конвеерном производстве. А в творческих делах такого понятия вообще не существует. Писатели с легкостью совмещают работу художника и музыканта. И если ты видишь известного музыканта или художника, то просто так получилось, что прославился он благодаря музыке или рисованию, а не своему второму или третьему творческому проявлению. И совсем не означает, что во всем остальном он был хуевым
Аноним 05/05/20 Втр 12:46:52 666011310
>>666006
ты первый раз пива нажрался?
Аноним 05/05/20 Втр 12:50:54 666012311
>>666006
>Писатели с легкостью совмещают работу художника и музыканта
Двачую, собрал все альбомы Льва Толстого на виниле.
Аноним 05/05/20 Втр 12:59:53 666013312
>>666012
Лев Толстой вообще-то исследователем был. Женился на тупой крепостной швее. А она потом повесилась после его экспериментов. Свое творчество он специфически проявлял. А про свою писанину он отзывался, как о говне. И видел свои сильные стороны в другом
Аноним 05/05/20 Втр 13:03:43 666016313
>>666001
Мне текст надо уменшить, а не канвас. Размер текста показан 14. Он ведь не должен быть таким большим, при размере 14.
Аноним 05/05/20 Втр 13:19:44 666019314
>>665992
Найди свою камеру Main Camera и поменяй Clear Flags на Solid Color, а ниже Background - любой другой цвет

>>666000
Канвас рендерится отдельно от игровой камеры, если тебе хочется видеть как оно будет в игре, то иди в окно Game и там смотри, только перемещать текст придется через инспектор, а не окно Scene

>>666006
Ты всё путаешь и умножаешь человеческий опыт и навыки на 0, твое виденье сейчас весь стим засрало недоиграми т.к. они даже не пытаются реализовывать какие-то сферы на должном уровне. Завидую твоей самоуверенности, но с другой стороны когда вижу таких как ты "за делом" в котором они 0 - вызывает смех.
Аноним 05/05/20 Втр 13:25:49 666021315
>>666006
Джвачую, особенно это правда когда ты блять геймдев, что подразумевает наличие скиллов далеко не в одной сфере
Аноним 05/05/20 Втр 14:20:04 666032316
>>666019
>Ты всё путаешь и умножаешь человеческий опыт и навыки на 0
Ничего подобного. Если ты развился в одной сфере и зашел в ней на плато своих знаний и навыков, то это безумие не освоить что-нибудь еще.
Да и нейрофизиологи советуют постоянно учить что-то новое, иначе мозгу будет пиздец
Даже у гуманитариев есть термин- всесторонне развит. Даже, блять, у гуманитариев!
А у психиатров есть термин для узких специалистов- синдром Аспергера (приверженность повторяющейся рутине или ритуалам)
Аноним 05/05/20 Втр 15:21:57 666061317
Сап, опять я со своими вейпоинтами.

Как я уже сказал, я редактирую их в редакторе. Я точки вывожу на сцену с помощью Handles.Label и выбираю их с помощью Handles.Button. Все работает отлично, но невозможно выделять для редактирования несколько точек, что при кол-ве их около 3к очень нужно.
Есть ли возможность скрестить стандартный Юнитевский Selection для выделения точек?
Аноним 05/05/20 Втр 17:05:45 666101318
Screenshot1.png 45Кб, 711x843
711x843
Анон, подскажи пожалуйста, я какую-то хуйню пишу или это норм?
Вот к примеру, у меня есть суперкласс "Skill", от которого наследуются всякие другие скилы типа "усиленный урон" по типу

public class SimpleDamage : Skill

Вот, в классе "SimpleDamage" всё чисто и аккуратно, там только простая функция
public void UseSkill () { ... }

Но меня напрягает, что в классе "Skill" идет хуева туча гетеров и сетеров.
Вопрос- я долбоеб, и это как-то можно исправить, или это хуйня всё или мне вообще не надо париться пиши как пишешь или это слишком сложный вопрос и надо разбираться подробнее со всей системой в целом?
Может быть вообще есть желающие код ревью сделать или типа того?
Обсудить бы с кем-то более опытным архитектуру конечно, а то я заебался хуйню писать.
Аноним 05/05/20 Втр 17:38:50 666114319
>>666101
>manaCost
>skillSprite
Стоит разделить вьюху и функционал.
Аноним 05/05/20 Втр 17:47:58 666123320
>>666101
доебусь немного до оформления кода. геттеры пишутся короче:

[SerializeField] private string skillName;
public string SkillName => skillName;

вот тебе геттер для него. собственно если хочешь чтоб геттер был методом то

public string SkillName() => skillName;

и называешь ты поля ебано. по факту у тебя получается Skill.skillName. избегай названия самого класса в полях и методах так как это тупняк. ну и методы по майкрософтовскому нейминг конвеншену с большой буквы
https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/capitalization-conventions

а ещё вот этот анон
>>666114
дело говорит. нужно разделять логику от представления
Аноним 05/05/20 Втр 17:52:23 666128321
>>666123
>>666114
Спасибо большое, сейчас поправлю.
Насчет Skill.skillName даже не задумывался, буду знать.
Аноним 05/05/20 Втр 18:25:15 666146322
Кто в профессии? Как на галере жизнь? Как коллектив? Айчарки дают? Начальники матом ругаются? Овертаймите по ночам? Интересно как вообще гречневым гребцам-юнитистам живется.
Я вот погреб в 3 местах и рассказать особо нечего.
Аноним 05/05/20 Втр 18:41:27 666150323
Поясните как делается звук. Чтобы он был сочным, чтобы можно было позицию до нескольких градусов определять. Куда смотреть, что читать?
Аноним 05/05/20 Втр 18:55:50 666160324
>>666146
Почему нечего? Расскажи как устраивался, как увольнялся, как вообще работу находил? Сколько платили, чому бросал работу?

Я вот собираюсь устраиваться, готовлюсь. Правда у нас вокруг одни матч-3 да фермы казуальные пилят, такое себе. Но для опыта самое то.
Аноним 05/05/20 Втр 19:31:47 666175325
>>666160
>>666160
В первую контору устроился страшным нубом. Тогда еще флеш был, классика для бумеров-программистов в казуальном геймдеве.
Работал не вникая толком и не изучая ничего, на похуях за мизерный прайс.
В конторе были приятные для общения люди, были местные альфачи, был директор который не стеснялся всех хуесосить матом за косяки. Были даже приятные тян, но я слоупочил и стеснялся, с тянами голяк был.
Потом оттуда поперли, т.к. не было заказов, но сразу перехватила меня другая контора, которая занималась почти тем же самым.

Во второй конторе вкатился в юнити, продолжал быть тем еще говнокодером, за чуть больший, но все еще скромный прайс. Там было мало людей, были 2 приятные тян, все меня продинамили, но пообщаться с ним было интересно получил совсем мало опыта в юнити и меня поперли, т.к. продажи упали и надо было сбросить балласт. Внезапно узнал увольняясь, что еще большие остолопы чем я получают дохуя больше.

Устраиваясь в третий раз все еще искал флеш вакансии, которых оставалось на тот момент хуй да нихуя. Уже сжалось очко, что просто не найду работу. Подтянул навык пока искал работу, стал не таким дремучим нубом и мне повезло, устрился уже на человеческую мидловскую зп, все еще флеш, который уже обоими ногами был в могиле. Думал, ну сейчас поебланю на флеше и параллельно подучу юнити, но положил на эту хуй. Работал с проебами, овертаймами, нервами, что могут уволить.
Внезапно в конторе поняли, что пора перекатываться на юнити, перекатился и я, теперь из более-менее опытного флешера я превратился опять в нуба на юнити.
К слову, коллектив был приятный, хотя и с агрессивными бабуинами-программистами, была куча прятных баб, с которым я конечно все прослоупочил хотя одной вдул после одного корпоратива, а со второй был близок, но нет, после другого корпоратива. Было комфортно на самом деле, если не считать овертаймы, в которые я сам себя загонял. Набрался опыта на юнити со временем, все шло вроде норм, но опять просел доход, опять срезали балласт и опять поперли меня. Чувствовл себя хуево.

На этот раз я потратил около месяца подтягивая хвосты и свой скилл. По сути просто учил информацию, которую могу спросить на собеседованиях. Прочитал Рихтера наконец - стыд и позор не прочитать рихтера, если пишешь на c#.

Устроился в 4 раз. Очень комфортное место, приятные люди, относительно интересно работать, норм зп, иногда подтягиваю свои знания то тут, то там, но все равно не регулярная стагнация присутствует. Наконец почувствовал себя толковым специалистом, хотя все равно боюсь проебаться и что меня уволят. По прежнему занимаюсь разработкой казуальных игор, подумываю, что пора в свободное время пилить что-то свое, для души.
Впервые понял, что со здоровьем шутки плохи, реально борюсь за сон, если плохо сплю - все пизда я никакой и работник из меня никакой, стараюсь естимейтить с лишком, чтобы не загонять себя в овертайм, хотя иногда все равно это случается.
Иногда приходится общаться с зарубежными коллегами на инглише, это для меня нервно и напряжно, стыд и позор не иметь аппер интермидиет в 2020.
Такие дела. Ах да, все бабы в конторе заняты, да и хуй с ними. Иногда приходится кстати ревьювить наших новичков и вот странное дело, порою тяжело им объяснить, что они что-то делают не так. Ты за определенное время как-то интуитивно чувствуешь как писать код, чтобы потом было меньше проблем, но тяжело формализированно объяснить падаванам, и вроде приводишь примеры, что мол если сделаем так и так, то потом придется менять и тут и тут и тут, а лучше когда только тут и все, но падаваны не верят, говорят мне так не кажется, но ок, сделаем как говоришь. Ничего хорошего в этом, или я хуй, который объяснить не умеет, или я неправ на самом деле, не знаю.
6 лет в разработке.
Аноним 05/05/20 Втр 19:39:07 666177326
Ах да, вижу время от времени амбициозных юнцов лет двадцати, въебуют еще с универа как не в себя, у них просто дохуя знаний, и метят они съебать в силиконовую долину/гугл/фейсбук. И что сука характерно, съебут ведь. Они нихуя не юнитисты само собой, бекенд, фронтэнд, все вот это. Сравниваю с собой в их возрасте - какой же я был раздолбай.
Аноним 05/05/20 Втр 19:41:05 666178327
>>666150
Раздвигаешь ягодички, и с реферберацией так выдаешь PlayOneShot под 19 градусов к нормали дивана. Будет сочно или нет - это уже зависит от тебя.
Аноним 05/05/20 Втр 19:58:50 666186328
>>666175
>стараюсь естимейтить с лишком
Переведи, пожалуйста.

А так интересная инфа, спасибо, что поделился.
Аноним 05/05/20 Втр 20:24:06 666201329
>>666175
>порою тяжело им объяснить, что они что-то делают не так
Кстати, думал над вот этим... Мужик, обычно если что-то не можешь объяснить, значит, что сам этого не понимаешь.
Аноним 05/05/20 Втр 20:31:58 666205330
Аноним 05/05/20 Втр 20:33:05 666206331
>>666186
ну ты оцениваешь задачу на планировании и тебе кажется что она займет N часов/сторипойнтов. Но ты называешься на 20-30 процентов больше, на всякий. Чтобы потом перед дедлайном не охуевать переробатывая.
Аноним 05/05/20 Втр 20:37:16 666208332
>>666205
Навмешь запеки сперва.
Аноним 06/05/20 Срд 00:25:54 666250333
есть на просторах материал как генерировать мэши? у меня проблема с тем что получается куча дублей вершин и чтоб их убрать приходится после всей генерации ещё несколько раз проходить по всем вершинам, удалять дубли и указатели на эти дубли. хотелось бы найти оптимальный вариант или детальный мануал со всеми подводными и вариантами решения
Аноним 06/05/20 Срд 11:22:53 666299334
30.jpg 471Кб, 1080x1565
1080x1565
>>666175
У тебя в каждой конторе приятные люди.
Аноним 06/05/20 Срд 11:24:42 666300335
>>666250
Ты хочешь, чтобы два соседних квадрата ссылались на одни и те же вершины в месте соединения? Не делай так, заебёшься с координатами текстурок и цветами.
Аноним 06/05/20 Срд 11:32:49 666304336
Анон, у тебя есть под рукой внятный туториал, по созданию TBS типа Divinity original sin?
Аноним 06/05/20 Срд 11:35:49 666308337
Аноним 06/05/20 Срд 11:42:41 666310338
>>666300
мне их нужно дисплейсить потом. uv это проблема о которой подумаю позже
Аноним 06/05/20 Срд 11:45:03 666312339
image.png 54Кб, 1124x504
1124x504
Когда добавляю в проект свой спрайт с черной лампой, то на нем вылезает эта уебищная желто-красная обводка. Это из-за юнити или это надо в фотошопе по другому сохранить?
Аноним 06/05/20 Срд 11:45:41 666313340
я вам принёс годноты-хуеты. сёрфил ютуб и нашёл вот эту шкуру
https://www.youtube.com/watch?v=dGWuJIcC-4w
почему, вы спросите, я этим делюсь? потому что это отличный пример самого хуёвого кода который я в своей жизни видел. смотрите внимательно и никогда так не делайте
Аноним 06/05/20 Срд 11:54:42 666316341
>>666304
>Анон, у тебя есть под рукой внятный туториал, по созданию TBS типа Divinity original sin?
Конечно, есть.
Аноним 06/05/20 Срд 11:55:19 666317342
>>666312
Все, уже решил проблему.
Аноним 06/05/20 Срд 11:59:11 666318343
Аноним 06/05/20 Срд 14:10:37 666333344
Как же я заебался каждый день над одной и той же игрой работать
Аноним 06/05/20 Срд 14:11:22 666334345
>>666333
а ныть не заебался? покажи хоть что делаешь
Аноним 06/05/20 Срд 15:01:16 666341346
>>665799
>завтра напишу, сейчас пьян в гавно
Бро, ну ты там отошел нет, где этот чекбокс проклятый?
Аноним 06/05/20 Срд 15:34:22 666348347
>>666334
У меня и так вера в этот проект довольно хрупка, а кину сюда так обосрут скажут что такое уже есть и сделано лучше чем я когда-либо смогу, я лучше абстрактно поною
Аноним 06/05/20 Срд 15:37:38 666352348
>>666348
ну я тогда абстрактно обосру. такое уже есть и сделано лучше чем ты когда-либо сможешь
Аноним 06/05/20 Срд 15:56:37 666358349
>>666318
Это все из-за эффекта свечения лампы, который создал в фотошопе. Чтобы решить проблему, я сохранил лампу и свечение отдельно, а в unity совместил их вместе.
Аноним 06/05/20 Срд 17:08:32 666368350
>>666313
Вообще её код похож на все, что показывают в любом видео "unity tutorial how to".
Еще заметил collider.tag == "blah" использует вместо collider.CompareTag("blah"), но откуда ей знать эти тонкости? её код работает и делает что она хочет такое же гавно писал, пока в ентерпрайз не попал

>>666341
Edit > Project Settings > HDRP Default Settings (или выбери свой конфиг)
и там поищи все параметры "Post-process", как альтернатива там же есть "Depth Test".

Вот в доке нашел:
After Post-process = Enable the checkbox to make HDRP render GameObjects that use an Unlit Material and have their Render Pass set to After Postprocess.
У тебя на скрине как-раз unlit материал, может поможет
Аноним 06/05/20 Срд 17:11:44 666372351
Как мне сделать проигрывание анимации, когда я вхожу в триггер? В 2d
Аноним 06/05/20 Срд 17:41:42 666376352
Аноним 06/05/20 Срд 17:42:05 666377353
>>666348
Ты думаешь можно одновременно быть гениальным геймдизом, программером и художником и сделать проект уровня AAA.
Хотя есть исключения, согласен. майнкрафт, хотя он не ААА, но легенда точно
Аноним 06/05/20 Срд 17:47:25 666379354
>>666377
Ты с кем разговариваешь?
Аноним 06/05/20 Срд 17:50:59 666380355
image.png 104Кб, 819x960
819x960
>>666368
>Edit > Project Settings > HDRP Default Settings (или выбери свой конфиг)
>и там поищи все параметры "Post-process", как альтернатива там же есть "Depth Test".
Да все это включено по умолчанию, все равно надпись включить ztest for after post process.
Аноним 06/05/20 Срд 17:57:33 666382356
Снимок20экрана2[...].png 252Кб, 956x597
956x597
Аноним 06/05/20 Срд 17:58:18 666383357
15674258249850.png 596Кб, 1000x1000
1000x1000
Как называется эта болезнь. Вот пилю какую-то штуку (скрипт, компонент), но все не могу придти к идеальному, или, хотя бы, приемлемому варианту на мой взгляд. Сижу так несколько часов, дней, потом плюю, и делаю просто, как могу. А потом, через несколько дней или недель, вспоминаю это действие как недопустимой слабостью с моей стороны, и начинаю пытаться переделывать. Это тормозит так, что пиздец.
Аноним 06/05/20 Срд 17:59:01 666384358
Screenshot 2020[...].png 1282Кб, 1544x1248
1544x1248
>>666368
да хуй с ними с тегами. ты посмотри как она перемещает объект по сцене. в каждом кадре она дважды получает камеру по тегу и узнаёт её границы чтобы корабль не вылезал и эти же границы потом ниже впердоливает руками. каждый кадр создаёт 6 переменных для GD. логика вся прописана на ифах.
собственно это результат обучения у этих ссаных брекис, каких-то индусов, скилшеров и тд. не то что тут нормальные пацаны обкашливают серьёзные темы. если б она сидела на двощах, то мы бы уже посмотрели на её сиськи, а она бы не въебала 5 лет
Аноним 06/05/20 Срд 18:04:12 666386359
Как сделать так, чтобы анимация, которую я сделал в unity, не зависела от текущей позиции.
Аноним 06/05/20 Срд 18:08:40 666390360
>>666383
>Как называется эта болезнь.
Синдром маньки-неосилятора третьей степени.
Аноним 06/05/20 Срд 18:08:59 666391361
>>666386
Подробнее, что именно требуется.
Аноним 06/05/20 Срд 18:11:55 666392362
>>666384
>логика вся прописана на ифах
Как што-то плохое.
Аноним 06/05/20 Срд 18:14:06 666393363
>>666384
>каждый кадр создаёт 6 переменных для GD.
В чем именно трабла с этим?
Аноним 06/05/20 Срд 18:16:15 666394364
jackie-chan-ill[...].jpg 80Кб, 1024x576
1024x576
Аноним 06/05/20 Срд 18:18:26 666395365
Кот смотрит на [...].jpg 49Кб, 500x485
500x485
Аноним 06/05/20 Срд 18:19:04 666396366
>>666392
да, это что-то плохое

>>666393
трабла в том что когда в GD будет достаточно мусора, а его там будет достаточно довольно скоро, он прервёт все процессы чтоб его дропнуть и ты получишь лаг на топовой тачке. за префомансом надо следить, а не плодить дерьмовые привычки в самых базовых вещах
Аноним 06/05/20 Срд 18:19:19 666397367
>>666394
Бля ну хонест квестион от нуфага
Аноним 06/05/20 Срд 18:20:24 666398368
>>666396
Я почему то думал что такие временные переменные внутри метода не мусорят
Аноним 06/05/20 Срд 18:21:02 666399369
>>666391
Понимаешь, вот я хочу сделать такую вещь в 2d. Когда я подхожу к npc, то из него должна вылетать черная иконка. Мне нужно сделать анимацию вылета этой черной иконки. Я могу это сделать в фотошопе, разбив на кучу кадров, но это выглядит не очень плавно. В unity же я могу не наделывать кучу кадров и сразу сделать в Animation плавный перелет иконки от точки a в точку b. Проблема в том, что таких иконок по всей карте должно быть много и мне придется для каждой иконки менять эти точки a и b. Вот я и спрашиваю. Можно ли как-то в юнити сделать простейшую анимацию для спрайта, где он просто движется вверх, чтобы потом можно было этот спрайт скопировать и вставить в другое место.
Аноним 06/05/20 Срд 18:21:42 666400370
>>666398
а какие тогда мусорят?
Аноним 06/05/20 Срд 18:24:12 666404371
>>666400
Которые идут снаружи метода? Компилятор же должен все за меня порешать и понимать что я временные переменные расставил чисто для удобства чтения кода... короче я хуйню несу, не знаю почему я так думал
Аноним 06/05/20 Срд 18:29:54 666405372
Пахом.jpg 48Кб, 604x471
604x471
Аноним 06/05/20 Срд 18:35:55 666409373
>>666404
те что "снаружи" метода как раз просто занимают сразу место в памяти и там висят, пока ты не удалишь сам объект. временные переменные создаются, сжирают часть памяти и отправляются в GD. когда GD начинает очищать и оптимизировать память ему приходится туго
Аноним 06/05/20 Срд 18:38:16 666411374
Ахуеть.jpg 79Кб, 1200x942
1200x942
>>666409
Так что, локальные переменные нельзя юзать что ли?
Аноним 06/05/20 Срд 18:38:28 666412375
>>666405
сглаживают, ты прав, но мусор лучше не создавать. плюс там пишут что не везде поддерживают
Аноним 06/05/20 Срд 18:41:35 666413376
image.png 147Кб, 300x225
300x225
>>666412
Для большинства мелких инди-проджектов пойдет!
Аноним 06/05/20 Срд 18:41:51 666414377
>>666409
Не доверяю анону который аббревиатуру из двух букв неправильно пишет
Аноним 06/05/20 Срд 18:46:02 666419378
>>666411
юзай конечно, рвать себе жопу не нужно. просто не юзай их как та дура. например она в каждом кадре узнаёт направление куда жмёт. выносишь направление в переменную инстанса

private direction = Vector2.zero;

private void Update()
{
direction.Set(икс блядь, игрек блядь);
}

и вуаля, мусора нет и в случае чего можно этот дирекшн сделать публичным для доступа других компонентов. там где это неудобно и плодит слишком дохуя кода – юзай локальные. а когда будешь профилировать не забывай что локальные могут быть частью проблемы

>>666413
еретик! это такие основы что лучше их держать в голове с самого начала
Аноним 06/05/20 Срд 18:54:54 666425379
image.png 620Кб, 634x456
634x456
image.png 3Кб, 678x46
678x46
Бляу, у меня 53 штуки в одном скрипте.
Аноним 06/05/20 Срд 18:57:32 666428380
>>666384
>transform.position
transform тоже тяжело запрашивать в апдейте, мусор не создает но функция тяжелая, лучше закешировать в старте на tr например
Аноним 06/05/20 Срд 18:58:00 666429381
>>666425
это значит что тебе точно нужно бить скрипт на мелкие части. сколько у тебя там строк?
Аноним 06/05/20 Срд 18:59:50 666430382
>>666429
Пока 1166, но у меня там штук 200 просто единожды создается, когда уровень выбираешь. Не буду бить, все отлично работает, почти закончил.
Аноним 06/05/20 Срд 19:09:57 666438383
>>666428
обычно люди кеширую трансформ, но я читал в логах чуть ли не к unity 5 что они сделали автоматическое кеширование
https://blogs.unity3d.com/2014/06/23/unity5-api-changes-automatic-script-updating/
вот в самом конце
[2] in Unity5 we also cache the transform component on the c# side, so there should no longer be a performance reason to cache the transform component yourself.

бенчмарк не делал, может они напездели или откатили, а может и нет
Аноним 06/05/20 Срд 19:10:31 666440384
>>666430
когда работу над ошибками будешь делать, обязательно пройдись, просто ради навыка. рефакторинг это важно
Аноним 06/05/20 Срд 19:13:11 666441385
>>666428
Что кэшировать, трансформ или трансформ.позишн?
Аноним 06/05/20 Срд 19:19:58 666444386
Аноним 06/05/20 Срд 19:21:04 666445387
>>666444
А свойства получать не затратнее? С другими так же?
Аноним 06/05/20 Срд 19:31:00 666449388
Снимок3.PNG 32Кб, 778x711
778x711
Снимок2.PNG 24Кб, 270x474
270x474
Снимок1.PNG 4Кб, 556x41
556x41
Похоже что я аутист, я не могу понять в чем собственно проблема, подскажите что ли, пожалуйста
Аноним 06/05/20 Срд 19:36:05 666456389
>>666445
проблема трансформа в том что по факту .transform это тоже самое что и .GetComponent<Transform>(). GetComponent считается не очень дорогой операцией, но не бесплатной и потому лучше кешировать. обращение к полям это просто обращение к конкретной области памяти. это самая базовая процедура и она стоит дешевле
Аноним 06/05/20 Срд 19:37:09 666458390
>>666449
ты бы скриншот сделал с номерами строк. мне самому чтоль там считать на какую он жалуется?
Аноним 06/05/20 Срд 19:38:33 666460391
image.png 26Кб, 661x443
661x443
Есть вот такой скрипт. Время перемещения спрайта должно зависеть от Time.deltaTime. Когда строчка transform.position = Vector3.Lerp(startPos, targetPos, time) была в void Update, то все работало нормально, но мне нужно, чтобы анимация запускалась при входе в триггер, поэтому я переместил эту строчку в void OnTriggerEnter2D. Из-за этого спрайт стал перемещаться мгновенно. Как это исправить?
Аноним 06/05/20 Срд 19:41:35 666462392
Снимок3.PNG 42Кб, 877x747
877x747
Аноним 06/05/20 Срд 19:51:06 666466393
>>666460
Lerp работает так: берёшь значение А и значение Б, а в третьем параметре указываешь значение от 0 до 1 где на выходе при нуле он выдаст А, а при единице выдаст Б и всё остальное в промежутке.

в каждом кадре на 19 строке ты увеличиваешь занчение поля time. к моменту когда у тебя выходит в триггер у тебя time уже значительно больше еденицы и потому выставляется сразу конечное значение. я бы этот код написал так:

private bool _animate = false;
private Vector3 _target;
> это указатель куда нужно переместиться
private float _speed = 1f;
> это для контроля скорости перемещения

private void Update() {
if (_animate == false) {
return;
}
> это ранний выход чтоб не делать гигантского if в который запихиваешь остальной код

transform.position = Vector3.MoveTowards(transform.position, _target, _speed * Time.deltaTime);
> MoveTowards лучше чем Lerp в твоём случае ибо проще управлять скоростью перемещения

if (transform.position == _target) {
_animate = false;
> как только достигли цели, анимация прекращается. ну и сюда можно прикрепить какие-то дополнительные действия
}
}

private void OnTriggerEnter2D(Collider2D collider) {
_target = Vector.one;
> тут тебе нужно указать точку в которую он должен перемещаться
_animate = true;
}
Аноним 06/05/20 Срд 19:55:20 666467394
>>666462
а Player1.name, Player2.name, Player3.name это что?
Аноним 06/05/20 Срд 19:57:37 666468395
>>666467
Имена объектов Player1, Player2, Player3 из класса Player
Аноним 06/05/20 Срд 20:01:34 666470396
>>666468
покажи класс Player. есть подозрение что ты запрашиваешь имена которые ещё не инициализированы
Аноним 06/05/20 Срд 20:04:47 666472397
Снимок.PNG 6Кб, 750x115
750x115
>>666470
А имя объекта разве не по умолчанию инициализировано?
Аноним 06/05/20 Срд 20:07:11 666474398
>>666384
GD это такой garbage deflector что ли
Аноним 06/05/20 Срд 20:12:33 666478399
>>666472
нет. ты обращаешься к тому чего ещё в памяти нет, потому и получаешь null. тебе нужно лист на 15 строке заполнять, например, в Start

>>666474
опечатался
Аноним 06/05/20 Срд 20:17:38 666482400
>>666466
Спасибо, анон! Помогло
Аноним 06/05/20 Срд 20:19:53 666484401
>>666482
ну тут главное чтоб ты понял как это работает
Аноним 06/05/20 Срд 20:34:09 666491402
>>666484
А можешь объяснить, почему анимация изначально резкая, но под конец слегка замедляется?
Аноним 06/05/20 Срд 20:37:46 666492403
>>666491
Аа, все, это я Lerp использовал, а не MoveTowards
Аноним 06/05/20 Срд 20:42:52 666496404
>>666478
Спасибо за помощь, один вопрос, есть ли более легкий способ заполнять поля dropdown именем обьекта+значением переменной?
Аноним 06/05/20 Срд 20:54:11 666503405
>>666496
если честно, то я вообще ниебу что ты там делаешь. ничего кроме прототипов не разрабатываю, а прототипы не требуют ui. чему я очень рад
Аноним 06/05/20 Срд 20:59:09 666505406
Как сделать так, чтобы Input.GetKey(KeyCode.E) можно было нажать только один раз?
Аноним 06/05/20 Срд 21:00:54 666506407
Аноним 06/05/20 Срд 21:01:10 666507408
Аноним 06/05/20 Срд 21:03:14 666509409
>>666505
используй Input.GetKeyDown и читай чаще документацию, это очень базовый вопрос
Аноним 06/05/20 Срд 21:07:33 666510410
Аноны, как можно в поля dropdown присваивать имя объекта + значение переменной?
Аноним 06/05/20 Срд 21:52:05 666528411
image.png 10Кб, 389x204
389x204
Почему спрайт не появляется, после того как пропадает?
Аноним 06/05/20 Срд 21:56:21 666529412
>>666528
Ты его выключаешь полностью
Аноним 06/05/20 Срд 22:00:13 666531413
>>666528
>>666529
Можешь использовать enabled если тебе нужно сделать по типу переключателя
Аноним 06/05/20 Срд 22:05:36 666532414
>>666531
Что за enabled, можно подробнее?
Аноним 06/05/20 Срд 22:18:26 666533415
image.png 19Кб, 284x340
284x340
image.png 13Кб, 277x241
277x241
Я сейчас ебанусь просто, почему персонаж проваливается через землю? Пик 1 - коллайдер земли, пик 2 - ноги персонажа.
Аноним 06/05/20 Срд 22:22:05 666534416
>>666533
Убрал isTrigger, проблема решилась. Осталась другая - у меня на персонаже несколько коллайдеров (в силу его разной формы), при перемещении персонажа его пидорасит и переворачивает. ЧЯДНТ?
Аноним 06/05/20 Срд 22:24:43 666535417
>>666534
Решается только с automass, иначе density отдельным коллайдерам не прописать. Но это же пиздец какой то, это же нелогично блядь. Я в ахуе.
Аноним 06/05/20 Срд 22:27:00 666536418
>>666534
В Rigidbody 2D -> Constraints -> Freeze Rotation Z
Аноним 06/05/20 Срд 22:27:54 666537419
>>666536
Сработало. Тонны нефти тебе, анон!
Аноним 06/05/20 Срд 23:27:35 666547420
В коде прописано значение

int item = 0;

Когда предмет получается - значение заменяется на 1 и он начинает отображаться в инвентаре.
Могу ли я как-то изменить значение на "1" во время игры, чтобы не проходить квест, чтобы потестить как этот предмет ведёт себя в инвентаре?
Аноним 06/05/20 Срд 23:33:34 666549421
155714331411594[...].jpg 326Кб, 1400x700
1400x700
Аноним 06/05/20 Срд 23:37:38 666550422
>>666547
Как вариант

void Update()
{
//TODO remove
if (Input.GetKeyDown("space"))
{
item = 1;
}
}
Аноним 07/05/20 Чтв 00:19:30 666561423
Аноним 07/05/20 Чтв 00:50:58 666576424
Почаны!!! Можете пояснить мне за Struct в C#?
Вот в 3д Максе объекты можно копировать, сделать инстанс и референс.
Можно ли применить сюда логику 3д Макса? Класс будет вести себя, как инстанс, а Struct будет копированием? Можно мыслить в этом ключе?
Аноним 07/05/20 Чтв 06:27:58 666632425
Аноним 07/05/20 Чтв 09:49:48 666672426
Какого хуя Entity Component System до сих пор в превью? Стоит ли ECS использовать в проекте?
Аноним 07/05/20 Чтв 10:16:49 666674427
>>666576
struct поведет себя как Copy в максе,
Объект class - как инстанс.
Аноним 07/05/20 Чтв 10:17:54 666675428
>>666672
>Стоит ли ECS использовать в проекте?
Нет, примеры полугодичной давности не запускаются на текущей версии юнити потому что это говно постоянно переписывают.
Аноним 07/05/20 Чтв 11:48:53 666706429
image.png 47Кб, 889x662
889x662
2020-05-07 11-3[...].mp4 1592Кб, 1920x1080, 00:00:06
1920x1080
2020-05-07 11-3[...].mp4 4460Кб, 1920x1080, 00:00:17
1920x1080
2020-05-07 11-4[...].mp4 2285Кб, 1920x1080, 00:00:09
1920x1080
Есть вот такой скрипт. При входе в триггер он проигрывает анимацию, а при выходе он проигрывает другую.(Первое видео) Но если при входе в триггер не дождаться конца анимации и сразу выйти из него, то transform.position будет учитываться от позиции, при которой анимация не доигралась, а значит и targetPos изменится. Ну это моя догадка. Результат - второе видео. Также, если войти в триггер под углом, то будет еще хуже.(Третье видео) Как это фиксить?
Аноним 07/05/20 Чтв 11:54:25 666707430
Парни, как отключить анимацию (компонент Animator) сразу после завершения воспроизведения какого-то клипа? Стрелочка в Exit не помогает
Аноним 07/05/20 Чтв 11:59:35 666710431
>>666707
Просто я вижу два решения:
1) использовать корутину, которая будет ждать завершения и выключать сразу же компонент
2) использовать Animation

Есть ещё какие-то, не такие костыльные?
Аноним 07/05/20 Чтв 12:01:51 666711432
oooof2.png 89Кб, 1326x504
1326x504
>>666706
Я обычно такие штуки делал немного по другому:
private Vector3 _initialPosition; // стартовая позиция
private Vector3 _upPosition; // позиция когда видно облако
private bool _isVisibleCloud = false; // показываем ли облако

void Start(){
_initialPosition = transform.position; //т.е. облако изначально не видимо
_upPosition = _initialPosition + new Vector3(0,1f,0); //примерно 1, возможно нужно больше или меньше
}
void Update(){
if(_isVisibleCloud){
transform.position = Vector3.Lerp(transform.position, _upPosition, Time.deltaTime);
}else{
transform.position = Vector3.Lerp(transform.position, _initialPosition, Time.deltaTime);
}
}

ну и в Enter -> _isVisibleCloud = true;
Exit -> _isVisibleCloud = false;

>>666707
Если я правильно понял, тебе нужно в анимации создать "событие", потом написать код, который будет ловить это событие и в коде сделать твою логику
Аноним 07/05/20 Чтв 12:10:20 666714433
>>666711
>Если я правильно понял, тебе нужно в анимации создать "событие", потом написать код, который будет ловить это событие и в коде сделать твою логику
Спасибо, скорее всего так и сделаю. Правда мне всегда был непонятен момент, что юнити не разрешает булевых параметров к событию в анимации
Аноним 07/05/20 Чтв 12:19:14 666718434
>>666711
Спасибо, анон. Я понял суть. Теперь бага нету.
Аноним 07/05/20 Чтв 13:28:08 666743435
>>666675
А как тогда быть, если нужен ECS подход для разработки игры?
Аноним 07/05/20 Чтв 13:35:21 666746436
>>666743
не обновляй пекейдж с ecs
Аноним 07/05/20 Чтв 19:44:41 666921437
Снимок.PNG 50Кб, 634x604
634x604
Build and run не активна, при вызове её из списка ничего не происходит. При первой компиляции были ошибки, почему после этого она стала не активна?
Аноним 07/05/20 Чтв 22:43:24 666995438
image.png 180Кб, 624x325
624x325
Хз, как правильно объяснить. Вобщем, можно ли сделать, чтобы на одном канвасе было несколько ui элементов (текст или картинки), позицию которых можно указать в 3d пространстве? И чтобы эти элементы могли скрываться от камеры игрока, если те находятся за объектами?
Аноним 08/05/20 Птн 00:11:43 667034439
Аноним 08/05/20 Птн 01:34:14 667051440
Делаю 2D платформер.

Почему при соприкосновении нескольких коллайдеров при перемещении при помощи velocity персонаж просто залипает в один из них и все (при зажатом перемещении)?

Решил сделать перемещение с AddForce. В итоге персонаж просто резко дергается, но никак не перемещается как с velocity.

В гугле только унылые решения предназначенные под 3D, при переделывании не работает как надо.

Не сталкивался ли никто с такой проблемой?
Аноним 08/05/20 Птн 01:47:38 667052441
>>667034
Подожду, пока в треде появится человек, чей iq достаточен для того, чтобы понять, что меня интересует именно КАК это сделать
Аноним 08/05/20 Птн 01:58:16 667055442
Аноним 08/05/20 Птн 02:07:01 667058443
>>667055
Нет, нихуя, для 2D не работает (с Physics Material 2D соответственно)
Аноним 08/05/20 Птн 02:13:58 667061444
>>667058
>>667055
>>667051 - долбоеб в треде

Разобрался, у меня просто было дохуя коллайдеров навешано на персонаже и персонаж застревал соприкасаясь в зонах между ними.
Аноним 08/05/20 Птн 07:03:57 667108445
>>666995
в Canvas там есть Camera Render Mode (кажется) и нужно выбрать WorldCamera, после этого ты сможешь позиционировать элементы по Z оси, только тебе нужно будет настроить UI камеру и игровую в Culling don't clear - для игровой и z-order 1, и Culling color / skybox и z-order 0 для UI

>>666921
У тебя галочка Visual studio solution стоит, насколько я помню при билде с этой галкой, у тебя не игра будет создаваться, а папка с исходниками
Аноним 08/05/20 Птн 09:54:28 667134446
>>667108
Спасибо снял галочку и скомпилил, странно что при первой компиляции была хуева туча ошибок а при второй 0
Аноним 08/05/20 Птн 15:30:46 667257447
У всех на 18 юнити ошибка Curl error 51: Cert verify failed: UNITYTLS_X509VERIFY_FLAG_EXPIRED ?
Чекнул на 20f и 22f в пустых проектах выскакивает, и крашится во время плея
Аноним 08/05/20 Птн 15:36:46 667260448
>>667257
у меня такого нет, установил специально 22 из хаба. а есть причина юзать 18? меня чего-то lts не особенно подкупил
Аноним 08/05/20 Птн 15:39:33 667261449
>>667260
Рабочий продж на нем. Хз, чет работал-работал и бац, и эта херь вылезла. Кричит, матерится и крашится:[
Аноним 08/05/20 Птн 15:49:39 667265450
qrbembbqugflv8b[...].png 671Кб, 952x544
952x544
Какое у DOTS будущее? Я так посмотрел, они всё переносят на ECS: физику, партайклы, аудио, анимейшон, нетворк. Добавили возможность конвертировать GameObject со всеми компонентами в ecs. Похоже Юнитеки реально хотят полностью переделать архитектуру. Наверняка скоро добавят возможность на уровне редактора конвертировать старые объекты под ECS.
Аноним 08/05/20 Птн 16:42:12 667284451
2020-05-08 16-2[...].mp4 3001Кб, 1920x1080, 00:00:10
1920x1080
Подскажите урок о том, как сделать систему диалогов НЕ UI. Пересмотрел весь ютуб, а там только диалоги, которые вылезают на экране. А что, если я хочу научиться делать что-то наподобие видео ниже?
Аноним 08/05/20 Птн 17:09:32 667299452
>>667265
Если они полностью убьют текущий подход это уничтожит "легкий вход" и в принципе движком станет пользоваться в разы сложнее т.к. в текущей реализации как мне кажется ДОТС не выглядит достаточно гибким, он больше подходит для каких-то массовых симуляций.
Лучше бы многопоточность разрабатывали т.к. джобы тоже сейчас ограниченные, например они хотят полностью запретить вызов статических методов в них и ввод вывод данных в них геморный, тебе заранее нужно знать число входных и выходных данных.

>>667284
Через этот же UI можно, там есть Camera.ObjectToViewport(Vector3) или как-то так.
Если совсем UI не хочешь, есть GameObject - TextMeshRenderer, делай сам плашку, высчитывай ширину и рисуй текс, если игра 2D то это проще, через тот же метод Camera.ObjectToViewpoint(Vector3), но мне кажется через UI будет все же проще
Аноним 08/05/20 Птн 17:54:27 667347453
>>667299
>Если они полностью убьют текущий подход
Нет
Аноним 08/05/20 Птн 18:24:52 667390454
>>667299
Но ведь UI это вроде инструмент для создания пользовательского интерфейса. Как с помощью него можно создать диалог, который не будет привязан к экрану? Или я чего-то недопонимаю?
Аноним 08/05/20 Птн 18:36:11 667406455
.png 23Кб, 543x199
543x199
Аноним 08/05/20 Птн 18:42:05 667422456
>>667390
>Или я чего-то недопонимаю?
this
гугл рендер мод
Аноним 08/05/20 Птн 18:44:37 667431457
1493915901746.png 7Кб, 256x196
256x196
Хочу сделать прокрутку карт как в харстоуне. Когда двигаю UI объект с TextMeshPro, начинает АДСКИ проседать фпс до 20. Проблема точно не в пеке, инфа 100%. Это фишка TextMeshPro такая?
Аноним 08/05/20 Птн 19:00:39 667456458
image.png 8Кб, 442x188
442x188
Есть код пикрелейтед. Как сделать так, чтобы аудио не мгновенно заканчивалось, а ещё несколько секунд продолжалось, снижая громкость? как бы затухая

И сразу ещё вопрос. Как сделать реалистичное передвижение под водой? По задумке игрок управляет подводной лодкой в 2.5D, но я совсем зеленый и не понимаю как сделать подобие невесомости, но чтобы лодка не начинала бесконечно плыть с одной скоростью по нажатию на кнопку ускорения.
Аноним 08/05/20 Птн 19:10:29 667463459
>>667456
>Как сделать так, чтобы аудио не мгновенно заканчивалось, а ещё несколько секунд продолжалось, снижая громкость?
Читай про StartCoroutine

Насчет лодки делай сопротивление воды и собсна проверку в воде ли лодка, чтоб она по небу не летала
Аноним 08/05/20 Птн 19:20:22 667475460
>>667463
Вся игра проходит в подземных водах, где на поверхность изначально всплыть возможным не представляется, так что я думал воду не делатьпотому что не умею, а имитировать ее, а лодке позволить летать по воздуху, который игрок воспринимает как воду.

Можно где подробней почитать или посмотреть про то как в принципе добавить воду, настроить ее сопротивление и пр.?
Аноним 08/05/20 Птн 19:35:26 667483461
>>667475
Зачем ты тогда вообще думаешь категориями вода-воздух? Просто возьми обычный платформенный контроллер и выставь маленькую гравитацию, чтобы лодка без ввода от игрока медленно опускалась.
Сопротивление по сути просто постепенное ускорение и торможение, как и в обычном платформере, только время достижения максимальной скорости нужно выставить больше.
Аноним 08/05/20 Птн 19:36:51 667484462
>>667475
У движка нет понятия воздух\земля\вода. Там одно сплошное пространство. Попробуй в rigidbody поковырять свойство drag
Аноним 08/05/20 Птн 20:52:28 667532463
Понял, спасибо
Аноним 08/05/20 Птн 21:11:52 667533464
>>667431
Не совсем, при изменении любого элемента на канвасе, ВЕСЬ канвас начинает обходить ВСЕ элементы и смотреть "а изменилось ли что-нибудь?", а это не выгодно.
Читал многие аноны создают много канвасов для каждую задачу, чтобы избежать этой проблемы, ЮНЕТЕ-КОСТЫЛЬ короче.
Аноним 08/05/20 Птн 21:14:51 667535465
Аноним 08/05/20 Птн 21:17:05 667537466
image.png 41Кб, 785x573
785x573
2020-05-08 21-1[...].mp4 1137Кб, 1920x1080, 00:00:05
1920x1080
Анон, помоги. Что я сделал не так?
Аноним 08/05/20 Птн 21:21:00 667540467
>>667537
Ты запускаешь короутину в апдейте Я даже не знал что так можно
Аноним 08/05/20 Птн 21:23:58 667541468
image.png 312Кб, 1408x592
1408x592
>>659486 (OP)
Новость была, что юнити купила визуал скриптинг болт, и все такие вот завезли бесплатный вс в юнити.
Аноним 08/05/20 Птн 21:25:11 667543469
>>667540
А, бля. Понял, спасибо
Аноним 08/05/20 Птн 21:29:11 667545470
>>667540
Я тут вот думаю, и не могу додуматься, как тогда запустить эту корутину?
Аноним 08/05/20 Птн 21:39:37 667546471
кто-нибудь разбирался с AI Planer? с 2018го года не видел никаких новостей и не натыкался на какие-нибудь проекты/туториалы? есть чего почитать или посмотреть по этой теме? не очень хочется самому влезать пока
Аноним 08/05/20 Птн 21:42:02 667547472
>>667545
тебе нужно пройти пару-тройку туториалов где делают микроигрухи с нуля и до конца или найти человека который будет сидеть и тыкать пальцем. второй день ебёшься с простой задачей которая говорит о том что тебе нужно базу подтягивать
Аноним 08/05/20 Птн 21:45:43 667548473
image.png 23Кб, 255x803
255x803
Пустой префаб создать невозможно?
Аноним 08/05/20 Птн 21:49:06 667550474
>>667547
Я уже нашел себе человека, который будет тыкать мне пальцем. Это анон. И туториалы я смотрю. Я ведь просто задаю вопрос, если мне что-то непонятно.
Аноним 08/05/20 Птн 21:52:16 667551475
>>667548
это не префаб, а вариант префаба. его можно создать только от другого префаба или другого варианта
Аноним 08/05/20 Птн 22:01:54 667554476
>>667551
А можно ли создать префаб до создания объекта на сцене?
Аноним 08/05/20 Птн 22:09:12 667557477
>>667554
из коробки не думаю. кодом вставить в меню такую возможность скорее всего можно
Аноним 08/05/20 Птн 23:50:01 667592478
image.png 14Кб, 562x218
562x218
image.png 5Кб, 283x86
283x86
2D платформер, пытаюсь заставить распознавать поверхность для прыжка. Код для прыжка на 1, grounds на 2. Маски выставлены для всех платформ. Но не прыгает ни на одной. В чем может быть ошибка?
Аноним 08/05/20 Птн 23:53:57 667597479
>>667592
В grounds указаны префабы, если что
Аноним 09/05/20 Суб 00:20:46 667611480
>>667592
код кривой, но ты выходишь из foreach при помощи break до того как у тебя сработает AddForce
Аноним 09/05/20 Суб 00:30:58 667617481
>>667611
Точно, пиздец логично же, чаю тебе, анон
а то я с питонами совсем от нормальных ЯП отвык
Аноним 09/05/20 Суб 06:01:15 667708482
>>667535
А профайлер что говорит?

>>667537
Более правильно когда у тебя начинается диалог, тебе нужно сделать отметку public bool DialogStarted = true;
и стартовать коротину 1 раз когда ты говоришь, что у тебя начался диалог.
Завязываться на позиции или scale в апдейте рисковано т.к. легко ошибиться и если со временем что-нибудь поменяется, будет сложно опять разбираться.
Аноним 09/05/20 Суб 12:54:28 667744483
137181184769.jpg 22Кб, 474x444
474x444
Анон, немного рандомный вопрос, возможно не по теме, но позволь узнать твоё мнение.

Я тут тестовое задание делаю, в нем написано "Время между активацией волн задается в конфигурационном файле игры." (TD делаю)

Как ты думаешь, что за конфигурационный файл игры такой?
Типа XLM с параметрами уровня? Или ScriptableObject? Как вообще такое лучше сделать, написать простенький редактор уровней в Unity и чтобы там была кнопка "сохранить уровень" и появлялся XML файл с настройками уровня?

Понимаю, что лучше спросить у тех, кто задание дал, но может быть тут есть знающие, как такое лучше реализовать?
Аноним 09/05/20 Суб 13:51:29 667763484
Аноним 09/05/20 Суб 14:09:53 667777485
>>667763
Окей, понятно, спасибо.
Уже сам хотел сказать, что это да, самый очевидный вариант.
Кстати, почему именно json, если можно юзать xml? Он же более ориентирован под c#, как я понимаю. Или тут чисто вкусовщина?
Аноним 09/05/20 Суб 14:18:18 667779486
>>667777
да в игроделе почти всё вкусовщина. мне xml не нравится. больше текста = больше время на парсинг. бывают всякие косяки с массивами. например если в xml ты хочешь сохранить массив чисел типа этого:

<numbers>
<number>1</number>
<number>2</number>
<numbers>

и в итоге сохраняешь только одно число, то есть вероятность что numbers будет парсирован не как массив, а как одно просто число и тебе в коде перед итерацией нужно делать проверку на массив. в json всегда понятно что чем является

{ numbers: [1, 2] }

в целом это два основных рака которые я могу вспомнить
Аноним 09/05/20 Суб 14:31:04 667783487
14212603331080.png 9Кб, 640x712
640x712
>>667779
Ого, не знал, спасибо за информацию!
Аноним 09/05/20 Суб 14:53:43 667794488
>>667744
Для тестового я бы прям в ресурсы положил какой нибудь сеттингс.тхт, в каком угодно формате, но каноничнее считается json, так как легче читать человеку и зачастую сервер пишется не на шарпах.

От тебя просто хотят увидеть что настройки ты парсишь отдельным модулем, а не прямиком в геймплейном коде. И что инициализироваться с передачей настроек умеешь.
Аноним 09/05/20 Суб 15:03:43 667800489
>>667777
> почему именно json, если можно юзать xml? Он же более ориентирован под c#, как я понимаю.
В нулевых майкрософт выдумала xml, ну то есть, не выдумала, а вывела из более общего стандарта языков разметки, на котором основан html например.
И вот они его форсили-форсили, пихали куда только можно. Много кодеров повелись на это. На это ДЕРЬМО.
А потом хуяк и в конце нулевых свободные кодеры придумали json, ну то есть, не придумали, а вывели из объектной нотации жабоскрипта, повсеместно воцарившегося в вебе. И заверте...
Теперь всяк адекват переходит с xml на json при первой возможности.
Аноним 09/05/20 Суб 15:04:57 667802490
>>667794
записать в json и прочитать из него в разы проще чем самому писать парсер для txt. если, конечно, ты не говоришь о том что в файл писать одну цифру
Аноним 09/05/20 Суб 17:10:21 667847491
>>667802
> проще чем самому писать парсер для txt
Лолшто? Простейший парсер текста пишется шестью строками. Ну, ладно, шестнадцатью. Но всё ещё ничего сложного. Впрочем, при наличии в движке/фреймворке искаробочного парсера всё равно одна строка проще шестнадцати.
Аноним 09/05/20 Суб 19:39:41 667981492
Как сделать чтобы OnCollisionStay срабатывала только пока игрок движется и трётся об обьект, но не когда просто стоит коснувшись оного?
Аноним 09/05/20 Суб 19:42:26 667982493
>>667981
Проверяй скорость объекта.
Аноним 09/05/20 Суб 19:46:14 667983494
>>667982
Как? Я только осваиваюсь, сразу подумал, что можно как-то через Vector3 проверить движется ли обьект, но в мануале не нашёл ничего
Аноним 09/05/20 Суб 19:47:40 667984495
>>667983
Если ты двигаешь игрока через ригидбади, проверяй его rigidbody.velocity.magnitude. Если она > 0, игрок в движении.
Аноним 09/05/20 Суб 19:57:16 667986496
Аноним 09/05/20 Суб 20:28:45 667988497
image.png 39Кб, 776x628
776x628
image.png 13Кб, 286x219
286x219
Возможно ли сделать анимацию для дочернего объекта? Например у меня есть персонаж, у него спрайт тела и дочерний объект - ноги с соответствующим спрайтом. Жму ctrl+6 когда выбраны ноги и у меня открывает единственную текущую анимацию.
Тут же вопрос - как создать новую анимацию объекту? Когда создаю в инспекторе то она просто не выбирается для изменения, жму на open и ничего не происходит.
Аноним 09/05/20 Суб 20:41:23 667990498
>>667988
UPD
Таки обнаружил как делать новую анимацию, но только на существующем объекте.
Аноним 09/05/20 Суб 20:54:02 667993499
>>667988
UPD2
Разобрался как делать дочернюю анимацию. Спасибо треду за то что терпите такого долбоеба как я.
Аноним 09/05/20 Суб 22:43:53 668012500
image.png 10Кб, 238x146
238x146
image.png 11Кб, 452x169
452x169
Не запускается в игре анимация отличная от дефолтной, при этом выводит предупреждение (пик.1 ). Сама анимация работает и в инспекторе запускается, также запускается в игре если поставлена дефолтной в аниматоре. Код запуска анимации на пик.2. ЧЯДНТ?
Аноним 09/05/20 Суб 22:48:57 668015501
>>668012
Название анимации PlayerIdle это не параметр. Емнип вообще нельзя запустить анимацию по её имени. Параметры создаешь в этом же окне аниматора слева на вкладке parameters рядом с layers, нажимая на мелкий плюсик.
Аноним 09/05/20 Суб 23:06:14 668023502
>>668015
Да, увидел про параметры. Спасибо за ответ, в итоге запустил с помощью anim.Play("название")

А можно ли запустить две анимации на объекте сразу? anim.Play выполняется без ошибок, но проигрывается только первая.
Аноним 09/05/20 Суб 23:18:30 668024503
Аноним 09/05/20 Суб 23:31:43 668028504
image.png 31Кб, 560x428
560x428
image.png 18Кб, 275x311
275x311
Последний на сегодня.
Слой вызова анимации ходьбы в аниматоре имеет следующий вид. При ходьбе успешно устанавливает IsWalking, но анимация не запускается. Почему?
Аноним 09/05/20 Суб 23:52:25 668032505
image.png 7Кб, 411x240
411x240
Как в switch реализовать пикрелейтед? И вообще возможно ли это? не вводя десяток новых строк кода, что по итогу будет больше чем использование if else
Аноним 09/05/20 Суб 23:58:19 668037506
>>668032
Я бы сделал так:
switch (true)
{
case a > b:
break;
case c < b + 265:
break;
}
И так далее. Но не уверен, что этот трюк сработает. По замыслу, switch будет сравнивать все кейсы с выражением у себя в скобках, а в скобках у него просто true.
Аноним 10/05/20 Вск 00:13:28 668043507
>>668037
Не понял тебя, попытался разобраться, но ничего не получилось. В итоге реализовал через if else, просто чтобы голову уже не ебать.
Аноним 10/05/20 Вск 00:18:31 668046508
>>668043
Да, жаль, что не получилось, задумка-то неплоха была.
Аноним 10/05/20 Вск 00:26:30 668048509
unity.mp4 2478Кб, 1052x618, 00:00:15
1052x618
Наконец допилил, что я хотел. Когда чел рядом с объектами, с которыми можно взаимодействовать, они должны обозначится специальной иконкой, чтобы он не шароебился, а сразу видел, куда идти. Когда чел подошел близко, и смотрит почти на объект - иконка меняется на "можешь нажимать". Сложно было решить проблему, когда объекты лежат рядом - нельзя взаимодействовать сразу со всеми, только с одним (в примере окна - чтобы одновременно не повернулись несколько ручек). Добавил проверку - на какой объект смотрим под меньшим углом - с тем и можно взаимодействовать.
Аноним 10/05/20 Вск 00:32:37 668052510
>>668048
ps правда ui элементы по прежнему оставил динамичными. То есть постоянно создаются и удаляются из специального канваса. Зато код по проще - создал и удалил, и не надо проверок - какие элементы свободны?
Чем чревато? Чем плоха сборка мусора?
Аноним 10/05/20 Вск 00:54:06 668059511
image.png 252Кб, 1428x626
1428x626
image.png 38Кб, 770x528
770x528
image.png 10Кб, 221x181
221x181
Это опять я. Почему-то сферический хитбокс условное окно не выдает нужную команду при столкновении с обьектом, при том что со всеми остальными частями всё нормально работает.
Аноним 10/05/20 Вск 02:17:18 668072512
Хочу сменить спрайт у дочернего объекта, но он не меняется. Мой код:

transform.Find("Объект").GetComponent<SpriteRenderer>().sprite = новыйСпрайт;

ЧЯДНТ?
Аноним 10/05/20 Вск 02:29:15 668073513
>>659486 (OP)
Привет, народ! Решил попробовать Юнити. Я сижу на Линуксе. Так вот, может кто подсказать: что нужно поставить чтобы и Юнити и С# работали нормально и проекты компилировались без ошибок?
Аноним 10/05/20 Вск 06:04:27 668076514
>>668072
Дочерние объекты через гетчайлд выбираются
Аноним 10/05/20 Вск 10:17:45 668089515
>>668073
>что нужно поставить
Windows.
А вообще я видел на ютабе, как челики под убунтой работали.
Сам тоже пробовал на линуксы накатывать юнити, всё ок без проблем стартануло из коробки. Но я не выдержал работать без остальных программ и приблуд винды.
Аноним 10/05/20 Вск 14:12:20 668120516
1589109139624.png 101Кб, 1021x696
1021x696
>>668073
Сам юнити скачивается с официального сайт юнитеков в формате AppImage, которому для работы ничего не надо, it's just works. Вообще, скачивается юнитихаб, а уже в нём качаешь юнити. У меня на момент скачивания уже стоял монодевелоп, установленный по инструкции с сайта монодевелопа (для убунты, добавляешь их реп в список сурсов и апт инстал блаблабла).

Правда я не пробовал ещё проекты конпелировать, мне юнити нужен исключительно для изучения, но в редакторе всё работает без проблем.
Аноним 10/05/20 Вск 14:17:30 668121517
>>668089
> я не выдержал
Слабак!
Возможность работать не опасаясь бана за перацкую венду - стоит того, чтобы потерпеть ломку после венды. У меня в убунте все необходимые утилиты есть. Чего нет нативно, уже работает через вайн. Вайн уже настолько заматерел, что без проблем скармливаешь ему любые фреймворки и рантаймы, если они требуются целевой утилите. Под вайн уже сделали дхвк - трансляция АПИ директэкса в вулкан. И это работает! Можно даже графические утилиты юзать. Не говоря уж о играх.
Аноним 10/05/20 Вск 14:21:33 668122518
>>668121
Если захочешь повторить попытку слезть с венды - советую кубунту (которая с кедами). Дизайн дриснятки спизжен с кедоплазмы. Вообще разницы не увидишь.
Особо отмечу, что консолька нужна очень редко. На сегодняшний день в кедах можно полноценно работать без консольки, если бы я не привык уже к ней и не делал в ней ряд операция, я бы не смог вспомнить, когда юзал её в последний раз.
(копипаст из интернетов команд уровня sudo add apt ppa я использованием консольки не щитаю)
Аноним 10/05/20 Вск 14:28:04 668123519
>>668120
>>668089
Спасибо! Я уже скачал и поставил Юнити. Но вот при попытке прогнать проект попытался закодить чтобы куб падал на плоскость компилятор начал выдавать ошибку.
Assets/Player.cs(17,34): error CS1002: ; expected
>>668121
А я уже давно перешел на свободный софт, ломки по Винде нет. Но вот с Юнити и C# сталкиваюсь впервые
Аноним 10/05/20 Вск 14:31:24 668124520
>>668123
> ; expected
Ну так give them what it expect.
Аноним 10/05/20 Вск 14:34:04 668126521
>>668124
>Ну так give them what it expect.
А может кто подсказать что оно expect?
Аноним 10/05/20 Вск 14:40:35 668128522
>>668126
Точку с запятой.
Покормил
Тебе надо бы сишарп изучить минимально штоле.
Аноним 10/05/20 Вск 14:44:42 668129523
Аноним 10/05/20 Вск 14:50:27 668133524
>>668128
>>668129
Спасибо, аноны. Мне и правдо стоит подучить C#
Аноним 10/05/20 Вск 15:52:02 668147525
Вы в своей работе используете киты и ассеты из юнити стора? Я вот чувствую себя не комфортно при мысли что там будут свои модели и текстуры, которые надо будет заменять. Что будут не понятно как все работает. Чувствую тягу к велосипидорству. Вы как работаете, аноны?
Аноним 10/05/20 Вск 15:59:01 668148526
>>668147
Со стора только бесплатные для прототипирования, потом переделываю.
Аноним 10/05/20 Вск 16:03:15 668150527
Аноним 10/05/20 Вск 17:24:19 668164528
f1ec3a956044799[...].jpg 1464Кб, 2104x1430
2104x1430
Сап, котаны. Есть один куб. Игрок может перемещаться по его граням. Нужно сделать так, чтобы были подсвечены все его грани, по крайней мере когда на них смотрят. Если разместить просто directional light, то половина граней будет черными чуть более чем полностью. Очевидной идеей является предкрепление directional light к камере. Это выглядит хорошо, но проблема в том, что это лагает на моей мобилке. Другая идея: разместить два directional light под противоположными углами, но в результате всё становится чёрным. Два spotlight и point light с разных сторон тоже лагают. Статичный directional light не лагает, всё супер гладко. В настройках билда в графике стоит LWRP-LowQuality. Как это починить? Не особо разбираюсь в юнити, если что, может что-то упускаю.
Аноним 10/05/20 Вск 17:28:16 668166529
StoreFemaleAnim[...].png 544Кб, 1920x1080
1920x1080
Аноним 10/05/20 Вск 17:41:44 668169530
Аноним 10/05/20 Вск 18:21:26 668187531
>>668164
Нахуй ты вообще свет используешь тогда, повесь на куб анлит/флат шейдер и всего делов
Аноним 10/05/20 Вск 18:28:34 668193532
>>668076
Спасибо, друг!
Теперь корректно обращается (через debug.log вижу), но не меняет спрайт все равно.
Аноним 10/05/20 Вск 19:06:23 668204533
>>668193
пиши весь код. похоже что ты что-то не так делаешь в другом месте
Аноним 10/05/20 Вск 20:00:30 668230534
>>668204
Объявление спрайтов

public Sprite имяСпрайта;

Перетаскиваю в юнити спрайт куда надо, затем

transform.GetChild(0).GetComponent<SpriteRenderer>().sprite = имяСпрайта;

В нужный участок кода норм заходит.

Пробовал как здесь https://forum.unity.com/threads/change-sprite-of-child-object.457956/
Пишет ошибку:
>Object reference not set to an instance of an object
PlayerController.FixedUpdate ()
Аноним 10/05/20 Вск 20:11:03 668231535
>>668230
print(transform.GetChild(0).name);
print(имяСпрайта);
Аноним 10/05/20 Вск 21:08:47 668245536
image.png 17Кб, 398x131
398x131
>>668231
Я как понял ты имел в виду не .name, а .GetComponent<SpriteRenderer>().sprite (потому что иначе выводит название объекта)

Выводит идентичные строки, но не отображает.

Мб анимация их как-то перекрывает (хотя не должна, там условие для смены анимации не выполняется, а дефолтная ничего не делает). Похоже придется анимацией из одного кадра делать, лол
Аноним 10/05/20 Вск 21:18:56 668251537
>>668245
UPD
И правда, отключил аниматор и стало норм. Эх юнити
Аноним 10/05/20 Вск 21:28:34 668255538
Аноним 10/05/20 Вск 23:41:20 668282539
Как сделать так, чтобы спрайт наклонялся находясь на наклонной поверхности на её угол? Даже загуглить не удается, мне кажется что вопрос косячный.
Аноним 10/05/20 Вск 23:44:48 668283540
>>668282
Если он находится на поверхности, значит он с ней соприкасается (есть коллизия), значит ты можешь получить у движка вектор нормали в точке коллизии. Далее дело техники. Берешь свой "спрайт", поворачиваешь его транформ квартенионом, ориентируя по этому полученному вектору-нормали.
Аноним 11/05/20 Пнд 00:07:22 668285541
>>668283
Спасибо огромное за развернутый ответ!
Аноним 11/05/20 Пнд 05:49:18 668304542
>>668166
Держи, пробел в ссылке убери
http s://dropmefiles.com/62fVv
Аноним 11/05/20 Пнд 15:19:15 668373543
1. Можно пару скриншотов, картинку какого качества дает Юнити без дополнительных шейдеров?
2. Где брать бесплатные или дешевые шейдеры?
3. Насколько C# уступает производительности C++?
Аноним 11/05/20 Пнд 15:37:12 668377544
>>668373
1. Нет уж давай сам. Юнити скачал, обучающий проект/шаблон скачал. На графон посмотрел. Выводы сделал.
2. Шейдертой - бесплатные, юнити ассетстор - платные.
3. Превосходит. И это не пустой пиздёж. Как это ни парадоксально. Подробности в /пр/.
Аноним 11/05/20 Пнд 15:49:06 668379545
Аноним 11/05/20 Пнд 15:56:01 668383546
>>668379
Возможно.
Но не тобой.
Аноним 11/05/20 Пнд 17:42:54 668418547
>>668304
спасибо, но это старая версия(
Аноним 11/05/20 Пнд 18:25:12 668436548
image.png 6Кб, 436x144
436x144
Что тут не так? Хочу сделать чтобы по нажатию "P" управление переключалась с 1 типа на 2 и обратно.
int movementSet = 0;
Аноним 11/05/20 Пнд 18:31:38 668442549
>>668436
Тебе подчеркнуло ошибку.
if movementSet == 0
Аноним 11/05/20 Пнд 18:34:55 668445550
>>668442
блять, ну видимо запомнить что "=" - присваивание, а "==" - сравнение мне только опыт поможет. Спасибо.
Аноним 11/05/20 Пнд 19:08:36 668457551
>>668445
Бывает научишься, что сравнение это = а присваивание это := а потом приходится переучиваться.
Аноним 11/05/20 Пнд 19:14:45 668458552
image.png 8Кб, 480x156
480x156
Как сделать, чтобы обьект летел вверх отталкиваясь от глобальной позиции, а не локальной?
Аноним 11/05/20 Пнд 19:22:42 668460553
image.png 10Кб, 663x156
663x156
>>668458
Сам разобрался. Не знаю насколько это правильно, но работает.
Аноним 11/05/20 Пнд 22:53:36 668503554
>>668460
ПИЗДЕЦ АНОНЫ
Оно перестало работать.
Аноним 11/05/20 Пнд 23:43:48 668507555
>>668503
Блять, я такой долбоеб
Аноним 12/05/20 Втр 00:05:36 668510556
>>668507
Всё нормально, братишка, проёбы случаются. Только не надо превращать тред в свой микробложек и срать мелкими постами. Я не заставляю, прост рекомендую. По браццки.
Аноним 12/05/20 Втр 08:26:56 668549557
Очень простой вопрос от новичка: хули у меня коллизии не работают?
Аноним 12/05/20 Втр 12:57:22 668590558
Использую платформу из 3д кита. Не вижу ее гизмос точек старта и конца пути. Посмотрел на сцену, так же не вижу гизмос камер и освещения. Зашел в настройки гизмос, что выше окошка с игрой. Там, вроде, все галки стоят. Никто не знает как решить эту проблему?
Аноним 12/05/20 Втр 12:59:06 668592559
>>668590

Хех. Перед тем как написать, пол часа тыкался. Написал и через несколько секунд нашел ответ. Оказывается, нужно чтобы не только в настройках гизмоса галки стояли. Но нужно так же на сам гизмос нажать, иначе он не активен.
Аноним 12/05/20 Втр 13:56:09 668608560
image.png 7Кб, 595x164
595x164
Не могу разобраться. Нид хелп.

Использую
transform.rotation = Quaternion.Euler(0, 0, 30);
Чтобы повернуть обьект, не могу разобраться как сделать так, чтобы он поворачивался плавно, а не мгновенно, как это сделать?

И сразу ещё вопрос. Ограничил скорость движения обьекта с помощью пикрил, но теперь по достижению макс. скорости обьект начинает дрожать, как это можно исправить?
Аноним 12/05/20 Втр 15:27:38 668626561
Аноним 12/05/20 Втр 16:04:00 668635562
>>668626
Можешь подробней обьяснить?
Анон 12/05/20 Втр 17:22:03 668663563
Двач.png 19Кб, 900x725
900x725
Сап двач. Есть определённый Scroll, где внутри Content есть много кнопок, каждая из который открывает сцену. Как сделать, чтобы при клике на звёзду на сцене 2, на которую направляет кнопка, эта кнопка создавалась бы в сцене 3?
Я смог сделать смену цвета кнопки по клику, но как дальше не знаю.
Аноним 12/05/20 Втр 17:39:12 668673564
Аноним 12/05/20 Втр 19:28:37 668693565
>>668663
1. Создаёшь список избранного.
2. При нажатии на звезду имя сцены добавляется в этот список, если такого имени нет и удаляет из списка, если такое есть.
3. При открытии избранного сцена читает список и создаёт столько кнопок, сколько надо.
Аноним 13/05/20 Срд 17:29:41 668884566
Задача сделать много мух летящих от одного края до другого. Жопс или компонентс?
Аноним 13/05/20 Срд 17:42:48 668889567
Аноним 13/05/20 Срд 22:10:19 669087568
>>668693
Звучит сложно, можешь подробней рассказать, я ещё ламер в Unity?
Или можешь хотя бы дать какой-то видеоурок как сделать что-то подобное?
Аноним 13/05/20 Срд 22:14:57 669093569
>>668693
Это как-то через списки и using System.Collections.Generic; делается?
Аноним 13/05/20 Срд 22:19:10 669099570
>>668693
Я слышал, что можно как-то через SceneManager.MoveGameObjectToScene сделать
Аноним 13/05/20 Срд 22:26:17 669104571
Можно ли сделать динамическое создание\изменение коллайдера в коде? У меня персонаж выбрасывает кулаки при атаке, хочу чтобы при столкновении с противником им был урон. Игра 2D
Аноним 13/05/20 Срд 22:32:12 669106572
>>669099
>>669093
>>669087
Насчёт видеоуроков не подскажу, хотя, можешь глянуть видосы по созданию инвентаря - это фактически тоже список. Научишься на инвентаре - сделаешь избранное аналогично.
Аноним 13/05/20 Срд 23:00:12 669131573
BigProgress.png 382Кб, 1506x915
1506x915
Аноним 13/05/20 Срд 23:10:57 669142574
>>669131
>Quaternion.Lerp
Спасибо, анон выше уже подсказал и я в итоге разобрался.

Бтв то, о чём я говорил >>668608
>по достижению макс. скорости обьект начинает дрожать, как это можно исправить?
Я тоже пофиксил. Камера обновлялась раньше обьекта, из-за чего создавалось ощущение, что обьект дёргался, когда тот на долю секунды набирал скорость больше максимальной. В обьекте просто заменил на fixedUpdate, а в камере на Update.

Как я понял этот баг из-за скрипта камеры был, но вдруг кому пригодиться.
Аноним 13/05/20 Срд 23:18:26 669146575
image.png 1Кб, 99x132
99x132
image.png 28Кб, 610x626
610x626
image.png 30Кб, 211x168
211x168
Как сделать так чтобы юнити не херил прозрачность? Пик 1-2 - в ФШ, пик 3 - в юнити. Смысл в том что он то, что было нарисовано с жесткостью не в 100% делает совсем белым, это не вполне корректно называть прозрачностью, конечно.
Аноним 13/05/20 Срд 23:41:32 669149576
Аноним 14/05/20 Чтв 00:04:15 669158577
>>669104
В смысле, так закрепи коллайдер на кулаке? Или они у тебя тоже динамически вырастают? Коллайдер на своего персонажа и отдельный на оружие/руки.
Аноним 14/05/20 Чтв 00:11:55 669162578
Юнити дала полный доступ к своим обучающим материалам. Кто смотрел, есть там что реально полезное или одно таскание ассетов по сцене?
Аноним 14/05/20 Чтв 00:48:49 669170579
image.png 15Кб, 905x155
905x155
image.png 70Кб, 1049x702
1049x702
>>669142
Ага, заебись пофиксил. Ну, теперь персонаж не дрожит, но дёргается камера. Теорема Эскобара, получается.
На всякий случай прикреплю скрипт камеры и движения, может кто что подскажет.
Проблема: дрожит персонаж
maxVel исполняется в Update, возможно в этом и есть проблема, но пока нет возможности чекнуть
Аноним 14/05/20 Чтв 00:53:55 669173580
Если в игре есть несколько типов оружия и каждый них имеет свои особенности, то лучше делать отдельный контроллер оружия для каждого или все обрабатывать в одном?
Аноним 14/05/20 Чтв 01:04:53 669174581
>>669173
Предположим что у игрока сразу имеется несколько образцов оружия. Я хочу сделать их смену при нажатии клавиш.
Можно ли экипировать каждое оружие из префаба- создавать, а при смене оружия удалять объект и сразу делать дочерним к игроку? Если да, то как сделать его сразу дочерним? Или только по дефолту объявить в сцене сразу все и setActive`ом менять?
Аноним 14/05/20 Чтв 01:05:01 669175582
>>669162
Для меня лучший обучающий материал был всегда бесплатен - class reference.
>>669173
Идеального рецепта нет, как тебе удобнее - так и делай. Обычно делают набор компонентов, унаследованных от базового компонента: Weapon, Shotgun : Weapon, и так далее. При наличии совсем сложной системы оружия ты даже можешь сделать два уровня наследования. Сначала Weapon, от него наследуются Melee, Projectile, Firearm, от них уже наследуются реальные инстансы, ножи и топоры от Melee, гранатомёты от Projectile, винтовки от Firearm. Наследование поможет тебе завести список оружия, поддерживающий общие "оружейные" интерфейсы, который будет удобнее, чем держать список типа "компонент" и принудительно кастовать тип каждый раз внутри тех или иных циклов.

Соответственно, в еще более комплексной игре тип оружейного компонента наследуется от компонента, который может держаться в руках, и на этом этапе к нему подтянуто поведение удерживаемой в руках вещи. А удерживаемый в руках компонент может быть как унаследован, так и являться частью композиции с предметом инвентаря. Тут уж в диздоке проектировать надо.
Аноним 14/05/20 Чтв 01:07:00 669176583
>>669174
Экипировать можно из префаба. Без проблем. Если оружие достаётся с диска за полсекунды и в видеопамяти сидит как влитое. При этом не забывать о логике, описаной выше: >>669175

Всё, я спать.
Аноним 14/05/20 Чтв 01:12:45 669178584
>>669175
Под контроллером я имел в виду отдельный файл кода, но не класс
Аноним 14/05/20 Чтв 01:14:32 669180585
>>669158
При анимации удара коллайдер же не будет следовать за кулаком?
Аноним 14/05/20 Чтв 04:09:51 669209586
>>659486 (OP)
В чем можно делать уровни в помещении для юнити? Например игра полностью в помещении, что можно использовать для его создания? Архикад можно?
Аноним 14/05/20 Чтв 04:40:59 669213587
>>669209
Если хочешь способ который сразу напрямик то используй встроенный probuilder
Аноним 14/05/20 Чтв 17:15:51 669344588
Ю-Н-И-Т-И.jpg 113Кб, 600x815
600x815
Аноним 14/05/20 Чтв 22:39:43 669515589
Привет, народ! Сижу на Линуксе, и возникла такая проблема: модули для сборки проекта под Виндовс и Мак не ставятся. Я отмечаю их галочками в менеджере загрузок, он что-то делает, а потом ничего. Собственно, импортировать свои игры только на Линь - сомнительное удовольствие. Кто-нибудь сталкивался с такой проблемой? Может помочь с решением?

Я использую Арч, кста
Аноним 15/05/20 Птн 00:08:47 669560590
Кому удавалось прикрутить Omnisharp к Sublime text и при этом иметь автокомплит юнитивских неймспейсов?
Аноним 15/05/20 Птн 00:34:22 669569591
Как сделать так, чтобы при прыжке считывалась сила нажатия пробела? Со стрелками понятно GetAxis, можно ли провернуть такое с другими клавишами?
Аноним 15/05/20 Птн 01:22:20 669574592
Как можно подключить к скрипту иные файлы кода, без использования скриптов как компонентов? Вопрос не столько по юнити, но и по c#. Нашел в интернете инструкцию, но она похоже только для visual studio, а я пишу в блокноте (sublime).

В c/c++ можно подключить заголовочный файл с определенными в нем функциями etc из файла с кодом с таким же названием. В python просто напрямую подключаешь тот же файл кода.

Есть ли органичное решение для шарпа?
Аноним 15/05/20 Птн 02:06:10 669577593
image.png 2Кб, 368x16
368x16
image.png 3Кб, 368x42
368x42
>>669574
Пытаюсь через namespace, кидает всякие ошибки.
В одном файле у меня есть код пик1, в другом использую код как на пик2.
Кидает ошибку:
error CS0120: An object reference is required for the non-static field, method, or property 'PlayerController.IsGrounded()'

ЧЯДНТ?
Аноним 15/05/20 Птн 02:09:33 669579594
>>669577
наркоман, ты обращается к типу, а не инстансу типа. оно тебе грандед вернёт для какого-то конкретного контролера. спрашивай у переменной.
Аноним 15/05/20 Птн 11:21:05 669616595
>2k20 век
>до сих пор нет кнопочки "copy path" до объекта в эдиторе
Аноним 15/05/20 Птн 12:40:35 669629596
>>669579
Объект PlayerController создается в момент работы приложения, как к нему обратиться?
Аноним 15/05/20 Птн 13:10:40 669635597
>>669629
По ссылке.

Не знаю какая у тебя архитектура, но хорошим подходом является создание какого то "Main" контроллера, который будет синглтоном и он в свою очередь будет создавать и иметь ссылки других контроллеров(не монобехавиор) - аудио, покупки и др. Так ты сможешь из любого участка кода обратится к MainController и получить ссылку на конкретный контроллер.

Для противников синглотонов можно поюзать статику:

>public static MainController Instance
{
get
{
if (_instance == null)
{
_instance = FindObjectOfType<MainController>();
}
return _instance;
}
}

Аноним 15/05/20 Птн 13:11:55 669636598
>>669635
public static MainController Instance
{
get
{
if (_instance == null)
{
_instance = FindObjectOfType<MainController>();
}
return _instance;
}
}
Аноним 15/05/20 Птн 13:19:48 669637599
Анон, придумай задачу с тяжелыми вычислениями которую надо реализовать в отдельном потоке.
Хочу многопоточность в Unity потренировать.
Аноним 15/05/20 Птн 13:20:10 669638600
unnamed.jpg 119Кб, 396x512
396x512
>>669616
>2k20 век
эй потомки, кто там через 200000 лет президент? всё тот же?

>>669635
статика это и есть синглтон. не знаю где ты прочитал что жесткие связи с кучей менеджеров это хороший подход. надеюсь это не одна из тех историй типа "да проект мелкий, для него сойдёт"
Аноним 15/05/20 Птн 13:47:30 669642601
>>669638
Имелось ввиду что ты не используешь Моносинглтон. Я просто попытался предложить анону-новичку подход в котором он на данном этапе может разобраться. С удовольствием послушаю подход без жестких связей, абстрагировать через интерфейсы?
Аноним 15/05/20 Птн 13:52:52 669644602
>>669638
>"да проект мелкий, для него сойдёт"
противник этой "теории", нужно сразу делать хорошо.
Аноним 15/05/20 Птн 14:47:19 669650603
>>669642
да я даже вопрос его не читал. нужно человека сразу предупредить о том что этот вариант считается хуёвым, но максимально простым и потому нубы на нём залипают надолго. а то будет городить до конца своих дней и говорить что ему сказали что подход хороший
Аноним 15/05/20 Птн 16:35:32 669667604
image.png 30Кб, 618x533
618x533
Пытаюсь настроить урон в зависимости от скорости движения, работает почему-то через раз, постоянно вижу "no dmg" при том, что скорость больше 5.
Как фиксить?
Аноним 15/05/20 Птн 16:45:22 669669605
Аноним 15/05/20 Птн 16:48:01 669670606
>>669669
Навигация, точно.
Типа а-стар?
Аноним 15/05/20 Птн 16:50:10 669672607
Аноним 15/05/20 Птн 17:00:42 669673608
Есть какой-нибудь простой способ стопать процесс рендера камеры, чтобы замораживался последний отрисованый кадр, а затем когда мне надо "размораживался"?
Аноним 15/05/20 Птн 17:04:38 669674609
U.webm 7574Кб, 1680x966, 00:00:34
1680x966
>>669670
да типа любая навигация лол. переведи миллион кубиков через реку не пользуясь флоуфилдом.

>>669673
а просто сделать скриншот слишком дорого по памяти?
Аноним 15/05/20 Птн 17:09:23 669676610
КТО НИБУДЬ ИСПОЛЬЗУЕТ ОМНИШАРП ДЛЯ АВТОКОМПЛИТА В БЛОКНОТЕ??? ЛЮДИ ПЛИЗ ХЕЛП
Аноним 15/05/20 Птн 17:11:31 669677611
>>669635
>Не знаю какая у тебя архитектура, но хорошим подходом является создание какого то "Main" контроллера, который будет синглтоном и он в свою очередь будет создавать и иметь ссылки других контроллеров(не монобехавиор) - аудио, покупки и др. Так ты сможешь из любого участка кода обратится к MainController и получить ссылку на конкретный контроллер.

Так MainController выходит будет также скрипт юнитевый, то есть его экземпляр создаваться во время запуска приложения. Как к нему обратиться то?
Аноним 15/05/20 Птн 17:13:38 669678612
>>669677
он будет static и обращаться к нему можно через тип.
Аноним 15/05/20 Птн 17:16:45 669679613
Аноним 15/05/20 Птн 17:19:59 669680614
>>669677
GameObject в сцене на него компонент твой MainController. В Awake() => DontDestroyOnload(go)

У меня был баг, что DontDestroyOnload почему то не срабатывал в Awake(). Решил все отдельным компонентом который вешал на go.

namespace Utility
{
public class DontDestroyOnLoad : MonoBehaviour
{
private void Awake()
{
DontDestroyOnLoad(gameObject);
}
}
}


Аноним 15/05/20 Птн 18:25:17 669693615
Аноним 15/05/20 Птн 18:26:04 669694616
>>669693
обосрался с разметкой немного, ну ты понял
Аноним 15/05/20 Птн 19:05:46 669700617
Аноним 15/05/20 Птн 19:06:53 669701618
>>669693
к тому что возможно тебя интересует relative velocity? а может impulse?
отдебаж то что ты получаешь в коллижене
Аноним 15/05/20 Птн 19:21:22 669711619
image.png 22Кб, 1318x206
1318x206
Не совсем понимаю что ты хочешь чтобы я отдебажил, но вот
вполне возможно потому что ещё зеленый, но всё же
Аноним 15/05/20 Птн 19:33:33 669712620
>>669711
наркоман. место коллизии, магнитуду и прочее говно отдебаж. у тебя не только Debug.Log есть, но и Debug.DrawLine. нарисуй там рядом значения трешхолда после которого дамаг наносится. если твои ожидания расходятся с твоими результатами то тут 2 варианта:
1) ожидания не те
2) результаты не те
проверь и то и другое. и как можно более понятно для себя самого.
Аноним 15/05/20 Птн 19:48:12 669714621
Аноним 15/05/20 Птн 22:44:09 669773622
>>669714
Со стрелками тоже не прокатит. Гет аксис даёт для клавиатуры только -1, 0 и 1. Все клавиши на клавиатуре цифровые, чтобы снимать силу нажатия, клавиши должны быть аналоговые, но это наркоманство какое-то - клава с аналоговыми клавишами. Такое никому не нужно = такого никогда не будет. Бери геймпад и не выёбуйся.
Аноним 15/05/20 Птн 22:49:47 669779623
>>669676
Никто что ли омнишарп не использует??? Все на студии сидят?
Аноним 15/05/20 Птн 22:59:58 669788624
>>669779
Чё за омнишарп, впервые слышу. Небось платный как райдер? Нахуя ебаться с ним, когда студия покрывает 100% потребностей индюка?
Аноним 16/05/20 Суб 00:07:10 669841625
Аноним 16/05/20 Суб 02:55:36 669868626
image.png 36Кб, 904x488
904x488
image.png 18Кб, 398x326
398x326
image.png 36Кб, 911x488
911x488
image.png 23Кб, 426x351
426x351
Ананасы, я в отчаянии. Прошу помощи.

Есть платформа. Она падает и пропадает через некоторое время после попадания на нее персонажа при помощи Invoke. Код начинается с метода OnCollisionEnter2D.

Исходный, работающий код на скринах 1-2.
Я хочу добавить проверку в реальном времени - не пересекается ли коллайдер игрока и платформы. Если нет, то не возвращаем платформу, если да - возвращаем.

Для проверки того, получится ли вернуть платформу в реальном времени пробую скрины 3-4. Отличие в том, что один метод вынесен в Update. И именно он перестает работать!!! То есть платформа просто не появляется обратно!
Вопрос - почему???
Аноним 16/05/20 Суб 02:56:31 669869627
>>669868
Check() на момент скринов - заглушка с return true
Аноним 16/05/20 Суб 03:09:31 669870628
>>669868
При использовании Invoke в Update та же самая проблема

Дико извиняюсь что сразу все не написал, просто очень сонный уже.
Аноним 16/05/20 Суб 03:20:09 669871629
>>669870
я, конечно, нихуя не читал что там у тебя на скриншотах, но есть подозрение что после того как ты отключаешь GameObject (transform.gameobject.SetActive(false)) ты получаешь зарплату за пупу, а вот твой Update получает за лупу так как он отключён и не выполняется.

честно говоря вот эта ересь с Invoke. в документации пишут что лучше в таких случаях юзать корутины
https://docs.unity3d.com/ScriptReference/MonoBehaviour.Invoke.html
>For better performance and maintability, use Coroutines instead.

но даже с корутинами выглядит твой код очень странно
Аноним 16/05/20 Суб 06:40:48 669883630
Аноним 16/05/20 Суб 11:28:32 669902631
>>669674
А что здесь происходит у тебя?
Что за алгоритм для поиска пути? Зачем показывать зеленые кружочки рядом с обьектом? Типа зона видимости?
Можешь рассказать немножко, очень интересно.
Аноним 16/05/20 Суб 11:47:44 669905632
image.png 154Кб, 1274x962
1274x962
>>659486 (OP)
Как в URP убрать это ебаное затенение при отдалении камеры? Всё поотключал, куда копать?
Аноним 16/05/20 Суб 12:02:21 669912633
>>669871
Update точно выполняется, я с принтом проверял что он заходит в эту часть кода. Но GameObject все равно ни в какую не запускается из нее!
Аноним 16/05/20 Суб 14:17:48 669988634
>>669905
Пост Проц вырубил на камере?
Аноним 16/05/20 Суб 15:12:22 670020635
>>669988
Да, это не постпроцессинг
Аноним 16/05/20 Суб 16:34:01 670057636
>>669905
Нашёл, в настройках света в самом низу туман был включён
Аноним 16/05/20 Суб 17:32:23 670069637
>>669180
Бамп вопросу. Можно конечно сделать движение коллайдера, но оно не будет плавным.
Аноним 16/05/20 Суб 18:11:28 670105638
Аноним 16/05/20 Суб 21:39:44 670168639
image.png 5Кб, 390x77
390x77
Насколько следует верить этому? И как делать не дорогую проверку в таком случае?
Аноним 16/05/20 Суб 21:49:58 670174640
Аноним 16/05/20 Суб 21:53:47 670176641
Аноним 16/05/20 Суб 22:56:09 670196642
>>670168
если в каждом кадре проверяешь, то не очень хорошо или там где это критично для перфоманса. какие-то там заморочки у нулчека с объектами юнити

https://github.com/JetBrains/resharper-unity/wiki/Avoid-null-comparisons-against-UnityEngine.Object-subclasses

обычно подобные проблемы решаются при переходе на событийную модель. или ещё проще, но не лучше, создать bool в который будет выставляться значение true когда у тебя присваивается target и делать проверку по этому bool
Аноним 17/05/20 Вск 00:14:43 670217643
>>670196
А если мне нужно рейкастом проверять, если на объекте какой-то компонент? Я лично придумал два обхода этой проблемы - добавить все объекты на которых компонент есть в список, и рейкастом проверять есть ли объект в списке, или не проверять наличие компонента вовсе, сделав отдельный layer для всех объектов на которых точно есть компонент. Но эти оба способа мне кажутся говнокодскими.
Аноним 17/05/20 Вск 00:23:53 670218644
>>670217
>есть ли на объекте
Слоуфикс
Аноним 17/05/20 Вск 02:41:33 670228645
Можно ли в аниматоре (где состояния) перемещаться как то кроме колесиком мыши? На стрелки не реагирует, за зажатые кнопки мыши тоже. Колесиком просто пиздец неудобно.
Аноним 17/05/20 Вск 03:05:01 670229646
U-P.webm 3454Кб, 1068x720, 00:00:22
1068x720
>>669902
здесь навмеш возвращает координаты и расстояние в навмеше + расстояние ближайшей ноды навмеша. полезно когда надо несколько гарантированно доступных самплов вокруг и ещё и рассортированых примерно по дистанции.
можно и свою хуйню внутрь совать. так то у меня много клевой хуйни в этом проекте.
недавно наконец-то вернулся к работе над ним.

>>670217
лучше напиши что ты желаешь достигнуть. воспользуйся слоями, тегами, нужен ли тебе на самом деле компонент, зачем ты его вообще проверяешь. контекста то дохера.
Аноним 17/05/20 Вск 04:07:08 670234647
>>670217
https://docs.unity3d.com/ScriptReference/Physics.Raycast.html
тебе прямо в документации пишут

RaycastHit hit;
if (Physics.Raycast(transform.position, -Vector3.up, out hit, 100.0f))
{
тут свой говнокод пишешь в духе
if (hit.gameobject.TryGetComponent(out Zolupa zolupa) {
zolupa.DoTheMario(true);
}
}

никаких нулчеков
Аноним 17/05/20 Вск 04:44:19 670247648
>>669569
Правильно понял, что хочешь регулировать высоту прыжка в зависимости от силы нажатия клавиши? Если нет, то напиши пример, в котором будет использоваться эта задумка.
Аноним 17/05/20 Вск 15:15:00 670330649
image.png 18Кб, 940x202
940x202
Есть скрипт камеры пикрил спизженый, как ограничить движение камеры по осям, чтобы она не заглядывала за тексуру при подлете к стене вплотную или когда игрок переворачивается и падает на землю?

inb4 >создай пустой обьект, добавь ему колижн и сделай камеру дочерней ему
Этот способ не работает
Аноним 17/05/20 Вск 15:23:19 670336650
>>670330
что за камера то? от 3го лица? или у тебя от 1го проваливается?
Аноним 17/05/20 Вск 15:32:43 670341651
image.png 447Кб, 1234x697
1234x697
image.png 211Кб, 1227x695
1227x695
>>670336
С видом сбоку пикрелейтед
Проваливается как на пик2, когда игрок падает на землю и переворачивается
Аноним 17/05/20 Вск 15:41:47 670344652
>>670330
Кидай рейкаст от цели камеры (игрока) по направлению к камере, если на пути будет объект, двигай камеру на место перед объектом. Или просто скачай Cinemachine, там это из коробки.
Аноним 17/05/20 Вск 15:51:18 670345653
>>670344
Можешь про первое подробней обьяснить как сделать?
Аноним 17/05/20 Вск 16:44:17 670357654
>>670345
Пока ты ждёшь ответа от анона, который возможно оставил пост и надолго ушёл, ты уже сто раз мог это загуглить.
мимо
Аноним 17/05/20 Вск 17:43:41 670374655
>>670357
>оставил пост и надолго ушёл

Так и есть
>>670345
Тебе нужны следующие переменные: позиция игрока, позиция камеры, расстояние от игрока к камере, и LayerMask. В леермаске
ты убираешь layer игрока, чтобы луч проходил сквозь него.
Дальше в момент когда ты двигаешь камеру, пишешь что-то вроде

if(Physics.Raycast(позиция игрока, позиция камеры, var out hit, расстояние, маска))
{
тут выполняется код, если луч натыкается на объект. Значит нужно сдвинуть камеру, для этого ты берешь hit.point (точка, где луч останавливается), и двигаешь камеру туда.
}
else{
тут луч ни на что не натыкается, значит объектов перед игроком и камерой нет, ты двигаешь камеру как обычно.
}

Но я бы все равно рекомендовал скачать Cinemachine.
Аноним 17/05/20 Вск 18:35:09 670404656
Аноним 17/05/20 Вск 19:58:54 670433657
>>670330
>inb4 >создай пустой обьект, добавь ему колижн и сделай камеру дочерней ему
Онтколижн энтер/стэй там какой-нить дисейблер булеан поставь.
Аноним 17/05/20 Вск 21:05:23 670466658
Аноним 18/05/20 Пнд 00:08:34 670516659
>>659486 (OP)
Как сделать так, чтобы центром мыши был ее центр, а не левый верхний угол?
Аноним 18/05/20 Пнд 00:35:05 670521660
Аноним 18/05/20 Пнд 21:25:23 670931661
Зацените посоны генерацию пещерок лабиринта, 1 вход и 1 выход через всю протяжённость, и на коротких ответвлениях тупики.
Аноним 18/05/20 Пнд 21:29:21 670933662
Unity2020051900[...].mp4 31193Кб, 1600x752, 00:00:41
1600x752
Unity2020051900[...].png 2694Кб, 1600x767
1600x767
Зацените посоны генерацию пещерок лабиринта, 1 вход и 1 выход через всю протяжённость, и на коротких ответвлениях тупики.
Аноним 18/05/20 Пнд 21:44:34 670941663
>>670933
на самом деле какой-то довольно рандомный и дающий весьма однообразный результат метод. какая-то лютая кишка с пучком аппендиксов. чего делаешь то? расскажи о проекте.
алсо советую глянуть https://youtu.be/ySTpjT6JYFU
Аноним 19/05/20 Втр 05:18:28 670995664
Unity2020040114[...].mp4 17540Кб, 1600x752, 00:00:11
1600x752
>>670941
>довольно рандомный и дающий весьма однообразный результат метод
Ну "каркас" уровня у меня вроде получился, ещё немного логику завершение додумать для комнаты с боссом, может растущие большие комнаты в бок ещё сделать, а то туповато что такие только по вертикали.
>чего делаешь то? расскажи о проекте.
2д топдаун рогалик, периодически сюда за советом прихожу.
Аноним 19/05/20 Втр 05:36:06 670997665
>>670995
Че они ватные какие-то, как будто воздух бьешь
Аноним 19/05/20 Втр 19:30:59 671180666
Аноним 20/05/20 Срд 01:45:02 671278667
BulletManager.webm 491Кб, 1040x746, 00:00:07
1040x746
>>671180
лол вопрос в том правда ли тебе трасеры только нужны, или сразу и пули менеджить и прочую хуйню.
если просто трасеры то сделай дилдо да сунь его в партиклы и заставь светится. а если нечто большее то это уже вопрос поинтересней.
Аноним 20/05/20 Срд 13:25:23 671356668
Аноним 20/05/20 Срд 13:54:08 671363669
>>671278
>>671356
Спасибо.
>пули менеджить и прочую хуйню
Под ведро делаю поэтому не уверен насчет производительности.
Аноним 20/05/20 Срд 16:35:51 671397670
2D игра, реализовал стрельбу. Как сделать игнорирование пулей коллайдеров персонажа?
Аноним 20/05/20 Срд 16:36:10 671398671
>>671397
>коллайдеров игрока
Конечно же
Аноним 20/05/20 Срд 16:47:20 671400672
Аноним 20/05/20 Срд 17:43:26 671408673
Дрочеры, к вам вопрос
Сейчас делаю юнити туториалы, и там для 2д рогулайка для движения противников расчитываются как для 3д моделей с векторами и прочей хуйей, хотя игра двухмерная и поклеточная.
Я до этого когда делал игры на вебе, для движения использовал систему координат внутри игрового поля то есть х+1/y-3 к примеру
как более правильно и стоит ли переучиваться если 3д игры не интересуют вообще?
Аноним 20/05/20 Срд 20:59:52 671444674
Аноним 20/05/20 Срд 21:26:08 671449675
image.png 661Кб, 750x422
750x422
Всем добрый вечер, насколько сложной для реализации является следующая идея:
создание игры, типо city builder, т.е. на плоскости можно размещать определенные объекты, и чтобы нельзя было их поставить друг на друга, и было бы возможность разместить объект типо ямы, который бы визуально изменил рельеф.
При этом от city builder не нужен остальной функционал, только вот эта возможность размещать разные объекты из списка

Есть несколько 3д шников, которые работают в майе и блендере, в том числе для игр. Я тоже занимаюсь 3д, но одно время делал простенькие приложения на шарпе.

Итак вопрос: можно ли где-то узнать, как это реализовать, а лучше найти человека, которому можно заплатить за такое объяснение? Или это очень трудозатратно и в одиночку такое не сделать, даже имея готовые модели для игры?
Аноним 20/05/20 Срд 21:27:34 671450676
>>671449
или есть ли например какие-то курсы, где бы объяснялось как реализовать аналогичные механики в юнити?
Аноним 20/05/20 Срд 21:45:17 671453677
>>671449
>>671450
Делай на годоте он для этого в разы лучше
Аноним 20/05/20 Срд 21:49:11 671454678
>>671449
А если серьезно то это достаточно просто сделать
Тут больше вопрос будете ли пилить спрайты как на картинке или трехмерными моделями баловаться, и для того и того есть туториалы в шапке в разреще новичков, настолько это просто
Аноним 20/05/20 Срд 21:53:25 671457679
>>671453
По юнити много материалов, платных и бесплатных
И я не знаю питона, не уверен что разберусь с GDScript, но если есь например площадка с туториалами для гадота, где можно было бы найти создание сити билдера, было бы круто
Аноним 20/05/20 Срд 22:01:39 671469680
Аноним 20/05/20 Срд 22:31:04 671496681
>>671444
>There is no 'Collider' attached to the "Bullet" game object, but a script is trying to access it.

Из префаба нельзя использовать что ли?
Аноним 20/05/20 Срд 22:35:43 671498682
>>671454
трехмерные модели на ваш взгляд усложнят работу?
Аноним 21/05/20 Чтв 01:33:11 671517683
johnleepee-synt[...].jpg 721Кб, 1920x1080
1920x1080
Чики двощ.
Нужна текстура вот такого формата, чтобы наложить на терейн, сам текстуры делать вообще не умею, поэтому реквестирую или данную текстуру, или какой-нибудь гайд как её сделать
может ещё подскажете какие фильтры или что такое, чтобы больше synthwave'ости придать?
Аноним 21/05/20 Чтв 13:04:09 671564684
Аноним 21/05/20 Чтв 13:04:59 671565685
Привет, аноны.
Хочу в 2D шутере реализовать разброс при выстреле:

rotationY = Quaternion.AngleAxis(UnityEngine.Random.Range(-5.0f,5.0f), thisTransform.up);
rotationX = Quaternion.AngleAxis(UnityEngine.Random.Range(-5.0f,5.0f), thisTransform.right);

Вопрос - почему они в итоге оказываются оба равны (0,0, 0,0, 0,0, 1,0) ?
Аноним 21/05/20 Чтв 18:25:56 671641686
>>671565
У тебя хуйня какая-то, тебе нужна atan2 функция.
Аноним 21/05/20 Чтв 18:59:34 671652687
image.png 8Кб, 354x195
354x195
Ребята, "yield return null" в IEnumerator, это то же самое, что и StopCoroutine()? Или мне обязательно надо после StartCoroutine() запустить StopCoroutine(), чтобы не осталось каких-то внутренний вычислений?
в корутинах не понимаю нихуя
Аноним 21/05/20 Чтв 19:11:28 671657688
image.png 10Кб, 370x245
370x245
>>671652
ps нашел косяк в своем коде, он всегда работал, даже при ReachDestination().
Вот это работает, null надо за пределы while вынести, после него
Аноним 21/05/20 Чтв 19:12:26 671658689
>>671657
pps но вопрос собственно остается - можно обойтись без StopCoroutine()?
Аноним 21/05/20 Чтв 19:49:18 671671690
>>671652
yield return null это эквивалент yield return new WaitForFrame()
для выхода из корутины надо yield break;
и останавливать не обязательно
Аноним 21/05/20 Чтв 20:35:46 671699691
Шалом.
Есть персонаж, у него есть аниматор контроллер и два оверрайд контроллера, где анимации я разным оружием.
Как сделать переключение между аниматор контроллерами?
Или лучше в один основной все запихать и вызвать из него нужное древо клипов?
Аноним 21/05/20 Чтв 23:28:02 671747692
>>671671
к слову в каждом цикле делать new WaitForFrame() это значит генерировать новый мусор в памяти в каждом фрейме.

var wait = new WaitForFrame();

while (true) {
yield return wait;
}
Аноним 22/05/20 Птн 01:14:13 671758693
>>671747
>>671671
Спасибо, господа.

>>671747
А yield return null и yield return break создают мусор?
Аноним 22/05/20 Птн 01:17:29 671759694
Зачем нужен OnTriggerEnter когда есть OnCollisionEnter ?
22/05/20 Птн 03:44:58 671775695
Анон, не гони ссаными тряпками, спаси мою жопу от плавления. Как пофиксить лаги в плей моде, когда он не на фул скрин? В билде и когда фул скрин плей мода - всё работает как надо и фпс выше сотки, профайлер ничего не показывает лишнего. Так же и когда без фул скрина, но сука фпс не повышается выше 20-30, хотя юнити пишет что 100+.
Даже переустановка юнити не помогла от этого, как и пересоздание проекта. В гугле решения не найдено, увы.
Аноним 22/05/20 Птн 05:07:57 671777696
Анончик, есть ли смысл, в целях оптимизации, если мне нужно передать информацию определённого геймобжекта другому геймобжекту, создавать ссылку в классе принимающего именно на нужный конкретный передаваемый параметр, а не на целый геймобжект с нужной информацией?
Аноним 22/05/20 Птн 05:08:55 671779697
>>671759
У триггера физики нет.
Аноним 22/05/20 Птн 07:02:22 671790698
Плохое зло.jpg 148Кб, 720x540
720x540
Поставил 2020.2 и сломалась фича. Если правой кнопкой кликнуть на ассет, можно выбрать show in explorer и отроется папка с ассетом, сейчас просто открывается папка этот компьютер? Кто-нибудь знает как пофиксить? Переустанавливал юнити, без изменений.
Аноним 22/05/20 Птн 07:46:48 671793699
>>671790
Только откатываться, юнитеки как обычно
добавить папку с проектом в быстрый доступ и делать навигацию руками
Аноним 22/05/20 Птн 07:50:25 671794700
>>671793
>добавить папку с проектом в быстрый доступ и делать навигацию руками
Ну это понятно, проблема не такая страшная, но юнити люблю за такие мелкие удобные штуки.
Аноним 22/05/20 Птн 12:15:46 671831701
>>671777
Мой вопрос тупой или сложный?
Аноним 22/05/20 Птн 12:18:39 671834702
Аноним 22/05/20 Птн 15:07:00 671870703
12333123.png 105Кб, 1335x750
1335x750
>>671831
такого сорта оптимизации уже контекст требуют. что это за информация? как ты её передаешь? как часто? ты давай расскажи чё ты там делаешь.
Аноним 22/05/20 Птн 16:27:43 671887704
>>671870
Ну вот у меня есть алгоритм поиска пути: на нпс(объект принимающий информацию) в скрипте его класса есть выделенная переменная типа ГеймОбжект, на которую идёт запись ячейки "пространства" при входе в её триггер, такая же переменная есть на управляемом персонаже, и пересчёт пути нпс к игроку идёт при смене ячейки пространства кем либо из них, чтобы не пересчитывать путь каждый ФикседАпдейт.
Так вот я решил недавно от ячейки "пространства" передавать не весь компонент ГеймОбжект, а его кусок в виде класса, содержащего один инт, один вектор3 и четыре соседних объекта этого же класса, но мне кажется я хуйнёй прострадал.
Вот скрипт записи по триггеру:
protected void SetLocationCell(GameObject cell)
{
if (locationCell == null)
if (cell.tag == "NavigationCell")
{
locationCell = cell.GetComponent<Navigation>();
}
if (locationCell != null && locationCell.GetInstanceID() != cell.GetInstanceID() && cell.tag == "NavigationCell")
{
locationCell = cell.GetComponent<Navigation>();
}
}

Вот класс:
public class Navigation : MonoBehaviour
{
private Navigation UpContactCell;
private Navigation DownContactCell;
private Navigation LeftContactCell;
private Navigation RightContactCell;

private int ID;

private Vector3 Position;

дальше переменных нет
}
Аноним 22/05/20 Птн 16:38:40 671891705
>>671887
wut. у тебя ячейка пространства - геймобжект? но зачем?
Аноним 22/05/20 Птн 16:56:41 671892706
>>671891
Пустой ГеймОбжект с триггером, я просто себе представить другой способ реализации не могу в условиях игры, уровень генерируется рандомно и сетку для поиска пути вот таким образом к кускам из которых генерируется припаял.
Аноним 22/05/20 Птн 17:04:06 671894707
>>671892
наркоман ты этакий. у тебя разные куски сетки чтоли в разной системе координат, или что? у тебя же после генерации уровня известны его размеры? держи весь грид уровня в каком-нибудь массиве в статичном классе, после того как он сгенерируется. если он у тебя расширяется в процессе то просто увеличь размер грида в процессе. если он у тебя пиздец варп мир хаоса то подели на чанки и уже их перемешивай. нахуй нужны какие-то тормозные геймобжекты, особенно в навигации.
Аноним 22/05/20 Птн 17:52:28 671906708
>>671894
Бля, ну я полагал что делаю не правильно, но меня пугает этот гридлэйаут, я нихуя про него не знаю. Эта сетка взаимодействует с коллизиями? Как в неё можно передать информацию? Могу я представить отдельную её ячейку как мини-объект, чтобы мне весь алгоритм не переписывать, а просто подсунуть эти мини-объекты вместо моих геймобжектов? Может есть какой гайдик пиздатый, где мне на пальцах всё объяснят?
Аноним 22/05/20 Птн 17:59:06 671907709
>>671906
какой нахрен грид лэйаут. это же херня для гуя. тебе то явно не гуи нужен. тебе нужно хранить информацию о мире не через жопу. смею предположить что грош цена твоему алгоритму и теперь когда ты знаешь как его написать то можешь написать его по человечески по другому.
а о том как структурировать мир в гриде - ну ты совсем уже такие вопросы задавать то. в гугле забанили чтоли? ну посмотри этого https://youtu.be/waEsGu--9P8

и вообще нахер тебе коллизии? зачем? тебе же чтобы узнать где находится какая-то херня на гриде достаточно кординаты на размер клетки поделить.
Аноним 22/05/20 Птн 18:23:51 671916710
>>671907
По коллизиям разметить непроходимые участки.
Аноним 22/05/20 Птн 18:25:45 671918711
>>671916
в грид флажок сунь "вот тут ходить нельзя" лол. нахер тут коллизии то
Аноним 22/05/20 Птн 18:31:51 671922712
>>671918
Уровень рандомно генерируется, полагаю мне с каждой ячейки рейкаст надо будет кидать, чтобы такой "флажок" сделать.
Аноним 22/05/20 Птн 18:37:20 671924713
>>671922
что за хуиту ты там написал, сумасшедший?
мне даже страшно предположить что ты там написал если тебе чтото рэйкастить надо. сначала уровень генерируется в гриде, потом он появляется из этой информации в мире. сначала представление об уровне, потом он только рождается в сцене. ячейка уже существует в гриде. она там хранится нахуй. это единственное где информация о ней существует. всё остальное лишь интерпретация этой информации.
какой нахер рэйкаст
Аноним 22/05/20 Птн 19:03:42 671932714
>>671924
>мне даже страшно предположить что ты там написал
Ну вот, ты представления не имеешь, а оскорблениями рассыпаешься. В общем не суть. На основной вопрос >>671777 ответа я не получил, но полагаю смысл передавать меньше информации есть.
Аноним 22/05/20 Птн 19:20:29 671934715
2.png 144Кб, 1136x781
1136x781
>>671932
потому что никто в здравом уме не будет использовать мешанину из геймобжектов как структуру данных. это же говна кусок а не структура данных. как она хранится? как быстро схватит элемент? как связать эти элементы? как использовать их для вообще чего-то полезного? каждый ответ на подобный вопрос звучит как проект в себе. если структурой данных пользоватся можно только через жопу то возможно следует сесть и долго подумать над её проблемами.
а у тебя структура данных это грид нахуй. запихни его в массив, храни всю информацию там, обратится к нужной тебе информации можно по индексу. ответ на твой вопрос - посмотри видос который дали, погугли имплементации грида. иначе ты с этим говном застрянешь на добрые пару месяцев которые проебёш на набивание шишек. и это плохой сорт шишек.
Аноним 22/05/20 Птн 23:11:46 672018716
>>671934
Почитал вскользь ваш дискасс и такая сразу ностальгия по нулевым. Когда на форумы типа sql.ru закатывались оголтелые нубы с чудовищными заблуждениями в программировании в частности и в АйТи в целом, а местные старожилы избивая лица фейспальмами пытались им что-либо объяснить. И одним из тех нубов был я, дааа.
Аноним 22/05/20 Птн 23:37:35 672031717
У меня есть класс и есть производный от него. В производном переопределен метод, вызываемый в исходном в Update(). Вопрос - почему он не вызывается? Update не переопределяю.
Аноним 23/05/20 Суб 00:09:27 672052718
>>672031
Вопрос решен, проблема была в другом
Аноним 23/05/20 Суб 06:37:33 672085719
>>671934
У меня просто каждый объект знает о существовании соседних, ни в каких структурах/массивах я не держу отдельно этой информации. При подсчёте пути уже храню и кручу коротенький массив с представленными выше Navigation на считающем объекте. Работает без нареканий, если в дальнейшем будут проблемы с производительностью - пересмотрю подход к навигации.
Аноним 23/05/20 Суб 07:51:38 672088720
>>672018
кек, да. только теперь я вот по другую сторону и не я задаю тупые вопросы, а я на них отвечаю.

>>672031
юнити реализует только последний метод в иерархии из его API, да. эта путаница с тем что эти методы не абстрактные/виртуальные не очевидна на первый взгляд.

>>672085
ты и в гриде знаешь о существовании соседних, наркоман. у тебя вот грид хуйня[,] например. как узнать есть ли рядом с хуйня[x,y] чет ещё? ты такой "а нука дай ка хуйня[x+1,y], хуйня[x-1,y], хуйня[x,y+1], хуйня[x,y-1]. или можно хранить индексы соседей в самом типе "хуйня". то-же самое нахуй что у тебя, только ты можешь ткнуть в рандомное место и сказать "дай чё тут". что избавляет тебя от всякой нужды пользоваться всякой хуитой вроде рэйкастов-хуйкастов и вообще каких либо геймобжектов. у тебя в дальнейшем будут проблемы не с производительностью, а с логикой. ты вдумайся, ты соседство передаёшь ЧЕРЕЗ ССЫЛКУ. у тебя нет ни какого-то централизованного места для управления всей твоей мешаниной, у тебя есть эта лапша из ссылок в сцене.

ты представь как смехотворно будет выглядеть если ты захочешь диагональную навигацию например ввести. ещё 4 ссылки добавишь на уголки, да? у тебя информация о соседстве элементов хранится уже в их координатах в гриде.

ну и я конечно мог бы побурчать на тему ссылочных типов и значений и на ощутимую разницу в производительности между ними.
Аноним 23/05/20 Суб 08:04:38 672090721
>>672088
>и не я задаю тупые вопросы, а я на них отвечаю
Уверен ты сможешь подкрепить свой профессионализм приведя пару своих финансово-успешных проектов сюда в пример.
Аноним 23/05/20 Суб 08:22:12 672091722
U11.webm 24580Кб, 1680x966, 00:00:15
1680x966
PathDeltaCost.webm 7069Кб, 1152x800, 00:00:37
1152x800
Door.webm 5436Кб, 1152x576, 00:00:25
1152x576
лол зачем. что это покажет? явно не уровень моего профессионализма.
могу немного старенькой техномагии вкинуть в тред. например я умею такую хуйню.
Аноним 23/05/20 Суб 08:49:40 672095723
>>672091
Здорово конечно, но ничто из представленного не похоже на завершённую игру.
Аноним 23/05/20 Суб 09:10:42 672096724
Unity6.webm 4100Кб, 1056x696, 00:00:36
1056x696
U - Sand.webm 31845Кб, 1680x966, 00:01:14
1680x966
123.png 25Кб, 274x400
274x400
P25.png 1726Кб, 1678x875
1678x875
че бы ещё такого показать

>>672095
а ты решение технического характера будешь спрашивать у техноколдуна, или среднестатистического говнодела?
Аноним 23/05/20 Суб 09:50:38 672101725
>>672096
Буду спрашивать в унитиансверс, в /гд/ всё равно одни шизики сидят не зависимо от того, что они там могут высрать.
Аноним 23/05/20 Суб 10:01:51 672103726
>>672101
Ну там тоже ебаклаков полно. А тут нет нет, да найдётся анон, который годноту подкинет.
Аноним 23/05/20 Суб 16:40:44 672176727
image.png 22Кб, 338x500
338x500
Если переменная используется только в одном методе, может лучше ее объявлять над этой функцией, а не на самом верху класса?
Аноним 23/05/20 Суб 16:46:02 672177728
>>672176
объявляй в самой функции лол. зачем тебе она в классе? это один хер структ. только мусор разносишь по классу
Аноним 23/05/20 Суб 17:02:42 672179729
>>672176
Сишарп изучи минимально, блеать.
Аноним 23/05/20 Суб 17:12:11 672180730
>>672177
Эта функция выполняется в update, разве это не создаст кучу мусора?
Аноним 23/05/20 Суб 17:18:44 672186731
>>672180
тебе и правда следует побольше узнать про шарп. какой мусор без ссылочных типов? с чего бы чему-то сильно менятся от места где ты обьявляешь переменные?
загугли:
1) c sharp heap stack
2) c sharp reference value type
и почитай очень внимательно. очень важно знать что такое хип, что такое стак. и очень важно понимать разницу между ссылочным типом и типом значения.
Аноним 23/05/20 Суб 18:34:35 672190732
А если такой код
Update(){
GameObject g = null;
// может, присвоим объект, а может нет.
}

"GameObject g = null" выделит место в куче или в стеке? Или пока нигде? Вроде это ссылочный тип (public sealed class GameObject), так что видимо в куче... В моем рабочем коде переменная или останется не назначенной, или ей присвоитcя уже найденный gameobject, но из заполненного в Start() массива (g = objects)
Аноним 23/05/20 Суб 18:37:17 672193733
>>672190
> (g = objects)
(g = objects[2])
Аноним 23/05/20 Суб 18:51:27 672198734
>>672190
GameObject g у тебя просто переменная, переменная ясен хуй у тебя в стеке. но переменная может содержать ссылку на объект который находится в куче. понимаешь? хуяк ты написал "вот тут функция у неё есть вот такие поля", конплюктор подумал "хммм надо выделить память под его хуйню вот тут написано че и сколько" и выделил. функция выполнилась, сделала че надо и поля в функции больше не нужны и подчищаются.
но поля то могут ссылатся на ссылочный тип, а ссылка это просто адрес какой-то хуйни в куче. понятно? одно - память локальная, как правило краткосрочная, фиксированного размера. другое - вот та хуйня мешанина хуй знает с чем и оно там ссылается где-то как-то на что-то.
Аноним 23/05/20 Суб 19:11:51 672202735
>>672198
>функция выполнилась, сделала че надо и поля в функции больше не нужны и подчищаются.
>>672198
>подчищаются
В этом случае, не сборщиком мусора?
Аноним 23/05/20 Суб 19:24:35 672205736
>>672202
наверно добавить надо чтобы у тебя было лучшее понимание что же за мусор такой непонятный. вот когда ты создаешь какую-то хуйню ссылочного типа ей выделяется адрес в куче. например у тебя хуйня1 содержит ссылку на хуйня2. а потом ты говоришь "отныне ссылка на хуйня2 = нулл". а что делать с объектом хуйня2? оно больше не нужно, ничего на неё не ссылается, а адрес и место в памяти занимает. вот тут то и начинается работа сборщика мусора (гугли garbage collector), он вжух-вжух прошелся отовсюду, проверил че там на че ссылается и если нашел какую-то хуйню на которую ничего не ссылается то удаляет это. только хуй его знает когда он это сделает, а если он ещё и много мусора за раз вынесет то у него может произойти отрыжка и фепесов не будет.
поэтому чтобы такой хуйни не было - не плоди сущности. темболее не плоди сущности которые ссылаются друг на друга. сборщик мусора может охуеть от такого и вообще решить что удалять не надо.

хуйня в стаке очевидно нигде особо не задерживается. если ты например сказал
void DoSomeShit(){
int someValue;
}
то конплюктор ясен хуй понимает что someValue нужно только на время выполнения этой функции и по её завершению это гарантированно больше не будет нужно.

но если ты сделал там чето ссылочного типа чему нужен адрес и хуйня то оно уже скорей всего продолжит свою жизнь в куче.
Аноним 23/05/20 Суб 19:28:16 672206737
>>672198
Если я допер, то все будет так:
Когда комп видит "GameObject g", то в этом случае в стек добавится g со значением null.
Когда будет присвоение g = gameObjects[4], значение g в стеке изменится с null на ссылку на gameObjects[4].
Когда функция выполнится, из стека удалится g с его ссылкой. То есть, тут мусора не будет, куча вообще не затрагивается
Аноним 23/05/20 Суб 19:32:50 672209738
>>672206
>куча вообще не затрагивается
ps объект, который в gameObjects[4], останется в куче, но он мне остается нужным, так что норм
>>672205
спасибо, семпай
Аноним 23/05/20 Суб 19:59:35 672215739
>>672206
в целом да. только стоит добавить что если ты просто написал в функции GameObject g; то у тебя будет не объявленная переменная. что там? а хуй его знает. а если написал GameObject g = null; то объявленная. но если ты написал это не в функции, а в классе то там она сама себя объявит как нулл, если ты сразу не написал че там должно быть.

если ты сделал переменную которая ссылается на какой-то элемент массива то разумеется новых сущностей ты не плодишь, просто шурудишь в стеке и достаешь оттуда уже созданный объект по его адресу.

но как можно догадаться шурудить в куче не всегда производительно. конплюктор конечно в ряде случаев понимает что ему понадобится заранее при выполнении той или иной функции и загружает это заранее, но ссылки могут быть мешаниной а обращаться в кучу далеко не всегда быстро.
поэтому массивы с сылочными типами это так себе. но другое дело то массивы с типами значений! когда ты обьявляешь массив с ссылочными типами там будут просто ссылки содержатся на всякую хуйню, а когда с типами значений то в этом массиве и будет содержатся вся информация. поэтому конплюктор посмотрит что функция например туда-сюда по массиву бегает и подумоет "вот эту хуйню надо в кеш процессора загрузить" и загружает весь массив сразу и с ним уже будет работать быстро-быстро.
советую почитать на эту тему https://jacksondunstan.com/articles/3399 очень хороший блог и там много всякого интересного.


вообще в юнити лучше лишний раз сущьностей не плодить на самом деле. в шарпе сборщик мусора заебись, только юнити то это не шарп. и сборщик мусора в юнити не очень.
новомодный ECS, кстати, призван решить проблемы такого характера. он всё ускоряет и облагораживает так как по сути там просто пучок массивов которые содержат структы, а не мешанина из ссылок как сейчас геймобжекты с компонентами.
Аноним 23/05/20 Суб 20:27:02 672222740
>>672215
> только юнити то это не шарп
Я вроде многое понимаю, но вот этого я не понимаю. Как это так юнити может не быть шарпом, если это блять шарповая сборка по факту?
Аноним 23/05/20 Суб 20:54:41 672232741
>>672222
потому что лол она и не шарповая. в юнити же 2.5 бакенда. моно и il2cpp. когда в моно компилируешь то результат примерно понятный. когда il2cpp пользуешься то оно там всю эту белиберду в плюсы интерпретирует и начинает запускать её уже везде и всюду.
недавно вон ещё LLVM докинули, который тут именуется Burst. он там уже шарпокод в другую интересную хуйню интерпретирует со своей массой ограничений и приличным таким приростом производительности.

так то юнити шарп как язык для скриптов используется, а свое говно оно на плюсах ворочает.
Аноним 23/05/20 Суб 20:55:59 672234742
Desktop Screens[...].png 63Кб, 584x737
584x737
>>672232
пикчу забыл. очень важный пункт в меню
Аноним 23/05/20 Суб 22:16:06 672252743
>>672234
>>672232
Существует ли возможность прогнать через il2cpp свою программу? Хотя, не отвечай, пойду сам погуглю.
Аноним 23/05/20 Суб 22:33:05 672255744
Судя по тексту из https://learn.unity.com/tutorial/fixing-performance-problems
вот этот код будет заполнять кучу строкой "TIME"
void Update()
{
timer += Time.deltaTime;
timerText.text = "TIME:" + timer.ToString();
}
,поэтому надо закешировать "TIME" в переменную.

А когда передается текстовый параметр в метод, например, Input.GetAxis("Horizontal"), здесь тоже в каждом фрейме будет создаваться мусор? Может лучше тогда Input.GetAxis(HOR_AXIS_NAME)?
Аноним 23/05/20 Суб 22:42:55 672257745
>>672255
>In the following code, we create a string for a score display in Update() by combining the string "TIME:“ with the value of the float timer. This creates unnecessary garbage.
Мусор создает не флоат (флоаты вообще никогда не как не могут создать мусор), а вот это добавление строки к строке
>timerText.text = "TIME:" + timer.ToString();
Аноним 23/05/20 Суб 22:49:50 672260746
>>672257
Я и не писал про float. ну короче, вот это создает мусор
Update() {
String f = "lalalala";
}
А что насчет:

SomeFunction("string parameter")
SomeFunction("string parameter")
SomeFunction("string parameter")
SomeFunction("string parameter")

void SomeFunction(string kek) {
uiText.text = kek;
}
Аноним 23/05/20 Суб 22:57:00 672264747
>>672260
Насколько я помню, строки сами по себе не создают мусор, поэтому в обоих твоих примерах мусора не будет, а вот если бы ты делал
строка + строка, или строка += строка, это создало бы мусор.
Аноним 24/05/20 Вск 14:07:20 672371748
Пацаны, помогайте. Перечитал по пять страниц гугла, но решения проблемы не нашел.
Проблема: На сцене куча динамических объектов, все с физикой, для всех нужен динамический свет. Фпс проседает до 20-30~, батчей по 10к. Что-то можно сделать или юнити не вытянет такое?
Ассеты Аноним 24/05/20 Вск 14:25:52 672376749
Поделитесь ссылочками на сливы ассетов для юньки. Раньше годные были unity3ddd.ru и u3d.at.ua, но оба сдохли нахуй
Аноним 24/05/20 Вск 15:39:01 672397750
>>672371
Физон можешь на DOTS перенести и начать ненавидеть себя, либо уменьшить fixedDeltaTime.
А свет - юнити не вывезет,у них неправильная архитектура рендеринга, поэтому и пилят DOTS, в будщем, возможно, пофиксят, а сейчас делай костыли - например если дистанция больше 100, то ресуй тень через прожектор.
Аноним 24/05/20 Вск 16:33:29 672417751
Аноним 25/05/20 Пнд 17:56:23 672625752
2D: У меня есть ствол из которого рисуется длинный луч.
При рисовании луч создается из края ствола и идет в обе стороны. Как изменить начальную координату в зависимости от положения края ствола?


пробовал изменить position в зависимости от localscale но выходит полная срань
Аноним 25/05/20 Пнд 19:16:12 672635753
На юнити реально получить доступ к навмешу и экспортировать все точки где ботам дозволено ходить?
Аноним 25/05/20 Пнд 21:45:16 672666754
Чет прочитал посты про мусор, страшновато стало. Потом узнал, что в профайлере можно следить, где мусор создается. Везде GC Alloc = 0.0. Так что ок,я успокоился
Аноним 25/05/20 Пнд 22:43:36 672686755
image.png 54Кб, 884x351
884x351
image.png 27Кб, 874x180
874x180
>>672666
А стоп, вроде все и правда неприятно.

Запустил такую шнягу в Update:
string grr = "zzz";
string test = Time.time + " jjj " + grr;
T t = new T();
t.g = Random.Range(1,111111111);
В итоге в каждом фрейме в gc alloc содержится 140 B. Это значит, каждая итерация прибавляет 140 B в мусор? Если в секунде, скажем, 100 итераций, то через секунду там будет 140 * 100 = 14000 B?

Потом оставил только
T t = new T();
t.g = Random.Range(1,111111111);
теперь в gc alloc постоянно 20 байт.
Аноним 25/05/20 Пнд 22:48:11 672689756
image.png 267Кб, 1920x1080
1920x1080
Да, точно, все копится, через пару секунд сбрасывается - это и есть работа сборщика мусора?
C 9.7 мб сбрасывает до 7.9 мб
Аноним 26/05/20 Втр 03:48:11 672727757
Можно ли в коде проверить, есть ли на указанном отрывке пространства коллайдеры или объекты?
Аноним 26/05/20 Втр 03:55:35 672729758
>>671779
То есть если у меня пули с триггером на большой скорости пролетают коллайдеры, о которые должны уничтожаться, то с коллизией проблем не будет?
Аноним 26/05/20 Втр 07:14:28 672733759
>>672686
Строки в C# immutable-type т.е. при изменении строки создается новый экземпляр в памяти (+80) и старая остается висеть в памяти.
Concat, сложение, format - вообще вся работа со строками не изменяет их, а создает новые.
Раньше советовали использовать StringBuilder - он создает 1 строку после всех append-ов, но каждый кадр так делать все равно не оптимально, кешируй или проверяй на изменение.

>>672689
Да, это он - СБОРЩИК

>>672727
В Physics есть SphereCast (возможно и RectCast есть, тебе он и нужен) и доп методы SphereCastAll - он соберет абсолютно все коллайдеры вокруг точки.

>>672729
Тебе нужно будет повесить на них RigidBody и выставить CollisionType (или как там) Continious (чтобы коллайдер не пролетал насквозь некоторых объектов) или написать свой вариант (как многие и делают) с пусканием райкаста из предыдущей точки в текущую, возможно так будет даже лучше т.к. хер его знает как там физика под капотом работает.
Аноним 26/05/20 Втр 08:28:56 672735760
>>672260
>>672686
>>672689
лол строка это массив с буквами и няшным синтаксисом. что ты ожидал увидеть кроме этого?

>>672733
>Раньше советовали использовать StringBuilder - он создает 1 строку после всех append-ов, но каждый кадр так делать все равно не оптимально, кешируй или проверяй на изменение.
на самом деле тут конечно больше одного решения. самое оптимальное - просто не делать строки. для чисел можно например пулл и вместо 123 отдельно отображать 1, 2, 3, а как они поменяются отправлять в пулл и достать из него новый набор цыфр.

>>672727
https://docs.unity3d.com/ScriptReference/Physics.html открой и прочитай. вот там где Cast и CastAll
а вообще лучше напиши че ты хочешь более детально

>>672635
ноуп. самое близкое что к этому есть наверно NavMesh.SamplePosition.
вроде была возможность получить сам меш навмеша, так что наверно зная меш можешь это получить.
у юнити с навигацией всё довольно хуево. конечно лучше чем несколько лет назад, дали такую хуйню https://github.com/Unity-Technologies/NavMeshComponents и теперь можно в рантайме навмеш делать. но это всё равно далеко от полезного.
поэтому я например свой навмеш стал писать, но на это ушло ебическое количество времени.

>>672729
рэйкастами, или сферкастами ебош свои пули. вообще напиши себе менеджер пуль который бы делал всё это чтобы не плодить объекты пуль в сцене. примерно как тут. >>671278
Аноним 26/05/20 Втр 08:43:20 672737761
>>672176
В общем случае переменные нужно объявлять как можно ближе к непосредственному использованию. Желательно прям в том блоке, где она будет использоваться.
Аноним 26/05/20 Втр 10:36:56 672744762
>>672737
это ты сам придумал? во первых переменные которые ты вставляешь в методы, особенно те что вызываются часто, генерируют мусор и потому есть такое понятие как кэширование. а во вторых если у тебя перед каждым методом объявляются переменные, то скорее всего весь твой код это нелепое неподдерживаемое детское дерьмо. держи код короче и почитай про solid. не самое бесполезное чтиво

>>672737
открываешь код юнити на гитхабе или какие-нибудь сэмплы от майкрософта
https://github.com/Unity-Technologies/UnityCsReference/blob/master/Editor/Mono/ScriptEditorUtility.cs

смотришь: поля класса над всеми методами. переменные метода там где им нужно быть в коде. общепринятая практика
Аноним 26/05/20 Втр 13:31:11 672776763
Аноним 26/05/20 Втр 14:42:51 672785764
>>672744
>во первых переменные которые ты вставляешь в методы, особенно те что вызываются часто, генерируют мусор и потому есть такое понятие как кэширование
В переборе массива допустим я объявляю переменную счёта итераций прям в нём - это плохо? Нужно ли мне морочиться и перечитывать весь код в поисках таких переменных и объявлять их в самом начале? Ну допустим на все переборы массивов сделать один заранее объявленный int iteration, и ему уже присваивать разные значения в разных функциях. На кидаемый постоянно raycastAll[] тоже допустим заранее объявить в классе массив, а не перед каждым рейкастом его создавать, и какой размер нужен этому массиву, ведь динамическое его увеличение или уменьшение длины - тоже затратная операция по идее.
Аноним 26/05/20 Втр 15:17:17 672789765
>>672785
https://docs.microsoft.com/ru-ru/dotnet/api/system.diagnostics.stopwatch
че ты спрашиваешь возьми да проверь

на этапе прототипирования не морочь себе голову, пиши так чтобы потом переписать было легко. инкапсулируй всю хуйню, чтобы потом можно было залезть и поменять как работает не меняя функциональности. а то ты так наоптимизируешь а потом поймешь что всё хуйня давай по новой. а время уже проёбано.
Аноним 26/05/20 Втр 15:40:38 672791766
>>672785
Если ты хочешь понять как это работает внутри то воспользуйся советом этого анона >>672789
Если ты хочешь делать игры, то делай прототип, оптимизацией будешь заниматься потом. Тратишь время.
Аноним 26/05/20 Втр 15:58:50 672793767
>>672789
За ссылочку спасибо.
>>672791
Ну я то делаю, прост на будущее, мне кажется как минимум на int iteration удачная идея, если логика по апдейту крутится, а не в каких-нибудь корутинах, где разные участки кода одного объекта могут этот инт одновременно дёрнуть.
Аноним 26/05/20 Втр 15:59:02 672794768
lifeHacks.png 38Кб, 1325x402
1325x402
>>672785
Смотри лайфхак, чтоб проще понять:
наводишь на тип переменной, кликаешь левой мышкой, жмешь F12 и видишь public class/struct ИмяТвоегоТипа.
Дальше если это class - его нужно кешировать или держать внутри классов, а если это struct - то не ссы и используй где хочешь, как хочешь, и не страшно создать внутри метода.
Однако стракты отличаются по поведению с классами, про это можно почитать или наткнуться
Аноним 26/05/20 Втр 16:12:24 672796769
>>672794
>а если это struct - то не ссы и используй где хочешь, как хочешь, и не страшно создать внутри метода
Хорошо. Ещё вопрос тогда - вот объявлена переменная int внутри метода, программа скомпилирована и работает: крутится апдейт-> вызывается метод -> динамически создаётся эта переменная -> метод заканчивается -> кто-нибудь типа сишарповского "сборщика мусора" удалит эту переменную из памяти или происходит утечка и она остаётся висеть, а в следующем апдейте опять вызывается этот метод и утечка происходит каждый апдейт?
Аноним 26/05/20 Втр 16:16:25 672797770
>>672796
Т.к. она struct, то после завершения метода она СРАЗУ будет удалена из кеша, а еще стракты обрабатываются ЦП быстрее чем классы и вообще молодцы.
Сборщик приходит только за данными типа class, кстати массив страктов это тоже класс, например:
Vector3[] Blyad = new Vector3[]; это класс и так делать каждый тик не рекомендуется.
Аноним 26/05/20 Втр 16:16:37 672798771
>>672796
нучись уже отличать тип значения от ссыочного типа. в типе значения выделяется Х байтиков в стеке. функция завершается - стек удаляется из памяти. сборщик мусора в этом процессе не учавствует, ему нечего делать.
если ты создаешь ссылочный тип то он перемещается в долговременную памяти и сидит уже там. тебе уже намекнули про различие класса и структа.
Аноним 26/05/20 Втр 17:28:12 672822772
Хочу найти расстояние между положением курсора и объектом, но результат (который проверяю отрисовывая луч) вообще не имеет отношения к системе координат юнитей.

length = (cam.ScreenToWorldPoint(Input.mousePosition)- thisTransform.TransformPoint(thisTransform.position)).magnitude;

Если убрать TransformPoint то тоже говно.

ЧЯДНТ?
Аноним 26/05/20 Втр 17:31:59 672824773
>>672822
лол ты где и что вообще пытаешься померяеть. на экране? в мире? в какой системе координат?
Аноним 26/05/20 Втр 17:45:35 672829774
>>672824
В мире. Вообще это неважно, главное в одной системе, длина вектора будет одинаковой, если обе позиции в одной коорд. системе.

Сейчас юзаю для обоих cam.ScreenToWorldPoint, тоже хуйня.

Вообще задача в том чтобы изменить размер игрового объекта (линии) в зависимости от этого расстояния.

Для этого делю получившееся расстояние на line.GetComponent<SpriteRenderer>().sprite.rect.width , но тоже хуйня выходит.
Аноним 26/05/20 Втр 17:52:40 672833775
Аноним 26/05/20 Втр 17:53:43 672834776
>>672829
ну если в мире то пусти лучик из камеры и получи колизию этого лучика в мире.
Аноним 26/05/20 Втр 18:18:23 672839777
>>672834
А зачем мне пускать луч из камеры ? Я пускаю из объекта с которого мне нужно расстояние. До сих пор не понимаю как изменить размер объекта без localScale, который работает только с изначальным размеров объекта. Единицы измерения пространства в юнити какая то параша.
Аноним 26/05/20 Втр 18:47:45 672855778
Аноним 26/05/20 Втр 18:48:59 672856779
2020-05-26 18-4[...].mkv 4681Кб, 1680x966, 00:00:06
1680x966
>>672839
очень загадочно что из чего в каком пространстве ты вообще хочешь. ScreenToWorldPoint вернёт тебе точку на клиппинг плейне камеры и измерять расстояние между точками на нём вообще непонятно нахуя. на мой взгляд ты суешь рандомные векторы друг к другу пытаясь найти комбинацию которая тебя устроит.
Аноним 26/05/20 Втр 18:54:00 672858780
>>672856
То есть найти расстояние между курсором и объектом невозможно?
Аноним 26/05/20 Втр 18:57:46 672860781
>>672858
вопрос в каком пространстве искать, блять. сказали же. в пространстве плоскости перед камерой, в пикселях, в сцене. переведи нужные тебе кординаты в одно пространство и измерь там. на видео дистанция курсора до центра кнопки, делаю невозможное нахуй.
Аноним 26/05/20 Втр 19:02:31 672863782
>>672860
transform.position это что? В сцене, полагаю
Аноним 26/05/20 Втр 19:03:53 672864783
Аноним 26/05/20 Втр 19:11:57 672866784
>>672864
Это понятно. А для курсора?
Аноним 26/05/20 Втр 19:12:55 672867785
Аноним 26/05/20 Втр 19:26:23 672876786
>>672867
Ну, я изначально и обратился по проблеме того что не могу найти расстояние между объектом и курсором. Манипуляции с mousePosition у меня с самого первого сбщ.

>>672855
>Везде где не гуглю для позиции мыши говорят юзать ScreenToWorldPoint.
И все равно нихуя не выходит
Аноним 26/05/20 Втр 19:54:18 672883787
Аноним 26/05/20 Втр 20:04:39 672884788
>>667284
Переводи канвас в world space.
Аноним 27/05/20 Срд 01:11:15 672929789
>>672883
что любопытно я это уже писал выше >>666438
после того постал проверил с кешированием, без него через getcomponent и уже просто через transform. удивительно но кеширование оказалось быстрее хоть и не особенно значительно. getcomponent сосёт хуй
Аноним 27/05/20 Срд 08:31:48 672942790
>>672929
> getcomponent сосёт хуй
Естественно. Иногда без него никак, например при генерации, но вообще его лучше избегать. Как и теги.
Аноним 27/05/20 Срд 13:14:25 672961791
>>672942
А что в тегах плохого?
Аноним 27/05/20 Срд 13:16:03 672962792
Анон, а вы в казуальных играх пользуетесь рекламой Unity или подключаете сторонние сервисы? Или вообще такое лучше с издателем решать?
Есть тут вообще казуалкодрочеры? Чем пользуетесь для показа рекламы?
Аноним 27/05/20 Срд 13:46:51 672967793
>>672961
сравнение по строковому значению не очень резкое. да и вообще текстовые операции это всегда какой-то рак. например конкатинацию рекомендуют избегать и потому лучше в ui не отправлять в хуйню типа
myText.tet = "хелсы: " + health;
а разбить на два элемента со статичным и динамическим текстом. кроме того что это решает вопрос конкатинации, это ещё и поможет потом с переводом.
так же тегов ограниченное кол-во и если ты один из них переименуешь, то заебёшься отлаживать
Аноним 27/05/20 Срд 13:56:04 672971794
>>672967
Ого, не знал, что так лучше не делать, спасибо.

А что вместо тегов тогда юзать? Мне кажется, это удобный вариант, хотя и не такой быстродейственный, согласен.
Аноним 27/05/20 Срд 14:05:17 672979795
>>672967
> лучше в ui не отправлять в хуйню типа
> myText.tet = "хелсы: " + health;
> а отправлять
> myText.text = $"хелсы: {health}";
Слоуфикс.
Аноним 27/05/20 Срд 14:05:52 672980796
>>672971
> А что вместо тегов тогда юзать?
Именованные числовые константы. Как диды.
Аноним 27/05/20 Срд 14:13:47 672986797
>>672961
Помимо того, что отписал ананас выше, есть ещё и такая хуйня как отваливание тегов. Не знаю, может это уже пофиксили, но года два назад после обновления версии юнити у нас весь отдел знатно прихуел, когда в эдиторе все тэги были и всё работало, а в билде всё к хуям сломалось.

>>672971
> А что вместо тегов тогда юзать?
Интерфейсы, например.
Аноним 27/05/20 Срд 14:27:03 672991798
>>672979
текстовая интерполяция проблемы не решает. подумал что новайс-куну будет проще понять о чём речь

>>672971
>А что вместо тегов тогда юзать?
tryGetComponent быстрей будет и надёжней. никакой аллокации если компонент на объекте не висит. и получишь сразу нужный компонент для взаимодействия вместо проверки по тегу, а потом getcomponent. олсо как писал анон так же ты ищешь и интерфейсы
Аноним 27/05/20 Срд 17:12:18 673027799
>>672991
Хм, звучит разумно и удобно насчет трайгеткомпонент.
>текстовая интерполяция проблемы не решает
Ну мой компилятор не ругается, когда использую текстовую интерполяцию. Но возможно да, лучше всего разделять два обьекта на UI и не ебать мозг с конкатенацией.
Аноним 27/05/20 Срд 17:49:06 673034800
>>673027
> Ну мой компилятор не ругается, когда использую текстовую интерполяцию
он и не будет. просто, на сколько мне известно, по скорости разницы между str1 + str2 и $"{str1}{str2}" нихуя нет

> Но возможно да, лучше всего разделять два обьекта на UI и не ебать мозг с конкатенацией.
ну, если честно, то конактинация и интерполяция не жрёт столько ресурсов сколько принято думать. главное не делать это в каждом кадре, а только по событиям. но, как человек из вебразработки, скажу что когда придёт время локализации ты охуеешь искать весь этот текст в коде
Аноним 27/05/20 Срд 17:53:05 673036801
>>673034
> когда придёт время локализации ты охуеешь искать весь этот текст в коде
Этот ананас дело говорит.
Мне пришлось писать систему локализации и каждый ебучий текстовый компонент и все дропдауны сажать на эту хрень, текст тоже лопатить пришлось.
Ещё есть такой подводный камень, как шрифт. Например, в казахском и башкирском языке есть стрёмные буквы, которые поддерживаются не всеми шрифтами.
В следующих проектах я это всё учёл и теперь с помощью самописного говна жонглирую текстом аки батя.
Аноним 27/05/20 Срд 17:54:15 673038802
>>673036
> текст тоже лопатить пришлось
То есть который захардкожен.
Аноним 27/05/20 Срд 18:15:21 673040803
>>672991
> текстовая интерполяция проблемы не решает
Нужны более весомые аргументы, чем пост на дваче. Есть сравнительные тесты? Я не думаю, что текстовую интерполяцию сделали на конкатенации. Вангую, там всё сделано на буферах. Гыгыгы, Баттхед, он сказал "буфера!"
Аноним 27/05/20 Срд 18:39:26 673048804
>>673034
>когда придёт время локализации
Это очевидно да.
Пока что даже не представляю, как это лучше реализовать.
Если именно текст в игре, то для диалогов я обычно использую Fungus, но вот UI и всё в таком духе... Даже не знаю.
У тебя как реализовано, если не секрет? Сделал XML таблицу? Написал свой редактор внутри юнити? Или как это вообще лучше делать?
Аноним 27/05/20 Срд 18:55:51 673051805
>>673048
Я не он, но у меня всё сделано через csv-файлы.
У каждой локализации есть ключ языка, у каждой строки есть ключ самой строки.
Экранируешь разделитель и наслаждаешься.
Через код подтягиваешь через метод, в который передаёшь ключ строки, на текстовые компоненты кидаешь компонент, который в сериализуемое поле принимает ключ.
Ещё в менеджере локализации прихуярено статичное публичное событие, на которое подписываются все компоненты и меняют локаль на лету.
Аноним 27/05/20 Срд 19:08:11 673058806
>>673048
у меня никак, я не делаю в играх текста. пару лет назад читал статьи по локализации и желание писать что-либо в играх это отбило навсегда. пользуюсь стрелками, иконками или вообще ничем
Аноним 27/05/20 Срд 19:10:59 673060807
>>673051
Ооо, понятно да, хороший вариант, спасибо за инфу.
Так кстати в Fungus тоже реализован их метод локализации.
Аноним 27/05/20 Срд 19:55:50 673072808
Поясните мне за старт и апдейт
Всегда думал что старт выполняется при запуске, но оказывается хуйня выполняется каждый фрейм и срет в память прямо как и апдейт
Аноним 27/05/20 Срд 19:57:25 673073809
>>673072
> старт
> выполняется каждый фрейм и срет в память прямо как и апдейт
Што?
Аноним 27/05/20 Срд 20:28:00 673077810
Аноним 27/05/20 Срд 22:37:05 673118811
Что с портом на андроид? сколько будет весить какой-нибудь кликер на нём? Как дохера юнити потребует места?
Аноним 27/05/20 Срд 23:29:37 673156812
140783392011600[...].png 576Кб, 700x658
700x658
>>673118
пару лет назад читал что минимальный apk который генерит unity это 6 метров. это просто пустая сцена безнихуя
Аноним 28/05/20 Чтв 00:13:00 673169813
Чет забыл, где то читал, но не помню. Если свойства объявить, не указав доступ
class Lol {
float kek = 1f;
}
kek будет private, ptotected, public?
Аноним 28/05/20 Чтв 00:26:20 673171814
>>673169
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/access-modifiers

перевожу:
твой класс Lol будет internal, а кек уже privatе

всякие дядьки взрослые в интернетах рекомендуют всегда писать модификаторы доступа мол это правила приличия такие и читать удобнее. не знаю на счёт приличия, но мне читать действительно удобней, сам пишу всегда и всем рекомендую
Аноним 28/05/20 Чтв 00:51:06 673175815
1590208078365.png 246Кб, 638x359
638x359
Посмотрел сколько относительно неплохих проектов уже есть среди платформеров. И никому ведь нахуй не нужны. Да и самому не интересно уже в такое играть. И настроение что-то изучать вообще проебалось. Как жить-то? Сами как с этим пониманием справляетесь?
Аноним 28/05/20 Чтв 00:59:19 673176816
>>673175
я рублюсь в super metroid и castlevania symphony of the night, а потом целыми днями заряженный хожу. действительно хорошие проекты не утонут. и изучаю не потому что потом продать кому-то хочу, а потому что мне заходит кодить всякие механики
Аноним 28/05/20 Чтв 01:24:59 673179817
>>673176
>я рублюсь в super metroid и castlevania symphony of the night
Ну да да, классека которая зародила жанр и можно сказать всё в нем что могла сказала. Смысл пародии лепить..
Аноним 28/05/20 Чтв 01:48:29 673181818
>>673179
есть же клёвые пародии. axiom verge например, там и вторая часть на подходе. environmental station alpha, hollow knight, cave story, rogue legacy, aquatic adventure of the last human, knytt наконец. и это только один субжанр в котором вспомнить смог. даже те что ничего нового для жанра не сделали проходятся с большим удовольствием. где-то атмосфера или история, где-то геймплей, где-то механика. всегда можно сделать лучше или иначе. пару лет назад нашёл сайт одного очень странного чувака и он делает игры на unity и не только. делает просто потому что может

https://www.increpare.com/2017/09/worst-guest/
https://www.increpare.com/game/a-story-about-a-cat.html

зацени вот эти две. выглядят они как хуй знает что, но в них есть идея. где-то жопнопердёжный юмор, где-то печальная история. или вот этот проект

https://gloomyghoul.itch.io/electric-tortoise

я долблюсь в юнити чтоб делать что-то подобное
Аноним 28/05/20 Чтв 02:44:36 673182819
>>673181
Делать потому что могу это как-то для неудачников
Аноним 28/05/20 Чтв 02:49:31 673183820
>>673182
не забывай что ты всё ещё на дваче
Аноним 28/05/20 Чтв 02:53:13 673184821
>>673183
Да неважно, ладно если он делает чтобы просто скилл поднимать, что скорее всего так.
Аноним 28/05/20 Чтв 08:52:10 673191822
>>673169
> Если свойства объявить
> В примере нит ни одного свойства
Аноним 28/05/20 Чтв 13:09:00 673203823
Есть .txt с 5к строк, нужно вытаскивать одну рандомную в рантайме, какой лучший способ?
Аноним 28/05/20 Чтв 13:12:44 673204824
Аноним 28/05/20 Чтв 15:24:46 673211825
>>673203
Если размер меньше 50мб -> ReadAllLines
Больше -> StreamReader -> байтоебля
Если грузишь прям во время игры -> AssetBundle.LoadFromFileAsync
Аноним 28/05/20 Чтв 15:34:51 673212826
>>659486 (OP)

Подходит ли terrain для мобильных игр? Или тут без вариантов нужно использовать plain с относительно большим полигоном и модифицировать его через polybrush?
Аноним 28/05/20 Чтв 15:57:33 673216827
>>673191
То есть не свойства а поля
Аноним 28/05/20 Чтв 16:13:18 673218828
Зачем тогда вообще нужно слово private, если и без него поля и методы приватные по умолчанию
Аноним 28/05/20 Чтв 16:17:29 673219829
>>673218
Какая-нибудь древняя среда разработки с большой вероятностью тебя за такое пошлёт нахуй.
Современные же понимают, что раз не поставил, значит private.
Аноним 28/05/20 Чтв 16:23:21 673220830
>>673219
А, ну юнити это не грозит. По крайней мере, если использовать последние версии всего, что требуется
Аноним 28/05/20 Чтв 16:34:00 673221831
>>672733
>Строки в C# immutable-type
до первого fixes(char* firstChar = &text);

Для своего экзепляра строки (который ты создал через new string('\0', 100500), который используется только для рисования UI это вполне валидное поведение (изменение строки), которое не будет приводить к утечкам. Лишние символы заменяются пробелами.
Аноним 28/05/20 Чтв 17:33:25 673228832
>>673218
я выше писал что это правила приличия и повышения читабельности

>>673220
при чём тут юнити то если речь о c#? если ms захотят это исправить, то твой код обосрётся. какой шанс что это случится? да никакого
Аноним 28/05/20 Чтв 17:36:06 673229833
>>673228
> если ms захотят это исправить
да их же на пику посадят. не бывать этому
Аноним 28/05/20 Чтв 17:40:37 673230834
Аноним 28/05/20 Чтв 19:06:24 673239835
Аноним 28/05/20 Чтв 20:28:14 673247836
Аноним 29/05/20 Птн 07:52:20 673308837
>>673221
Используешь fixes & unsafe context в своих играх?
Может еще и классы в стеке хранишь и наследуешь стракты от абстрактных классов? я знаю что это возможно, но кем нужно быть, чтобы так делать?
Аноним 29/05/20 Птн 09:39:39 673314838
image.png 5Кб, 602x90
602x90
Есть ли подводные у приведения типа в моем коде? Я сделал unitsPerSec nullable, без (float) выдает ошибку.
Аноним 29/05/20 Птн 09:53:53 673315839
>>673247
Да на первое предложение или второе?
Аноним 29/05/20 Птн 09:54:12 673316840
Аноним 29/05/20 Птн 10:30:21 673317841
Аноним 29/05/20 Птн 11:13:36 673322842
Поясните про Don't Destroy On Load. Как мне настроить эту дрисню чтобы мои переменные не удалялись от перехода из сцены к сцене? Пошаговое руководство для дебилов.
Аноним 29/05/20 Птн 11:41:34 673328843
Аноним 29/05/20 Птн 12:03:02 673334844
>>673328
Я не настолько умён. Рассказать суть, не?
Аноним 29/05/20 Птн 12:04:16 673335845
>>673334
Там вся суть в одном предложении.
> Do not destroy the target Object when loading a new Scene.
Если применяешь этот метод к объекту, то он не уничтожается при смене сцен. Всё.
Аноним 29/05/20 Птн 12:10:47 673337846
>>673335
А как это применить к переменным фангуса? Говорю же, я ньюфаг в этом.. Наглядное бы видео куда то лепить.
Аноним 29/05/20 Птн 12:22:47 673339847
>>673337
К переменным? Это применяется к объекту, а не к переменным. Вот у тебя есть где-нибудь спрайт в виде хуя, прихуячиваешь к нему скрипт, где в старте пишешь DontDestroyOnLoad(gameObject);
И всё, теперь при смене сцены твой хуй останется на месте, а не удалится, как все остальные объекты. Все переменные этого класса тоже сохранятся, так как объект не исчезнет.
Если ты хочешь сохранять именно какие-то значения, а не объект, то юзай или статичные классы, или PlayerPrefs или ScriptableObject.
Аноним 29/05/20 Птн 12:23:30 673340848
>>673337
Ну так ты и скажи, что тебе для фангуса это надо.
У них там есть галочка вроде где-то о том, чтобы не удалять данные между сценами.
Читай их документацию, а не юнитевскую.
Аноним 29/05/20 Птн 12:32:00 673341849
>>673339
>PlayerPrefs
Я успешно практиковал это, но там загвоздка, что принудительно придётся сохранять значения в конце каждой сцены, а я не умею. И какой код писать на проверку значения в ключе тоже не знаю.
Аноним 29/05/20 Птн 13:03:15 673348850
 .jpg 52Кб, 395x573
395x573
>>673340
Эта галочка? Глобал сделать.
Аноним 29/05/20 Птн 14:01:50 673361851
>>673308
Unsafe это вполне часть C# и без него не добиться высокой производительности. Можно сколько угодно оптимизировать на пулах, кешировании, но последнее слово всегда будет за кастомным менеджментом памяти. Когда NET Core завезут можно будет на безопасный Span переехать, а пока поинтеры.

Отвечая на твой вопрос - нет, только на сервере. Клиентов много, а сервер один. клиент потечёт, потечет, упадет и рестартнется, а серверу так низя.
Аноним 29/05/20 Птн 14:37:45 673364852
>>673361
Ого, крутой ты.
Мне до такого уровня программирования еще далеко. Ты наверное уже лет 5 программированием занимаешься?
Аноним 29/05/20 Птн 14:43:33 673366853
Если у объекта несколько коллайдеров одного типа (BoxCollider, например), то GetComponent берет один из них или все? В первом случае как обратиться к последующим?
Аноним 29/05/20 Птн 14:49:11 673367854
Аноним 29/05/20 Птн 18:08:13 673430855
Аноним 29/05/20 Птн 18:10:48 673432856
>>673430
> GetComponent берет один из них или все?
> GetComponent Returns the component of Type type
> GetComponents Returns all components of Type type
> не написано
Аноним 29/05/20 Птн 18:16:30 673433857
>>673432
Ну а второй вопрос? Как получить конкретный компонент, если на геймобдежкте их несколько одинаковых?
Аноним 29/05/20 Птн 18:28:10 673437858
>>673361
Кастомный менеджер памяти?
Если грубо фикседы это заморозка GC, т.е. обявление области где GC не будет следить за переменными.
Unsafe по дефолту дает спичечную оптимизацию вырезая авто-созданные проверки clr-ом.
Я бы многое отдал за рабочий метод delete как в с++, но сейчас из его аналогов у нас есть в юнити NativeArray (и другие нейтивы) или GCHandle или Marshal?
Нейтив поинтеры крайне неудобны, прежде всего мы тут игры делаем, а не системы.

Ради интереса, дай пример (кроме работы с json) где в юнете тебе пригодился бы unsafe контекст?
Я как-то поиск пути делал кастомный, все остальное и на стандартных спичках хорошо работает.
Аноним 29/05/20 Птн 18:37:06 673440859
>>673361
>>673437
Раз такая пьянка, может вы знаете.
Вот есть у меня библиотека, написанная на с++. Сразу скажу — последнее, что я писал на плюсах, был курсач лет 12 назад, так что нихуя не помню.
Так вот. Подключаю я эту библиотеку как нативный плагин, и всё как будто даже работает. Но есть один метод, с которым у меня проблемы. Выглядит он условно так:

[DllImport("Plugin")]
private static extern int GetCount(string objects);

int он мне возвращает как и должен, но проблема в том, что этот самый objects он там под капотом должен изменить. То есть после этого метода objects у меня уже не тот, что был до вызова метода. Что-то вроде ref.

private void GetCount()
{
string objects = "blabla"; // изначальное значение
int count = GetCount(objects);
print(objects); // тут уже должно быть совсем другое
}

Как мне это всё правильно сделать?
https://forum.unity.com/threads/please-help-with-pointers-for-a-dll-plugin.61436/
Здесь пишут про [MarshalAs(UnmanagedType.LPStr)] и что-то про указатели, но никакой конкретики. По ссылке из второго поста ходил, но не разобрался.
Помогите по-братски.
Аноним 29/05/20 Птн 18:39:25 673441860
>>673433
> если на геймобдежкте их несколько одинаковых?
Вернёт самый первый, то есть который выше остальных в списке компонентов.
Аноним 29/05/20 Птн 18:40:30 673442861
>>673440
> То есть после этого метода objects у меня уже не тот
Точнее должен быть не тот, но, по очевидным причинам, не меняется.
Аноним 29/05/20 Птн 19:02:08 673447862
>>672101
Ты бы по себе других не ровнял. Для чего ты сюда пришел с претензиями? Самоутверждаться? Будто ты не один такое днище?
Аноним 29/05/20 Птн 19:15:20 673448863
>>673440
Вопрос снят, оказалось что достаточно заменить string на StringBuilder мог бы и догадаться, эх.
Аноним 29/05/20 Птн 19:16:39 673449864
>>673448
Волшебство двачей же. Постишь вопрос и тут же находишь ответ сам.
Аноним 29/05/20 Птн 19:21:28 673450865
Аноним 29/05/20 Птн 19:28:15 673456866
Аноним 29/05/20 Птн 19:31:14 673459867
>>673456
Да про это я знаю. Но тут сработало немного другое. Мне просто подсказали, но в другом месте. Я про StringBuilder банально забыл, так как пользовался им только раз, чтобы глянуть что оно такое. И благополучно забыл и про него самого, и про то, что он mutable.
Аноним 29/05/20 Птн 22:09:34 673505868
>>673456
Но это совершенно не работает, если ты этот вопрос не отправишь куда-то в сеть.
Проблема православия в Unity Аноним 29/05/20 Птн 22:55:40 673519869
2020-05-29.png 20Кб, 719x269
719x269
На скорую руку сварганил функцию по плавному переворачиванию игрового объекта на 90 градусов в локальных координатах объекта. Получилось из за рукожопости токмо через rotate. Хотелось бы по нашему, по православному - через DeltaTime. Жду ответов экспертов
с покорностью и смирением.
Аноним 29/05/20 Птн 23:00:12 673522870
>>673519
float и ++? результат тебя устраивает?
Аноним 29/05/20 Птн 23:01:45 673523871
>>673522
Извените , но нет.
Аноним 29/05/20 Птн 23:03:18 673524872
>>673522
даже если там было бы int - это проблему не решает
Аноним 29/05/20 Птн 23:20:22 673527873
Аноним 29/05/20 Птн 23:22:47 673529874
>>673527
Это конечно спасибо - но желательно код картинкой)
Аноним 29/05/20 Птн 23:25:03 673531875
Аноним 29/05/20 Птн 23:27:15 673532876
>>673531
Спасибо! Но я ведь не просил ссылку на документацию - а просто код который мне подойдёт)
Аноним 29/05/20 Птн 23:29:31 673533877
>>673532
> я ведь не просил ссылку на документацию
А зря, чаще бы читал документацию — меньше бы глупых вопросов задавал.
> код который мне подойдёт
Откуда ж я ебу что там именно тебе подойдёт.
У тебя есть два кватерниона, через Lerp плавно переходишь из одного в другой, то есть вращаешь. Разве тебе это не подходит?
Аноним 29/05/20 Птн 23:32:52 673534878
>>673533
Как же проще объяснить то) Я не понимаю в кватирионах! Просто напишите код в 5 строчек заменить тот код и всё! Я вам спасибо скажу! Этим я занимаюсь ради удовольствия и некоторые моменты мне не понятны
Аноним 29/05/20 Птн 23:37:12 673536879
e3a14f1a548a784[...].png 15Кб, 505x361
505x361
>>673534
> Просто напишите код в 5 строчек заменить тот код и всё!
Ну в 5 не обещаю, но вот, например. Значения прихуячивай какие больше нравятся, скорость тоже.
Аноним 29/05/20 Птн 23:40:30 673541880
>>673536
Ну я вот на вскидку смотрю - объект точно будет переворачиваться по своим локальным координатам? или по мировым?
Аноним 29/05/20 Птн 23:41:35 673542881
>>673541
В данном случае — в мировых. Надо в локальных — меняй rotation на localRotation и всё.
Аноним 29/05/20 Птн 23:43:33 673543882
>>673542
Ну ща залипну - спасибо!
Аноним 29/05/20 Птн 23:44:14 673544883
>>673543
Да не за что. Но ты всё же разобрался, а мне просто с двачика код переписывал. Если уж тебе это интересно.
Аноним 29/05/20 Птн 23:46:15 673546884
Аноним 29/05/20 Птн 23:49:34 673547885
>>673546
Та все поняли без быстрофиксов)
Аноним 30/05/20 Суб 00:20:36 673551886
>>673547
Ну один хрен код не работает
Аноним 30/05/20 Суб 00:52:34 673557887
Rec038.mp4 3428Кб, 1884x744, 00:00:12
1884x744
Аноним 30/05/20 Суб 01:12:55 673558888
Как в 2D можно заставить ИИ детектить пропасть перед собой для перепрыгивания? Без расставления триггеров\коллайдеров на её краю?
Аноним 30/05/20 Суб 01:19:01 673560889
>>673558
Не обяз создавать объекты/триггеры чтобы их детектить, можно детектить их отсутствие. Смекаешь?
Аноним 30/05/20 Суб 01:29:30 673561890
image.png 4Кб, 712x193
712x193
>>673560
Хорошо, смотри пример. Кругу нужно попасть из левой платформы на правую. Для этого нужно прыгнуть в точке А. Как ему задетектить что между платформами ничего нет?
Аноним 30/05/20 Суб 01:42:36 673564891
Аноним 30/05/20 Суб 01:50:44 673565892
>>673564
Как в коде задетектить отсутствие объекта, которого не существует? Или ты предлагаешь линейно проверять наличие всех объектов в сцене?
Аноним 30/05/20 Суб 01:56:31 673566893
>>673565
А ты думаешь всё так просто? Естественно если ты хочешь, чтобы объекты как-то взаимодействовали с окружением или просто передвигались по нему они должны на что-то ориентироваться..
Аноним 30/05/20 Суб 09:47:06 673581894
>>673565
Не всех, только тех, которые могут быть впереди. Это может быть рейкаст или просто информация из грида, хуй знает как у тебя там мир строится.

>>673447
Где ты претензии увидел, шизик?
Аноним 31/05/20 Вск 16:55:52 673840895
дл
Аноним 31/05/20 Вск 19:01:10 673857896
Перекатывать будет кто?
Аноним 31/05/20 Вск 19:17:02 673859897
>>673857
Это тебе не /b/, ещё не время
Аноним 31/05/20 Вск 19:19:31 673860898
Аноним 31/05/20 Вск 19:20:37 673861899
>>673860
Если это был вопрос (ты же знаешь про вот такой символ, да? => ?), то после бамплимита.
Аноним 31/05/20 Вск 19:21:25 673862900
>>673861
Бамплимит 750 постов
Аноним 31/05/20 Вск 19:23:15 673863901
>>673862
Бля, и правда.
Прошу прощения, подобосрался слегка.
Аноним 31/05/20 Вск 22:15:30 673881902
image.png 156Кб, 980x600
980x600
image.png 88Кб, 980x600
980x600
Что это за хуйня? Почему ему не хватает места?
Аноним 31/05/20 Вск 22:29:32 673886903
>>673881
У тебя в конплюхтере есть внутренний диск, и у него есть определённое место. И это место у него кончилось. Позови тыжа на помощь.
Аноним 31/05/20 Вск 22:33:24 673887904
15079962661920.jpg 24Кб, 400x386
400x386
Аноним 31/05/20 Вск 23:08:48 673891905
>>673881
типичный андроид
Аноним 01/06/20 Пнд 01:51:09 673899906
image.png 1271Кб, 1024x683
1024x683
>>673886
Сверхразум, на первом же скрине написано что 366.8gb available, а 11.9gb required.
Аноним 01/06/20 Пнд 10:49:09 673929907
>>673899
Ну тогда пусть переустанавливает шындовс. Время пришло.
01/06/20 Пнд 14:27:04 673972908
Screenshot20200[...].png 90Кб, 962x447
962x447
Screenshot20200[...].png 77Кб, 961x451
961x451
Screenshot20200[...].png 153Кб, 1594x900
1594x900
>>659486 (OP)
помогите пж. стоит юнити на линухе и там какая-то хуйня с шейдерами. на винде такого не было.
01/06/20 Пнд 14:29:14 673973909
>>673929
у меня такая хуета была из-за галочки с компиляцией под винду
Аноним 01/06/20 Пнд 14:31:26 673974910
>>673972
На линухе юнити превращается в ТЫКВУ.
01/06/20 Пнд 14:39:43 673976911
зображення.png 37Кб, 765x325
765x325
Аноним 01/06/20 Пнд 14:43:31 673978912
>>673976
Всё таки линуксу пока ещё не удалось выйти на стабильный уровень замены прошивки для игор. Даже дхвк не помогает. Пичально. Придётся возвращаться в ряды пиратов.
01/06/20 Пнд 14:54:01 673980913
>>673978
а что такое дхвк?
Аноним 01/06/20 Пнд 15:01:08 673981914
>>673980
трансляция вызовов апи директ-икса в вызовы вулкана.
Аноним 02/06/20 Втр 03:45:31 674158915
Возможно ли передать параметры объекту при его инициализации из другого скрипта?
Аноним 02/06/20 Втр 07:32:59 674169916
Аноним 02/06/20 Втр 12:20:07 674193917
>>659486 (OP)
Здрасте. Стоит ли читать 1е издание юнити в действии, и вообще, какая по вашему мнению книга самая лучшая для нуба в юньке?
Аноним 02/06/20 Втр 14:32:20 674215918
>>674193
> Стоит ли читать 1е издание юнити в действии
Читай второе.
> какая по вашему мнению книга самая лучшая для нуба в юньке?
Каждое своё. Зависит от целей и от скилла.
Есть ещё книга "Unity и C Шарп. Геймдев от идеи до реализации. 2-е издание", неплохая.
Обе могу скинуть, но и сам найдёшь, тыжпрограммист
Аноним 02/06/20 Втр 14:43:15 674216919
>>674215
Спасибо, уже скачал обе, иду читать
Аноним 02/06/20 Втр 19:13:56 674328920
Анон, где можно ассеты скачать спиздить для юнити?
Аноним 02/06/20 Втр 19:26:16 674330921
>>674328
Ты вопрос-то конкретизируй. Какие именно? Некоторые и в ассетсторе бесплатно лежат. Некоторые гуглятся.
Аноним 02/06/20 Втр 20:00:35 674345922
>>674330
Мне нужны анимации от Kubold или годная альтернатива, если есть. Гуглил, но все через жопу, нормальной ссылки так и не нашел.
Аноним 02/06/20 Втр 20:04:13 674347923
>>674345
Но если есть ссылки на годные гайды по моделированию, то тоже буду благодарен. Цель в том, чтобы сделать хорошего качества экшон от 3го и 1го лица, как в ГТА/РДР2
Аноним 02/06/20 Втр 21:23:31 674384924
Аноним 02/06/20 Втр 21:29:59 674387925
Как в шарпе передать функцию в параметре и сохранить ее в поле?
Вот я передаю:
animate.SetEasingFunction(Easing.Circular.InOut) // Easing.Circular.InOut - это функция

И чтобы когда выполнялась анимация, выполнялся и такой код:
interpolate = this.ФункцияКоторуюЯПередал(interpolate);
Он в другом методе, поэтому мне надо ее хранить в поле.
Аноним 02/06/20 Втр 21:38:18 674389926
Аноним 02/06/20 Втр 21:56:52 674393927
Посоны, я правильно понимаю, что если сейчас начинать новый проект под мобилочку, то нужно использовать URP?
Аноним 03/06/20 Срд 04:02:23 674438928
>>674393
в списке пакетов всё ещё есть lwrp, но значка верификации там нет. разрабы давно уже срут в блоге своём мол lwrp мы переименовываем в urp и продолжаем работу там, тем не менее версия у lwrp точно такая же как и у hdrp. я все проекты начинаю в urp вне зависимости мобильные они или просто для себя дрочильня
Аноним 03/06/20 Срд 05:12:53 674439929
Аноним 03/06/20 Срд 09:01:03 674449930
ss8c8140d3239ce[...].jpg 360Кб, 1920x1080
1920x1080
Как думаете, как у них реализован такой контроллер? Персонажа может откинуть, может упасть, может перекрутиться всяко разно, может споткнуться и так далее.
https://www.youtube.com/watch?v=1DOj6wkvLlc
Аноним 03/06/20 Срд 10:15:49 674454931
>>674449
Ничего сложного тут нет.
Откинуть ? - CanControl = false, UseRigidbody(true), AddForce(сила_отталкивания), waitBeforeReturnControl(3 секунды)
Игрок теряет управление, включаем физику тела, ждем 3 секунды, возвращаем управление.

Упасть так же как и откинуть, только триггер будет "долго был в воздухе"

Споткнуться - onCollisionHit и 1 метод на проверку центра массы, дальше если объект снизу и маленький -> споткнуться()

Прыгать - вазня на физике или на своем контроллере, можно стандартный юнете контроллер расширить
Аноним 03/06/20 Срд 16:35:09 674520932
Аноним 03/06/20 Срд 16:48:09 674523933
>>674449
в целом похоже что вот этот анон прав >>674454

но почитай про active ragdoll, для мультяшных персонажей такая штука подходит хорошо
Аноним 03/06/20 Срд 20:52:39 674575934
image.png 81Кб, 996x871
996x871
image.png 28Кб, 354x489
354x489
Вот код логики движения врага в Update. Как вам, не слишком замудрено? Единственное, что меня беспокоит, что может так получится, что тупо ни одна проверка не выдаст true и вражина будет стоять на месте. Хотя я уже несколько раз перепроверял - такое случиться не может, но при старте надо вручную запустить SetMovementType(MovementTypes.WalkToPoint)
Аноним 03/06/20 Срд 21:06:36 674577935
l10wAHtXly.gif 5852Кб, 1122x618
1122x618
Аноним 03/06/20 Срд 21:29:55 674583936
Screenshot from[...].png 153Кб, 653x393
653x393
Вот пишу что-то, хочу залить сурс на гитхаб. Сморю на директорию с проектом и вижу ./Assets/ 0.8 Гб и ./Library/ 1.1 Гб. Так вот, как это всё организовать? Учитывая, что я большую часть всего этого не использую. Выпилить всё, кроме своих скриптов и сцен, а в ридми написать, типа, "если хочешь, чтобы это собралось, создавай новый проект на юнити, копируй туда всё, устанавливай нужные ассеты и т.п." Как-то это не по-человечески. И обновлять потом в ручную при изменении ещё. Ковыряться в ассетах, пытаясь понять, что мне нужно, а что нет? Есть ли какой-то нормальный способ?
Аноним 03/06/20 Срд 23:01:01 674595937
>>674583
Загугли gitignore Unity, такой файл в корень проекта положи, в кратце это список необязательных файлов которые генерятся юнькой при старте (чтобы последующие запуски были быстрее). Из проекта нужны только папки Assets и ProjectSettings
Аноним 03/06/20 Срд 23:07:14 674596938
Аноним 03/06/20 Срд 23:36:11 674599939
изображение.png 29Кб, 1280x886
1280x886
С сайтом Юньки что-то странное, если залогиниться, то learn.unity.com выплевывает ошибку
Аноним 04/06/20 Чтв 08:06:41 674622940
>>674575
Простовато, но пойдет.
Обычно рекомендуют finate state machine делать, суть будет та же, просто методы IsPlayerVisible, MoveToPlayer и тд будут в отдельных классах, ну и расширяемость будет лучше.
Но если ты делаешь зомби - то и твоей реализации 100% достаточно и понятно.
Аноним 04/06/20 Чтв 10:31:34 674627941
>>674577
Есть в этом что-то криповое
Аноним 05/06/20 Птн 14:44:24 674890942
switch-statemen[...].png 30Кб, 500x300
500x300
Аноним 05/06/20 Птн 17:47:24 674923943
Господа, а как вы решаете проблему, при которой при смене Aspect Ratio (соотношение сторон) отрезается часть уровня, которая при родном формате видна? Как будто камера приближается или типа того.
Я же не один с такой проблемой столкнулся, да?
Аноним 05/06/20 Птн 18:59:40 674940944
>>674923
Я вот скрипт на камеру повесил который меняет размер камеры в зависимости от размера экрана, вполне прямо и просто
Аноним 05/06/20 Птн 19:19:01 674944945
>>674940
А, окей, тоже думал так сделать, спс.
Аноним 05/06/20 Птн 19:51:43 674948946
image.png 13Кб, 604x215
604x215
Объясните мне, почему этот код не работает?
Аноним 05/06/20 Птн 19:55:30 674949947
>>674948
Надо сначала x потом y
Аноним 05/06/20 Птн 19:56:21 674951948
>>674949
Я разобрался, проблема в другом была.

Ну а с тобой все понятно.
Аноним 05/06/20 Птн 22:20:13 674980949
image.png 231Кб, 1920x1080
1920x1080
Аноны, а что с дефолтным материалом? Раньше же какой-то белый был, а сейчас грязно-серый. Как починить?
Аноним 05/06/20 Птн 23:50:55 674992950
>>674980
И тут мы такие все увидели какой там у тебя на материале шейдер.
Аноним 06/06/20 Суб 00:07:25 674993951
>>674992
Так это всё дефолтное, те, которые созданные - пустые, я их не трогал и никуда не кидал. Все материалы по дефолту были после создания объекта.
Аноним 06/06/20 Суб 00:36:51 674998952
Аноним 06/06/20 Суб 09:29:59 675024953
Анонцы, а как считаете, делать геймплей на канвасе UI элементами это норм или хуета?
Допустим, это простая мобильная карточная игра. По идее ведь использование UI будет бить по оптимизации, но с другой стороны всякие приколы UI элементов типа выравниваний и группировок должны упросить разработку.
Что думаешь?
Аноним 06/06/20 Суб 11:58:44 675036954
Аноним 06/06/20 Суб 12:00:38 675037955
>>675024
Лучше делай по уму - опыта полезного больше нагуглишь в процессе.
Аноним 06/06/20 Суб 12:24:49 675041956
>>674980
у солнца свет на белый поставь
еще в настройках света чето намудрили
Аноним 06/06/20 Суб 16:36:14 675067957
>>674454
Спасибо.

>>674520
>ragdoll
Я использую детерминированный физический движок. Там доступны только Box и Sphere. Джоинтов нет. Сделал человечка из двух сфер. Сейчас думаю над основными базовыми механиками. Похоже придётся сделать так, чтобы человечек всегда был Rigidbody, а при потере контроля у него будут размораживаться оси вращения.
Аноним 06/06/20 Суб 16:40:46 675069958
>>675067
> Я использую детерминированный физический движок. Там доступны только Box и Sphere. Джоинтов нет. Пишу код карандашом, держа его в зубах и набирая буквы на клавиатуре. Потому что руки у меня связаны за спиной.
Так я это вижу.
Не осуждаю. Каждый дрочит как он хочет.
07/06/20 Вск 00:59:25 675140959
Как сделать так, чтобы камера всегда следила за объектами которые создаются функцией Instantiate. Суть в том, что когда координата Y у объекта становится меньше -10, этот объект уничтожается и на начальных координатах появляется новый объект по этому шаблону, но камеры уже не следит за ним. Я пробовал через обычный transform.LookAt(player), но нифига не работает.
Аноним 07/06/20 Вск 01:22:42 675143960
Как в 2D шутане сделать игнорирование нажатия мыши при нажатии по кнопке меню? Вроде можно перехватывать обработчик GUIUtility.hotControl, но при на момент вызова OnClick мы же уже стреляем.
Аноним 07/06/20 Вск 01:23:57 675144961
>>675143
Игнорирование стрельбы при нажатии мыши по кнопке меню конечно же, косноязычно выразился
Аноним 07/06/20 Вск 12:14:52 675191962
>>675143
Просто навесь бэкграунд с raycast target и стреляй по клику в него, а не просто на событие инпута. Грубо говоря весь бэкграунд будет твоей кнопкой "стрелять", а другие кнопки лежат поверх.
Аноним 07/06/20 Вск 19:22:24 675289963
>>675143
Я в контроллере кликов вот это if(!EventSystem.current.IsPointerOverGameObject()) вешаю первым условием, тогда клики по юайке персонажем не управляют.
Аноним 07/06/20 Вск 19:58:26 675297964
Анон, пишу следующее:
public class PlayerInputSystem : SystemBase
{
protected override void OnUpdate()
{
float horizontal = Input.GetAxis("Horizontal");
float vertical = Input.GetAxis("Vertical");

Entities.ForEach((ref PlayerInputData playerInputData) =>
{
playerInputData.Horizontal = horizontal;
playerInputData.Vertical = vertical;
}).Run();
}
}

Смотрю значения PlayerInputData в дебагере и там значения не меняются. Что я делаю не так?
Аноним 07/06/20 Вск 20:55:30 675305965
>>675297
Отбой, сообразил.
Аноним 07/06/20 Вск 22:09:48 675311966
>>659486 (OP)
Давно мучаюсь с одной траблой в шарпе,
есть куча конструкций getcomponent<>() в коде, и из-за этого всё выглядит как стена текста, подсобите пожалуйста юнитисты вроде чтото помню есть по типу забива константы или типо того чтобы сократить колличество этой залупы по типу в студии будет переменная которая при компилирывание меняется наgetcomponent<>(), иль чтото в это духе.

Реквестирую скорую помощь анончики!
Аноним 07/06/20 Вск 22:56:38 675334967
Аноним 07/06/20 Вск 22:56:44 675335968
>>675311
Если GetComponent в Update — плохо, лучше их кэшировать на Awake/Start. Если хочется все же оставить GetComponent -> может попробовать использовать C# Property, а-ля private RectTransform _rectTransform => GetComponent<RectTransform>();, а далее в коде уже вызывать _rectTransform. Соответственно, можно все эти проперти вынести в базовый класс (заменив private на protected или public) и тогда в любом наследнике класс их использовать. Но энивей — лучше всегда кешировать через переменную и ее инициализацию на Awake.
Аноним 07/06/20 Вск 22:57:19 675336969
>>675305
в чём была проблема?
Аноним 08/06/20 Пнд 20:44:43 675484970
>>675311
Похоже на говнокод. Скрин скинь блока кода, зачем тебе постоянно GetComponent?
>>675335
Через свойство эффект такой же, только в классе + ещё одно свойство которое не нужно.

Аноним 08/06/20 Пнд 21:55:49 675498971
>>675484
> зачем тебе постоянно GetComponent?
В туториалах на ютубе так научили.
Аноним 08/06/20 Пнд 22:02:25 675501972
>>675335
> может попробовать использовать C# Property, а-ля private RectTransform _rectTransform => GetComponent<RectTransform>();
А я от себя добавлю, что через свойства не только можно, но и нужно делать работу с геткомпонентом.
Только я рекомендую два важных нюанса:
1. Не доверять сишарповому синтаксису автосвойств. Через публичное свойство делать присвоение приватной переменной.
2. Делать ленивую инициализацию. То есть в первом гете, если приватная переменная пуста - вызываем дорогой геткомпонент, присваиваем результат приватной переменной - отдаём назад значение (ссылку). Во втором гете просто отдаём значение (ссылку), которое у нас уже хранится в приватной переменной.
Аноним 09/06/20 Втр 13:29:51 675659973
>>675501
> Через публичное
Что ж вы за коммунисты такие, всё вам публичное подавай. Инкапсуляцию не просто так придумывали. Есть такой атрибут как [SerializeField], бери да пользуйся.
> Не доверять сишарповому синтаксису автосвойств
На самом деле никаких свойств нет, для CLR любые свойства — это поля и методы. Так что синтаксису доверять можно, один хуй компилятор из твоего автосвойства сгенерирует поле и один-два метода, просто ты их не увидишь.
Аноним 09/06/20 Втр 13:55:33 675665974
>>675498
Эх, сколько я от таких людей тестовых заданий пересмотрел а уж сколько отсобеседовал, которые сразу после туториалов пытаются на работу попасть.
Как уже выше было сказано, везде всё публичное, повсюду getcomponent, gameobject.find, ебля с тегами и прочий охуенчик.
Про такие вещи как интерфейсы или абстрактные классы я вообще молчу.
Это я, если что, не до тебя конкретно доёбываюсь, просто держу в курсе что большинство этих ютуб-туториалов только плохие привычки закрепляют. Уж лучше книги читать.
Аноним 09/06/20 Втр 15:19:58 675680975
>>675665
Какие требования в целом? Насколько сложно из энтерпрайза перекатиться?
Аноним 09/06/20 Втр 15:25:14 675682976
>>675680
Требования простые — уметь работать и не быть мудаком.
Ну и желательно уметь пользоваться гитом, знал свой стек и уметь гуглить на инглише.
Но даже таких пиздец как мало, к огромному сожалению.
Аноним 09/06/20 Втр 15:25:36 675683977
>>675682
> знать
быстрофикс
Аноним 09/06/20 Втр 15:30:37 675685978
Перекатывайте
Аноним 09/06/20 Втр 15:59:19 675689979
>>675682
Ну чет не знаю, тыкался в пару мест, готовые проекты есть? Нет - иди нахуй. Притом, что есть опыт коммерческой разработки на шарпе и гит и гугл Похоже я таки мудак
Аноним 09/06/20 Втр 16:06:06 675694980
>>675689
> готовые проекты есть? Нет - иди нахуй
У нас не так, но мы поэтому и просим сделать тестовое задание, чтобы глянуть на скилл.
Но мы и не в МСК всяких, хоть и в миллионнике, это там конкуренция ебануться и соискатель должен быть уже с парой ГОТИ за плечами.
Аноним 09/06/20 Втр 16:33:06 675703981
>>675665
> Это я, если что, не до тебя конкретно доёбываюсь,
Можешь и до меня доебаться, братишка, двач же! Анонимность!
Аноним 09/06/20 Втр 16:34:02 675704982
>>675659
> всё вам публичное подавай. Инкапсуляцию не просто так придумывали.
Инкапсуляция - не сокрытие!
Мы вам перезвоним.
Аноним 09/06/20 Втр 16:36:15 675706983
>>675704
> Инкапсуляция - не сокрытие!
Само собой. Но если всё напидарасить пабликом, даже там, где он нахуй не нужен, то инкапсулируешь ты разве что свой корвалол, когда потом будешь это разгребать за такими вот сумеречными гениями.
Аноним 09/06/20 Втр 18:01:13 675731984
>>675706
> Само собой. Но
Я не знаю, хули ты до меня доебался? Меня так учили:
Поля объекта - скрыты внутри.
Свойства объекта - выставлены наружу.
В свойствах нет смысла, если их скрывать приватными.
Аноним 10/06/20 Срд 01:13:55 675824985
Аноны
Есть вот такой класс:
public class BasicInventoryObjectSO<T> : ScriptableObject where T : BasicGameObject
Потом объявляю переменную:
[SerializeField] BasicInventoryObjectSO<BasicGameObject> invObject;
И он не отображается в инспекторе? Как можно обойти?
Аноним 10/06/20 Срд 01:22:13 675826986
>>675824
Случайно зачеркнул

Пока искал решение, узнал что
public BasicInventoryObjectSO<BasicGameObject> ob = new BasicInventoryObjectSO<BasicPlant>();
не работает при том, что BasucPlant наследует BasicGameObject
Аноним 10/06/20 Срд 08:11:30 675847987
>>675824
>>675826
Ты опять перепутал доску с форумом телепатов?
> И он не отображается в инспекторе?
Откуда ж мы знаем что там у тебя в классах творится и вообще Serializable ли они?
> не работает
Как не работает-то, блять? Ошибку выдаёт? А может напишешь какую?
Аноним 10/06/20 Срд 10:45:17 675857988
>>675826
Повесь аттрибуты [ExecuteAlways] на свои синглтоны и классы где ты хочешь, чтобы они в редакторе отображались и проставляй не через
public YobaClasss name = YobaClasss.Instance();
А в методе Awake()

И еще перекатите тредц
Аноним 10/06/20 Срд 10:57:30 675859989
>>675857
> А в методе Awake()
Хуёвая идея, лучше синглтон инициализировать в конструкторе, который вызовется ещё до Awake (если объект с классом висит на сцене, конечно же).
То есть просто private YobaClass()
{
instance = this;
}

Потому что если другой объект через этот синглтон что-нибудь попробует получить в своём Awake, то можно соснуть, если они сработают в неправильном порядке.
Причём, у меня было такое, что в эдиторе порядок работал как надо, а в билде — нет, и пришлось знатно поебаться чтобы понять что за хуйня происходит.
Аноним 10/06/20 Срд 11:01:34 675861990
Аноним 10/06/20 Срд 11:47:26 675870991
>>675861
Описываю ситуацию решение кому интересно.
Занимаюсь разработкой инвентаря.
Сделал generic базу SpriptableObject, нужно было хранить поле определенного базового типа BasicGameObject, констрейн на который я и сделал.
public class BasicInventoryObjectSO<T> : ScriptableObject where T : BasicGameObject
Упоролся в то, что из-за инвариантности generic классов я не мог инициализировать базу genric'ом наследника констрейн класса, то есть:
public BasicInventoryObjectSO<BasicGameObject> ob = new BasicInventoryObjectSO<BasicPlant>(); = хуй, при том, что BasucPlant наследует BasicGameObject

Решение:
Создаем ковариантный интерфейс с таким же констрейном и свойством только с геттером на поле которое нужно было хранить.

public interface IObjectReference<out T> where T : BasicGameObject
{
T ObjectReference { get; }
}

Реализовываем интерфейс, избавляемся от generica, тем самым прощаясь с проблемой на которую я изначально жаловался, что оно не сериализовалось.

public class BasicInventoryObjectSO : ScriptableObject, IObjectReference<BasicGameObject>
{
protected BasicGameObject objectReference;
public virtual BasicGameObject ObjectReference => objectReference;
}

Теперь спокойно можно создавать BasicInventoryObjectSO и инициализировать его его же наследниками.
Сори если нихуя не понятно)
Аноним 10/06/20 Срд 12:04:46 675872992
>>675870
> что из-за инвариантности generic классов
Ну да, например вот тут при попытке создать такой список тебя компилятор пошлёт нахуй, но с массивом прокатит хотя делать так не надо
List<object> list = new List<string>();
object[] array = new string[10];

Именно потому что List это дженерик.
Аноним 10/06/20 Срд 14:56:54 675919993
screenshot.png 29Кб, 1324x270
1324x270
Аноны, как увеличить размер шрифта? Ну слишком мелко.
Аноним 10/06/20 Срд 14:58:37 675920994
Аноним 10/06/20 Срд 15:00:35 675921995
>>675920
На Alt+Shift+PrtScr лишь принтскрин выбранной области. При чем тут шрифты?
Аноним 10/06/20 Срд 15:08:13 675923996
>>675921
У тебя не Виндовс чтоли?
Аноним 10/06/20 Срд 15:10:14 675924997
Аноним 10/06/20 Срд 15:15:18 675925998
>>675923

Эта комбинация из винды или из юнити? Если из юнити, то может мне просто надо найти аналог, только хз, где их смотреть. В юнити очень скудные настройки.
А если из винды, то скажи, что она делает вообще, может в лине найду аналог комбинации.
Аноним 10/06/20 Срд 16:13:36 675952999
Эта комбинация врубает режим для слепых, только вот она никак не влияет на интерфейс самого юнити. Проверил это как на винде, так и на лине. На винду тоже поставил юнити, там все точно так же выглядит мелко. Но производительность в 2д(3д не импользую) выше почти на треть лол.
Аноним 10/06/20 Срд 16:14:24 6759531000
Пока устанавливал на винду вышла LTS 2019.4.0f1
Аноним 10/06/20 Срд 16:36:16 6759571001
>>675919
Попробуй CTRL + скролл мышки, работает в большинстве приложений.
Как получить индекс материала объекта по рейкасту? Аноним 10/06/20 Срд 17:06:05 6759621002
Есть кубик с разным материалом на сторонах , как получить индекс материала , куда попал луч? Перерыл гугл - там есть пара тройка примеров но они не работают
Аноним 10/06/20 Срд 17:14:53 6759651003
>>675957
Это увеличивает иконку папок(которые на скрине), но не изменяет размер шрифта названия этих папок.
Неужели всем нормально наблюдать такую мелкоту? У меня хорошее зрение, но все равно коробит.
Аноним 10/06/20 Срд 22:02:22 6760171004
>>659486 (OP)
Сап гд. Подскажите ньюфагу, че у меня на пустой сцене с парой моделей на косарь поликов и тремя материалами 15-30 фпс на адроиде? И самое смешное что даже если отключить все скрипты, освещение и даже камеру, фпс не повышается. unity 2019, тестил на эмуле google pixel и на физическом asus zenfone 5z. в редакторе на компе уваливает за 500+фпс. Со всеми очевидными настройками качества\плеера игрался, ниче не меняется. шейдеры simple lit.
Аноним 10/06/20 Срд 22:14:06 6760201005
1313131311.PNG 1373Кб, 1365x677
1365x677
Заходишь в киберпанк 2077, а там пикрелейтед. Твои действия?
Аноним 10/06/20 Срд 23:49:22 6760231006
>>676020
Сразу покупаю сизонпасс.
Аноним 11/06/20 Чтв 01:53:39 6760281007
Аноним 11/06/20 Чтв 02:12:59 6760301008
есть ли человеческий способ заставить nav mesh agent ходить не боком? указываю ему точку, этот пидорас пол пути проходит пока развернётся. выглядит ультраебано
Аноним 11/06/20 Чтв 03:32:18 6760341009
Аноним 11/06/20 Чтв 13:09:10 6760661010
Когда игрок поднимает вещь, ее надо убрать из сцены. Но он может также выбросить обратно. Значит, объект не должен быть destroed, но как его тогда скрывать от глаз? Отключить mesh render?
Аноним 11/06/20 Чтв 13:13:33 6760681011
Предлагаю не перекатывать тред, а добраться до 100000. Вот Абу ахуеет.
Аноним 11/06/20 Чтв 13:24:09 6760691012
Аноним 11/06/20 Чтв 13:31:43 6760711013
>>676069
А можно ли у не активных геймобжектов получать компоненты?
Аноним 11/06/20 Чтв 13:42:49 6760741014
>>676071
Так ты сначала получи и хакэшируй, а потом уже развлекайся.
Аноним 11/06/20 Чтв 17:45:22 6761011015
Господа, подскажите, у меня вот допустим есть НПС с "инвентарями", которые сами по себе ходят по миру. Они могут сами подбирать вещи и выбрасывать их, изменяя содержимое "инвентаря". Игрок может в процессе игры попросить НПС показать, что у него там в инвентаре.

Вопрос: Как мне лучше хранить и получать данные о том, что у них в инвентарях?
Я сделал скриптабл обжекты, типа на каждого нпс будет создаваться свой скриптабл обжект. Его и сериализировать для сохранения/загрузки потом можно будет.
Или я хуйню сделал, и лучше сделать JSON для такого?
Аноним 11/06/20 Чтв 18:09:57 6761031016
>>676101
Ебашишь все вещи инвентаря на интерфейс IItem, у ПНЦ хранишь список этих самый IITem, сохраняешь/загружаешь в xml или в бинарник.
Аноним 11/06/20 Чтв 18:24:33 6761071017
>>676103
> на интерфейс
Или на базовый класс. Смотря насколько специфичны твои вкусы и что там ты нахуевертил.
Аноним 11/06/20 Чтв 19:27:55 6761131018
>>676103
>>676107
Бля, ладно.
Я просто сделал удобный редактор вещей через скриптабл обжект, чтоб прям в СО можно было удобно задавать, чем владеет данный обьект, и потом уже обьекту передавать этот СО. Но в общем понял, спс.
Аноним 11/06/20 Чтв 20:09:20 6761201019
>>676020
> Твои действия?
Отыгрываю в голове, что там миллионы мелких деталей. Ради масштабного СИНГЛОВОГО эрпогэ в кои-то веки после бездушных ММО-дрочилен, можно и ЛОДы потерпеть.
Аноним 11/06/20 Чтв 22:44:20 6761471020
>>676113
> прям в СО можно было удобно задавать, чем владеет данный обьект
Так сделай базовый класс сериализуемым и точно так же заполняй этот лист у НПЦ в инспекторе.
Аноним 11/06/20 Чтв 23:06:06 6761511021
>>676103
xml? серьёзно? сохраняй лучше на перфокарту или засечки на камне
Аноним 11/06/20 Чтв 23:17:10 6761521022
Аноним 12/06/20 Птн 02:59:03 6761691023
кто-нибудь участвует в каких-нибудь челенджах на юнити? мне нравится делать мелкие прототипы, а лупится в полноценные игры с ui и прочим говном лень. может есть комьюнити с челенджами где обмениваются сорсами?
Аноним 12/06/20 Птн 12:26:53 6762001024
Робято.
Прохожу уроки по юнити.
Там вообщем 2d платформер с инопланетянином, делаю всё по уроку, всё работает кроме грёбаной кнопки прыжка (пробел). Срабатывает с 2-3го раза.
В чем может быть проблема?
Спасибо.
Аноним 12/06/20 Птн 12:29:28 6762011025
>>676200
хрустальный шар подсказывает мне что дело в очень плохой карме.
Аноним 12/06/20 Птн 12:39:54 6762051026
>>676201
Пардон, я в этом полный чайник.
Не знаю как подступиться к проблеме.
Написал в суппорт, тем, кто предоставляет уроки.
Пока жду ответа, решил посоветоватсья с элитой геймдева.

Урок блять по одной версии юнити, я работаю в другой, интерфейс другой, координаты другие, всё то слишком большое, то слишком маленькое, то близко то далеко, притом что специально ничего не увеличивал и не отдалял. Заебало блять.
Аноним 12/06/20 Птн 12:41:11 6762061027
>>676205
> Не знаю как подступиться к проблеме.
Может начать с демонстрации скрипта?
Аноним 12/06/20 Птн 12:44:28 6762071028
>>676205
я гляжу ты не слишком проницателен. простым языком: я тебе колдун чтоли чтобы глядя в хрустальный шар понять твою проблему? на что я должен опирать свои размышления о твоей проблеме? показывай код, или сразу весь проект, посмотрим чё там у тебя.
Аноним 12/06/20 Птн 12:45:38 6762081029
image20200612T0[...].png 206Кб, 1680x1018
1680x1018
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Player : MonoBehaviour
{
Rigidbody2D rb;
public float speed;
public float jumpHeight;
public Transform groundCheck;
bool isGrounded;
Animator anim;
// Start is called before the first frame update
void Start()
{
rb = GetComponent<Rigidbody2D>();
anim = GetComponent<Animator>();
}

// Update is called once per frame
void Update()
{

CheckGround();
if (Input.GetAxis("Horizontal") == 0 && ( isGrounded))
{
anim.SetInteger("State", 1);
}
else
{
Flip();
if (isGrounded)
anim.SetInteger("State", 2);
}
}

void FixedUpdate()
{
rb.velocity = new Vector2(Input.GetAxis("Horizontal") speed, rb.velocity.y);
if (Input.GetKeyDown(KeyCode.Space) && isGrounded)
rb.AddForce(transform.up
jumpHeight, ForceMode2D.Impulse);
}

void Flip()
{
if (Input.GetAxis("Horizontal") > 0)
transform.localRotation = Quaternion.Euler(0, 0, 0);
if (Input.GetAxis("Horizontal") < 0)
transform.localRotation = Quaternion.Euler(0, 180, 0);
}

void CheckGround()
{
Collider2D[] colliders = Physics2D.OverlapCircleAll(groundCheck.position, 0.2f);
isGrounded = colliders.Length > 1;
if (!isGrounded)
anim.SetInteger("State", 3);
}
}
Аноним 12/06/20 Птн 12:46:11 6762091030
5e8542f5a48b32e[...].jpg 56Кб, 587x315
587x315
>>676200
вангую что у тебя кривая проверка на нахождение персонажа на земле
Аноним 12/06/20 Птн 12:48:43 6762101031
>>676209
Когда проверки не было, он тоже хреново прыгал, только ещё и от воздуха отталкивался
Аноним 12/06/20 Птн 12:50:07 6762121032
>>676208
Как минимум ты вызываешь CheckGround() в апдейте, а проверку делаешь в фикседАпдейте. Они не синхронны, если что.
И вообще, нахуй тебе каждый кадр проверять стоит ли персонаж на земле? Вот когда нажали пробел — тогда и проверяй.
Аноним 12/06/20 Птн 12:53:18 6762141033
>>676212
> И вообще, нахуй тебе каждый кадр проверять стоит ли персонаж на земле?
А, вижу, для анимации.
Аноним 12/06/20 Птн 12:54:30 6762151034
>>676208
Короче, 40 и 41 строчки вынеси в апдейт после CheckGround и посмотри что получится.
Аноним 13/06/20 Суб 14:01:01 6763791035
Аноним 13/06/20 Суб 14:03:04 6763811036
>>676379
> типа вся страничка- игра
Вау! Неужели технологии дошли до HTML5 и WebGL!
Аноним 13/06/20 Суб 14:54:30 6763851037
>>676381
Ну да, я просто привык, что игры в вебе в окошечке таком дурацком, как флеш, и даже не думал, что можно всю страничку сделать как игру, еще и на Unity. Короче просто крутая тема, наверное так и io подобные игры можно делать.
Аноним 14/06/20 Вск 08:02:14 6765201038
ПЕРЕКАТЫВАЙТИ
Аноним 14/06/20 Вск 11:30:07 6765441039
НЕ ПЕРЕКАТЫВАЙТИ
Аноним 14/06/20 Вск 13:42:04 6765581040
ПЕРЕКАТЫВАЙТИ, НО ЧУТЬ-ЧУТЬ
Аноним 14/06/20 Вск 14:36:21 6765741041
да в принципе нахуя перекатывать
Аноним 14/06/20 Вск 18:04:30 6766171042
Посоны, есть ли в юнити коробочная функция, показывающая фпс?
Аноним 14/06/20 Вск 18:12:05 6766191043
>>676617
Если в редакторе, то жми Stat. Если ингейм, то нет.
Но можно поделить единицу на Time.deltaTime
Аноним 14/06/20 Вск 22:31:31 6766731044
>>659983
>А графон в играх больше зависит от бюджетов которые циркулируют в студии разработчиков, если у разрабов бабла очень много то они пилят игру уже на своем движке а не на юнити или уече, потому что могут себе позволить.
У нинтендо и скворешников бабла до жопы, но октопата пилили на анриале
Аноним 15/06/20 Пнд 15:41:36 6767711045
Недавно у меня выяснилось что юнити не хочет сохранять 2д массив в SO.
Такая удобная вещь, и такой юнитиобсёр.
Странно еще то что поначалу вроде сериализует, но при рекомпиляции все слетает.
Потому решил сохранить все 2д масив в текстовый бинарник пока.
Есть ли какие то подводные (кроме нечитаемости и отсюда кривожопого муторного дебага)?
Аноним 15/06/20 Пнд 16:05:16 6767731046
>>676771
> юнити не хочет сохранять 2д массив в SO
А если сделать Serializable класс-контейнер, запидирасить в него массив, и сохранять в SO уже класс? Выглядит ебливо, но если работает, то почему бы и нет.
Аноним 15/06/20 Пнд 16:13:25 6767751047
Аноним 15/06/20 Пнд 17:00:25 6767821048
>>676773
>>676775
Спасибо за варианты, надо будет проверить.
Пока дебажу свой массив через OnDrawGizmos, при рекомпиляции он десериализует бинарный файл и рисует клеточки.
Тут еще хуйня что я хотеть сохранять 2д массив в сейвах игры, то есть в бинарный файл все равно надо будет это заворачивать (наскок я знаю SO это не про то).
Аноним 17/06/20 Срд 09:08:05 6772061049
Аноны, почему движущиеся объекты имеют эффект блёра? Пробовал двигать разными способами, в update, fixed Update. Отключал скрипт камеры - оставлял фиксированной. Да даже без камеры, в редакторе, объекты двигаются без плавности. С персонажем тоже всякие манипуляции проводил, даже вообще рижидбоди отключал - толку ноль. Фпс ~ 500-700. В настройках качества видео тоже копался. В билде поведение идентичное. Может, нужны какие-то особые манипуляции? Объекты (вертолеты) двигаются не по земле и только по оси Х, параллельно игроку.
Аноним 17/06/20 Срд 12:47:42 6772351050
>>677206
Какой пайплайн?
Какие эффекты на камере?
Блёр прям размытие или просто картинка рвется?
Аноним 17/06/20 Срд 16:08:52 6772911051
>>677235
Камера без эффектов, пайплайн дефолтный, сцена, можно сказать, пустая - только персонаж и макет вертолета (собранный из 3d объектов в самой юните). Ну и кубы в качестве земли. Я в ахуе в юнити.
Аноним 17/06/20 Срд 16:09:15 6772931052
Аноним 17/06/20 Срд 16:11:35 6772951053
>>677235
>Блёр
Как будто подергивается. Кстати, если персонажем бежать во время движения вертолета, то все немного лучше.
Аноним 17/06/20 Срд 17:15:46 6773221054
>>677206
видео покажи. хуй знает о чём ты там вообще.
Аноним 17/06/20 Срд 18:14:40 6773311055
Я тут решил сделать хелсбары у юнитов отдельными ворлд канвасами, по канвасу на каждого (в трансформ иерархию).
(юнитов немного, максимум 50)
И тут профайлер начал дергатся как припадочный, судя по всему канвасы ребилдятся или хз что-то типа того.
Выгрузил в билд - в билде дерганий нет.
Мне положить болт? Юнити так всегда непредсказуемо работает?
Аноним 17/06/20 Срд 23:26:23 6773821056
>>677322
Деанон же. Просто кривое перемещение, как будто сглаживание отсутствует. Если передвигать через лерп, например, то все намного-намного лучше.
Аноним 18/06/20 Чтв 07:49:29 6774231057
wtf1.png 60Кб, 1108x382
1108x382
>>677331
Включи глубокий профайлер и кал стек, будем разбираться.
У меня в редакторе с профайлером 70-80% нагрузки уходит на сам EditorLoop и всякие LoadFileSync по 300мс (как на скрине).
Забивать на проблемы это плохо, нужно хотя бы понять причину.

Кстати может кто знает почему AsyncReadManager делает SyncRequest?
Аноним 18/06/20 Чтв 18:02:40 6775171058
>>677423
В глубоком профайлере спайки делали всякие canvas.buildbatch и canvas.sort

Но я тут походу нашел у себя хуйню, т.к. я переделывал из пула где все хелсбары лежали под одним канвасом, там приходилось вручную
transform.position = unit.position + offset;
вот и забыл убрать, видимо эта операция давала просраться.

периодически canvas.sort все равно дергается так что хуй его знает
Аноним 19/06/20 Птн 04:34:23 6776161059
image.png 77Кб, 856x897
856x897
Помогите, пожалуйста. Как можно сделать так, чтобы когда я добавляю в сцену прифабы c определенным тегом, они автоматически добавлялись бы в список или массив?
Аноним 19/06/20 Птн 07:47:40 6776251060
>>677616
public class PrefabClass : MonoBehaviour {
protected void Start(){
OtherMassiveClass.Massive.Add(this);
}
}

public class OtherMassiveClass{
public static readonly List<PrefabClass> Massive = new List<PrefabClass>(16);
}
Аноним 19/06/20 Птн 09:23:09 6776301061
как сделать, чтобы персонаж 2д-платформера не застревал в стене при изменении своего размера?

Условно говоря, прыгает "обычный" персонаж - все норм
В прыжке атакует - хитбокс немного поменялся - игра восприняла это, будто под персонажем (на самом деле - под пикселями атакующего куска) есть пол и персонажа заклинило на высоте, в которой он пинает стену
Аноним 19/06/20 Птн 09:28:54 6776311062
>>677630
Не меняй хитбокс.
Аноним 19/06/20 Птн 09:33:32 6776321063
>>677631
Скорее всего тебе придется писать свой хитбокс менеджер и при изменении boxCollidera (вангую т.к. ты не указал) пускать райкасты во все стороны и самому перемещать персонажа в сторону
Аноним 19/06/20 Птн 16:30:09 6776881064
001.png 2Кб, 768x504
768x504
лупился я тут в оригинальную legend of zelda и заметил интересную механику. персонаж ходит по карте свободно, то есть к сетке изначально не привязан, но как только ты меняешь направление ходьбы на 90 градусов, то персонаж сначала пройдёт назад или вперёд несколько пикселей чтобы быть встать ровно по сетке и умещаться во всякие проёмы и проходы. есть идеи как реализовать подобный функционал?
Аноним 19/06/20 Птн 17:11:18 6776931065
>>677625
А как какому объекту нужно подцепить этот скрипт?
Аноним 19/06/20 Птн 17:35:55 6776951066
>>677625
>>677693
А, да. Я еще забыл добавить, что я добавляю прифабы вручную и нужно юзать [ExecuteInEditMode], чтобы все это работало без нажатия на Play. Т.е. я добавляю прифабы перетягивая их мышкой, они наполняют список сцены и одновременно наполняют List
Аноним 20/06/20 Суб 07:52:25 6777361067
ex.png 50Кб, 778x483
778x483
>>677688
Да, делал такое в лабе, нужно 2 переменные:
Vector2 WorldSpritePosition; // между 0 и world.width/world.height
Vector2 InnerSpriteOffset; // между -1 и 1
Сначала перемещаешь InnerSpriteOffset, если выходишь за границы Mathf.Abs(InnerSpriteOffset) - вычитаешь 1, и эту единицу добавляешь к WorldSpritePosition
>>677695
Не проще сделать ScriptableObject и туда в инспекторе добавлять все твои префабы?
ScriptableObject можно использовать как синглот, только он еще и в инспекторе работает, как на пике
Аноним 20/06/20 Суб 19:52:26 6778291068
А есть ли в Юньке или Фангусе функция что после события картинка(объект) переместится к заданным координатом на экране?
Аноним 20/06/20 Суб 20:06:44 6778311069
>>677829
А впрочем уже не надо, спасибо.
Аноним 20/06/20 Суб 20:13:23 6778321070
>>677736
>Сначала перемещаешь InnerSpriteOffset, если выходишь за границы Mathf.Abs(InnerSpriteOffset) - вычитаешь 1, и эту единицу добавляешь к WorldSpritePosition

что-то я не очень понял схему. можешь чуть подробней?
Аноним 20/06/20 Суб 22:42:15 6778471071
Доставьте биллборд шейдер для спрайтов. Чтобы в 3д спрайт компонент поворачивался всегда к камере. А то все те шейдеры, что я смог нагуглить, багаются, когда ты вешаешь один и тот же материал на несколько объектов. Спасибо.
Аноним 21/06/20 Вск 14:06:46 6779181072
zeldaLike.png 46Кб, 1066x709
1066x709
>>677847
А как насчет?
update(){
transform.lookAt(Camera.main.transform);
}

>>677832
На пике java код (синтаксис оч похож), суть:
Весь мир в Tile-ах, у тайлов есть int x, int y;
У Player-а есть playerLerp и это значение всегда от 0 до 1, если меньше 0, значит сместился по Х влево, больше 1 -> вправо.
Вообще я это сам придумал и возможно это плохое решение, но для моей игры это работало идеально.
Аноним 22/06/20 Пнд 15:18:40 6782441073
image.png 1800Кб, 1600x900
1600x900
image.png 1194Кб, 960x540
960x540
как лучше всего реализовать эффект 2д-персонажей на 3д-фоне, как в Darkest Dungeon или Octopath Traveler?
тупо плоские объекты с текстурой? или есть какие-то хитрости?
Аноним 22/06/20 Пнд 15:35:54 6782451074
>>678244
в Octopath Traveler всё кроме персонажей в 3д. делай как обычное 3д
для эффекта как Darkest Dungeon читай про parallax
Аноним 22/06/20 Пнд 16:41:02 6782491075
Ку, юнити тредик. Есть ли список правил хорошего тона для программирования в юнити?
Как например писал анон выше, что любой instantiate в рантайме это плохо. Только чтобы было собрано в одну кучу
Аноним 22/06/20 Пнд 17:05:40 6782511076
>>678249
Instantiate в рантайме это не дурной тон, это удар по производительности. дурной тон это когда ты, например, переменные называешь "a" или "b" и методы чьи названия не объясняют что они делают. что касается производительности, то на infallible code недавно был ролик где он обратил внимание что у решарпера есть статья на гитхабе в которой коротко, но по делу собраны некоторые штуки которые знать надо

https://github.com/JetBrains/resharper-unity/wiki/Performance-critical-context-and-costly-methods

всякие там Camera.main, .Find и тд

если поставишь себе Rider для редактирования кода, то он будет на такие штуки обращать внимание подчёркиваниями всякими. так же будет подсказывать по naming conventions, но с ним ты можешь ознакомится в официальной документации

https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/naming-guidelines

какого-то действительно клёвого списка на мильйон страниц того что нужно делать или не делать я не встречал. обычно узнаёшь что-то стоящее из всяких stackoverflow когда решаешь конкретные задачи или в твиттере по тегу #unitytips бывают хорошие советы
Аноним 22/06/20 Пнд 17:18:34 6782551077
>>678251
Понял, анончик. Спасибо <3
Аноним 22/06/20 Пнд 17:51:48 6782581078
>>678249
а если я например подгружаю динамически говно в рантайме (персонажей, то есть нечасто вызывается), есть ли какой то другой способ это делать кроме instantiate? (и есть ли смысол)
t.другой озабоченный
Аноним 22/06/20 Пнд 17:54:09 6782591079
>>678249 сори, промахнулся
>>678251 у тебя спрашивал
Аноним 22/06/20 Пнд 18:51:32 6782691080
>>678258
тебе нужно этих персонажей или что-там у тебя создавать во время загрузки сцены, деактивировать (SetActive(false) и врубать когда хочешь показать. тут задача в том чтоб не выделять новую память во время уже геймплея ибо это создаёт небольшой такой лаг. может видел во всяких роликах где noclip по картам делают, там модели в т-позе где-нибудь за пределами карты находятся. вот это то же самое

ну или если у тебя например пули одинаковые, то их запихивают в массив, используют, а когда они должны уничтожаться, просто отключают и пихают обратно для повторного использования. называется object pooling. это вообще обязательная вещь

если ты делаешь для компа платформер двухмерный и суперпростой, то можешь делать инстансы без проблем. я для обучения делаю ремейки игр на nes и instantiate у меня в рантайме есть ибо в моём случае упор делается на скорость разработки, а не на результат который никому и не показываю
Аноним 22/06/20 Пнд 19:20:05 6782781081
>>678269
Так их могут быть сотни/тысячи, и что их выключенными SetActive(false) в оперативной памяти хранить? Уш лучше instantiate тогда.
Если игра опенворлд, пропукать объекты заранее становится проблематично.
Хотя пока это тебе писал понял что можно разбить мир на зоны и пропукивать обьекты в этих корзинах по мере приближения, но тогда будет лаг между зонами.
Чтобы не было лага, мы дробим эту подгрузку еще мельче но чаще, и приходим в конце концов к обычному instantiate.
Аноним 22/06/20 Пнд 19:24:05 6782791082
>>678278
> Так их могут быть сотни/тысячи
Тогда добро пожаловать в ECS.
Аноним 22/06/20 Пнд 19:26:13 6782801083
Аноним 22/06/20 Пнд 19:31:43 6782811084
>>678278
понятное дело что всё от проекта зависит. просто с такими вопросами я не подумал что ты там gta делаешь или wow. можешь делать смело всё на instantiate и когда дело дойдёт до оптимизации, то ты будешь видеть что тебе нужно заранее прогружать в профилировании. через какое-то время будешь уже по опыту определять на этапе планирования

вот может будет интересно видео где чувак рассказывает как сделать большую карту используя субсцены

https://www.youtube.com/watch?v=91kJtsDLTyE
Аноним 22/06/20 Пнд 19:59:51 6782891085
454465475.jpg 175Кб, 1503x835
1503x835
>>678281
Ок, значит останусь на instantiate пока.
Спасибо за видео, хотя он использует исиес/какие то модули, я предпочитаю пока оставаться на ваниле и не забивать голову новинками. Но в целом подход тот же, хотя я бы все же не стал крутить math.distance каждый кадр на каждый объект, а только на то что рядом и раз в секунду.
Аноним 22/06/20 Пнд 20:22:54 6782951086
>>678289
тоже за ваниль держусь, но предпочитаю чекать то там нас ждёт. кстати по поводу расчётов, ванили и подобной хуйни я помню смотрел ролик где чувак делал бойдов. там каждый бойд должен был знать кто его "сосед", на каком расстоянии он и в какую сторону летит и когда увеличивал кол-во агентов, то получал нихуёвый такой лаг несмотря на то, что сегментировал сцену. а потом он взял и все эти расчёты запихнул в compute shader без сегментации и получил прирост производительности в миллион квадратилионов или типа того процентов. это ванильно и довольно круто

https://www.youtube.com/watch?v=bqtqltqcQhw

кстати чего делаешь там покажи. выглядит любопытно
Аноним 22/06/20 Пнд 20:46:34 6783011087
eboshevo.png 392Кб, 1662x835
1662x835
>>678295
>запихнул в compute shader
раз шейдер значит наверное ГПУ, а раз видюха, то ей действительно на количество запросов поебать, она раз в кадр миллоны пикселей и так хуярит.
>чего делаешь
да прототипирую, показывать кубы смысла нет
у меня в планах сделать что-то типа вововского данжена/ов, где ты в соло аутируешь, пылесосишь мобов, абилки/квесты/инвентаризация лута, такое все.
понимаю что без графики это все пыль, но я у мамы немного 3д художник
Аноним 22/06/20 Пнд 20:54:13 6783021088
>>678301
а мне прототайпы наоборот вставляют. я потому дальше них редко чего делаю. плюс у тебя понятно что там происходит и как рассчитывается. техническая магия. в твиттере было такое движение как blocktober

https://twitter.com/hashtag/Blocktober

турбоизвестные чуваки выкладывали свои кубы
Аноним 22/06/20 Пнд 21:11:41 6783071089
>>678302
>я потому дальше них редко чего делаю
это потому что дальше них нужно делать графон)
очень сложно кстати поймать именно момент когда нужно начинать наносить макияж, иначе без него становится сложно оценить геймплей из глаз игрока, а если слишком рано загрузишь - будешь с ассетами трахаться вместо механик
Аноним 22/06/20 Пнд 21:27:51 6783081090
wolf3dv2.mp4 1135Кб, 972x600, 00:00:19
972x600
942653591048977[...].mp4 667Кб, 640x640, 00:00:16
640x640
>>678307
>это потому что дальше них нужно делать графон)
не, как раз в том то и дело что дальше ничего делать не нужно. я как-то не очень планирую что-то релизнуть. мне нравится процесс создания какой-нибудь галиматьи и поскольку нет никакой цели то совершенно похуй когда один проект превращается в другой. вот например в начале всей этой карантинной херни сел делать ремейк вульфенштайна с блекджеком, потом ремейк плавно перетёк в x-com с ассетами из фульфа, а потом в рассистский баскетбо
Аноним 22/06/20 Пнд 22:12:43 6783121091
>>678308
Почему у этих фошистов партупея через левое плече? Должно быть наоборот!
Аноним 22/06/20 Пнд 22:16:40 6783141092
>>678308
Как реализовать поворот спрайтов в зависимости от направления движения?
Аноним 22/06/20 Пнд 22:19:21 6783151093
>>678308
Ты спрайты шейдером поворачиваешь? Если да, реквестирую шейдер >>677847
Аноним 22/06/20 Пнд 22:30:07 6783161094
>>678312
хуй его знает, может быть потому что я тюлень и плохо в фошистах разбираюсь

>>678315
кручу не шейдером, а трансформом
Аноним 22/06/20 Пнд 22:44:52 6783171095
Guard.png 51Кб, 512x447
512x447
Screenshot 2020[...].png 90Кб, 790x722
790x722
Screenshot 2020[...].png 547Кб, 2280x1322
2280x1322
>>678314
спрайтшит прикладываю. собственно тут 8 направлений на 3 анимации (айдл, ходьба и стрельба). стрелают в вульфе, только в сторону камеры, так что спрайт потом пришлось заменить на думгая. если интересно, то могу записать с ним видео

шейдер делал через шейдерграф ибо хлсл не помню. в инспекторе выглядит вот так (второй скрин) и к нему скрин начинки графа

собственно скрипт считает угол между форвардом камеры и направлением персонажа и выставляет для нужное значение параметра Direction
Аноним 22/06/20 Пнд 22:49:22 6783181096
Аноним 22/06/20 Пнд 22:55:52 6783201097
wold3dv3.mp4 547Кб, 924x720, 00:00:18
924x720
Screenshot 2020[...].png 350Кб, 3084x1482
3084x1482
>>678314
фоллоуап для тебя. камера постоянно крутится вокруг персонажа, я так дебажил анимацию. на скрине код к скрипту который отвечает на поворот спрайта в зависимости от направления движения. я надеюсь ты это спрашивал, а не как заставить спрайт всё время к камере крутиться
Аноним 22/06/20 Пнд 23:10:41 6783221098
>>678320
Спасибо, добра тебе
Аноним 23/06/20 Втр 08:44:23 6783561099
>>678320
Чому Rider предлагает писать переменные с подчеркивания? Так разве принято?
Аноним 23/06/20 Втр 09:06:49 6783571100
image.png 172Кб, 467x729
467x729
Почему в юнити до сих пор не могут ничего сделать вот с таким хаосом? (это всего лишь анимации одной модели из видео Brackeys)

Реально, 99% времени эти ноды не нужны разработчику игры. Он один раз настраивает и потом изредка правит.Но почему же они занимают 100% места в инспекторе?

Нет, я понимаю что можно свернуть/скрыть/заморозить - но это говно решения - это костыли

почему нельзя сделать этакие под-узлы, чтобы в инспекторе показывало только рутовый нод, а его чилдры показывались в отдельном окошке по требованию?

(вообще это беда всех программ с нодами, от юнити до 3дс макса. Видел только одну прогу по моделингу где сделали как я написал - то есть в инспекторе только главные ноды, при щелчке показывает чилдов, там это хорошо сделано)
Аноним 23/06/20 Втр 09:48:18 6783601101
>>678356
Да, microsoft name conversation подразумевает все приватные писать с _myPrivateVariable, локальные camelCase, публичные PascalCase

>>678357
Может, в настройках импорта модели вкладка Rig и снизу есть чекбокс Optimize Game Objects объединит весь хаос в 1 game object
Аноним 23/06/20 Втр 12:23:22 6783721102
image.png 135Кб, 600x450
600x450
image.png 717Кб, 1500x694
1500x694
Вопрос - Юнька умеет работать с векторной графикой из коробки? Или требуется костылить в виде доп модов либо перегона картинок в пнг и подобное?

ЗЫ: чуть оффтопа: и подойдет ли Inkscape для подобной рисовки? Планшетом или мышкой - еще не решил
Аноним 23/06/20 Втр 14:01:40 6783901103
>>678357
Все это выглядит, как обычный риг в Maya, например
Аноним 23/06/20 Втр 14:08:36 6783921104
>>678372
есть официальный пакет Vector Graphics
Аноним 23/06/20 Втр 19:39:15 6784231105
Не знаете, они делают рефанд Unity Learn Premium? Купил 17 марта подписку на год, через 2 дня объявляют, что 3 месяца бесплатно для всех, ок мне продлили тоже на 3 месяца, а сейчас приходит письмо, что теперь подписка навсегда бесплатна для всех, в итоге я 120 бачей закинул за 2 дня подписки.
Аноним 23/06/20 Втр 20:14:08 6784241106
>>678423
письмо которое они разослали такой информации не содержит и уверен что ничего тебе не вернут, был пару раз в таких ситуациях. ну и вон у людей недавно пекло когда GTA5 в EGS стал бесплатным.

с другой стороны в письме написано что если есть вопросы, то задавайте их тут

https://unity3d.com/contact/get-in-touch

а как говорят американцы: скрипящее колесо получает масло
Аноним 23/06/20 Втр 21:20:11 6784351107
image.png 25Кб, 1534x95
1534x95
>>678424
Ну хуй знает, может переводчик неправильно переводит. Но смысл не в том, мне было бы похуй например, если бы я купил премиум в прошлом году или на крайняк зимой. Но блядь я купил его за 2 дня до того, как он стал бесплатным, я думаю могут же сделать исключение, ладно когда полгода я бы проебал и спохватился, но не два же дня.
Аноним 23/06/20 Втр 21:47:45 6784381108
>>678435
Напиши в саппорт, всяко больше шансов будет чем на дваче
Аноним 23/06/20 Втр 22:04:01 6784391109
>>678438
Да я написал типа что можно рефанд или на крайняк можно из ассет стора на эту сумму набрать чего-нибудь, я просто думал тут кто-то уже есть такой же, как и я или с опытом рефанда чего-то в юнити.
Аноним 24/06/20 Срд 04:20:17 6784651110
>>678423
>что теперь подписка навсегда бесплатна для всех
а можно подробнее? то есть теперь все могут бесплатно зарегаться?
Аноним 24/06/20 Срд 04:26:29 6784661111
>>678439
никто не говорил "мы продаём тебе услуги по 10 баксов в месяц". ты заплатил за 12 месяцев, а получил пожизненно. юридически услуга тебе оказана, а бесплатно тебе давать никто ничего не будет
Аноним 24/06/20 Срд 09:29:47 6784731112
>>678466
Да никто не говорит, что они обязаны или не обязаны, просто в таких случаях могут пойти на встречу и вернуть деньги или как-то по другому решить вопрос с клиентом, мне вот например в одной игре я купил случайно донатный итем в количестве двух штук, потому что забыл, что первый раз купил уже его, в итоге обратился в поддержку, мне сделали исключение и вернули деньги за второй. В другой игре я купил набор за доллары и не заметил, что если переключиться на рубли, то там другая цена, объяснил поддержке ситуацию, мне вернули все.

Понятно что юридически можно нахуй посылать всех подряд, но это все таки клиенты и большие фирмы обычно стараются быть лояльными к своим клиентам и часто идут на встречу, если активно использую unity и asset store покупаю вещи за доллары, логично что если пойти мне на встречу, они получат больше денег за счет лояльности, а если откажут, то я скорее их нахуй пошлю и ни копейки больше не вложу.
Аноним 24/06/20 Срд 13:59:16 6785041113
Как в Юньке сделать просто надпись, чтоб была на экране? Не вижу где.
Аноним 24/06/20 Срд 15:43:03 6785201114
>>678504
правой кнопкой по иерархии UI > Text
Аноним 24/06/20 Срд 16:06:24 6785221115
bandicam 2017-0[...].jpg 182Кб, 1920x1080
1920x1080
Аноним 25/06/20 Чтв 15:21:43 6786461116
>>660951
>у меня мак
ставь IL2CPP
Аноним 25/06/20 Чтв 23:30:02 6787541117
Посоветуйте годноту на Learn Premium.
Нужна помощь мастера ученику Аноним 26/06/20 Птн 12:38:41 6788011118
Мне нужна помощь в плане кватерионов, ригидбоде и хиндеджоинт.
Если нужны деньги я могу ну там на номер телефона кинуть до 500 р. Просто хотелось бы знать - сидят тут синьёры, а ниже врятли помогут. Если отпишитесь - опишу проблему.
Аноним 26/06/20 Птн 13:03:25 6788041119
>>678801
Ну никто не пишет - вот мой проект - чур не смеяться
Аноним 26/06/20 Птн 13:03:52 6788051120
>>678804
режет ссылки мля
Аноним 26/06/20 Птн 13:05:13 6788061121
Аноним 26/06/20 Птн 14:47:36 6788161122
>>678801
>хиндеджоинт
Индусский косяк?
Аноним 26/06/20 Птн 16:39:08 6788321123
JointIK.webm 1541Кб, 928x644, 00:00:23
928x644
>>678801
хуль ты там делаешь? ещё бабло предлагает лол. сын олигарха чтоли!
Аноним 26/06/20 Птн 17:29:51 6788361124
>>678832
Ты изобрёл инверсную кинематику?
Аноним 26/06/20 Птн 17:36:22 6788381125
Space.webm 3168Кб, 1680x1050, 00:00:22
1680x1050
>>678836
я на коленке сделал чтобы джойнтам сообщалась дельта-ротация которую я беру из простенькой инверсивной кинематики. и чтобы сделать это колдовство мне как раз пришлось сделать немного колдовства с квартернионами.

тут год назад был анон который плохо понимал локальность ротаций и как следствие как пользоватся кватернионами.
Аноним 27/06/20 Суб 07:01:39 6789361126
>A polygon of model-name is self-intersecting and has been discarded.

какой самый элегантный и простой способ отловить n-gon не конвертируя все в треугольники?
Аноним 27/06/20 Суб 07:04:00 6789371127
или хотя бы как заставить юнети заткнуться
Аноним 27/06/20 Суб 07:08:17 6789381128
нгонофоб хуже пидараса кстати, нахуй они вообще это предупреждение сделали, ничего же страшного блять не происходит ну пересекается, ну дискарднул и похуй ебать, нет блять будем предупреждать ууу сука
Аноним 27/06/20 Суб 07:15:45 6789401129
Аноним 27/06/20 Суб 14:54:08 6789811130
image.png 30Кб, 706x371
706x371
image.png 19Кб, 589x368
589x368
Не понимаю что за хуйня, в одном скрипте подсветка синтаксиса работает нормально, в другом нет. Ошибки и прочее не подсвечивает, быстро вводить код не помогает. В настройках всё вроде включено.
Как фиксить? JetBrains
Аноним 28/06/20 Вск 03:32:27 6790971131
1593304345044.png 1645Кб, 1091x897
1091x897
если твое дерево не похоже на это, то у тебя не все в порядке с ориентацией и возможно стоит начать с того чтобы сменить лигу
Аноним 28/06/20 Вск 03:33:08 6790981132
промазал
Аноним 28/06/20 Вск 03:40:52 6790991133
>>679097

path of exile если что, пример кириллов, пришедших к успеху (чтоб в тему доски)
Аноним 28/06/20 Вск 10:58:23 6791121134
Аноним 29/06/20 Пнд 07:11:17 6792901135
Вопрос - как лучше всего реализовать бесконечно тянущуюся ленту рандомных объектов?

Что Instantiate в рантайме идея не оч, я понял, но сходу в голову альтернатив не приходит для реализации подобного
Ближайшее из похожего на то, что я хочу сделать - постоянно появляющиеся разные блоки во всяких "три в ряд" или рандомные "стены" в Flappy Bird и ее клонах
Аноним 29/06/20 Пнд 08:48:26 6792911136
>>679290
Читай про пул обьектов. Объектный пул (англ. object pool) — порождающий шаблон проектирования, набор инициализированных и готовых к использованию объектов. Когда системе требуется объект, он не создаётся, а берётся из пула. Когда объект больше не нужен, он не уничтожается, а возвращается в пул.
Аноним 29/06/20 Пнд 09:23:09 6792961137
>>679291
про пул я знаю

но он подойдет для кучи рандомных объектов?

если с пулями, которых физически не может быть больше, например, 10-15 одновременно, все ясно, то что делать, например, если на поле 10на20 каждый тайл может быть одним из десятка видов?

пулить 10х20х10=2000 тайлов?
Аноним 30/06/20 Втр 08:53:12 6795131138
>>679296
Делать конфиг как scriptableObject, а сами объекты пулить и настраивать под конкретный конфиг, чтобы по факту ты пулил плашки и делал tile.SetSpike() например.

ПЕРЕКАТЫВАТЬ БУДЕМ?
Аноним 30/06/20 Втр 14:34:30 6795511139
Аноним 30/06/20 Втр 15:59:43 6795971140
>>679513
Перекатим когда предыдущий тред утонет, через полгодика
Аноним 01/07/20 Срд 08:28:56 6798351141
Как просто нарисовать 2д линию от А до Б? Какой способ лучше? В лоу левел лезть не хочется
Аноним 01/07/20 Срд 12:04:00 6798601142
>>679835
LineRenderer используй или если нужно просто в редакторе то Debug.DrawLine
Аноним 01/07/20 Срд 12:30:44 6798671143
>>679860
LineRenderer для 2д вообще пиздец, если бы ты сам попробовал не рекомендовал бы его. В общем нагуглился и решил просто растягивать и крутить спрайт обычный, думал есть решение получше.
Аноним 01/07/20 Срд 12:35:08 6798701144
>>679867
> LineRenderer для 2д вообще пиздец
А в чём пиздец-то? Я использовал, проблем не заметил. Вешаешь подходящий материал, ставишь нужную ширину, вот тебе и линия. Или ты спрайты разносил не по порядку слоёв, а по Z, и из-за этого у тебя линия пересекала другие спрайты?
Аноним 01/07/20 Срд 12:40:56 6798711145
>>679867
никаких проблем не заметил с 2d. использовал много раз
Аноним 03/07/20 Птн 15:08:46 6804751146
Сап двач.
Пилю сейчас рекламу для приложения на Юнити через Admob и meditation с Unity Ads.
Обнаружил что юнити адс не работает на андроиде до 4.4. Сам пак интеграции адмоба и юнити адс вставлял через https://github.com/googlesamples/unity-jar-resolver
Вообщем нужно просто не инициализировать юнити адс елси версия андроида меньше чем.. Порылся в классах адомба, ничего внятного об инициализации не нашел, так вот вопрос.
Кто в курсе, где либо можно ограничить инициализацию meditation аднетворков?
Аноним 03/07/20 Птн 15:52:14 6804931147
2020-07-0319-51[...].png 7Кб, 565x424
565x424
Почему юнити не видит новой версии? Через юнити хаб можно скачать уже 4.2 , на сайте тоже показывает что 4.2. ласт версия, а юнити не видит.. Или все ок?
Аноним 04/07/20 Суб 02:27:54 6805961148
кто-нибудь использовал AI Planner?
https://docs.unity3d.com/Packages/com.unity.ai.planner@0.0/manual/index.html

думал писать простой ai и хотелось бы иметь возможность проще его визуализировать. а по этой штуке документация так себе. может кто собирал проект или знает где можно почитать статью какую-нибудь по этому пакету?
Аноним 04/07/20 Суб 04:35:31 6806021149
>>680475
У тебя гео украина, что ли? Андроид 4.4 устарел 6 или 7 лет назад, сейчас телефоны на нем разве что у бабушек и в очень бедных странах.
Аноним 04/07/20 Суб 16:55:58 6807101150
image.png 13Кб, 797x218
797x218
image.png 256Кб, 1920x824
1920x824
image.png 259Кб, 1920x883
1920x883
Поясните, пожалуйста, за прикрепление скриптов к объектам в игровой сцене.

У меня есть три скрипта. Cкрипт Pet наследует MonoBehaviour и прикреплен к объекту Main Camera. Два других скрипта Dog и Duck наследуют скрипт Pet и они переписывают один и тот же метод на свой манер.

Когда Dog и Duck не прикреплены к объектам в сцене, их методы не вызываются.

Но если я создам какие-то кубики в сцене и прикреплю к ним эти скрипты, то их методы возовутся.

Почему так происходит? Юнити же видит эти два скрипта и без привязки к кубикам. Почему обязательно нужна привязка к объектам?
Аноним 04/07/20 Суб 17:01:35 6807111151
>>680710
> не прикреплены к объектам в сцене, их методы не вызываются
Метод Start вызывается только объектом на сцене.
Аноним 04/07/20 Суб 17:34:50 6807161152
>>680711
Start вызывается из-за того, что класс наследует MonoBehaviour, где этот Start прописан. Далее Start начинает выполнять метод Speak. В виду того, что у метода Speak прописано virtual, оно начинает шерстить все чаилд скрипты на предмет оверрайда. Но если эти чаилд скрипты не закинуты на объекты в сцене, оно не выполняет оверрайд. Так вот я интересуюсь, помему это так.
Аноним 04/07/20 Суб 17:45:18 6807181153
>>680716
> В виду того, что у метода Speak прописано virtual, оно начинает шерстить все чаилд скрипты на предмет оверрайда
Совсем нет. Это потомки начинают смотреть а что там у бати. Если базовый скрипт висит на сцене, а потомки нет, то нихуя они не сделают.
Аноним 04/07/20 Суб 17:52:16 6807201154
>>680718
Ты не прав. Потомки не содержат ни старт, ни апдейт методы. Поэтому при старте программы они вообще ничего не делают. К ним можно обратиться только из родительского скрипта.
Аноним 04/07/20 Суб 17:55:48 6807221155
>>680720
Раз я не прав, то почему твоя теория не работает, а моя работает?
Аноним 04/07/20 Суб 17:59:02 6807241156
>>680720
> Потомки не содержат ни старт, ни апдейт методы
Естественно, они же прописаны в базовом классе.
Почитай про ООП, потом приходи.
Аноним 04/07/20 Суб 18:04:16 6807271157
>>680724
Я к тому, что они не могут запрашивать сами по себе что-то из других скриптов.

>>680722
Не имею ни малейшего понятия. Но чаилд скрипты служат тут как контейнеры к которым обращаются и черпают из них информацию для родительского скрипта
Аноним 04/07/20 Суб 18:10:23 6807291158
>>680727
> Но чаилд скрипты служат тут как контейнеры к которым обращаются
Братишка, в том и дело что к чайлдам никто не обращается.
Если ты в базовом классе прописал виртуальный метод Yoba, то у потомков он не сработает. Это работает наоборот.
Без негатива, но, кажется, ты не сильно понимаешь как работает наследование и полиморфизм.
Аноним 04/07/20 Суб 18:24:43 6807381159
>>680729
Хорошо. А как тогда чаилд знает, что ему нужно исполнить какой-то код. Как на нем может запуститься метод Speak? Можешь описать последовательность работы программы?
В моем представлении, цепочка запуска программы начинается с метода Start. Start запускает Speak, Speak оказывается виртуальным и поэтому начинается шмон всех чаилдов на предмет оверрайда.
Как иначе это может работать?
Аноним 04/07/20 Суб 18:27:42 6807391160
>>680738
> А как тогда чаилд знает, что ему нужно исполнить какой-то код
Никак. Чайлд (да и база тоже) выполняет метод сугубо по запросу. Сказали сделать — сделает. Как тот же метод Start. Если база выполнила виртуальный метод, то своим детям она об этом не сообщает.
Аноним 04/07/20 Суб 18:40:00 6807421161
>>680739
А зачем тогда писать, что потомки начинают смотреть, а что там у бати
>>680718
>Это потомки начинают смотреть а что там у бати.

Как они начинают смотреть, а что там у бати, если именно батя обращается к ним и смотрит, что они там наоверрайдили?
Аноним 04/07/20 Суб 18:42:38 6807441162
>>680742
Так, давай конструктивно.
Ты думаешь, что при вызове виртуального метода базового класса все наследники его выполняют в виде перегрузки?
Аноним 04/07/20 Суб 19:02:10 6807491163
image.png 33Кб, 854x419
854x419
>>680744
Пока я рисовал эту последовательность работы, я понял, почему нужны объекты для Dog и Duck. Получается, что текст в Debug.Log исходит от каждого из этих объектов по отдельности, т.е. Dog и Duck выдают в консоль свой текст напрямую. А я вначале подумал, что только из Pet и там есть какая-то обратная связь. А оказывается что обратной связи там нет и Pet просто тригерит выполнение кода для Dog и Duck.
Аноним 04/07/20 Суб 19:34:51 6807551164
image.png 17Кб, 269x167
269x167
Да, все именно так и оказалось. Я добавил + this.gameObject.name к каждому Debug.Log. И получается что Virtual триггерит выполнение кода на этих объектах. Какой же я умный, не перестаю удивляться
Аноним 04/07/20 Суб 20:16:42 6807661165
Аноним 04/07/20 Суб 20:28:27 6807721166
>>659486 (OP)
Кто нибудь объясните, как работает редактор спрайтов юнити? Выбираю область на листе спрайтов вырезаю, редактор сохраняет картинку, но когда выбираю вторую область для другого спрайта, программа просто перезаписывает ранее выбранный спрайт.
Аноним 04/07/20 Суб 22:05:22 6808101167
image.png 7Кб, 283x96
283x96
Аноним 05/07/20 Вск 13:28:17 6809201168
Ну значит почитал я про интерфейсы в си шарпе, но не совсем понял зачем они нужны. Может кто привести реальные примеры нахуя они нужны именно в юнити?
Аноним 05/07/20 Вск 13:32:20 6809211169
>>680920
Если ты не понимаешь зачем нужны абстракции, то пока об этом и не думай. Просто ебашь дальше как привык. Потом со временем само придёт.
Аноним 06/07/20 Пнд 03:06:26 6811161170
Почему когда я хочу переместить объект, то я могу закодить перемещение в виде:
1- this.gameObject.transform.Translate(-5, 0, -5);
2 - this.transform.Translate(-5, 0, -5);
3 - transform.Translate(-5, 0, -5);
И во всех трех случаях не возникнет проблем.
Почему некоторые используют второй вариант, а некоторые третий вариан? Какой вариант правильнее использовать, чтобы не зашквариться и не упасть в глазах порядочных юнити девелоперов?
Аноним 06/07/20 Пнд 05:35:38 6811211171
>>681116
А можно ещё и this.gameObject.transform.gameObject.transform.Translate(-5, 0, -5);
Только нахуя?
Аноним 06/07/20 Пнд 05:47:29 6811231172
>>681121
Почему оно такое кучерявое все? Где четкие, строгие рамки? Что за распущенность? Как с этим бороться? Как вообще такое допустили?
Аноним 06/07/20 Пнд 08:04:45 6811241173
>>681123
> Почему оно такое кучерявое все?
Что именно? Язык позволяет тебе писать так, как хочешь. Хочешь писать лишнюю хуйню — пиши.
Ты же можешь сказать "Я, Антон Ананасович, торжественно заявляю, что хочу срать". А можешь сказать просто "Хочу срать" и все тоже поймут что срать хочешь именно ты.
Аноним 06/07/20 Пнд 10:39:10 6811251174
>>681116
>>681121
>>681123
Сначала напсал огромную пасту и получил bad gateway, спасибо абу.

Коротко:
1 - в шарпах this. автоматически применяется внутри классов и методов, так что можешь его не писать.
2 - gameObject - это контейнер компонентов в движке. Transform - это компонент для расположение объекта в сцене.
3 - Во имя спичечной оптимизации и доступа к памяти используй как можно меньше blah.mah.suka.blyad.teleport(), старайся делать player.Teleport() это и быстрее и удобнее понять человеку (т.е. тебе)
делай всегда transform.Translate(-5,0,-5),
Аноним 06/07/20 Пнд 14:27:02 6811551175
>>680602
Охотно верю, задача такая по работе
Аноним 06/07/20 Пнд 21:23:26 6812051176
>>680810
.Да, да я уже разобрался, но все равно спасибо
Аноним 08/07/20 Срд 11:40:18 6814671177
Sup, gaym developers!

Работаю в Юнити где-то полгода, до этого много кодировал на сисярпе. Сейчас пытаюсь сделать мобильный pong с некоторыми механиками арканоида. Расставил 3д объекты скриптами, камеру руками. И только при тестировании на разных мобильниках осознал что соотношения сторон экрана тоже бывают разные. В гугле забанили, не смог найти какого-то годного гайда как с этим бороться. В целом вижу так: надо получать размеры клиентской области и пересчитывать положение препятствий (стены совпадают с границей экрана). Но в таком случае получается что игра будет играться по разному на разных экранах. Скажем у меня есть кубики в ряд от одной стенки до другой. На айфоне их помещается 10, на одном из андроидофонов только 8. В общем накидайте каких-то гайдов по разработке на мобилки. Спасибо.
Аноним 08/07/20 Срд 11:55:17 6814741178
Аноним 08/07/20 Срд 12:03:48 6814771179
Аноним 08/07/20 Срд 17:00:01 6815301180
ooof.jpg 2Кб, 225x225
225x225
Весь день убил чтобы поставить HDRP, так и не смог.
Нигде не написано:
1 - Конкретная версия hdrp работает только на конкретных версиях юнете, т.е. я сидя на LTS 19.4 не могу поставить последний пакет и жить счастливо
2 - я не могу использовать другие пакеты юнете, странно правда? но! они используют куски из ShaderGraph в Utils классах и встраивают свою логику в эти утилзы - как итог у меня отваливается полностью несколько пакетов, а разбираться в этих десятках файлов по 1-4к строк кода совсем нет желания
3 - Импорт моделей создает материалы, update material to hdrp ни че го не может с ними сделать, нужно руками ВСЕ модели перетаскивать
4 - Создай проект и перетащи все файлы юнете не смог восстановить сцены, отвалились скрипты в префабах и сценах
Резюмирую пиздец
Аноним 08/07/20 Срд 17:03:56 6815321181
>>681530
сочувствую. а чего хотел то?
Аноним 08/07/20 Срд 17:14:14 6815441182
А какая сейчас практика считается "правильной" в мобильном UI? Как надо лучше организовать его в мобильной игрушке? Лучше ли пользоваться подгружаемыми сценами, или просто закидывать в каждую сцену префабом меню паузы?
Аноним 08/07/20 Срд 17:18:03 6815501183
>>681544
затрахался с этой темой. правильной практики нет, даже приблизительно правильной. делай, блядь, как хочешь. в официальных от юнити проектах даже по-разному сделано. я, лично, предпочитаю отдельную сцену ибо меня раздражает гигантский канвас на рабочей
Аноним 08/07/20 Срд 18:11:21 6815691184
>>681530
1. Открываешь менеджер пакетов
2. Находишь пакет хдрп
3. Жамкаешь инстал.
4. После установки появляется окошечко в котором жамкаешь фикс алл.
4. Всё работает.
Аноним 08/07/20 Срд 18:45:49 6815741185
image.png 199Кб, 1630x698
1630x698
image.png 182Кб, 1599x629
1599x629
Почему не видно границы коллайдера при выделении обьекта? видно только когда редактирую сам коллайдер, как на пик2, а не постоянно, как было раньше
Аноним 08/07/20 Срд 19:03:18 6815771186
wow.png 801Кб, 1450x711
1450x711
>>681569
Ага, счстливый ты человек.
Руками откатил все материалы к стандартым, в редакторе вижу текстуры, в игре свет будто не работает и все стены серые стали, в профайлере в каждом тике создается куча мусора, иногда начинаются просадки фепеса и грузит мой i7-9900 под 30% (на сцене 4к полигонов), наверняка потрачу еще несколько дней на это дерьмо.

>>681574
Проверь вкладку Gizmos (левее вкладки инспектора), скорее всего выключил там Collider
Аноним 08/07/20 Срд 19:07:38 6815781187
>>681577
>Gizmos
Спасибо, помогло
Аноним 08/07/20 Срд 20:46:31 6815871188
Аноним 09/07/20 Чтв 19:38:04 6817241189
2020-07-0919-32[...].png 612Кб, 1915x1004
1915x1004
2020-07-0919-34[...].png 41Кб, 1588x803
1588x803
Привет. Есть префаб, в нём должна быть ссылка на canvas. Как сделать так, что бы новые объекты сделанные instantiate с этого префаба имели ссылку на canvas? Погуглил, но ничего не понял
Аноним 09/07/20 Чтв 23:24:02 6818331190
>>681724
Самое простое решение
GetComponentInParent<Canvas>();
ищет компонент вверх по иерархии
Аноним 09/07/20 Чтв 23:44:33 6818441191
>>681724
сделай у тех объектов что ты создаёшь с instantiate метод например Init и в него передавай все зависимости
Аноним 10/07/20 Птн 13:15:38 6819401192
Подскажите как въехать во всё это
Я до этого писал свои велосипеды на моногейме
С программированием у меня проблем нет, однако я полностью завязался на парадигме что всё есть код и классы
Сколько не пытался въехать в юнити никак не могу осилить
Все эти гуишные штуки, компоненты
Я никак не могу въехать как мне связывать объекты между собой, как в принципе с точки зрения архитектуры всё должно работать
Все гайды что я видел это для ребят, которые только вчера hello world написали
А советов для тех, кто с велосипедов самописных переходит не видел
Можете что подсказать?
Аноним 10/07/20 Птн 13:54:28 6819521193
>>681940
Я относительно нормальные архитектуры начал ебашить только после нескольких сотен часов хождения по граблям. До этого были ёбаные башни из костылей с кучей связей и зависимостей, где если один костыль вытащишь — всё развалится нахуй.
Так как я хуй знает какая там у тебя игра задача, то и советах немного теряюсь.
В принципе, если обмажешься SOLID, то архитектура будет более-менее надёжная.
Аноним 10/07/20 Птн 14:01:03 6819591194
>>681952
Ну смотри
До этого я организовывал так
Был базовый класс Sprite, который имел список Sprite (типа child)
Sprite короче как контейнер чисто
У Sprite две виртуальные функции, Update и Draw
В Update, соответственно, вся логика, в Draw всё что связано с рендером
Ну и соответственно пишу я, например, класс героя главного
Наследуюсь от Spirte, переписываю Update на считывание кнопок и передвижение, в Draw рисую текстуру
Ну и есть общий контейнер, типа Map какой-нить, куда я кидаю child героя, врагов, объектов и вот это всё
Я пытаюсь построить аналогию к системе в Unity, но так и не смог
Для коллизий подключал физический движок, делал наследника от Sprite типа BasePhysicObject, которые рулил физическими параметрами и создавал collisionbox и вот это всё, а все физические объекты наследовал от него
Короче всё строилось на наследовании и полиморфизме
Аноним 10/07/20 Птн 14:13:35 6819681195
>>681959
Поразмышлял короче и подумал, что вроде так должно работать
Класс в моей архитектуре примерно равен префабу в юнити
Только я тогда не совсем понимаю как мне наследоваться от префаба
Типа у меня есть префаб базового врага, и я хочу намутить несколько типов врагов
Вешать скрипт на префаб типа BaseEnemy.cs, наследоваться от него, и всем, что меняется от типа врага рулить в скриптах наследниках?
Аноним 10/07/20 Птн 14:17:32 6819721196
>>681959
> Я пытаюсь построить аналогию к системе в Unity, но так и не смог
Почему? Звучит как обычная реализация.
> как мне наследоваться от префаба
Prefab variant
Аноним 10/07/20 Птн 15:56:16 6820181197
>>681940
В юнити всё тоже на классах, вот тут ты пишешь >>681959
что наследуешь Player от Physics и Sprite, в юнити это декомпозируется т.е.:
Есть GameObject, на него вешается класс Player и класс Collider и класс Sprite. Т.е. gameobject контейнер классов.
Связывать это всё можно делая переменную публичой (способов больше) и перетаскивание этих классов в инспекторе, но есть и другие варианты, у юнитевского GameObject есть методы GetComponent<T>, GetComponentInParent<T> GetComponentInChild<T> есть даже FindComponentInScene<T>.
Для тебя, наверное, самое сложное будет понять, что наследование не решает всех проблем и можно композировать задачи, в ентерпрайзе тоже используют этот подход, просто не так часто.
Аноним 11/07/20 Суб 14:31:59 6822581198
>>678981
Юзать православную студию от майков, а не васянопарашу от джетов. Не понимаю нахуя все дрочат на райдер.
Аноним 11/07/20 Суб 14:33:33 6822591199
>>678940
Все игрульки делают, а не двигают модельки по сцене!
Аноним 13/07/20 Пнд 16:40:45 6825881200
На Рутрекере есть пиратская версия про версии Юнити. Если ее установить, то смогу ли я воспользоваться через нее Юнити Collab-ом, устанавливать ассеты из официального магазина прямо в редакторе, публиковать игры и не быть задетекченным в пиратстве?
Аноним 13/07/20 Пнд 16:50:52 6825921201
>>682588
Попробуй, потом нам расскажешь.
Аноним 13/07/20 Пнд 16:54:37 6825941202
>>682592
На Персии перечитал комменты за последние два года. Почему-то эти вопросы ни кто не поднимает. Вернее, к одной из версий был задан этот вопрос, но ответа на него не было
Аноним 13/07/20 Пнд 21:44:00 6826291203
Может зря пишу в мёртвом треде никому не нужно - Кто работал с Фангус, скажите как переход диалогов сделать чтоб только при клике на панель диалого происходило и вообще может можно сделать как все кнопки за заднем плане во время диалогов отключать чтоб игрок не мог их нажимать пока идёт разговор?
Аноним 13/07/20 Пнд 23:14:05 6826361204
>>682629
Хотя уже всё, не нужно.
Аноним 14/07/20 Втр 00:33:02 6826491205
Долго ли делать игру подобную stoneshard ? Я не в плане проработанности игры, а скорее "нахуячить 2д карту, заставить персонажа бегать по ней и собирать дрова и пиздить одного волка заскриптованного". Чисто как пет проект.
Аноним 15/07/20 Срд 05:03:13 6828171206
>>682592
Установил пиратскую про версию. Целый день ее тестировал. Хаб, коллаб, ассет стор, расширения- все работает как надо. Всем рекомендую!
Аноним 15/07/20 Срд 07:25:21 6828241207
Аноним 15/07/20 Срд 13:55:11 6828661208
Долго вкатываться в это юнити ваше чтобы работу найти за гроши в говно студии?
А то вроде смотрю народу много учит его, но чет судя по вакансиям работы то и нет.
Аноним 15/07/20 Срд 14:18:29 6828681209
>>682866
Работу ты можешь себе организовать только лишь сам (т.е запилить свой проект и выкатиться на рынок). Примеров полно. Никто в этих сферах ничего тебе не блюдечке не принесёт. Я вообще дико проигрываю с долбоёбов, которые учат юнити для того, чтобы добавить строчку в резюме и надеяться, что им близы позвонят, лол.
Аноним 15/07/20 Срд 15:05:03 6828721210
>>682824
Темная тема, чтобы глаза не портить (реально работает).
И если сделать билд игры, то заставка, что эта игра сделана на юнити, будет отсутствовать.
В виду того, что крякается это все дело за пару минут, а побочных эффектов нет- выгодное дело.
Аноним 15/07/20 Срд 15:44:15 6828791211
>>682866
В 3д графике все еще хуже. Спецов раз в 10 больше, а вакансий примерно такое же количество, как и на юнити девелопера.
Я больше года не мог ничего найти связянного с 3д графикой для геймдева. Меня тупо игнорили или писали, что вакансия уже закрыта. А на юнити девелопера хотя бы отвечают и предлагают тестовое задание пройти.
Но тут надо отметить, что по сравнению с 3д, стать геймдев разрабом намного сложнее. Я думал устроить себе перекат из одной специальности в другую за один-два месяца. Но в итоге я уже 4 месяца по несколько часов в день изучаю юнити и только-только приблизился к пониманию всей картины в разработке игр. И я осознаю, что мне нужно потратить еще столько же времени, чтобы хоть что-то из себя представлять на собеседовании.
А для мимокроков, которые без бэкграунда хотят в геймдев запрыгнуть, можно смело еще год накинуть. Так что примерно 2 года ежедневных вкалываний понадобится, чтобы не быть пустым местом и эйчарки не обсуждали тебя в курилке, как очередного долбоеба, который к ним пришел на собес
Аноним 15/07/20 Срд 16:21:05 6828831212
>>682879
Бля, 2 года на вкат это жеско. Не, в целом понимаю что геймдев нихуя не простая тема, как показывают курсы по юните на ютубе всякие Дудари. Но 2 года чет много.
Хотя я в веб программирование вкатывался год, а ведь там просто формошлепить нужно.

P.S. Как юнити изучаешь и какой прогресс за 4 месяца? Сам то я только основы учу.
Аноним 15/07/20 Срд 16:29:19 6828841213
>>682883
Лол, ты с какой луны упал? Два года это мало, блять.
Аноним 15/07/20 Срд 16:54:18 6828861214
>>682884
Чтобы устроится джуном? Иди нахер.
Аноним 15/07/20 Срд 17:12:16 6828871215
image.png 54Кб, 594x505
594x505
image.png 55Кб, 594x531
594x531
image.png 61Кб, 533x592
533x592
>>682883
Не знаю, что это за Дудари. Я изучаю по туториал на английском языке. У меня в коллекции около 100 тайтлов. Если ты не владеешь английским, то я даже и не знаю, что тебе сказать. Все очень печально. Мало того, что ты не освоишь нужный материал за коротный промежуток времени, так еще это одно из основных требований при принятии на работу.
За 4 месяца я обучился C#-пу, дойдя до средненького уровня, ну может чуть выше средненького. Хорошо выучил сам Юнити, интуитивно в нем ориентируюсь и понимаю, что к чему и зачем. Могу работать с канвасом, аниматором, светом, постпроцессингом, материалами, немного шейдеры шарю. Сейчас углубляюсь в алгоритмы и дизайн паттерны. А там такое море, что утонуть можно. И я параллельно начал изучать математику с нуля, т.к. вышку из универа уже подзабыл.
Аноним 15/07/20 Срд 17:17:06 6828881216
Я так понимаю юнити лаунчер намертво прикручен к билду, и во всех юнити играх он будет? А если я не хочу? Он же уебищный блядь.
У самого стоит какая то 2018, бомж версия.
Аноним 15/07/20 Срд 17:31:35 6828891217
>>682887
Да, с английским беда. Чтение еще куда не шло, но вот на речь хуево воспринимаю. И не могу заставить себя учить его. Короебит от него.
У тебя смотрю в основном набор курсов с Udemy. Ты их паком качал или все отдельно как-то?
А вообще вижу ты плотненько занимаешься обучением. Удачи тебе, Анон. Надеюсь вкатишься в 21 году.
Аноним 15/07/20 Срд 17:41:02 6828901218
>>682889
Все скачано отдельно с разных пиратских ресурсов. Юдеми это крупнейшая площадка для туториалов, поэтому практически все от туда. Даже там где указано не Юдеми, это тоже скорее всего с Юдеми.
Спасибо за пожелание :3 Тебе тоже удачи!
Аноним 16/07/20 Чтв 07:45:17 6829191219
>>682866
В геймдев вообще не любят брать без опыта работы, поебашь веб разработчиком хотя бы годик.
Аноним 16/07/20 Чтв 15:09:50 6829601220
>>682919
Я и так уже 2 года формы верстаю на реакте. Заебало.
Аноним 16/07/20 Чтв 23:30:45 6830681221
>>682960
Тогда вопрос в каком городе ищешь вакансии? За пределами ДС1 и ДС2 всё так то печально, единицы студий и в своём городе ты уже должен их знать и мониторить вакансии (на хх можно подписаться прямо на компанию, так попал на свою текущую работу без опыта работы в геймдеве). Ещё есть компании типа playlegendary с удалёнкой и мобильными казуалками, тоже стоит их мониторить. Это всё конечно не касается ДС1 ДС2.
Аноним 17/07/20 Птн 01:21:32 6830761222
>>683068
А ты вообще много учился по времени прежде чем попасть на работу? Что за проекты делал? И что выучил то в итоге и на каком уровне.
Просто хочу понять уровень джуна в геймдеве. Потому что в вебе то понять легче.
Аноним 17/07/20 Птн 03:34:32 6830831223
>>683076
Уровень джуна- сделать хотя бы одну игру. Если у тебя своих игр нет, то в качестве тестового задания тебе предложат запилить одну. А может и разговаривать с тобой даже не станут, если портфолио пустое. Короче, делай свою игру! Обходных путей тут нет.
Аноним 17/07/20 Птн 15:40:39 6831281224
>>683083
Не, ну то понятно что свою игру. Мне просто интересно что помимо этого надо еще знать.
Типа, можно сделать хуевую игру где нет оптимизации, говнокод (а как иначе, ведь бест практис ты не знаешь), юзаешь не те методы и т.п.
Но допустим игра худо-бедно будет пердеть. Это явно не уровень джуна наверное.
Читая тред переодически я вообще охереваю от вопросиков которые тут кашляют.
Аноним 17/07/20 Птн 16:26:20 6831311225
>>683128
Ты немного не в ту сторону воюешь. Прикол в том, что для более-менее успешного устройства (когда тебя возьмут не с натяжкой и не будут во время интервью смотреть на тебя, как на дурачка), ты должен запилить игру, а не запилить годную игру. Смекаешь?

Собственный проект (даже посредственный) - это намного больше значит здесь, чем все эти мифические личные знания, которые ты смог впитать и о которых ты сможешь хоть битые сутки подряд рассказывать. Свой проект сразу говорит о том, что, мол, ты смог организовать себя, настроить, разобраться, решить проблемы, придумать решения и так далее. И не обязательно, чтобы эти наработки и решения были гениальными. По сути ты просто показываешь, что умеешь пользоваться тем или иным инструментом. Вот и весь сказ.

> Это явно не уровень джуна наверное.
Лол. Джунов берут, чтобы учить и вырастить годноту для компании. Все хорошие компании так делают, ибо знают, что от новичка и молодого специалиста нельзя сразу требовать схватить Кодзимубога за бороду.
Аноним 17/07/20 Птн 17:30:52 6831411226
>>683131
> Джунов берут, чтобы учить и вырастить годноту для компании
Этот джентльмен глаголит истину.
Я проверяю тестовые задания и собсеседую потенциальных джунов.
Так вот, на собеседование я не зову только в том случае, если в тестовом просто кромешный пиздец. Причём больше меня интересует код, чем визуал.
Если хотя бы кровь из глаз не течёт и мало багов, то зову на поговорить.
И вот на этом самом "поговорить" самые главные вещи, которые нужно понять — это насколько человек желает и умеет изучать новые вещи есть такие, которые "я знаю два метода и что такое if, больше мне ничего не надо, буду городить башню из говна и костылей" и насколько он/она умеет вообще общаться с людьми. То бишь базовые софт скилы.
Потому что никто не ждёт что придёт сеньор или хотя бы мидл, понятное дело что перед тобой зелёный молодняк, в который надо вложить время, чтобы он въехал в продукты и инфраструктуру и стал боевой единицей.
Аноним 17/07/20 Птн 17:49:08 6831431227
>>683131
>>683141
> Лол. Джунов берут, чтобы учить и вырастить годноту для компании. Все хорошие компании так делают
Двачую.

>>683128
Просто представь, что джун - это молодой офицер, который только-только выпустился из учебки. Да даже если он 33 раза гений военного искусства, он всё равно никто, ибо нет РЕАЛЬНОГО ОПЫТА в боевых действиях. Смекаешь? А заработать этот опыт можно только на поле боя, где всё равно придётся переучиваться и прописные истины окажутся полнейшей хуетой, неприменимой в реальной жизни.

Хватит хуйню пороть уже. Ты можешь блистательно знать инструментарий, но если у тебя нет своего проекта, то и опыта у тебя никакого не будет по определению. Толку-то, что ты можешь наизусть перечислить всё от начала и до конца? Не было проекта - значит не было трудностей, не было трудностей - значит не приходилось изъёбываться, не приходилось изъёбываться - значит ты не вынес для себя тех вещей и того опыта, о котором ни в одном учебнике и ни в одном курсе НЕ ГОВОРИТСЯ.

Скажу проще: объективные данные (сам инструмент, знания о нём, образовательный контент) + субъективный опыт (личный опыт побед и поражений, где ты находишь собственные решения проблем) = специалист. Одно в отрыве от другого не существует.

Всё.
Аноним 17/07/20 Птн 21:55:46 6831931228
>>683141
Как сейчас обстановка в геймдев студиях? Много ли человек ломится на работу? Какие зарплаты у джунов?
Аноним 17/07/20 Птн 22:31:54 6832031229
>>683193
Не скажу за всю Одессу, сам я не в ДС и даже не в ДС2, но у нас хоть и миллионник, но толковых людей хуй найдёшь.
Правда, у нас и текучки нихуя нет. За год двух джунов забрали в армию да, иногда берём даже студентов на пол ставки, и один ушёл по семейным обстоятельствам.
Когда нужны дополнительные силы — открываем вкансию.
Сколько платят — джунам на старте по сороковнику. Если оказывается, что он тащит выше ожидаемого, то через пол года второе собеседование и уже можно до 50 или 60.
Но это именно джунам. Как только сможет понять что не юнити единым ограничен сишарп, и сможет в ASP, VCF, SQL и прочие радости — можно и до 80-ти дотянуть.
Да, не предел мечтаний, но и город у нас нищий, 25к за "ну пойдёт" считается.
Аноним 20/07/20 Пнд 14:14:15 6836971230
>>682258
Он быстрее и удобней а ещё VS имеет неприятный баг, который появляется непонятно почему и фиксится только переустановкой винды
Аноним 20/07/20 Пнд 17:11:16 6837411231
Чёрный квадрат в игре заместо курсора, кто сталкивался?
Аноним 21/07/20 Втр 03:50:43 6838701232
>>665408
пишешь командный буффер отправляешь ему все нужные рендеры размываешь все это делосохраняешь текстуру силуэтов кхм и композируешь это дело в шейдере блять пишешь это дело в шейде.. стоп 4 месяца челик написал нахуй ты это пишешь
Аноним 21/07/20 Втр 03:52:05 6838711233
>>660780
как ты не можешь понять если знаешь шарп давн
не верю
дегенерат
Аноним 21/07/20 Втр 04:21:40 6838791234
ладно я спать
сладких
СЛАДКИХ
Аноним 21/07/20 Втр 19:24:00 6840571235
Дайте гайдов по созданию анимаций. Не знаю где, немного ознакомился с блендером, слышал что там лучше всего делать.
Например, где легче всего будет организовать анимацию персонажа, не обезательно гуманоида, который вытянет молоток и ударит кого-то.
Можно платные гайды - главное чтоб годные.
Аноним 21/07/20 Втр 19:25:24 6840581236
алсо, почему тред не перекатывают, он уже много месяцев не на нулевой.
Аноним 21/07/20 Втр 20:02:31 6840671237
>>684058
В закрепе ссылка есть, через каталог найти можно, а большего и не надо
Аноним 21/07/20 Втр 22:51:13 6841131238
Привет. Хочу сделать конструктор для карт (сделан) и к нему сервак чтобы каждый мог скачать/закачать типа как в Супер марио ворлд мейкере.
Может кто посоветовать с помощью чего и как?
Делаю все на мобилки.
Аноним 21/07/20 Втр 23:37:57 6841141239
>>684113
создать "язык" уровней, где будет указано что должно лежать где, например в хмл, загружать хмл на сервер и обратно.

мимо не шарю в этом, но первое что пришло в голову
Аноним 22/07/20 Срд 15:35:55 6842681240
>>684114
ну, язык можеть быть просто классом, где будут разные переменные - класы обьектов и их расположение и тд.
А в json-xml переводит лист таких классов кучу библиотек одной функцией.
Аноним 23/07/20 Чтв 07:40:05 6844071241
Аноним 23/07/20 Чтв 08:25:05 6844131242
Аноним 23/07/20 Чтв 16:34:15 6845951243
>>684407
Я посмотрел на скрины скриптов на этом Болте. Код нихуя не понятнее, чем текстовый. Есть какие-то бенефиты его использовать для тех, кто на клавиатуре кодит?
Аноним 23/07/20 Чтв 17:39:54 6846111244
Аноним 23/07/20 Чтв 17:43:00 6846121245
>>684407
Чёто на хуйню какую-то похоже.
Может я ошибаюсь, но пока впечатление такое, что на этой залупе ничего сложнее элементарщины вроде "если жмём кнопку, то двигаемся влево со скоростью 1 метр в секунду" не накидаешь.
Аноним 23/07/20 Чтв 17:52:36 6846141246
Опытные unity ребятки, подскажите какой щас бест практис в написании асинхронщины в юнити?
Корутины или божественный async/await ? По последнему вообще мало примеров и материалов.
Аноним 23/07/20 Чтв 18:00:05 6846171247
>>684614
На форумах натыкался на жалобы на async в IL2CPP, но у меня вроде работает.
Сам использую async и task'и когда нужно делать какие-то файловые операции, заливка на FTP, например.
А если для работы с GameObject'ом или просто задержек, то корутину. Например, корутина может в WaitForFixedUpdate, чего через таску хуй сделаешь наверное.
Вряд ли есть какой-то самурайский кодекс по этой теме, делай как удобно.
Аноним 23/07/20 Чтв 18:48:42 6846311248
>>684413
А пиндоссикие больше курсы есть?
Потом сам основательно погуглю, но думал тут кто-то этим занимался/учил.
Ох, сколько же надо всего знать чтобы сделать норм игру, и художником и 3д скульптором и аниматором и прогером и гейм-дизайнером. Жаль еще никто не додумался сделать курсы что затронут все эти темы, хотя бы в одной серии, везде какие-то обрывки знаний
Аноним 23/07/20 Чтв 18:54:29 6846371249
>>684631
> чтобы сделать норм игру
Если делать норм игру в одну каску, то она устареет уже на выходе.
Пока ты рисуешь/скульптишь/текстуришь/рендеришь/дизайнишь/распихиваешь всё это по сцене/ставишь свет — код сам не пишется.
Аноним 23/07/20 Чтв 20:08:50 6846921250
>>684637
Как игра может устареть? Или ты имеешь в виду в плане графики? С появлением PBR, все игры за последние 5 лет одинаковые. А на горизонте только Анриал 5 и рейтрейсинг, которые не заменят PBR, а только дополнят его. Про 2Д игры я вообще молчу. Там за последние годы добавили только взаимодействие нормалок со светом и риг персонажей.
Аноним 23/07/20 Чтв 20:10:34 6846941251
>>684637
>норм
начнем с курсов по анимациям
Аноним 23/07/20 Чтв 20:24:17 6846981252
>>684694
Начни с курсов по ригу
Аноним 23/07/20 Чтв 21:09:54 6847091253
>>684614
async/await оч красивая и удобня фича, НО - каждый вызов создает оч много мусора, строго НЕ РЕКОМЕНДУЮ им пользоваться в апдейте. Для работы с файлами - ок, для каких-нибудь диалогов - ок, для логики - НЕТ!
Еще есть азиат, он сделал gc-less-async (https://github.com/neuecc/UniRx), но даже его "без гц-шное решение" создает "внутренний мусор" т.е. сам юнити разворачивая асинки делает это через классы что создает мусор (и просаживает перфоманс).
>>684617
Этот господин упомянул WaitForFixedUpdate,
далается это легко:
await new WaitForFixedUpdate(); (для оптимизации советую делать не new, а сделать статичный класс и создать все эти авейтеры 1 раз там)

http://www.stevevermeulen.com/index.php/2017/09/using-async-await-in-unity3d-2017/
Вот хорошая статья, все еще актуальная.

Еще добавлю, юнете делают асинхронщину не через c#, а через с++, т.е. делать всякие ResourceLoadAsync<T> - можно спокойно, но они работают как промисы в js, т.е.:
UnityAsyncStaff().Then(()=>appLogic()).Catch(()=>someShitHappen());
Аноним 24/07/20 Птн 11:00:50 6848881254
>>684612
ну, там прямо и пишут, типа "для тех, кто только вкатывается в инди-разработкинг"

для каких-нибудь гиперказуалок уровня флаппи берд мб сойдет
Аноним 25/07/20 Суб 06:28:50 6851241255
Нодовое программирование - кал. Я прав?
Аноним 25/07/20 Суб 10:46:59 6851391256
Какой IDE выбрать кроме студии?
Или почему студия вместо любого другого?
Хочется просто установить и все, ничего в нем не настраивать, не накатывать плагины и т.д.
Аноним 25/07/20 Суб 12:03:03 6851581257
15956135508500.jpg 36Кб, 549x473
549x473
Господи, официальное обучение на сайте юнити - это пиздец. Такой запутанной, непонятной, не интуитивной и абсолютно убожеской организации процесса обучения я нигде ещё не встречал. Хоть в палату мер и весов отправляй, как эталон того, что может убить нахуй тягу к самому ответственному этапу обучения (его началу). Такое чувство возникает, что весь их штат, ответственный за данное направление, это просто толпа, пришедшая просто посидеть за зарплату и создающая нескончаемый поток ИБД.
Аноним 25/07/20 Суб 12:09:05 6851601258
>>685139
Райдер, конечно же. Нахуя тебе этот студио-колхоз?
Аноним 25/07/20 Суб 14:12:21 6852231259
>>685158
Согласен, еще добавлю что переходить на HDRP и LWRP рано и вот почему:
1 - просто скачать и установить эти RP с первого раза не получится.
2 - Есть божественный Apmlify Shader editor работает на 10/10, красивый, множество параметров и управление шейдерами. С другой стороны нам приносят Shader Graph который будто сделан одной js макакой без стиля, понятности и всех параметров. Так же это гавно НЕ интуитивно создает где-то шейдеры (или не создает), а часть функционала возвращает ошибки NotImplemented.
3 - Из 2го пункта вытекает 3й т.к. принесли новый синтаксис и дефолтные параметры в шейдерах (а ля sampler_2d) нельзя использовать, на их замену принесли sampler_2d_x (??? что за икс нахуй) и про это вообще никакой документации нету, я теперь просто не могу полностью перенести игру на эти RP т.к. не ебу на что они поменяли все методы и какие они принемают параметры.
4 - Документацию на все новые фичи пишут максимально поверхностно - "вот код, вот методы, а теперь угадай что такое depth, что такое sbigpx()"
5 - Недавно выкатили PPSv3, практически такой же как PPSv2, но все нужно переписывать с нуля, спасибо.

2 года уже прошло (возможно больше), а это всё такое же не юзабельное гавно.
Аноним 25/07/20 Суб 15:01:18 6852601260
>>685223
> просто скачать и установить эти RP с первого раза не получится
Хуй знает что у тебя за сложности, у меня как раз с первого раза получилось. И через несколько часов удалилось.
Потому что, блять, 90% ассетов на графон из стора с самописными шейдерами, которые в рот ебали это всё и все материалы идут по пизде, и стандартный конвертер материалов нихуя не вывозит.
Аноним 25/07/20 Суб 15:09:10 6852661261
>>685139
Как выше сказали — Райдер.
Если верен студии, то придётся накатить решарпер, в него прихуярить Unity Support, в саму студию ещё желательно Shader Unity Support, если в шейдерах ковыряешься.
Аноним 25/07/20 Суб 17:07:55 6853181262
>>685160
Чем райдер лучше?
Аноним 25/07/20 Суб 17:10:43 6853191263
154811265117899[...].jpg 57Кб, 700x706
700x706
Аноним 25/07/20 Суб 17:26:10 6853241264
Аноним 25/07/20 Суб 23:12:31 6854311265
Unity 2019.3 регулярно в смерть зависает на создании (sic!) анимации, с чем это может быть связано?
Аноним 25/07/20 Суб 23:34:13 6854371266
>>685324
А нахуя тебе про версия? Обычная бесплатно.
Аноним 26/07/20 Вск 00:02:02 6854471267
>>685431
Переходи на ue, там таких багов нет.
Аноним 26/07/20 Вск 03:32:53 6854771268
>>685431
Что такое (sic!) анимация?
Аноним 26/07/20 Вск 04:42:23 6854821269
У вас бывает такое, что вы пишете скрипт, вы точно знаете, что должно работать, но оно нихуя не работает. Удаляете все к ебеням и начинаете писать то же самое с нуля, символ в символ, и оно все же начинает работать? Я уже второй раз сталкиваюсь с такой ситуацией. Это Юнити глючит? Как часто у вас такое происходит?
Аноним 26/07/20 Вск 08:24:20 6854881270
>>685482
Попробуй reimport на файле со скриптом прожать в такой ситуации.
26/07/20 Вск 10:19:50 6854941271
Сап двач, помоги зелёному, который склепал лишь кликер, простенький платформер, и всё в таком духе.
Пытаюсь создать игру в стиле классического текстового РПГ, где действия происходят на определённых локациях.

Первую механику, что я хотел реализовать - ввод пользовательских данных. Чтобы без Enter вводить определённую цифру и видеть последствия действия. Пробовал в updage() функцию вводить через Input.GetKeyDown, но хуйня получалась, т.к. там было ветвление на этой функции, и при нажатии определённой клавиши в переменную UserChoice ставилось значение этой переменной, и уже другая функция считывала это значение и по идее от значения должна была бы на следующий выбор игрока перекидывать, но почему-то этого не было.
Другие способы тоже через инпуты дефолтные и юнитовские потыкал - такое себе вышло.
Поэтому решено было разместить кнопки выбора прямо в игре + потом планирую графику навернуть. Алсо текст на кнопках должен меняться в зависимости от локации. Например, если игрок в баре - там должно быть написано что-то вроде "Пойти бухать" или "Пообщаться с барменом". Но если он из бара вышел на улицу, то уже надписи на кнопках сменились.

Кароче я опять попытался разные идеи реализовать, что в голову пришли, но получалась говня какая-то, т.к. на одни и те же локации надо заходить снова и снова, а не единожды.

Какие-то общие идеи реализации подскажите.
Мб есть софт для упрощения с этим делом в Юнити?
Плюс как с текстом быть? Сейчас я весь текст прямо в коде пишу. Как быть если я захочу например английский язык в настройках выставить?


Аноним 26/07/20 Вск 12:00:16 6855201272
>>685477
sic для обращения внимания. Создание анимации - при клике на create animation.
Аноним 26/07/20 Вск 12:03:58 6855241273
>>685494
Хардкодить текст — плохо.
Я для локализации использую csv-файлы. Удобно редактировать и выгружать/загружать.
А первый вопрос я вообще нихуя не понял. Ты по итогу сделал как тебе надо или нет?
26/07/20 Вск 12:06:03 6855271274
>>685524
Нет, не сделал. Я более 4 концепций этого говна пытался реализовать, но не получилось.

В общем-та грубо говоря есть 3 основных локации, на каждой из которых определённый пул действий. А у этих действий ещё пул действий. Ветвления во ветвлении. И я не ебу как это всё реализовать.>>685524
Аноним 26/07/20 Вск 12:09:04 6855301275
>>685527
> В общем-та грубо говоря есть 3 основных локации, на каждой из которых определённый пул действий. А у этих действий ещё пул действий
Кажется, тебе в паттерн strategy, если я правильно понял твою проблему.
Аноним 26/07/20 Вск 13:42:23 6855541276
ПО HDRP
Кто-нибудь может подсказать как сделать свой custom pass в дефолтном материале?
Аноним 26/07/20 Вск 14:08:28 6855711277
Посоветуйте как быть.
Я сделал одну сцену в своей игре и теперь оказалось, что в второй мне заново делать многие элементы, такие как интерфесы, персонажей. Я думал без задней мысли добавлю префабы, а теперь оказывается оно работает как-то через жопу. Меняю префаб, во второй сцене меняется всё, а в первой нет. Я думал в обоих должно меняться. Это не годно, потому что если я в первой буду менять что-то, во второй не будет меняться так чтоли?
Аноним 26/07/20 Вск 14:19:26 6855751278
>>685571
> Меняю префаб, во второй сцене меняется всё, а в первой нет
Шта?
Может там разные префабы?
Аноним 26/07/20 Вск 14:32:37 6855781279
>>685575
Может я неправильно создаю их? Перетянул объект из иерархии первой в файлы, в первой объект выделился синим, а потом из файлов перетянул во вторую.
Аноним 26/07/20 Вск 14:37:17 6855791280
>>685578
+Такая штука ещё, что если в первой заведу объект из объекта в файлах, то всё работает правильно, НО мне так придётся муторно подставлять новый объект в первой сцене на место где был старый.
Аноним 26/07/20 Вск 14:38:25 6855801281
>>685578
Ну так может у тебя там оверрайды? У меня, к сожалению, хрустальный шар сломался, но вообще префабы на то и префабы, что ведут себя соответственно.
Аноним 26/07/20 Вск 14:41:28 6855811282
>>685580
>Ну так может у тебя там оверрайды
Как это узнать? Я не понимаю что это
Аноним 26/07/20 Вск 14:45:10 6855821283
>>685581
Твой префаб — это такой себе эталон.
Но если ты меняешь что-то в его экземпляре, ты переопределяешь некоторые его свойства. И уже твой экземпляр не подчиняется свойствам префаба.
Аноним 26/07/20 Вск 14:54:27 6855851284
>>685582
То есть копии запрещено менять чтоб не навернулось?
Я вот думаю, что может программа не видит оригинал как экземпляр. Может как-то можно не пересоздавая сделать экземпляром этим?
Аноним 26/07/20 Вск 15:51:02 6855971285
Пытаюсь вкатиться из анрила.
И сразу столкнулся с тем, что тут за вертикальную ось Z почемуто считается ось Y.
Какого хуя и как это пофиксить?
Аноним 26/07/20 Вск 16:00:31 6856011286
image.png 65Кб, 805x291
805x291
Аноним 26/07/20 Вск 16:23:50 6856081287
image.png 180Кб, 600x503
600x503
>>685597
Никак бля, привыкай
Аноним 26/07/20 Вск 16:26:39 6856101288
>>685608
Жиды запутать хотят, чтоб никто не стал сверхсоздателем контента.
Аноним 26/07/20 Вск 16:33:48 6856111289
download.jpg 7Кб, 276x183
276x183
>>685554
Еще вопрос, как убрать клипинг в FPS-Styled играх?
Нашел шейдер-граф Firstperson_Projection, пишут "выставь scale 0.3 и увеличь FOV через шейдер" и это не помогло (и ощущается как костыль)
Есть Custom Render Pass, но они видимо для эффектов.
Пробовал писать свой шейдер с ZTest Always и выставлять Render="Overlay+100" ничего не помогает.
Казалось бы простая маст-хев фича..
п.с. FPS-Sample работает только на юнете 2018, если не найду решения еще за пару дней (уже ищу 3), то придется ставить пиздец
Аноним 26/07/20 Вск 18:19:12 6856381290
>>685601
Просто продлевай триал постоянно и всё. Простейшие действия.
Аноним 26/07/20 Вск 18:21:20 6856401291
Поясните, пожалуйста, за конструктор в классе. Мне интересно мнение опытных господ.
Я обратил внимание, что код в конструкторе запускается автоматически, если был создан инстанс этого класса.
Например, если я создам пустой класс с конструктором и напишу в конструкторе: "я ебу собак". То текст "я ебу собак" можно будет вызвать просто создав инстанс этого пустого класса.
Вы используете конструктор чисто ради этой фичи? Чтобы код в конструкторе запускался после инстанса класса?
Аноним 26/07/20 Вск 18:41:10 6856451292
>>685640
Можно, но не рекомендуется.
Потом когда со свойствами познакомишься, там тоже можно логику делать и тоже не рекомендуется.
Эти места должны быть максимально простыми.
Зачем? Потом самому будет проще понять что в коде происходит.
Аноним 26/07/20 Вск 18:49:04 6856481293
>>685645
Т.е. использование конструктора не рекомендуется в принципе?
Аноним 26/07/20 Вск 20:22:10 6856801294
>>685640
>>685648
Ты какую-то херню несёшь.
Конструктор нужен для создания экземпляра класса. Как может его использование кем-то там не рекомендоваться?
Аноним 26/07/20 Вск 21:25:30 6857001295
>>685680
Я не знаю, что ты имеешь ввиду под созданием экземпляра класса. Можешь пояснить?
Из всех примеров работы с конструкором, я видел только два способа юзанья конструктора:
1) использование конструктора в качестве удобного способа для наполнения переменных класса сразу же при создании инстанса класса
2) для запуска кода, который находится в конструкторе, при создании инстанса класса
Для каких целей можно еще использовать конструктор?
И вот чувак говорит, что второй способ использования конструктора не рекомендуется. Тут я с ним согласен, ведь логичнее и понятнее использовать метод и обращаться к методу. А наполнить переменные класса можно и без конструктора.
Вот я и справшиваю о предпочтениях опытных геймдевов касательно конструкторов.
Аноним 26/07/20 Вск 22:08:42 6857131296
Как сделать для все сцен что жмёшь Esc и вылезает окно Вернуться в главное меню? Естественно реквест умного способе, а не так что в каждую сценку совать префабы.
Аноним 26/07/20 Вск 23:37:14 6857401297
>>685713
Это делается через гейм менеджер, который обрабатывает гейм лупы и выносит тебя из игровой сцены в меню. Это адвансед топик, без хорошего туториала по умному тут не сделать
Аноним 27/07/20 Пнд 00:06:18 6857461298
>>685700
Блять, что ты несёшь?
Конструктор нужен для создания объекта. Он же экземпляр класса, он же инстанс, как ты говоришь.
Больше он ни для чего не нужен.
Какие ты тут "предпочтения" хочешь услышать?
Аноним 27/07/20 Пнд 00:07:42 6857471299
>>685713
Хуяришь класс, вешаешь на объект в нулевой сцене, в старте/эвйэке прописываешь DontDestroyOnLoad и в апдейте чекаешь нажатие эскейпа.
Аноним 27/07/20 Пнд 00:54:07 6857551300
image.png 23Кб, 548x414
548x414
image.png 286Кб, 480x502
480x502
>>685746
Зачем ты врешь?
Конструктор не нужен для создания объект. Он часть функционала объекта. И он не экземпляр класса (инстанс).
Аноним 27/07/20 Пнд 01:05:32 6857591301
>>685755
Мы вам перезвоним.
Аноним 27/07/20 Пнд 01:22:51 6857611302
image.png 11Кб, 285x295
285x295
>>685759
Конструктор- это всего лишь метод внутри класса. От простого метода он отличается только тем, что запускается не от обращения к нему, а при создании инстанса класса.
Но есть конструктор, который имеет параметры. В таком случае класс требует эти входные параметры для конструктора, ведь этот метод-конструктор не сможет выполнить операцию без них.
И теперь пиздани мне еще раз, что конструктор нужен для создания объекта
Аноним 27/07/20 Пнд 01:26:07 6857631303
>>685761
> Конструктор не нужен для создания объект
> запускается не от обращения к нему, а при создании инстанса класса
Понятно.
И да, используй интерполяцию строк, удобнее.
Аноним 27/07/20 Пнд 01:32:58 6857651304
>>685763
>И да, используй интерполяцию строк, удобнее.
Что такое интерполяция строк?
Аноним 27/07/20 Пнд 01:33:36 6857661305
>>685765
> Мы вам перезвоним
Аноним 27/07/20 Пнд 01:36:23 6857681306
image.png 283Кб, 381x336
381x336
>>685766
Ну расскажи, что такое интерполяция строк, ну пожалуйста.
Аноним 27/07/20 Пнд 02:03:34 6857721307
image.png 53Кб, 912x807
912x807
Сап юнитач, написал скрипт для плавного зума и назрел вопрос, стоит ли ебаться с тем, чтобы останавливать корутину когда игрок не зумиться, или нахуй надо?

Алсо в целом интересует будет ли она нагружать систему, если на протяжении всей игры будет выполняться фоном
Аноним 27/07/20 Пнд 07:17:54 6857841308
>>685648
Нет, использовать конструктор можно, не рекомендуется пихать в него какую-то логику типа:
class Ahah{
public Ahah(){
MakeBeshJokeYouHave();
}
public MakeBeshJokeYouHave(){
// code
}
}
>>685700
Заполнение класса - норм
запуск кода - уже осторожнее
В юнете конструктор вообще лучше не использовать т.к. он начнет вызываться прямо в редакторе и сыпать тебе ошибками, используй метод Awake() который юнити дергает при создании GO (аналог конструктора)

>>685772
Если запустил 1 раз, будет нагружать так же как и любой метод в блоке Update().
Постоянно дергать (стопать и запускать) коротины "спичечно" будет нагружать.
Аноним 27/07/20 Пнд 09:07:47 6857961309
>>685611
Разобрался со своей проблемой через CustomRenderPass, пришлось создавать Pass на каждый материал оружия и включать/выключать когда достаю определенное оружие с выставлением ZTest Always.
Еще заметил, что префабы, редактирование через дебажный инспектор и просто Volume может заглючить и помогает только пересоздание с нуля юнибляде с разроаботкой 4 года, привет
Аноним 27/07/20 Пнд 20:58:22 6860241310
>>685772
кек а просто написать isZoomed = Input.GetButton?
на самом деле в случае с игроком вообще никакой корутины лучше не городить. зумится же у тебя будет только игрок. ты не производительность выиграешь, а жопную боль от такого кода. другое дело когда ты делаешь какой-то контролёр анимации например, которым будут пользоваться все подряд.

>>685784
>используй метод Awake() который юнити дергает при создании GO (аналог конструктора)
на самом деле в юнити очень много срани что вызывается в самом начале один раз. Есть и Awake, есть и Start, есть и OnEnable, есть и ISerializationCallbackReceiver, есть, блять, даже Reset который вызывается на создании и ресете компонента в едиторе. И лучше не рекомендовать пользоваться чем-то одним.
Аноним 28/07/20 Втр 01:09:28 6860801311
>>686024
Я делаю FPS для портфолио, мне не производительность нужна, а приятная глазу картинка, про производительность я из любопытства спросил. А если без корутины зум делать, то он дёрганый.
Аноним 28/07/20 Втр 01:19:37 6860831312
>>686080
делай зум при помощи cinemachine. делаешь два camera brain и между ними интерполяцию
Аноним 28/07/20 Втр 03:59:11 6860971313
>>686080
так ты его хорошо делай, сохраняй время нажатия кнопки, текущее состояние зума и делай лерп на время к следующему времени смены стейта зума. для этого один хрен корутина не очень годится так как если там пользоватся временными кондициями то у тебя нельзя будет выйти из зума посреди зазумливания. хуевое портфолио будет же!
Аноним 28/07/20 Втр 04:01:00 6860991314
image.png 8Кб, 382x183
382x183
>>686097
>нельзя будет выйти из зума посреди зазумливания
можно
/thread
Аноним 28/07/20 Втр 08:22:01 6861151315
>>686080
Про Vector3.Lerp тебе уже написали.
Я все свои проекты без коротин всегда делал.
Аноним 28/07/20 Втр 09:09:04 6861271316
>>686099
>>686115
>>686097
лерпы-хуерпы, крутины-хуетины. зачем велосипед изобретаете?
https://docs.unity3d.com/Packages/com.unity.cinemachine@2.6/manual/CinemachineBlending.html

синемашин – там блэндинг есть, он тебе всё подкрутит и положение камеры и все настройки и скорость интерполяции и fov. меньше ебли с тем что уже до вас написали = больше времени на остальные компоненты системы
Аноним 28/07/20 Втр 09:52:08 6861361317
>>686115
>Я все свои проекты без коротин всегда делал.
А есть еще альтернативы короутины, кроме апдейта?
Аноним 28/07/20 Втр 11:20:56 6861541318
>>686136
Лерп в апдейте.
Коротина это и есть код который вызывается в основном потоке (как и апдейт, вау).
Еще можешь использовать синемашину, которая много весит и сама по себе громозкая.
Можешь использовать какой-нибудь твин.
Но всех их объединяет одно... работа в методе update
Аноним 28/07/20 Втр 11:36:07 6861601319
Как в OnGUI получить Mesh, выделенный в ProBuilder? (список выделеннх vertices или triangles).
Аноним 28/07/20 Втр 11:47:21 6861651320
>>686154
>использовать синемашину, которая много весит и сама по себе громозкая

натуральный пиздёж. +200кб к билду и никакого удара по перфомансу если только ты не юзаешь всякие эдвенсд фичи типа долли и тд, но там и твой самопал будет работать в лучшем случае также или хуже. вот вброс из их мануала:

>Isn't having all these cameras around kind of heavy? No, in fact it's incredibly light. Each virtual camera has a super low overhead - make as many as you want. If you are hypersensitive to performance you can disable all the cameras and just enable the ones you wish to have running at any given moment for extreme performance

также если официальные форумы шерстить, то есть пару жалоб на перфоманс который быстро залечивали у людей которые любят через жопу всё делать
Аноним 28/07/20 Втр 17:43:28 6862961321
Анонасы, как включить отображение значка камеры и источников света в окне редактора сцены? В старых версиях вроде ж было, а новую поставил - пусто, только в иерархии видно.
Аноним 28/07/20 Втр 19:03:12 6863281322
GizmosMenu1.png 6Кб, 803x43
803x43
Аноним 28/07/20 Втр 19:22:26 6863431323
Code.png 35Кб, 793x551
793x551
>>686099
лол ну можно конечно и останавливать корутину вместо того чтобы пользоватся её таймером. но нахуя? можно например нормализовать deltaTime к времени изменения и сохранять промежуточный статус зума в 0-1 диапазоне прибавляя нормализованую дельту времени помноженную на направление. например вот смотри, покажу куда более компактный и топорный код где не меняется скорость зума посреди процесса.

через корутины конечно модно и молодёжно, но мест где корутина реально сэкономит время и силы довольно мало. лично я через корутины делаю только цепочки действий, так как довольно круто что корутина может возвращать другую корутину как результат и можно не городя цепочку делегатов сделать какую-то гибкую систему действий с таймерами.

>>686160
тебя это чтоли интересует?
https://docs.unity3d.com/ScriptReference/Selection.html

>>686165
кек. дольше будешь качать её и решать с её помощью проблему, чем просто взять и решить проблему с теми средствами что уже есть. сменить фов то не самая сложная задача
Аноним 28/07/20 Втр 19:24:58 6863471324
>>686343
У тебя от светлой темы глаза не болят?
Аноним 28/07/20 Втр 20:01:26 6863801325
>>686343
Там вроде речь идёт про весь выбранный объект, а не отдельные вершины, выделенные пробилдером. Хотя гляну — может быть что то и там есть.
Аноним 28/07/20 Втр 22:02:02 6864481326
cup-of-tea--e15[...].jpg 215Кб, 1848x1233
1848x1233
>>686328
Вот я баран. Спасибо.
Аноним 29/07/20 Срд 12:01:05 6865241327
>>685700
>А наполнить переменные класса можно и без конструктора.
Тогда ты их сможешь изменить не только при создании класса, а когда угодно. Это очень хрупкий дизайн, ведущий к багам и непредсказуемому поведению.

Как можно больше переменных класса должны быть приватными и ридонли. Для инициализации таких переменных и существует конструктор.

В идеале нужно делать классы иммутабельными и без сайд-эффектов, но, к сожалению, в геймдеве это борьба с ветряными мельницами. Так что имеет смысл следовать правилам только пока это практично.

И да, конструктор вызывается всегда, даже если ты его не написал. Спрятанный.

Тебе стоит побольше почитать про ООП и инкапсуляцию.
Аноним 29/07/20 Срд 16:02:19 6865451328
>>686160
Вот только ничего с этим мешем сделать не получится - ПроБилдер хранит отдельно свой собственный меш и при любой манипуляции будет подгружать его назад.
Аноним 29/07/20 Срд 16:46:33 6865471329
image.png 38Кб, 569x556
569x556
Поясните анонче, почему в приватном ебать классе можно вывести приватную ебать переменную через публичный ебать метод?

Мимо в прошлом питономразь, которой сложно вкатываться в C++ и C#.
Аноним 29/07/20 Срд 17:01:27 6865501330
>>686547
потому что он суёт её в публичную функцию. что за удивительный вопрос. приватность переменных нужна для инкапсулции. понимаешь?
Аноним 29/07/20 Срд 17:06:04 6865541331
>>686550
А нахуй я тогда private перед классом поставил? На что это вообще влияет? Если я public поставлю что изменится тогда?
Кто он я один здесь блять.
Аноним 29/07/20 Срд 17:12:32 6865551332
>>686554
совсем ты там наркоман. документацию почитал бы. ты объявил новый тип класса внутри класса, да? если сказал что он публичный то этот тип класса можно получить и создать инстанс через new Classes.Slave() потому что ты сам сказал что он публичный и пользуйся кто хочет. если ты написал что он private то так делать нельзя, ты говоришь что этот тип только вот чтобы пользоваться внутри Classes класса. а можешь написать что он protected и тогда этот тип можно получить в Classes и всём что от него наследуется.

https://docs.microsoft.com/ru-ru/dotnet/csharp/programming-guide/classes-and-structs/access-modifiers
Аноним 29/07/20 Срд 17:38:30 6865601333
>>686547
Потому что твой метод работает внутри экземпялара(может использовать приватные и протектед перемнные, методы). Иначе бы пользы от приватных полей не было бы.
Аноним 29/07/20 Срд 17:40:06 6865611334
>>686560
В глаза долблюсь. Не слушай что я тут говорю, или слушай.
Аноним 30/07/20 Чтв 14:44:34 6866951335
Начал рисовать спрайты для юнити. Как их перенести в проект в движке? Их нужно сохранять в какой то особом формате?
Аноним 30/07/20 Чтв 14:49:05 6866981336
shaderz2.png 43Кб, 1270x790
1270x790
ПРОБЛЕМА
У меня есть 2 пост эффекта, они прекрасно работают по отдельности, но когда срабатывает 1й ПП (пост процесс) он будто полностью отключает предыдущий.
Может я беру цвет из камеры до всех эффектов?
Как мне взять тогда после обработки других ПП?
Аноним 30/07/20 Чтв 15:50:56 6867131337
42a1fa891e9f378[...].png 9Кб, 305x354
305x354
>>686695
> Как их перенести в проект в движке?
Просто и без задней мысли берёшь и мышкой переносишь.
>>686695
> Их нужно сохранять в какой то особом формате?
Смотри пик.
Аноним 31/07/20 Птн 02:07:40 6868051338
Есть ли разница - делать простые геометрические объекты в редакторе юнити или моделить блендере? Например, дорожное полотно.
Аноним 31/07/20 Птн 02:08:32 6868061339
>>686805
Имеется ввиду факторы производительности.
Аноним 31/07/20 Птн 08:56:00 6868251340
>>686805
дорожное полотно далеко не самый простой геометический обьект.

>>686806
факторы производительности чего и в какой ситуации? физона? рисования на мониторе? как много этого полотна? может ты там целый город кубов с дорожным полотном между ними сделать собрался. или как в Elex где через весь мир было клевое дорожное полотно было графонистое всё в трещинах.

вечно надо учить задавать вопросы. вопросы следует задавать так: "у меня есть Х, я хочу чтобы было У"
Аноним 31/07/20 Птн 10:16:47 6868541341
>>686524
>не только при создании класса, а когда угодно
public class YourMom {
private string name = "Whore";
}
Аноним 31/07/20 Птн 12:12:19 6868771342
>>686825
Во всех туториалах люди по-максимуму используют объекты из стандартного редактора, даже если у них в паке с моделями есть, например, дом стоящий на plane, они берут только дом и делают плоскость заново в самом редакторе, хотя размеры в итоге такие же, а если и не такие, то почему просто не растянуть плоскость из пака? Это чем-то обусловлено?
У меня есть возможность замоделить сразу дома с придомовой территорией, деревьями и т.д., и рядом дорогу. Все эти ассеты в итоге выставятся в одну линию, параллельно им будет идти дорога. Стоит ли так делать? Или лучше просто сделать ассеты домов, деревьев и т.д., а примитивы делать в редакторе юнити? Единственное, что является сложным объектом в моей дороге - бордюр, он местами лежит криво, стыки невпопад, где-то обломанный.
Аноним 31/07/20 Птн 13:56:27 6868881343
>>686877
другой анон я не совсем тебя понял, ты спрашиваешь "делать всё одним объектом или несколькими"?
Тут есть "тонкая грань" когда 1 большой объект видеокарте проще отрендерить, но, если у тебя будет несколько маленьких объектов вступает другая оптимизация - то что мы не видим, нам рендерить не нужно.

Возвращаясь к твоему вопросу - да, в редакторе есть плагины для создания дороги, но если ты её сделаешь большой, то все эти 100к полигонов будут нагружать карту каждый тик, а если разделишь по 5к полигонов (например) и применишь LOD, то 2 раза по 5 будет проще чем 100.

Еще дополнение, юнитеки пидарасы криворукие не рекомендуют использовать scale у трансформа т.к. внутри движка каждый объект с разными трансформами будет отображаться как совершенно другой объект, например 1к кубов со скейлом 1.1.1 будет проще рисовать чем 100 с разными.
Аноним 31/07/20 Птн 14:44:41 6868961344
image.png 1Кб, 67x39
67x39
Аноним 31/07/20 Птн 15:25:31 6869101345
Когда пытаюсь в пробилдере расставить точки в New Poly Shape - вместо расставления точек выделяется обьект, по которому кликаю или убирается выделение, если кликаю по пустоте.
Как фиксить? Вообще не понимаю в чём тут дело
Аноним 31/07/20 Птн 15:44:01 6869171346
>>686910
Всё пофиксил, причиной тому был выключеный гизмос. и мой аутизм
Аноним 31/07/20 Птн 17:57:34 6869371347
Господа, кто-нибудь пилит код в VSCode?

Как заставить ИДЕшку впиливать неимплементированные абстрактные методы?

Наследуюсь я от какого-нить SystemBase, мне иде выдает, мол, не имплементирован метод OnUpdate(). Каким шорткатом мне его вытащить в мой класс, а не впечатывать это всё ручками как макака?
Аноним 31/07/20 Птн 21:29:14 6869581348
>>686937
Правой кнопкой по имени класса, дальше разберёшься.
Аноним 31/07/20 Птн 22:06:42 6869611349
>>686888
Возьмём, например, куб, прямоугольник и разместим их на плоскость плоскость. Будет ли разница, если создать эти объекты в 3д редакторе (три отдельных объекта) и если создать их у самом редакторе юнити (без плагинов, стандартными средствами)?
Аноним 01/08/20 Суб 04:01:10 6869951350
>>686917
Нету там такого. Только заходить в definition и самому копипастить.
Аноним 01/08/20 Суб 04:47:03 6869971351
Аноны, кто знает, что такое semaphore.WaitForSignal (Unity3D 2019.4.5f1 + HDRP) детектится в профайлере и в билде и в редакторе, съедает достаточно много ms.. Как с этим бороться и можно ли бороться с этим, или это просто ограничение моего конфига уже вылазит и упор в гпу? (конфиг: i7 4770k + gtx780 + 32gb ram)
Аноним 01/08/20 Суб 05:28:14 6870001352
Перекатите тред
Аноним 01/08/20 Суб 05:29:30 6870011353
Не перекатывайте тред
Аноним 01/08/20 Суб 06:10:44 6870031354
Ну можете и перекатить
Аноним 01/08/20 Суб 06:35:34 6870061355
Screenshot 2020[...].png 321Кб, 392x522
392x522
нахуя их перекатывают вообще?
Аноним 01/08/20 Суб 08:43:52 6870131356
>>686961
Если не будешь менять их Scale через Transform - разницы не будет.

>>686997
Выключи VSync, выставь Application.targetFrame (или как там) = 1000 и будет тебе счастье, а вообще можешь это игнорировать, я сам ограничиваю фепесы в видеокарте, чтобы ноут не шумел и не грелся, ведь зачем мне 600 фпс если и 120 достаточно комфортно.

>>687003
Не надо, у нас тут "узкое" локальное место сформировалось
Аноним 01/08/20 Суб 11:45:21 6870251357
image.png 95Кб, 375x371
375x371
>>659486 (OP)
Как включить антиалиасинг для Point фильтрации?
Почему на привьюхе материала он есть, а на сцене нет, даже при включентии аа в опциях?
Аноним 02/08/20 Вск 10:39:23 6871281358
>>687025
Покажи скрин настроек текстуры, материала и шейдера (если он не стандартный).
У меня всю жизнь переключение фильтрации работало мгновенно.
Возможно еще в PlayerSettings.Quality есть пункт TextureRes - проверь, чтоб там было Full т.к. оно тоже может все текстуры в проекте шакалить.
Аноним 02/08/20 Вск 15:49:10 6872261359
Сап, анон. Такая проблема - создаю билд своей игры, запускаю игру и там заместо курсора чёрный квадрат. Кто с таким сталкивался?
Аноним 02/08/20 Вск 15:52:40 6872321360
Аноним 02/08/20 Вск 15:53:08 6872341361
image.png 253Кб, 996x953
996x953
>>687128
Да вроде норм всё...
Аноним 02/08/20 Вск 16:50:04 6872641362
>>687232
Видимо нет, Антош, как мне нагуглить теперь что курсор не меняется с пальца (ховер) после смены сцены? После начала сцены он так и остаётся пальцем куда его не наведи.
Аноним 02/08/20 Вск 17:04:50 6872721363
Аноним 02/08/20 Вск 17:12:56 6872791364
>>687272
Да, спасибо, но проехали, слишком сложно. Я лучше буду избегать ситуаций где оно будет.
Аноним 02/08/20 Вск 17:37:00 6872931365
hqqqqqq.png 13Кб, 320x169
320x169
>>687234
Я только сейчас понял, антиалиасинг сглаживает пиксели на экране, point фильтрация это как-раз сглаживание всей текстуры.
Мне кажется ты путаешь круглое с мягким, это разные технологии так то.
Аноним 02/08/20 Вск 17:52:02 6873061366
image.png 1094Кб, 1044x598
1044x598
image.png 910Кб, 1050x598
1050x598
Юнитач, как сделать так, чтобы оружие не влезало в стену когда подходишь вплотную? Предполагаю, что можно сделать так, чтобы меш рисовался поверх всего остального, как это сделать?
Аноним 02/08/20 Вск 17:52:35 6873081367
image.png 1094Кб, 1044x598
1044x598
image.png 910Кб, 1050x598
1050x598
Юнитач, как сделать так, чтобы оружие не влезало в стену когда подходишь вплотную? Предполагаю, что можно сделать так, чтобы меш рисовался поверх всего остального, как это сделать?
Аноним 02/08/20 Вск 19:41:19 6873651368
У меня какой-то глюк с видео. В редакторе воспроизводится нормально, а в сборке лагает как будто на интернете плохом тормозит.
Аноним 02/08/20 Вск 19:51:44 6873691369
>>687306
Напомнило ту гифку где обезьянолюд ебёт стену-энта.
Аноним 02/08/20 Вск 22:14:08 6874031370
Пилите перекат уже. Где ОП?
Аноним 03/08/20 Пнд 01:42:16 6874221371
Аноним 03/08/20 Пнд 06:39:57 6874381372
>>687306
>>687308
Если ты на builtin рендере сидишь, делай вторую камеру дочерней к первой, создавай LayerMask FPS (например), у первой камеры выключай в Layers FPS, у второй включай.
Делай оружию LayerMask = FPS.
Во 2й камере выставляй Depth = -1 (каежтся, может наоборот), и Background - DontClear.
Всё.

Но, если сидишь на HDRP хуй соси, губой тряси, я через Render Pass это сделал и потратил 3 дня, чтоб разобраться с нуля.
Аноним 03/08/20 Пнд 06:51:34 6874391373
>>687438
Не знаю за хдрп, но в URP уже тоже можно стакать камеры.
Аноним 03/08/20 Пнд 18:51:39 6875691374
Я уже нагуглил и сделал как ты предложил с камерами, просто тред не хотел засирать. Энивей спасибо.
Аноним 03/08/20 Пнд 21:11:14 6876341375
Я выяснил что ролики лагают в игре если крупный размер более 100Мб, но как фиксить не выяснил. Неужели придётся делить?
Аноним 03/08/20 Пнд 21:45:30 6876521376
>>687634
Я попробовал навернуть transcode на ролик и оно не так лагает, но всё равно есть лаги и звук пердит. Есть соображения?
Аноним 04/08/20 Втр 11:34:07 6877621377
Аноним 04/08/20 Втр 11:50:11 6877651378
Ну что, создавать новый тред? А то страшно, потонем.
Аноним 04/08/20 Втр 12:02:20 6877681379
Аноним 04/08/20 Втр 12:24:56 6877771380
Аноним 04/08/20 Втр 13:02:16 6877851381
Сап. Сколько нынче зарабатывает мидл юнит в РБ?
Аноним 04/08/20 Втр 13:26:24 6877941382
>>687777
Пора бы шапку обновить, как минимум про UnityScript, он уже 3 года как не поддерживается и вообще был мертворожденным
Аноним 04/08/20 Втр 19:28:21 6878921383
image.png 69Кб, 1277x681
1277x681
Как можно заставить рандомно вращающийся игровой объект передвигаться в строго заданном направлении?
Я пытаюсь реализовать это через вейпоинты. Но проблема в том, что вращение прекращается и мой объект начинает смотреть в сторону вейпоинтов одной своей осью.
Пытался реализовать через создание родительского объекта, но и это не помогло.
Возможно кто-то занает, как сделать так, чтобы родитель следовал по этим вейпоинтам и тащил за собой вращающийся чаилд обект. Мне нужно, чтобы чаилд игнорил вращение родителя, но не игнорил передвижение.
Аноним 04/08/20 Втр 19:36:14 6878991384
>>687892
А, все, уже не надо. Я догадался, как это реализовать.
Аноним 05/08/20 Срд 11:31:17 6879851385
Аноны, просветите меня. На сколько я правильно понимаю в юнити есть несколько систем частиц, например unity shuriken и visual effects graph. Так же как и несколько инструментов для работы с шейдерами, например Shader Graph и Shader Forge. Что из этого наиболее актуально для изучения?
Аноним 05/08/20 Срд 13:17:35 6880041386
>>687985
>Shader Graph
Попробовал использовать после Shader Amplifier и это пздц сырой продукт.
Советую купить или спиратить амплифаер, даже если в нем не будет последних фич, то для начала освоения шейдеров это будет 10/10 инструмент, все наглядно, сайт с докой огромный.
>Shuriken
Можешь потратить час и потыкать все кнопки, их там не много.
>VFX, эта штука уже сложнее и на ней делаются эффекты и посложнее, предложил бы понять как шурикен работает и потом лезть в vfx.
Аноним 05/08/20 Срд 15:48:13 6880401387
image.png 533Кб, 715x429
715x429
Как сделать чтобы навмеш игнорил кусты, расставленные через терейн? Статик в префабе убирал - не помогает
Аноним 05/08/20 Срд 18:43:51 6880771388
>>688004
>VFX, эта штука уже сложнее и на ней делаются эффекты и посложнее, предложил бы понять как шурикен работает и потом лезть в vfx.
Куда конкретно нужно лезть? Я пока что шурикен изучаю и шейдеры(Shader Forge конкретно).
Аноним 06/08/20 Чтв 16:16:06 6884571389
image.png 6Кб, 300x168
300x168
if (Input.GetAxis("Mouse ScrollWheel") != 0f)
{
float ScrollAmount = Input.GetAxis("Mouse ScrollWheel") ScrollSensitivity 10 -1;

Vector3 minVec = _Parent.position + _Camera.forward
-10f;
Vector3 maxVec = _Parent.position + _Camera.forward -20f;
Vector3 newVec = _Camera.position + _Camera.forward
ScrollAmount;
float tempCamToMin = Vector3.Distance(newVec , minVec);
float tempCamToMax = Vector3.Distance(newVec , maxVec);
float tempDistCurr = tempCamToMin + tempCamToMax;
float tempDistMinMax = Vector3.Distance(minVec , maxVec);
if (tempDistCurr > tempDistMinMax)
{
if (tempCamToMin < tempCamToMax) _Camera.position = minVec;
else _Camera.position = maxVec;
}
else _Camera.position = newVec
}

Пытался сделать скрол камеры, независимый от угла наклона.
Получил баг.

На пустом геймобжекте висит стандартная камера с монобехом в LateUpdate(); которого код выше.
Трабла такая, что порой если выкрутить колесико в крайнее положение, а потом начать крутить обратно случается луп который триггерит if (tempDistCurr > tempDistMinMax) через раз. Т.е. крутанули раз - чутка отъехали к центру, крутанули два - вернулись в крайнее положение.
При этом дебагер пишет что дистанции равны, но иф все равно срабатывает.

Че за хуйня или как сделать зум камеры по другому?
В унриле делал подобное через изменение длины Spring Arm, в юньке такого не нашел.
https://www.youtube.com/watch?v=zWXonVxsB0o
Аноним 06/08/20 Чтв 16:17:29 6884581390
Аноним 07/08/20 Птн 14:18:12 6888051391
image.png 141Кб, 853x569
853x569
image.png 334Кб, 601x605
601x605
Почему в туториале такие красивые частицы, а в моем юнити еле заметные ?
Аноним 08/08/20 Суб 05:51:10 6890611392
>>688805
может быть
потому что
цвет фона разный?
Аноним 08/08/20 Суб 08:01:11 6890641393
>>688805
Я бы подумал на:
1 Параметры у материала разные, да ты их указываешь в шейдерфордже (или где там), но в материале их можно менять
2 Размеры объектов разные
3 Текстуры разные (если там есть какой-нибудь клип, он может уменьшать эффект хоть на 99%)
4 Настройки самого шурикена, там есть StartSize и тд
Аноним 11/08/20 Втр 15:27:12 6897121394
>>659486 (OP)
Подскажите, почему у меня объекты при добавлении не отображаются на дефолтном слое, а становятся видны только если я переключаю их на транспетернтФХ???
Аноним 13/08/20 Чтв 17:18:18 6905121395
image.png 74Кб, 1364x512
1364x512
Двоч, объясни макаке, перекатывающейся из Python на C# следующую вещь.

Почему при создании классо/словарей мы должны использовать следующую конструкцию:

Dictionary<int, string> countries = new Dictionary<int, string>(5);

При объявлении переменных мы же не пишем:
int a = new int 5;

Плюс почему в C# нельзя написать типа такого?
Dictionary<int, string>(5) countries, так ведь короче было бы.

В интернетах ответы не нашёл.
На пальцах объясните динамической макаке.

Аноним 13/08/20 Чтв 21:03:34 6906021396
>>690512
потому что синтаксический сахар (лол). так то тоже можно написать System.Int32 myInt = new System.Int32(); но нахуя? в шарпе обьявление некоторых вещей не требует написания new просто потому что кто-то заебался это делать и сказал "хватит это терпеть".

например те-же делегаты можно обьявить как
static void M(string s) { Console.WriteLine(s);}
а потом написать
TestDelegate testDelA = new TestDelegate(M);
хули вот тебе new

а можно написать
TestDelegate testDelB = delegate(string s) { Console.WriteLine(s); };

а можно написать и
TestDelegate testDelC = (x) => { Console.WriteLine(x); };

делают они в целом одну и ту-же хуйню, но какую написать удобней думаю и так понятно

ну а так кстати например в структах не обязательно вызывать конструктор вообще. можно например написать
Vector3 vec;
vec.x = vec.y = vec.z = 0f;
и это будет валидным обьявлением переменной. хули, ты же сам дальше обьявил что значит каждая ось. но так нельзя делать с классами.

в шарпе вообще в целом довольно радикальные отличия между классами и структами и они выступают как рудиментальный способ менеджмента памяти.
Аноним 13/08/20 Чтв 23:43:11 6906861397
>>690512
>Dictionary<int, string> countries = new Dictionary<int, string>(5)
Можно писать
var countries = new Dictionary<int, string>(5)
и это будет примерно по длине как ты хочешь
Можно придумать какой-нибудь сахар, чтобы еще короче было в простейших случаях (как с объявлением массивов в виде new [] {5}), но мне и так норм. Питон тоже люблю.
Аноним 13/08/20 Чтв 23:43:51 6906871398
Напоминаю что случился ПЕРЕКАТ
>>687775 (OP)
Аноним 17/08/20 Пнд 08:43:39 6915721399
>>685597
поему из анрила уходишь?
Аноним 18/08/20 Втр 15:28:37 6919411400
Сап юнитач. По мере вката появились некоторые вопросы, на которые гугол не знает ответы или я не умею гуглить.
1. Как добавить поддержку модов в игру?
2. Как сделать редактор персонажа?
Аноним 27/08/20 Чтв 14:55:34 6953441401
photo2020-08-27[...].jpg 41Кб, 1280x420
1280x420
photo2020-08-27[...].jpg 29Кб, 1280x424
1280x424
Господа, я тут вкатился в Юнити и пытаюсь понять, как же блядь работают эти размеры. Почему у меня поле 1,1,1 - такое. А модель с таким же скейлом - меньше в несколько раз. Как сделать так, чтобы все модели совпадали по размеру со скейлом?
Аноним 28/08/20 Птн 05:55:57 6959921402
>>695344
Создавать модели по метриковой системе юнете (1 скейл = 1 метр вроде), а у тебя модель ПРОСТО ТАКАЯ какая есть.
И вообще у нас новый тренд есть 2ch.hk/gd/res/687775.html
Аноним 30/08/20 Вск 11:26:09 6965181403
Аноним 31/08/20 Пнд 00:01:46 6966301404
Если ассет FREE, его можно использовать в коммерции?
Аноним 01/09/20 Втр 17:41:56 6967611405
>>690687
А в шапке раздела он не случился
Аноним 01/09/20 Втр 21:23:29 6967811406
Гайс, кто шарит за запекание света, подскажите пж: пеку статичную сцену и все цилиндрические объекты запекаются некорректно. С моей говноразверткой появляются черные полосы на стыках полигонов и в режиме отображения лайтмапы видно, что на этих стыках скейл не совпадает, а если корректно развернуть, то энивей объект получается весь темный. Скрины смогу только завтра скинуть, но может уже по этой инфе кто-то может совет дать? Распишите пошагово процесс импорта для корректного запекания, пж.
Аноним 08/09/20 Втр 16:37:35 6977451407
Платиновый вопрос.
Не слишком поздно вкатываться в геймдев в 30 лет? Заебала своя работа, хочу сменить сферу деятельности.
Аноним 08/09/20 Втр 18:49:13 6977841408
>>697745
Никогда не поздно, но главное чтобы тебе было интересно, вкатываться из-за "заебала работа" или "хочу денег" ты сменишь работу и может получишь больше 30к, но рискуешь навсегда застрять на этом уровне т.к. в сфере очень много дрочки знаний/техники/логики и тд.
А игры делать (если нормальные делать, а не гавно) требуют еще больше навыков, сценарские, наративные, повествование, дизайн (графический, звуковой, гейм-дизайн), ну ты понял.
Аноним 08/09/20 Втр 22:09:34 6978051409
>>697784
Мне как раз эта мысль и нравится, что всегда нужно развиваться и если хочешь быть нормальным спецом, в зоне комфорта сидеть не получится.
Аноним 10/09/20 Чтв 03:53:25 6979581410
image.png 11Кб, 399x158
399x158
image.png 10Кб, 393x158
393x158
Че эта хуйня от меня хочет?

Обновил юньку, решил создать новый пустой 3д проект
Аноним 10/09/20 Чтв 07:56:27 6979761411
>>697958
пиздец. это была альфа 2020.2.21
Поставил бету 2020.2.0b2 - таже хуйня.

Сейчас ставлю стабильную 2020.1.4
Аноним 10/09/20 Чтв 09:34:55 6979851412
image.png 81Кб, 1919x1035
1919x1035
АААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААахуйтам

Не работает даже стабильная версия. Все также - создаю новый пустой проект - и при его открытии вылитает эта хрень

Что блядь надо сделать?

Я игру хочу делать
Аноним 12/09/20 Суб 12:29:16 6983641413
как в unity узнают что я заработал больше 100к?
Аноним 13/09/20 Вск 21:56:00 6986171414
какая версия юнити сейчас самая актуальная?
Аноним 14/09/20 Пнд 07:19:26 6986841415
>>698617
2020.1 вроде

>>698364
Через налоговую, если тебя проверят и выяснят что заработал - привет суд
Аноним 14/09/20 Пнд 16:11:47 6987591416
>>698684
так я левые данные укажу при покупке
Аноним 14/09/20 Пнд 17:39:29 6987771417
зацените какой хуйне обучают

https://www.youtube.com/watch?v=UL9babYw6Ys

50к подписчиков, а этот еблан не знает как использовать enum. смотреть было больно
Аноним 15/09/20 Втр 00:06:28 6988261418
Поясните за Сакутина.
Аноним 15/09/20 Втр 00:39:34 6988321419
>>698826
взял у него интереса ради первый модуль продвинутого курса. там он начинает про паттерны программировани рассказывать и по факту просто с википедии читает без какого-либо сопровождения этого примерами из реальных проектов. дешевле купить было бы gang of four книгу ибо примеры все не из unity, а просто по c#. хуй запомнишь чего когда тебе какой-то еблан тараторит не применимый к жизни код
Аноним 23/09/20 Срд 14:55:12 7001931420
>>698826
Неуч, инфоцыган и просто лох. У него больше чсв, чем знаний.
Аноним 15/06/21 Втр 20:52:54 7486791421
Настройки X
Ответить в тред X
15000
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов