[Ответить в тред] Ответить в тред



<<
Назад | Вниз | Обновить тред | Автообновление
1058 | 117 | 204

Unity Thread | SerializeField Edition Аноним 14/10/17 Суб 11:13:20  449619  
15049823398720.jpg (59Кб, 750x422)
Добро пожаловать в тред Unity - лучшего 3D и 2D игрового движка современности!

Прошлый тред: >>442120 (OP)

Официальный сайт: 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
Аноним 14/10/17 Суб 13:39:26  449671
https://www.youtube.com/watch?v=7kHNUdNHT-A
https://www.youtube.com/watch?v=seurLyDeS4Y
Аноним 14/10/17 Суб 13:40:51  449673
>>449671
Это что за хуй? Кто-то из местных?
Аноним 14/10/17 Суб 13:41:34  449674
>>449673
С геймдев.ру. Видео у него ламповые. Стоит посмотреть.
Аноним 14/10/17 Суб 14:02:27  449679
почему юнити тормозит?
Аноним 14/10/17 Суб 14:05:00  449680
>>449679
Потому что может.
Аноним 14/10/17 Суб 14:17:38  449682
>>449671
За синглтон убивать нужно нахуй. Дебилы ебаные.

>>449679
Потому что у тебя руки из очка торчат. Изучай базу.
Аноним 14/10/17 Суб 14:21:54  449683
>>449679
Потому что те кто брезгают синглтоном, получают поток инстансов себе в лицо.
Аноним 14/10/17 Суб 14:54:49  449687
>>449619 (OP)
Стремно только, что приходится все поля паблик делать, чтобы были видны в инспекторе.
Аноним 14/10/17 Суб 15:04:44  449689
>>449674
Хватит уже на сосаче пиариться.
Аноним 14/10/17 Суб 15:21:42  449696
>>449674
>когда я делал данжелот

Это реально он данжелот делал?

Какик же, все равно, русскоязычные видосы унылые, по сравнению с буржуйскими.
Аноним 14/10/17 Суб 15:24:38  449697
thisisbait.png (66Кб, 625x626)
>>449687
Аноним 14/10/17 Суб 15:26:53  449699
>>449682
Начальный объект не синглтон? А модули сменяемые какого-то объекта синглтоны?
Аноним 14/10/17 Суб 15:34:51  449701
>>449687
И не говори, бротиш.
Аноним 14/10/17 Суб 15:35:31  449702
Парни, помогите с задачкой по геометрии. Есть камера с определённым фиксированным ротейшоном по Х. Я хочу передвинуть камеру в какие-то ебеня и центрировать на чём-либо. На сколько мне нужно изменить Y, чтобы камера фокусировалась именно на нужном объекте, а не над ним?
Нужно вычислить катет, противоположный углу ротейшона. Как превратить ротейшон Х в угол, и что делать с приближением камеры/глубиной?
Аноним 14/10/17 Суб 15:45:43  449705
Эй, девелоперы, свеженький курс плюралсайта(лежит на персии) полная хуйня или для вкатывания норм?
Аноним 14/10/17 Суб 15:48:18  449707
>>449696
>по сравнению с буржуйскими
Потому что ты половины не понимаешь, а додумываешь. Смысл в итоге тот, но эффект не тот. То же самое с песнями буржуйскими. Если переводить, то там пиздец похлеще, чем у нас.
Аноним 14/10/17 Суб 15:56:53  449712
>>449702
Quaternion.LookRotation
Quaternion.eulerAngles
Аноним 14/10/17 Суб 16:04:02  449714
>>449712
И что мне делать? Брать текущий вектор камеры, отражать его, сдвигать к объекту, снова отражать, и применять к камере?
Аноним 14/10/17 Суб 16:25:32  449719
>>449702
Если высота камеры известна, то tan(угла твоей камеры) умножить на эту высоту, получаешь сдвиг по х. Что там с радианами и углами в юнити я не помню, посмотришь в доках.
Аноним 14/10/17 Суб 16:47:10  449724
>>449702
> чтобы камера фокусировалась именно на нужном объекте
Не совсем понял. То есть чтоб объект был по центру камеры, а не чтоб камеры тупо взяла Y объекта и зависла над ним?
Аноним 14/10/17 Суб 16:50:18  449725
>>449724
если переместить камеру к Х и У объекта, то из-за ротейшона в камере этот объект окажется "ниже", т.е. камера над ним смотреть будет. Мне нужно сместить камеру так, чтобы объект в центре камеры был.
Аноним 14/10/17 Суб 16:50:48  449726
>>449725
если правнять Х и У камеры к Х и У объекта*
Аноним 14/10/17 Суб 16:53:30  449727
>>449699
>Начальный объект не синглтон?
Начальный объект - это рут. А если к этому руту прикрутишь какую-нибудь проперти Instance, тогда это будет синглтон.

>А модули сменяемые какого-то объекта синглтоны?
Что ты блядь несёшь?

Аноним 14/10/17 Суб 16:53:53  449728
>>449725
Сделай какой-нибудь Vector3 offset, присвой ему на старте разницу между позицией камеры и точкой, куда попадает рейкаст, выпущенный в центр экрана. Потом прибавляй этот offset по x и z к позиции нужного объекта и получай свою позицию камеры.
Аноним 14/10/17 Суб 16:54:53  449729
>>449728
Хитро, спасибо.
Аноним 14/10/17 Суб 16:57:11  449730
>>449728
>>449729
Хотя стой
>точкой, куда попадает рейкаст, выпущенный в центр экрана
Это придётся чертить воображаемую плоскость. Рейкаст способен такое детектить вообще?
Аноним 14/10/17 Суб 17:03:39  449731
>>449730
> Это придётся чертить воображаемую плоскость
Шта? Это ещё зачем? Ты же хреначишь рейкаст из центра экрана, он никуда кроме центра экрана не попадёт. Тебе ж на Y пофигу.
Аноним 14/10/17 Суб 17:06:35  449732
>>449731
Камера наклонена же. Если в центре экрана будет возвышенность или впуклость, т.е. не та же самая Х У плоскость, что и у объекта, то смещение будет неправильным.
Аноним 14/10/17 Суб 17:14:45  449733
>>449732
> Камера наклонена же
Лол, не из самой камеры рейкасти, а из центра экрана.
Camera.main.ViewportPointToRay
Аноним 14/10/17 Суб 17:18:45  449735
>>449733
Если быть точнее, то тебе нужно
Ray ray = cam.ViewportPointToRay(new Vector3(0.5F, 0.5F, 0));
Аноним 14/10/17 Суб 18:45:49  449748
>>449719
>>449728
>>449733
>>449735
Сделал так
vec.z = gCamera.transform.position.z;
Quaternion q = new Quaternion(0, 0, 0, gCamera.transform.rotation.w);
float angle = Quaternion.Angle(gCamera.transform.rotation, q);
Debug.Log (angle);

vec.y += (Mathf.Atan(angle) * vec.z);
Выдаёт при 350.0 поворота по Х примерно 14 градусов, что верно. Спасибо всем. Теперь нужно сообразить, что это за зверь такой - Field of View камеры
Аноним 14/10/17 Суб 18:49:55  449749
>>449748
> что это за зверь такой - Field of View
Угол обзора же, ну. У тебя ж камера перспективная.
Аноним 14/10/17 Суб 19:07:12  449759
>>449749
Это понятно. Мне непонятно, как его конвертировать в "отсекаемую" часть высоты.

float angle = Quaternion.Angle(gCamera.transform.rotation, new Quaternion(0F, 0F, 0F, gCamera.transform.rotation.w));
float fovH = vec.z Mathf.Cos(gCamera.fieldOfView/2);
vec.y += (Mathf.Atan(angle)
fovH);

Эта херь как-то работает, хотя мне и кажется, что я чего-то не учитываю.
Аноним 14/10/17 Суб 19:25:33  449770
есть паблик свойство с {get; private set;}
как мне дописать что-то в сеттер, при этом оставив его приватным, а геттер публичным?
Аноним 14/10/17 Суб 19:26:32  449771
>>449770
а, блин, я кажись я затупил прост
Аноним 14/10/17 Суб 19:29:23  449772
нет, вопрос остается. Как мне сделать то что нужно, без лишнего поля?
Аноним 14/10/17 Суб 19:40:35  449774
>>449770
>>449772
Private set означает, что ты задаёшь значение только из тела этого класса. Т.е. тебе нужно либо публичный метод сделать для этого класса, который будет задавать значение, либо сделать свойство полностью паблик и не ебаться.
Аноним 14/10/17 Суб 20:10:39  449778
>>449774
смотри. Если я хочу сделать просто публичное чтение, приватную запись, то я делаю
Type MyProperty {get; private set;} без лишней переменной.
Но, если я захочу сделать
Type MyProperty
{
get{ return xxx;}
private set{ xxx= value}
}
мне нужна ххх, так как на само свойство я ссылаться не могу, так? как без ххх сделать, чтобы как в первом случае?
Аноним 14/10/17 Суб 20:11:26  449779
>>449778
предполагается, что в скобки я еще что-то впишу, само собой, иначе просто первый вариант сделаю
Аноним 14/10/17 Суб 20:12:50  449781
>>449778
Ты что - ебанутый?
Аноним 14/10/17 Суб 20:17:22  449784
>>449781
нет вроде, просто не врубаюсь в свойства.
представь, что есть у меня Type MyProperty {get; private set;}

как мне дописать что-то в сеттер?
Аноним 14/10/17 Суб 20:18:42  449785
>>449778
get; set; - это быстрая запись, которая автоматом "создаёт" xxx типа Type. Ты можешь сам задать ххх, если тебе при использовании свойства нужно как-то ххх менять. Без ххх не сделаешь.
>>449784
Ххх нужно сделать. private Type xxx; , или что там у тебя.
Аноним 14/10/17 Суб 20:19:05  449786
>>449784
>как мне дописать что-то в сеттер?
Без переменной никак.
Аноним 14/10/17 Суб 20:31:06  449789
>>449786
>>449785
>которая автоматом "создаёт" xxx типа Type
спасибо, понял
Аноним 14/10/17 Суб 20:38:32  449791
>>449770
Использовать нормальные языки
Аноним 14/10/17 Суб 20:41:13  449792
>>449791
Пошёл отсюда нахуй.
Аноним 15/10/17 Вск 00:57:15  449848
>>449792
Ну и дрочите свое окаменелое говно дальше.
Аноним 15/10/17 Вск 01:11:03  449850
>>449848
Ты про что сейчас?
Аноним 15/10/17 Вск 01:13:22  449851
>>449770
Забудь про существование property, модификаторов доступа и т.д. Это все нужно для создания интерфейсов библиотек, и не нужно в написании скриптов игры.
Аноним 15/10/17 Вск 01:15:05  449853
>>449850
А ты про што?
Аноним 15/10/17 Вск 01:17:16  449854
>>449853
просто мне показалось, что ты назвал C# - самый современный, продвинутый и технологичный язык - окаменелым говном
Аноним 15/10/17 Вск 01:20:41  449855
15080129668290.jpg (26Кб, 490x756)
>>449854
Какой же ты говноед
Аноним 15/10/17 Вск 01:31:31  449856
>>449855
Ты аухел? Нас тут вообще то много, а ты говоришь это мне в лицо
Аноним 15/10/17 Вск 01:47:36  449860
>>449855
Сейчас бы кукарекать о языках, ничего в них не понимая
Аноним 15/10/17 Вск 03:15:13  449863
>>449856
Сколько вас говножуев высирало этот >>449854 пост? Могу каждому персонально приехать по ебальнику дать.
Аноним 15/10/17 Вск 05:53:13  449883
>>449863
И конечно же твое мнение основано не на субъективных представлениях ньюфага не разбирающегося в программировании, а на железных аргументах, которые ты готов предоставить?
Аноним 15/10/17 Вск 10:37:53  449908
>>449851
Какой смешной мальчик. Ты книжку по шарпам читал или сам додумал?
Аноним 15/10/17 Вск 10:46:14  449909
>>449908
Зачем тебе что-то прятать в своем коде? Только усложнять все лишним слоем абстракции.
{get;set;} это вообще ненужный бред в скриптах, тем более не сериализируется в редакторе.
Аноним 15/10/17 Вск 11:06:37  449912
>>449909
> {get;set;} это вообще ненужный бред в скриптах
Ещё и байт больше занимает.
Аноним 15/10/17 Вск 11:07:28  449914
>>449908
Это шизик из предыдущего треда, не обращая внимание.
Аноним 15/10/17 Вск 11:10:04  449915
>>449909
Где ты в модификаторах доступа абстракции увидел? Совсем поехал?
Аноним 15/10/17 Вск 11:30:42  449918
14668422652300.webm (2975Кб, 900x544, 00:00:07)
>>449909
>свойства
>абстракции
Аноним 15/10/17 Вск 12:01:43  449926
>>449912
Нунида. Архитектура и безопасность, это, конечно, хорошо, но сами по себе они мало что значат. Будь разница в байтах, довод в пользу всяких там инкапсуляций был бы весомее.
Аноним 15/10/17 Вск 12:02:12  449927
>>449926
Нунинада*
Аноним 15/10/17 Вск 12:03:09  449928
>>449926
Та то понятно. Ещё и абстракции эти. Фу кароч.
Аноним 15/10/17 Вск 12:07:28  449929
>>449928
Что значит "фу"? Есть же и другие языки, и там нет таких фич. САМИ ПО СЕБЕ эти фичи просто фичи, и очень сомнительно, что производительность имеет прямую зависимость от архитектуры. Если это устройство было кем-то arbitrarily порешено как самое лучшее, то оно всё равно в любом случае arbitrary решение.
Аноним 15/10/17 Вск 12:08:10  449930
>>449929
> Есть же и другие языки, и там нет таких фич
Ну да, я вот до сих пор на паскале пишу и мне норм.
Аноним 15/10/17 Вск 12:09:40  449931
>>449930
А на питоне фигурных скобочек нет. Чому бы на питон не перейти? Это ж сколько типографских знаков сохранишь!
Аноним 15/10/17 Вск 12:10:06  449932
>>449931
> А на питоне фигурных скобочек нет
Надо же как удобно.
Аноним 15/10/17 Вск 12:11:17  449933
>>449932
А я о чём говорю? Ты это арбитрарное решение не признаёшь, а кому-то нравится. Важно иметь перспективу, понимаешь? На себя критично смотреть.
Аноним 15/10/17 Вск 12:15:26  449934
>>449933
> а кому-то нравится
Ну кому-то и знаешь чё ещё нравится?
Кароч тред не об этом, так что завязываем.
Аноним 15/10/17 Вск 12:17:13  449936
>>449931
Там надо отступы ставить, пустота тоже байты занимает.
Аноним 15/10/17 Вск 12:35:42  449937
Братишка из прошлого треда, который ебался с фокусом наклонённой камеры, у тебя там всё получилось?
Аноним 15/10/17 Вск 12:54:16  449939
>>449860
Оправдания говножуев. Если язык постулирует одним из принципов ООП, но при этом в нем невозможно лаконично записать проперти, то это не язык а говно. И никакое его глубинное понимание не изменит ситуацию.
Аноним 15/10/17 Вск 12:55:44  449940
>>449937
Вот >>449759
Аноним 15/10/17 Вск 13:13:24  449941
>>449939
Лаконично пописял тебе в ротик.
Аноним 15/10/17 Вск 14:36:01  449950
>>449940
А, ты всё таки через углы решил.
Ну бог навстречу.
Аноним 15/10/17 Вск 15:15:09  449960
https://www.youtube.com/watch?v=0969LalB7vw
Какая йоба. Жаль, что только в следующем году выйдет.
Аноним 15/10/17 Вск 15:22:09  449963
>>449960
Ну, это официально, а демку, думаю через полгодика дадут пощупать. Я аж на радостях подписался на демку.
Аноним 15/10/17 Вск 15:22:51  449964
>>449960
Так они там чего, используют менеджеры для всех юнитов, анимаций и поисков путей? Удивительно, то-то же мы апдейты в каждом юните проверяем, а не делаем отдельные менеджеры.
Аноним 15/10/17 Вск 16:33:50  449976
>>449960
А ещё будет переход на новую версию c# и тогда заживём.
Аноним 15/10/17 Вск 17:38:42  449989
>>449976
А, это же типа новый компилятор (?). Поясните, кстати, что такого пиздатого в новых версиях языка, и почему на него стоит дрочить. Видел только, что внутрь функций нельзя вставлять сложного формата формулы, но не более.
Аноним 15/10/17 Вск 18:02:36  449996
>>449989
>Видел только, что внутрь функций нельзя вставлять сложного формата формулы
Вут? Это ты про ограниченный размер стека?
Аноним 15/10/17 Вск 18:15:00  450005
>>449996
Тахуйзнает, я же тупенький, просто пытался провернуть конструкцию типа Math.sin([дохуя переменных с паройфункций]№1, [дохуя переменных с паройфункций]№2), мне студия сразу сказала: "Нет, брат, так не пойдет".
Аноним 15/10/17 Вск 20:04:52  450051
>>449915
>>449918
Абстракции вы будете писать, дурачки, если вам понадобится изменять состояние объекта из другого объекта, вместо прямого чтение и записи переменных.
Аноним 15/10/17 Вск 20:09:44  450058
>>449939
ООП и проперти никак не связаны.
Ты сначала разберись что такое проперти и как они работают, а потом уже кукарекай у лаконичности их записи.
Придумал какую-то хуйню и обвиняет язык, потому что в нем этой хуйни. Вообще охуеть
Аноним 15/10/17 Вск 20:56:20  450092
>>450058
Ты так скозал? Просто до этого все считали что проперти это лаконичная запись для геттеров и сеттеров, которые в ооп реализуют гибкую систему инкапсуляции и полиморфизма. Но оказывается это не так, сорян тогда, двигай кубы дальше.
> Придумал какую-то хуйню и обвиняет язык обвиняет язык, потому что в нем этой хуйни
Как хорошо читать жопой, можно писать любую хуйню не задумываясь
Аноним 15/10/17 Вск 21:12:55  450099
>>450092
property это просто сахарный синтаксис и зло, потому что у них непредсказуемое поведение. Семантически это переменная, но на самом деле функция. И что там в этой функции можно только догадываться. Например, нужно кэшировать значение проперти или нет?
Особенно заебывает использование property с структурами в юнити. Хочешь изменить property? Сохрани в переменную, измени, и запиши обратно.
Аноним 15/10/17 Вск 21:14:31  450101
>>450099
>И что там в этой функции можно только догадываться.
У тебя же есть ретёрн с определённым типом.
Аноним 15/10/17 Вск 21:27:35  450106
КЕК.webm (4062Кб, 640x360, 00:00:46)
>>450051
Аноним 15/10/17 Вск 21:27:52  450107
.webm (740Кб, 800x450, 00:00:10)
Как вы забали уёбки второй тред пожрят какую то хуйню обсуждаете.
Аноним 15/10/17 Вск 23:05:34  450123
>>450107
>>450106
chmo
Аноним 15/10/17 Вск 23:07:03  450124
>>450123
Шизик, ты не в /b/, здесь вообще-то движок обсуждают.
Аноним 15/10/17 Вск 23:17:10  450127
>>450123
>>450124
>>450126
Имхо, отвечающие ещё более раковые
Аноним 15/10/17 Вск 23:36:41  450130
>>450127
> Пусть распик кидаем свои вебм-ки, они забавные :) ИМХО
Аноним 16/10/17 Пнд 01:03:11  450136
>>450130
Срущую свинью нужно игнорировать либо репортить, а не поощрять, присаживаясь срать рядом с ним. Хотя чего я распинаюсь, это наверняка пизданутый семен.
Аноним 16/10/17 Пнд 01:04:53  450137
>>450136
> репортить
В /gd/ если моча и есть, то ему явно всё похуй.
Аноним 16/10/17 Пнд 01:08:33  450139
>>450137
Мочер у нас поехавший, в дурке уже.
Аноним 16/10/17 Пнд 01:33:00  450143
Clip2net1710160[...].png (53Кб, 648x429)
Как создать Аватар для 2D спрайтов? Он мне нужен чтобы появилась возможность зеркалить анимации одним нажатием, но в списке ничего нет, а как создать новый непонятно.
Аноним 16/10/17 Пнд 01:35:29  450144
>>450143
https://docs.unity3d.com/Manual/class-Avatar.html
Аноним 16/10/17 Пнд 01:41:06  450147
>>450143
> Аватар
> 2D
Рор.
Если ты хочешь ебать 2д-анимацию, то смотри как это сделано здесь.
https://unity3d.com/ru/learn/tutorials/topics/2d-game-creation/2d-game-development-walkthrough
Аноним 16/10/17 Пнд 13:53:17  450200
>>449759
Поправочка подъехала.

vec.x -= gCamera.transform.position.x; //distance between camera and new point
vec.y -= gCamera.transform.position.y; //distance between camera and new point
vec.z = 0F; //keeping camera height

float height = gCamera.transform.position.z;
float angle = gCamera.transform.rotation.eulerAngles.x;

if (angle > 360) angle = angle % 360;
if (angle > 180) angle = 360F - angle;
else if (angle < 180) angle = -angle;

float fovH = height Mathf.Cos(gCamera.fieldOfView/2 Mathf.Deg2Rad); //finding height modified by camera's FOV
float side = fovH Mathf.Tan(angle Mathf.Deg2Rad); //finding side
vec.y += side; //adding offset

Лолблядь, я и не знал, что они там в радианах считают. Да и сам подсчёт в радианах странный какой-то. Пишет, что возвращает в радианах, но если вписать Mathf.Deg2Rad, то вернёт в градусах. Как так-то?
Аноним 16/10/17 Пнд 14:06:16  450201
ddddsssss.JPG (105Кб, 1514x611)
Анон, как запекать освещение в юнити для интерьеров?
Нужно чтобы помещение хорошо освещалось с окон. Однако Directional Light как-то странно работает. Он пропускает свет сквозь крышу, причем сама крыша становится черной. Area Light? Но как тогда быть с тенями?
Аноним 16/10/17 Пнд 14:09:05  450202
>>450201
у хуюнити нет санлайт-порталов, делай спотлайтами. юнити — говно, кстати.
Аноним 16/10/17 Пнд 14:13:54  450204
>>450201
Area Light делает то что ты хочешь

>>450202
просто ты бестолоч
Аноним 16/10/17 Пнд 14:20:10  450206
>>450204
> просто ты бестолоч
> Area Light делает то что ты хочешь
> Light is emitted in all directions uniformly across their surface area
> in all directions uniformly
но ведь ето не так, я не бестолоч!
Аноним 16/10/17 Пнд 15:17:28  450227
Хочу УИ над каждым персонажем. Создавать канвас на каждого и пэрентить на ГО перса, или сделать общий канвас для херни, которая должна висеть на персонажах, и панельку уже привязывать к положению ГО?
Аноним 16/10/17 Пнд 15:19:37  450232
>>450227
>общий канвас
Аноним 16/10/17 Пнд 15:20:26  450233
>>450227
> Создавать канвас на каждого
Ты понимаешь что ты поехавший?
Аноним 16/10/17 Пнд 15:26:01  450237
>>450233
>>450232
канвас вообще один должен быть?
Например, для окон инвентарей и ОнПлеерУИ разные канвасы должны быть, только если один оверлей, другой в мире? То есть если игра 2д, то все вообще можно делать в одном канвасе, писа окна информации, меню, диалоги, статы юнитов, инвентарь?
Аноним 16/10/17 Пнд 15:27:28  450238
>>450237
Нахрена тебе несколько канвасов на одном экране? Можешь их хоть 80 сделать, но зачем?
Аноним 16/10/17 Пнд 15:29:15  450239
>>450238
а просто парентить удобнее по группам, но раз не нужно, буду парентить в емпти ГО.
Аноним 16/10/17 Пнд 15:30:10  450240
>>450239
Нахера тебе парентить канвас?
Аноним 16/10/17 Пнд 15:32:34  450242
>>450239
а, ну и если у меня на персонажа прилеплен канвас, то он и ходит за персонажем. А если я панельку на общий канвас прилеплю, то придется при перемещении и панельку перемещать.

Аноним 16/10/17 Пнд 15:34:10  450243
>>450240
имел в виду панельки разного назначения парентить в разные канвасы

про парентить сам канвас см тут >>450242
Аноним 16/10/17 Пнд 15:34:40  450245
>>450242
Блять, почитай уже как работает канвас и не еби мозги.
За персонажем у него канвас ходит, вообще охуеть.
Аноним 16/10/17 Пнд 15:39:13  450248
>>450201
сделай у крыши в Skinned Mesh Renderrer чтобы она с двух сторон тень кастовала.
важный вопрос. а нужны ли в бане окна? сунь в окна Area Light, тени по моему тебе вообще нахуй не нужны. это же баня, там только рассеянный свет. если хочется Directional Light в окна светить то ебани ему Cookie нужной формы.
вообще посмотри какой-нибудь таймлапс освещения в юнити.

>>450206
он и не сделан для этого. он сделан чтобы освещать пространство. если так хочется хитрый свет то всегда можно охуеть и сделать Directional Light как надо пользуясь Culling Mask

>>450227
да оба вариант норм, вопрос в том что получить хочешь.

>>450237
на самом деле не один, если делаешь UI в ворлд спейсе как в дедспейс например. но если ты делаешь 2д то нахуй тебе все эти хитрые фичи то? делай обычный, на одном канвасе. меньше возни.

>>450242
но зачем твой канвас ездит за персонажем?
Аноним 16/10/17 Пнд 15:46:10  450252
Ладно, попробую конкретнее.
>но зачем твой канвас ездит за персонажем?
использовал его как папку для панелек на персонаже.

У меня есть юниты, за ними должны перемещаться панель со статами и панель с уроном (сортинг лэйер выше спрайта юнита и статов, типа когда получаешь урон, вылезает эта панель на некоторое время, показыввает величину урона, ну типа анимация). Как это правильно реализуется.

Про то, что я не правильно понимал канвасы в принципе, я уже понял.
Аноним 16/10/17 Пнд 15:47:05  450253
>Как это правильно реализуется?
вопрос тут.
Аноним 16/10/17 Пнд 15:55:43  450258
Есть у меня объект дороги, нужно накопировать его на определенную длину. Есть возможность в юнити магнитить объекты прям полигон к полигону или надо расставлять все вручную? Просто если ебашить вручную, то модели всегда будут немного налезать друг на друга или наоборот небольшой пробел между ними, что глаз режет люто, да и времени тратит кучу
Аноним 16/10/17 Пнд 16:00:44  450260
>>450253
да как всегда.
ебани себе менеджер который бы висел на канвасе, который бы отображал подобные эвенты над юнитами, следил за этими панельками и перемещал их куда надо со всяким там красивым лерпом и прочим говном. сделай чтобы при создании юнита он заодно регистрировался в этом менеджере. ну а дальше че, переводи мировые координаты в экранные и ебись уже с ними. может и муторно, зато все в одном месте, все как ты хочешь и с этим будет проще работать дальше.

>>450258
открой гугл, напиши там unity snap, думаю это то что ты ищешь.
Аноним 16/10/17 Пнд 16:01:47  450262
>>450258
если они у тебя клетками и стандартного размера, то есть выравнивание по сетке.
Аноним 16/10/17 Пнд 16:04:20  450264
>>450260
>ебись уже с ними. может и муторно
хорошо, тогда чем плохи канвасы над каждым юнитом? Оптимизация соснет? Просто это удобнее и кода меньше. И сейчас все работает уже.
Аноним 16/10/17 Пнд 16:06:50  450265
image.png (7Кб, 422x61)
Ребят, я наверное не в ту тему, но как мне в PlayConsole поменять Bandle ID. Я хочу выпустить с новым id который указал в юньке.
Аноним 16/10/17 Пнд 16:25:09  450266
>>450264
дааа хуй с этой оптимизацией, этот UI и такое потянет. это конечно удобно в начале, но при увеличении размеров проекта обычно перестает быть удобным. например если захочется делать какие-то клевые манипуляции, например сделать так чтобы полоски ХП не смешивались в кучу а разьезжались немного друг от друга. или когда ты захочешь редактировать все все панельки одновременно, например отключать их когда игрок выходит в другое меню (например карта, или журнал). или когда размер проекта вырастет до таких размеров, когда проще знать куда срать свой тематический код для UI, чем искать все эти 10-20-30 классов куда распиханы какие-то мелкие фичи для интерфейса.

но если тому что ты делаешь такая хуйня никогда не понадобится то оставь как есть. тебе лучше знать.
Аноним 16/10/17 Пнд 17:15:28  450271
>>450266
спасибо за подробности, чаю и пледов тебе
Аноним 16/10/17 Пнд 20:42:29  450330
>>450252
Канвас же по умолчанию имеет функцию прикрепления за камерой. Сам не дошел до UI, но вроде как можно же просто прицепить на юнит точку, на нее инстанциировать панель с анимацией.
Аноним 16/10/17 Пнд 21:33:27  450338
расскажите как Random.Range(int, int) работает.
Генерит одну хуйню в цикле, если семечко менять, то та же хрень. Верхняя граница эксклюзив, это знаю.
Аноним 16/10/17 Пнд 21:35:27  450339
>>450338
> Генерит одну хуйню в цикле
А надо чтоб генерило две хуйни?
Аноним 16/10/17 Пнд 21:40:25  450342
>>450339
надо чтобы разное. Грубо говоря при вызове Random.Range(0,5) я получаю что-то такое:
{33333111111111000666666666666666000000000}, а не нормальный рандом.
В то, что так совпало не верю.
Аноним 16/10/17 Пнд 21:42:16  450343
>>450342
чувствую подвох, короче. Документацию почитал, но немного не понял.
Он берет дефолтное семечко из даты-времени пк, так? То есть если выдает подряд одинаковую фигню, то значит в этот инкремент времени успел прокрутить цикл х раз, так?
Аноним 16/10/17 Пнд 21:44:03  450345
>>450342
> при вызове Random.Range(0,5) я получаю что-то такое
> 666666666666666
> при вызове Random.Range(0,5)
Аноним 16/10/17 Пнд 21:44:18  450346
чувствую, что читал жопой, поясните. Или дайте линк на статью, где подробнее написано.
Кстати, такая фигня только с интом?а если рандомить флоат и из него потом делать инт, предварительно умножив на что-нибудь, та же фигня выйдет?
Аноним 16/10/17 Пнд 21:45:06  450347
>>450345
ну ты понел, опечалатся
Аноним 16/10/17 Пнд 21:52:45  450350
>>450342
> 33333111111111000666666666666666000000000
Ну хуй знает, рандом как рандом.
Аноним 17/10/17 Втр 00:35:07  450388
>>450143
Anima2D.
Mecanim всё-таки больше для 3д.
Аноним 17/10/17 Втр 00:39:13  450389
>>450238
Вообще-то, много канвасов - это хорошая практика, если у тебя UI много говна имеет.
Почитай в разделе ЛУЧШИХ ПРАКТИК на юньковском сайте.
tl;dr при каждом чихе у тебя батчи меньше времени тратить будут
Аноним 17/10/17 Втр 00:42:31  450390
>>450265
Никак.
Аноним 17/10/17 Втр 09:44:09  450443
>>450262
>есть выравнивание по сетке
Можно подробнее?
Аноним 17/10/17 Втр 09:44:39  450444
>>450443
тебе же ответили, ты слепой чтоли
Аноним 17/10/17 Втр 12:56:29  450464
123.png (38Кб, 242x242)
хочу сделать лерп между множеством кривых. вопрос. как получить примерно такую-же координатную штуку которая в меканиме юнити для блендинга анимаций?
Аноним 17/10/17 Втр 19:25:59  450548
А зачем юнити насильно заменяет заданные в скрипте паблик переменные (даже если их скрыть в инспекторе) на те значения, которые заданы в редакторе? Встретился с этим вот. Просто хочу разобраться.
Аноним 17/10/17 Втр 19:32:17  450551
>>450548
Потому что ты их изменил в инспекторе.
Хочешь менять переменные через скрипт — присваивай им значения в старте.
Аноним 17/10/17 Втр 19:34:45  450552
>>450551
Но я их не менял, лол, я их задал в скрипте, а инспектор насильно закрепил.
И это не ответ на вопрос. Я не понимаю концепта за этой хуйнёй. Они не смогли синхронизировать скрипты с инспектором, или чего?
Аноним 17/10/17 Втр 19:36:40  450553
>>450552
Делая публичные сериализуемые поля в наследнике MonoBehaviour'а, ты специально делаешь их доступными и изменяемыми / запоминаемыми в инспекторе. Это одна из основных фишек.
Аноним 17/10/17 Втр 19:38:12  450554
>>450553
>это не недодумка, это фича
Аноним 17/10/17 Втр 20:59:06  450571
>>450554
Но это действительно одно из основных свойств редактора. Level-designer'ам очень удобно подкручивать всякие свойства объектов на уровнях.
С точки зрения архитектуры это не очень красиво, т.к. в runtime потом висит объект с публичными полями.
Аноним 17/10/17 Втр 22:26:00  450603
Есть префаб, собранный из других префабов. Как при изменении префабов-частей изменять и составной префаб?
Аноним 17/10/17 Втр 22:41:30  450606
Unity3D-inspect[...].png (21Кб, 700x158)
>>450603
Наверное кнопочкой Apply, не?
Аноним 17/10/17 Втр 22:55:59  450611
>>450606
этой кнопочкой он почему-то меняет только в самом префабе, а в других префабах, которые из этого префаба сделаны не меняет.
Аноним 17/10/17 Втр 22:59:46  450613
>>450611
грубо: есть колесо от машинки, есть машинки с колесами. Машинки сделаны из префабов колёс и прочих. Хочу чтобы при перекрашивании колеса, колеса менялись на всех машинках. Кнопка Apply работает, когда я хочу изменить объект префаба на сцене и записать в префаб изменения, в моем же случае почему-то не работает.
Аноним 17/10/17 Втр 23:22:35  450624
>>450613
что-то мне подсказывает, что я просто машинку криво сдеал. Смотри, колесо сделано из всякого говна, я его перетащил в прожект, получил префаб колеса. Если я теперь перетащу обратно на сцену несколько префабов колес, добавлю машинку, обведу все и сделаю из добра префаб, он будет считать что префаб машинки сделан из колес или из говна(элементов колес)?
Аноним 17/10/17 Втр 23:35:48  450632
>>450624
>>450613
почитал, это называется nested prefabs и реализовано только в ассет сторе пока.
Аноним 18/10/17 Срд 02:44:56  450662
unknown.png (21Кб, 1046x495)
Посоны помогите!
Короче, Mathf.Лерп это линейная штука. То есть числа распределены равномерно, но что если я хочу, чтобы оно было не линейным, а по прогрессии какой-то? (как на картинке прикрепленной) Есть что-то такое? Или самому ручками это собирать надо?
Я знаю есть slerp, который вроде как можно было бы использовать для моих целей, но он для вектор3, а не для чисел, и вообще вроде как не совсем то.
Аноним 18/10/17 Срд 03:38:12  450669
>>450662
http://catlikecoding.com/unity/tutorials/curves-and-splines/
Аноним 18/10/17 Срд 04:50:49  450673
>>450662
Гугли кривые безье.
Аноним 18/10/17 Срд 04:51:33  450674
>- Какие у Unity слабые стороны?
Наверно платиновый вопрос, но как же наихуевейшая оптимизация, всякие там garbage collector и memory leak которые вшиты в движок и не фиксятся?
Аноним 18/10/17 Срд 04:59:45  450675
>>450674
unity скоро умрет.
советую всем перекатываться на godot. он сейчас уже достаточно развился и, что самое главное, стал де-факто опенсурсным движком. то есть чем-то вроде blender'а в мире игростроя. а так как игровые движки намного популярнее 3д, то и развиваться он скоро будет семимильными шагами.
Аноним 18/10/17 Срд 05:01:49  450676
>>450675
блендор чет не развивается
Аноним 18/10/17 Срд 05:03:45  450679
>>450674
https://youtube.com/watch?v=0969LalB7vw
Аноним 18/10/17 Срд 05:24:33  450682
>>450676
>блендор чет не развивается
лол
Аноним 18/10/17 Срд 06:15:02  450694
>>450679
Как обычно занимаются хуитой безразличной конечным пользователям и показывает захардкоженные демки.

В mono давно есть simd, какой-то там свой конпелятор они пишут, велосипедисты ебаные.

job system какой-то уебищный хак с генерацией кода и изобретением своих тредов.
Аноним 18/10/17 Срд 06:16:18  450695
>>450694
https://www.youtube.com/watch?v=AXUvnk7Jws4

вот тут подробнее про эти job. Лютое говнище какое-то
Аноним 18/10/17 Срд 10:39:03  450719
Перехожу с гамака на юнити. Столкнулся с тем что в гамаке я довольно сностно управлял инстансами через код, а в юнити вообще чето пока не вкуриваю. С# поизучал, но понял что на теории далеко не уедешь и надо что-то делать, но делается как то туго.

Например у меня есть объект на сцене, чтобы через код заставить его что-то делать надо как я понял записать в переменную (ну не силен я в терминологии) данные компонента (GetComponent), например Transform, тогда я смогу через код его двигать. Если я хочу обратиться к какому-то другому объекту на сцене через текущий используют GameObject.Find если данные какой-то переменной мне нужны везде -делаю его паблик статик. Да, я соображаю туговато. Если я создал на сцене 5 объектов и навешал на них 1 скрипт. Переменные в этом скрипте же локальные для каждого gameobject? Наверное это очевидно, просто пока мои скрипты работаю немного не так как я ожидаю.

Есть ли какие-то ошибки в том что я написал?
Аноним 18/10/17 Срд 10:47:21  450723
>>450719
Переменные локальные для каждого навешенного скрипта.
Статик будет один для всех, это видимо не то что ты хочешь.
Созданные объекты пихаешь в пул, или делаешь как тебе удобно. Find медленная операция (лучше не юзать в Update), можно хуячить объекты при создании в массив или лист какого нибудь менеджера сцены.
transform'y не нужно делать GetComponent, он у любого объекта и компонента есть по дефолту, yoba.transform.Translate(...)
Аноним 18/10/17 Срд 10:54:59  450726
>>450719
> Если я хочу обратиться к какому-то другому объекту на сцене через текущий используют GameObject.Find если данные какой-то переменной мне нужны везде -делаю его паблик статик
public static относится к классу. Т.е. есть у тебя инстанц класса Klass по имени klass. Просто паблик будет требовать писать klass.variable, статик же Klass.variable. Очевидно, что статик (с таким именем) существует только один.
>Если я создал на сцене 5 объектов и навешал на них 1 скрипт.
Через AddComponent если, то каждый скрипт как бы отдельная сущность. Есть ещё такая вещь, как new, которая создаёт новый инстанс.
>Например у меня есть объект на сцене, чтобы через код заставить его что-то делать надо как я понял записать в переменную
Можешь писать в любом наследующем от монобихевиора GameObject.Find("obyekt").transform.position += new Vector3(1, 1, 1), например. Но файнды использовать не рекомендуют.
Ты ещё учти на будущее, что переменные стринг, интежеров и т.п. это не инстансы новых объектов, а вот массивы и классы уже да, т.е. в переменных в первом случае хранятся данные, во втором ссылки. По сути, данные и ссылки на контейнеры данных.
>>450723
Трансформа нет у объектов без монобихевиора.
Аноним 18/10/17 Срд 11:07:13  450727
Правильно я понимаю, что если есть выбор между реализацией фичи в Корутине или в Апдейте, лучше выбирать Корутин, потому что он умеет в разных потоках работать?
Аноним 18/10/17 Срд 11:46:01  450733
>>450727
Смотря что за "фича".
Аноним 18/10/17 Срд 12:05:25  450745
>>450727
Корутина работает в том же потоке что и апдейт, это в доках написано.
Аноним 18/10/17 Срд 12:16:27  450754
>>450603
Nested prefabs. Спрашивают их об этом на каждом Unite. Да, да, сделаем. Ага, скоро, ждите.
Аноним 18/10/17 Срд 12:54:41  450768
>>450662
Гугли интерполяцию в юнити типа кубической, easeInExpo и подобное, хз как это называется
Аноним 18/10/17 Срд 13:10:22  450771
>>450675
Давно бы на него перекатился, но там какая то скриптопараша вместо нормальной статики инб4 пиши на крестах. Разрабы вроде в ближайшем крупном апдейте собираются обновить апи движка, чтобы можно было на любом языке писать. А вообще как замена юнити есть xenko.
Аноним 18/10/17 Срд 13:20:08  450775
>>450675
>чем-то вроде blender'а в мире игростроя
Т.е. говном для тупых студентиков?
Аноним 18/10/17 Срд 13:24:29  450778
.jpg (448Кб, 1192x1685)
Как же пичот у неосиляторов
Аноним 18/10/17 Срд 13:46:16  450799
t3LGkdM.jpeg (24Кб, 400x400)
>>450778
Аноним 18/10/17 Срд 15:04:57  450837
>>450778
>говноед бегает по треду и с гордостью рассказывает что знает все нотки вкуса говна.
Аноним 18/10/17 Срд 15:18:48  450852
14690066183100.jpg (86Кб, 500x700)
>говноед бегает по треду
>>450799
>>450837

Аноним 18/10/17 Срд 15:19:23  450853
>>450799
>>450837
>>450852
Где модер, когда он так нужен?
Аноним 18/10/17 Срд 15:20:28  450854
>>450853
Ты зачем насрал? Жду аргументированной позиции против бленда.
Аноним 18/10/17 Срд 15:21:51  450856
>>450854
Это был не я. Я троллю разницей в байтах между приватами и пабликами.
Аноним 18/10/17 Срд 15:22:29  450857
>>450856
Вся суть юнити треда
Аноним 18/10/17 Срд 15:23:02  450858
>>450854
Может тебе нитки зашить сраку нужны а не аргументы?
Аноним 18/10/17 Срд 15:47:47  450864
>>450675
А чем опен-сурс так хорош? Тем что комьюнити начинает допилить движок? У Юнити ведь есть ассет стор - вполне достойный конкурент.
Аноним 18/10/17 Срд 15:48:22  450865
>>450745
А как тогда Юнити распределяется по процессорам? У него вообще есть многопоточность?
Аноним 18/10/17 Срд 16:00:36  450877
>>450865
Процессорная многопоточность и потоки процессов это 2 разные плоскости. Вся твоя логика из монобехавиор всегда вызывается в одном и том же игровом потоке, но это не мешает игровому циклу работать с графикой еще в двух, с сетью в третьем, а со звуком в четвертом.
Аноним 18/10/17 Срд 16:03:13  450879
>>450865
Можно пилить треды средствами C#, но в них нельзя использовать апи юнити. Если нужно провернуть асинхронную операцию не блокируя основной поток то можешь заюзать бесплатный вссет Thread Ninja со специальными корутинами, мне помог.
Аноним 18/10/17 Срд 17:57:27  450923
Юнитаны, подкиньте годный видосик по свету. Чтоб там про запекания, лайтмаппинг, отражения, light probes и всё такое.
А то попадается только какое-то говно васянское.
Аноним 18/10/17 Срд 19:50:46  450932
>>450923
в ютуб вводишь "unity lightmapping", "unity light probes" и т.д. и смотришь.
Аноним 18/10/17 Срд 21:10:13  450942
>>450662
Все хуйня. Херач public AnimationCurve
задавай нужную тебе кривую
далее лерпишь от нуля до единицы нужную тебе штуку. далее
AnimationCurve.Evaluate через нужное тебе значение.
Побалуйся
Аноним 18/10/17 Срд 22:35:58  450951
>>450864
>У Юнити ведь есть ассет стор - вполне достойный конкурент.
Это не конкурент по нескольким причинам:
1. ассеты пилит один автор
2. они платные
3. наличие ассет стора с платными ассетами не дает разработчикам юнити запилить эти функции в движок бесплатно, из-за чего они вынуждены заниматься какой-то иррелевантной хуитой вроде изобретения своих тредов в C#
Аноним 18/10/17 Срд 22:38:24  450952
>>450771
>но там какая то скриптопараша вместо нормальной статики
Ну они вроде переросли эти кирилльские амбиции и добавили C# официально. а там и нормальный питон добавили через плагин.
Я думаю эти скрипты были основной причиной непопулярности движка. Надеюсь этот gdscript скоро станет deprecated.
Аноним 18/10/17 Срд 22:41:45  450953
250px-133978071[...].jpg (13Кб, 250x212)
>>450951
> ассеты пилит один автор
Аноним 18/10/17 Срд 23:19:16  450957
>>450865
>А как тогда Юнити распределяется по процессорам?
Самым хуевым способом. Тупо создает отдельные потоки для рендера, физона и т.д. Это усложняет архитектуру, все равно тормозит т.к. нужно все синхронизировать, хуево и бесконтрольно утилизирует многопроцессорность, т.к. нагрузка в разных потоках очевидно разная.

Параллельность должна быть на уровне данных. То есть, например, игровая система должна обновлять все компоненты в нескольких потоках (что-то вроде использования Parallel.For())
Аноним 18/10/17 Срд 23:39:37  450961
>>450957
Чисто теоретический вопрос для интереса.
А как вообще программы пилят на несколько потоков? Ну, вот, допустим, старт, 1 этап, 2 этап. Один поток добирается по 1 этапа и ждёт остальные потоки, и только затем 2 этап начинает?
Аноним 18/10/17 Срд 23:43:27  450962
>>450961
вовсе необязательно
поток скрипта вот выполняется с частотой с какой может, а если поток физона подкатил новые данные (в юнети физон по фиксед апдейту) вставляет его данные в своё. ну это грубо. на самом деле там сложнее и на самом деле я не знаю как именно в деталях
Аноним 19/10/17 Чтв 00:01:09  450965
>>450961
https://www.gamasutra.com/view/feature/130247/multithreaded_game_engine_.php


Я думаю что это сделано так: в каждой системе есть свое внутреннее состояние, например, в рендере есть какой-то рендер лист. Система тупо в цикле рисует этот рендер лист. Другая система, если ей нужно обновить рендер, просто блокирует поток и обновляет этот лист.
Думаю как-то так.
Аноним 19/10/17 Чтв 11:01:35  451042
>>450951
Ничего не понял.
Почему юнька тогда популярная?
Аноним 19/10/17 Чтв 11:10:45  451045
>>451042
Потому что это лучший движок на данный момент
Аноним 19/10/17 Чтв 14:01:19  451083
>>451042
Грамотный пиар, широкие возможности, низкий порог вхождения, адекватный скриптовый язык. Кому вообще уперлась твоя опенсурсность?
Аноним 19/10/17 Чтв 14:35:16  451091
0.jpg (91Кб, 1012x468)
Подскажите, как это написать человеческим языком чтобы работало? Куча раз переписывал.
В чем идея: 2D игра, вид сверху. Есть объекты, с коллизией, типо дивана или стола, сквозь которые меня должно быть видно, поэтому пытаюсь всё делать с тэгом, но скрипт в каких-то ситуациях просто перестаёт работать.
Аноним 19/10/17 Чтв 15:12:51  451105
>>451091
Имена переменных на русском, проблема в этом.
>Sostoyan.Агр
Или все бы тогда на русском писал, я не знаю.
Аноним 19/10/17 Чтв 15:15:29  451107
>>451091
Называй переменные нормально, блджад. От одних только ugol и ugl голова болеть начинает
Аноним 19/10/17 Чтв 15:30:20  451113
Работает ли ICanvasRaycastFilter в 3D объектах на сцене, или только с интерфейсом?
Аноним 19/10/17 Чтв 15:49:38  451119
>>451107
>>451105
Мне до этого писали, что если я чисто для себя делаю, то вообще нет разницы, как и что называть, не?
Аноним 19/10/17 Чтв 15:50:45  451121
>>451119
И ты сам же и запутаешься в таких названиях.
Аноним 19/10/17 Чтв 16:03:17  451125
0.jpg (12Кб, 416x90)
>>451121
Ну кстати может быть. Оке, учту. Кстати, я посмотрел. Я оказывается всё пофиксил уже.
У меня еще одна вещь короче. В общем, в чем суть. Если игрок скрылся из поля зрения врага, то моб какое-то время ищет его. Я это реализовал с помощью пика. Но, с такой реализацией появляется баг:
Например, преследование длится 6 секунд, моб заагрен на игрока.
Игрок скрывается за стеной и сразу же возвращается в поле зрения моба.
Через 5 секунд игрок возвращается за стену .
Таким образом получается, что у врага остаётся лишь 1 секунда преследования.
Собственно, подскажите, как можно реализовать это по-другому, чтобы не было этого бага?
Аноним 19/10/17 Чтв 17:17:34  451141
>>449619 (OP)
При компиляции билда на андроид возникают такие ошибки:


Shader error in 'Hidden/Post FX/Screen Space Reflection': '' : compilation terminated at line 141 (on vulkan)


Shader error in 'Hidden/Post FX/Screen Space Reflection': 'z' : vector field selection out of range at line 141 (on vulkan)



CommandInvokationFailure: Failed to re-package resources.
C:\AndroidSDK\build-tools\25.0.2\aapt.exe package --auto-add-overlay -v -f -m -J "gen" -M "AndroidManifest.xml" -S "res" -I "C:/AndroidSDK\platforms\android-25\android.jar" -F bin/resources.ap_




Притом это всё только при компиляции на андроид, если создавать билд для PC-всё успешно компилируется и запускается. В чём причина и как можно исправить?
Аноним 19/10/17 Чтв 17:31:36  451144
https://www.youtube.com/watch?v=t4Ze3kIJunI

поделюсь вином для нубасов типа меня и реквестирую гайдов по рефакторингу в visual studio, или по best practices, "правильному" написанию кода в юнити.

Если кто знает вины по паттернам в юнити, кроме game programming patterns, то скиньте тоже.
Аноним 19/10/17 Чтв 18:00:50  451150
>>451141
Возможно, что-то связанное с визуальной механикой
Аноним 19/10/17 Чтв 18:33:28  451159
1016286803.jpg (149Кб, 845x1200)
5647567567.jpg (922Кб, 1400x2600)
>>451144
Вот эта книга хороша. Она в целом подскажет, как лучше оформлять код. Необязательно читать всю. Можешь прочитать только интересующие тебя главы.
Аноним 19/10/17 Чтв 19:14:29  451169
>>451141
Cейчас провёл исследование- на iOS успешно билдится тоже. Думаю, эти ошибки исходят от структуры Андротда или Андроид Студио, может быть, у кого-нибудь были похожие случаи и известно решение? Очень нужно сбилдить именно под андроид до утра.
Аноним 19/10/17 Чтв 20:14:10  451206
pointerData = new PointerEventData(EventSystem.current);
pointerData.position = Input.mousePosition;

results.Clear();
EventSystem.current.RaycastAll(pointerData, results);

if (results.Count > 0) //check UI
{
hitObject = results[0].gameObject;
}

Рейкаст видит только УИ, ок. Но почему он видит эти УИ-кнопки там, где их нет? Не невидимые кнопки, а именно что видит кнопку, находящуюся в одном месте экрана, и в другом месте? Этот hitObject в обоих местах имеет имя кнопки, при нажатии работает как та кнопка, и вообще является кнопкой. Я не понимаю, как это вообще
Аноним 19/10/17 Чтв 20:22:42  451212
>>451206
Глянул на саму кнопку - показывает жёлтое предупреждение в Image, что у изображения нет границы. Из-за этого может быть?
Аноним 19/10/17 Чтв 20:57:24  451223
В Юньке для колес используется wheel collider. Как я понял это стандартный компонент PhysX, значит ли это что в Unreal Engine стандартные колеса (если они там вообще есть) ведут себя так же? И я нашел много видео на ютубе где народ хвастается своей физикой авто, при этом подавляющее большинство использует wheel collider. В таком случае в чем уникальность их физики? Ведь если я правильно понял в wheel collider есть все необходимое что отвечает непосредственно за саму физику колес.. А у всего остального особо нет места творчеству (например ускорение, оно и в африке ускорение) В физике авто я вообще не разбираюсь, но если кто знает как это правильно делается, поделитесь. Если макакить свои колеса, я правильно понимаю, что ничего не понимающий в физике человек это точно не сможет?
Аноним 19/10/17 Чтв 21:12:18  451227
>>451206
>>451212
Плять, оно само починилось.
Аноним 19/10/17 Чтв 21:13:06  451229
>>451227
А, не, всё нормально, снова сломалось.
Аноним 19/10/17 Чтв 21:15:27  451230
>>451227
>>451229
Это из-за поворота камеры, лол. Что за нахуй-то
Аноним 19/10/17 Чтв 21:57:14  451240
>>451125
Тормози корутину, когда враг видит игрока.
Аноним 19/10/17 Чтв 23:39:28  451268
Хлопцы, вот смотрите. Есть у меня класс Yoba. От него наследуется класс BolshoiYoba. Могу ли я через проверку GetComponent (или ещё какую-нибудь) определить от какого класса наследуется мой BolshoiYoba?
Или не выёбываться и ебашить по тегам?
Аноним 19/10/17 Чтв 23:41:50  451269
>>451268
какова практическая задача?
Аноним 19/10/17 Чтв 23:45:23  451270
>>451141
Ещё не получилось справиться. Буду весьма благодарен за помощь.
Аноним 19/10/17 Чтв 23:46:18  451271
>>451269
Есть болванчик. Болванчик может стрелять в объекты. Пока он стреляет в объекты, на которых висит скрипт "Mob", определяет его наличие через GetComponent. От этого самого "Mob" я хочу унаследовать несколько разновидностей мобов и вот думаю как организовать проверку моб ли это или хрен собачий.
Писать проверку на каждый вариант унаследованного скрипта - так себе занятие.
Вот и думаю, можно ли отследить родительский класс или не ебать мозги и хуярить по тегам.
Аноним 19/10/17 Чтв 23:56:58  451276
>>451271
не еби мозги и хуярь по тегам.
на самом деле, я настоятельно не советую звать getcomponent в случаях когда его вызова можно избежать. кроме того что это одна из самых тяжелых функций в юнети хотя я проверял версии эдак в третьей, так еще и теги ведь они прям для этих случаев и нужны.
Аноним 19/10/17 Чтв 23:57:49  451277
>>451270
ти ахуел прост
поцэффекты он решил завезти на мабилы, ага ага.
Аноним 19/10/17 Чтв 23:59:44  451278
>>451276
> не еби мозги и хуярь по тегам
Да так и думал, спасибо.
Аноним 20/10/17 Птн 00:03:04  451279
>>451277
На айос же получилось(скомпилировал без ошибок, но не запускал, т.к. нету яблока). Т.е. для андроида нужно отказаться от них?
Аноним 20/10/17 Птн 00:05:03  451280
>>451279
> (on vulkan)
вулькан это вам не директикс, это вам не опенгл. он пока молод и дерзок и нихуя не умеет. вообще удивительно что под айос скомпилировалось
Аноним 20/10/17 Птн 00:08:06  451282
>>451280
> он пока молод и дерзок и нихуя не умеет
Ну его вроде уже в игры пихают которых нет
Аноним 20/10/17 Птн 00:12:58  451286
>>451282
да, но ему нужно ОСОБОЕ ОБРАЩЕНИЕ
Аноним 20/10/17 Птн 00:16:08  451287
>>451286
То есть не по старинке ебать, а нежно целовать и облизывать?
Вон там даже народ говорит что с вулканом 9000 фпс, а не то что этот ваш самый дирух или опенрыло.
Аноним 20/10/17 Птн 01:43:57  451302
>>451270
Ок, отключил постэффекты. Теперь осталась эта ошибка :
CommandInvokationFailure: Failed to re-package resources.
C:\AndroidSDK\build-tools\25.0.2\aapt.exe package --auto-add-overlay -v -f -m -J "gen" -M "AndroidManifest.xml" -S "res" -I "C:/AndroidSDK\platforms\android-25\android.jar" -F bin/resources.ap_

stderr[
AndroidManifest.xml:4: error: Error: No resource found that matches the given name (at 'theme' with value '@style/UnityThemeSelector').

AndroidManifest.xml:4: error: Error: No resource found that matches the given name (at 'icon' with value '@drawable/app_icon').

AndroidManifest.xml:4: error: Error: No resource found that matches the given name (at 'label' with value '@string/app_name').

AndroidManifest.xml:4: error: Error: No resource found that matches the given name (at 'banner' with value '@drawable/app_banner').

AndroidManifest.xml:5: error: Error: No resource found that matches the given name (at 'label' with value '@string/app_name').

]
stdout[
Configurations:
(default)

Files:
AndroidManifest.xml
Src: () AndroidManifest.xml

Resource Dirs:
Including resources from package: C:\AndroidSDK\platforms\android-25\android.jar
applyFileOverlay for drawable
applyFileOverlay for layout
applyFileOverlay for anim
applyFileOverlay for animator
applyFileOverlay for interpolator
applyFileOverlay for transition
applyFileOverlay for xml
applyFileOverlay for raw
applyFileOverlay for color
applyFileOverlay for menu
applyFileOverlay for mipmap
]
exit code: 1
UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.PostProcessor.Tasks.TasksCommon.Exec (System.String command, System.String args, System.String workingdir, System.String errorMsg, Int32 retriesOnFailure)
UnityEditor.HostView:OnGUI()


Аноним 20/10/17 Птн 01:47:27  451303
>>451302
ДВАЧ СПАСАЙ НУ ЖИ
в настройках заполни инфу о компании и прочее
Аноним 20/10/17 Птн 01:52:40  451305
>>451303
https://stackoverflow.com/questions/26947246/error-no-resource-found-that-matches-the-given-name-at-theme-with-value-st
Аноним 20/10/17 Птн 02:48:01  451310
>>450768
>>450669
>>450673
>>450942
Спасибо всем. Благодаря вам я нашел божественное вмешательство в виде https://gist.github.com/cjddmut/d789b9eb78216998e95c
Аноним 20/10/17 Птн 10:45:17  451366
>>451271
var yoba = GetComponent<YOBA>();
if (yoba is BolsheYOBA)
{ }
else if (yoba is MaliYOBA)
{ }
Аноним 20/10/17 Птн 11:55:28  451371
hui.jpg (155Кб, 872x820)
>>451271
Во-первых, используй слои (layer), а не теги. Во-вторых, используй интерфейс.
Аноним 20/10/17 Птн 12:27:51  451379
>>451271
А зачем тебе это наследование ебаное?
До диез дало тебе интерфейсы.
Уверен, твоя задача отлично ими решается.
Аноним 20/10/17 Птн 12:39:03  451380
>>451271
У тебя все неправильно. Пуля про столкновении просто отправляет сообщение столкнувшемуся объекту. На этот объект ты можешь уже навесить какие угодно компоненты обрабатывающие это сообщение, безо всяких наследований.
Например, компонент пускающий искры, или компонент отнимающих ХП
Аноним 20/10/17 Птн 13:43:50  451403
>>451310
Есть стандартные юнитевские методы, которые много проще для понимания
Аноним 20/10/17 Птн 13:44:34  451404
>>451388
https://docs.unity3d.com/ScriptReference/GameObject.SendMessage.html
Аноним 20/10/17 Птн 13:46:01  451405
>>451404
Самый ужасный способ.
Аноним 20/10/17 Птн 13:48:26  451406
>>451271
Тебе не нужно определять, какого типа этот моб.
Ебашишь Mob как абстрактный класс, ебашишь наследующие от него разновидности, скажем, MaliMob и BolshoyMob. Создать класс Mob нельзя, но ты сможешь создавать MaliMob и BolshoyMob, которые по умолчанию будут Mob'ами.
В Mob ебашишь абстрактные методы "без тела", в наследниках ебашишь те же самые методы с override'ами. Ты будешь искать класс Mob и запускать через Mob абстрактные методы Mob'а, которые будут "автоматически" заменяться овверадиться на методы MaliMob и BolshoyMob
Аноним 20/10/17 Птн 14:01:46  451408
Как фиксить то, что освещение в игре, когда тестишь в самом Unity ярче, чем на мобильном устройстве? Или это у одного меня так?
Аноним 20/10/17 Птн 14:12:40  451409
>>451405
Ну раз ты так сказал
Аноним 20/10/17 Птн 14:44:26  451416
>>451406
Бро, чувак спрашивает элементарные вещи, а ты его так с лету абстрактными классами грузишь. Вообще в коде для юньки при наличии геймобджектов лучше переходить на ECS и забить на классический ООП, оставив от последнего только наслелования, избегая использования олдскульных паттернов
Аноним 20/10/17 Птн 14:58:12  451418
>>451416
>абстрактные классы
>грузят
Сколько у тебя IQ?
На кой чёрт кодить на сишарпе, если самые крутые фичи - абстракции, интерфейсы и делегаты - не использовать? А если ещё и типы как-то присобачить, уууух!
Там нет вообще ничего сложного. Абстрактный класс САМ ПО СЕБЕ не существует, но существуют его наследники, в которых он и выражается. Абстрактный метод не содержит в себе никакой логики, он просто является "шаблоном" и указывает, сколько принимает и выдаёт метод, который будет использоваться ВМЕСТО шаблона. Делаешь абстрактный класс Юнит, делаешь наследника Бандит, делаешь наследника Страж. В Юните задаёшь то, что есть и у того, и у другого, скажем, здоровье и урон и абстрактный метод Отака(), а в Бандите и Страже задаёшь особенности того, как будет происходить Отака(). Если коду попадётся Юнит, он не будет разбирать, Бандит он или Страж, он сразу запустит Отака(), и шаблон автоматом укажет, бандитскую или стражниковскую Отака() использовать.
Чем это великолепие заменить вне ООП? Ёблей с энумераторами и свитчами? Так это ж ещё сложнее структурно, чем абстрактные классы и методы. Нахуя новичку советовать то, что сложнее?
Аноним 20/10/17 Птн 15:23:35  451427
>>451418
ECS подразумевает создание персонифицированных ГО, где инстанцированный, как ты говоришь, Юнит, который может иметь множество экземпляров - может получить всю нужную инфу о любых переменных, допустим, из базы, через контроллер. Итого мы имеем единичный ентити, (или ГО), который не знает ничего о себе, зпаолняемый нужными компонентами, которые заполняются как раз переменными из контроллера-синглтона. Это удобно и для прототипирования, потому как каждый компонент можно настраивать ручками, и для окончательного формирования базы с инфой о переменных и компонентах.

Вообще это не я придумал, да и в случае с командой программистов и прочих более одного человека, разработка становится более прозрачной и доступной для быстрого понимания кода и происходящего.
ECS+MVC = НЯ!
Аноним 20/10/17 Птн 17:42:32  451450
>>451271
Не слушай эту >>451371 макаку. Самым правильным решением будет сделать абстрактную прокси фабрику десериализирующую энтити бины в абстрактный синглтон фактори менеджер.
Аноним 20/10/17 Птн 17:59:12  451454
>>451418
> Чем это великолепие заменить вне ООП?
Кирилы итт проснулись и вспомнили про ооп в гейдеве, когда весь мир уже благополучно забыл его как монструозное и неповоротливое говно и перешел на ecs подход. которого в юнити нет, потому что у разрабов СВОЕ ВИДЕНЬЕ
Аноним 20/10/17 Птн 18:20:35  451456
>>451454
Почему же свое виденье? Тут тебе и objectOfType и UnityEvents и включение-выключение компонентов прямо на ГО. Можно ECS обмазываться при грамотном подходе
Аноним 20/10/17 Птн 19:28:20  451467
1365770511812.jpg (17Кб, 477x354)
>>451450
Что плохого в простеньком интерфейсе? Это лучше, чем наследование, чем проверка кучи компонентов и тому подобное.
Аноним 20/10/17 Птн 19:30:12  451468
Обколются своим ООП, а потом ябут друг друга в жопы.
Аноним 20/10/17 Птн 19:45:01  451471
Как можно исправить эту ошибку (возникает при компляции билда на андроид)
CommandInvokationFailure: Failed to re-package resources.
C:\AndroidSDK\build-tools\25.0.2\aapt.exe package --auto-add-overlay -v -f -m -J "gen" -M "AndroidManifest.xml" -S "res" -I "C:/AndroidSDK\platforms\android-25\android.jar" -F bin/resources.ap_

stderr[
AndroidManifest.xml:4: error: Error: No resource found that matches the given name (at 'theme' with value '@style/UnityThemeSelector').

AndroidManifest.xml:4: error: Error: No resource found that matches the given name (at 'icon' with value '@drawable/app_icon').

AndroidManifest.xml:4: error: Error: No resource found that matches the given name (at 'label' with value '@string/app_name').

AndroidManifest.xml:4: error: Error: No resource found that matches the given name (at 'banner' with value '@drawable/app_banner').

AndroidManifest.xml:5: error: Error: No resource found that matches the given name (at 'label' with value '@string/app_name').

]
stdout[
Configurations:
(default)

Files:
AndroidManifest.xml
Src: () AndroidManifest.xml

Resource Dirs:
Including resources from package: C:\AndroidSDK\platforms\android-25\android.jar
applyFileOverlay for drawable
applyFileOverlay for layout
applyFileOverlay for anim
applyFileOverlay for animator
applyFileOverlay for interpolator
applyFileOverlay for transition
applyFileOverlay for xml
applyFileOverlay for raw
applyFileOverlay for color
applyFileOverlay for menu
applyFileOverlay for mipmap
]
exit code: 1
UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.PostProcessor.Tasks.TasksCommon.Exec (System.String command, System.String args, System.String workingdir, System.String errorMsg, Int32 retriesOnFailure)

Аноним 20/10/17 Птн 19:47:48  451472
15001968073800.jpg (166Кб, 812x727)
>>451468
Они же просто пограмисты, имитации игроделов. Сможет ли погромист сделать игру, создать шедевр?
Аноним 20/10/17 Птн 19:48:18  451474
>>451471
я тебе вчера отвечал.
Аноним 20/10/17 Птн 19:54:55  451476
programmersfurr[...].jpg (115Кб, 800x541)
>>451472
Аноним 20/10/17 Птн 20:01:20  451477
>>451474
Т.е. заполнить данные о компании в Identification?
Вроде бы не совсем получилось-там есть какие-то определённые правила заполнения?
Аноним 20/10/17 Птн 20:13:37  451479
>>451477
сука блять тебе погуглить сложно? там же всё элементарно, но нет, не хочу, ему блять даже сказали в какую сторону смотреть, нет не хочу, хочу чтобы мы за него собрали приложение
Аноним 20/10/17 Птн 20:39:46  451483
услышал такую вещь, что для удобства многие объекты лучше размещать на сцене, всунув в парент к пустому ГеймОбжекту. Типа так проще с пивотами работать, менять всякое если что и прочее.
Только я вот не понял, компоненты логики тогда на пустой ГО вешать, или на сам объект?

Аноним 20/10/17 Птн 20:41:41  451484
>>451483
Парент можно воспринимать как группу или "папку" с объектами. Логика у тебя к самому объекту относится или к группе объектов?
Аноним 20/10/17 Птн 20:50:55  451485
>>451484
нет, не для того, чтобы группировать. Тут то все понятно.

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

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

Инбифо. Твой чел, ты и разбирайся, хз что он там говорил и к чему вообще.
Аноним 20/10/17 Птн 20:52:00  451486
>>451485
мало ли кто тут так делает постоянно, может подскажете.
Аноним 20/10/17 Птн 20:55:15  451490
image.png (220Кб, 1920x1037)
>>448595
Ебаная хуйня не хочет видеть нажатие, што не так анон.
Аноним 20/10/17 Птн 20:57:15  451492
>>451490
eventSystem добавь, может поможет
Аноним 20/10/17 Птн 21:17:36  451498
>>451492
Ну а хули она не может работать как у всех? eventSystem не помог.
Аноним 20/10/17 Птн 21:39:52  451499
Какого хрена visual studio иногда не цепляет неймспейсы для вновь созданных классов? Не узнает нифига из юнитивских штук. Закрыть-открыть помогает только, да и то не всегда.
Аноним 20/10/17 Птн 21:41:47  451500
>>451499
> 2018
> visual studio
Кекус
Аноним 20/10/17 Птн 21:45:08  451501
>>451500
а что у вас там в 2018?
Аноним 20/10/17 Птн 21:48:57  451502
>>451501
Visual Studio Code
Аноним 20/10/17 Птн 22:00:57  451505
>>451501
Rider
Аноним 20/10/17 Птн 22:17:30  451509
>>451501
Монодевелоп
Аноним 20/10/17 Птн 22:37:52  451510
>>451502
>>451505
>>451509
а что лучше то?
Аноним 20/10/17 Птн 22:49:13  451512
>>451490
Да блджать, объясните чому это говно не пашет. Колайдер есть, перед объектом ничего нет. И всеравно нихуя.
Аноним 20/10/17 Птн 22:53:01  451513
>>451510
Rider
Аноним 20/10/17 Птн 22:53:53  451514
>>451509
Монодевелоп
Аноним 20/10/17 Птн 22:57:00  451516
>>451510
Блокнот
Аноним 20/10/17 Птн 23:30:27  451519
>>451512
EventSystem есть? В канвас рейкастер запихни на всякий случай.
Аноним 21/10/17 Суб 11:16:21  451598
>>451490
OnMouseDown с большой буквы пиши, ёбаный ты по голове.
Аноним 21/10/17 Суб 11:52:25  451602
Как фиксить то, что освещение в игре, когда тестишь в самом Unity ярче, чем на мобильном устройстве? Или это у одного меня так?
Аноним 21/10/17 Суб 11:53:27  451603
>>451602
Кто тебя знает, может у тебя моник выкручен на полную и хуярит аки солнце.
Аноним 21/10/17 Суб 15:27:24  451646
>>451598
Лол, а ты глазастый.
Аноним 21/10/17 Суб 15:48:01  451650
>>451144
Я уже заебался кидать одну и ту же ссылку, но вам нужно изучить принципы SOLID. Даже где-то в дебрях документации Unity можно найти ссылку на этот сайт: https://refactoring.guru/
Аноним 21/10/17 Суб 16:21:48  451657
>>451240
А как это правильно сделать?
Аноним 21/10/17 Суб 16:22:20  451658
Есть ли в Unity возможность использовать apng?
Аноним 21/10/17 Суб 17:36:03  451669
>>451650
Еба-а-ать! Да там же руссик есть! Божественно...
Аноним 21/10/17 Суб 17:56:04  451676
>>451669
Ты, только, не ударяйся в те техники как ебанутый шизик, пихаяя их всюду.
Доставай их только, когда появляется проблема.
Аноним 21/10/17 Суб 18:14:54  451678
>>451676
Нет проблемы - значит, оптимизация не нужна.
Аноним 21/10/17 Суб 18:44:34  451685
>>451650
http://gameprogrammingpatterns.com/contents.html
Аноним 21/10/17 Суб 18:58:25  451688
>>451678
MVP блеать! Омежки-вылизаторы не нужны
Аноним 21/10/17 Суб 20:24:02  451710
>>451685
>>451650
Плять, почитал, теперь захотелось переделать связку юниты-клетки в связку массив рендереров - массив координат - массив статов - массив айдишников. Сука, я ж сейчас переделывать весь код пойду из-за вас
Аноним 21/10/17 Суб 21:36:25  451718
Друзья, объясните тупому, как вставить анимацию? Пытаюсь использовать apng, ничего не работает. Юнити, кажись, вообще думает, что это обычный png. Покадраво тоже ничего не понял.
Аноним 21/10/17 Суб 22:07:42  451734
>>451678
Чувак, пойми другое. Все эти техники нужны для того, чтобы упростить сам процесс разработки.
Чтобы ты посреди разработки не осознавал, что написал говно уровня: поменял один модуль - сломал 24 других модуля.
Аноним 21/10/17 Суб 22:42:44  451743
>>451710
Вот и переделывай.
В случае чего, откатить в svn не проблема.

>>451718
Берешь и вставляешь спрайтшит. Потом в аниматоре делаешь анимацию. APNG - ебанутый и оверинжинирнутый формат. Юнити его не поддерживает. Угомонись.
Аноним 21/10/17 Суб 22:44:20  451745
>>451743
>ебанутый и оверинжинирнутый формат. Юнити его не поддерживает
потому что унити говно само по своей природе? И авторы юнити не смогли написать работающий импортёр?
Аноним 21/10/17 Суб 22:55:17  451747
>>451743
>Вот и переделывай.
Как я кодить начал, я только и делаю, что переделываю всё. ООП, говорят, делай, наследувай, фор вместо форич используй, синглтоны бля юзай. А тут читаешь - де, кэш он вон как устроен, и если ООП юзать, то это в 50 раз медленнее согласно тому, что по ссылке, чем ебошить методами какого-нибудь паскаля школьного. Это как-то дико, как мне кажется. Я-то думал, если ООП (САМО ООП), то все эти проблемы как бы системно решены, всё по-умному устроено, АН НЕТ, НИХУЯ, ВСЁ ТУПО, А ТЫ ГУБУ РАСКАТАЛ.
Мне не пригорает, возиться в коде-то весело и приятно и самое лучшее времяпреповождение, но серьёзно, хуле всё так плохо, нехитро устроено?
Аноним 21/10/17 Суб 22:55:22  451748
>>451745
Ты чмоха необразованная.
Пиздуй напиши свой имортер, юнити тебе руки не ограничивает ничем. Потом выложишь в AssetStore за 5 баксов.
Его никто не купит, потому что никто не использует APNG для анимации в играх, т.к. формат конченый и жрёт дохуя времени на цпу которого у тебя нет, лох
Аноним 21/10/17 Суб 22:59:34  451750
>>451747
Понимаешь, ООП в реалиях геймдева сегодня -- это нихуя не медленно. В большинстве случаев у тебя узким местом производительности будет рендеринг.

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

Беда ООП в том, что люди нихуя не понимают его сути и ругают его за зря.

А вообще, в Unity использует КОП (компонентно-ориентированное программирование)
Аноним 21/10/17 Суб 23:01:21  451751
Пацаны, помогите

Хочу построить (build) игру, однако у меня вылезает одна и та же ошибка - 1 пикча.

Посмотрел в инете - понял что у меня не настроен keystore. Настроил, не работает

Парень написал решение проблемы на 3 пикче, но не то что бы я не понял что он хотел сказать, просто я не понял что это за SVN такой, и что с ним надо делать. Кстати у того чувака все писали мол он им очень сильно помог

Прошу объяснить на пальцах что и как мне делать, если конечно это не трудно.
Аноним 21/10/17 Суб 23:06:17  451753
>>451751
Ты скриншот консоли кинь.
Почитаем за тебя, если ты не умеешь.
Аноним 21/10/17 Суб 23:10:42  451754
>>451753
Аноним 21/10/17 Суб 23:12:28  451756
>>451747
Все эти проблемы блекнут по сравнении с тем, что такими темпами ты никогда не сделаешь игру.
Аноним 21/10/17 Суб 23:13:25  451757
>>451754
http://answers.unity3d.com/questions/1411991/how-do-i-solve-commandinvokefailure.html
Аноним 21/10/17 Суб 23:15:26  451759
>>451757
что ж, я попробую!
Аноним 21/10/17 Суб 23:16:37  451760
>>451756
Там нехуй делать будет, когда эти проблемы решатся. Самые-самые базовые механики готовы, теперь только оболочками их обмазывать, а потом модельки влепить нормальные и всё готово будет. Можно поставить вопрос так - чем сильнее и лучше продумаешь свой инструментарий, тем быстрее потом сможешь ебошить сюжет и карты.
Аноним 21/10/17 Суб 23:19:05  451761
>>451760
Как бы ты не перегорел вылизывая свою архитектуру и инструментарий которые все равно никто не увидит
Аноним 21/10/17 Суб 23:24:41  451762
>>451761
Нечему перегорать, я и так уже полый.
Аноним 21/10/17 Суб 23:39:52  451763
>>451757
Неа, говорит что нельзя старую версию использовать, потому проблема ещё в силе
Аноним 21/10/17 Суб 23:40:44  451764
>>451763
быстрофикс
Аноним 21/10/17 Суб 23:49:22  451766
>>451764
Так, у меня вроде что то получилось, я кое где поменял кое что. Проблема потеряла силу. Эх, вот бы они всегда так решались благосклонным рандомом
Аноним 22/10/17 Вск 00:09:11  451770
Тупой вопрос, каким образом можно сделать генирацию бесконечной земли, учитывая, что она будет идти по какой-то функции, без швов(для юзера)? Пример такого: Alto's Adventure
Аноним 22/10/17 Вск 07:27:26  451798
>>451710
Кстати, геймпаттерны есть на русском
http://live13.livejournal.com/462582.html
Аноним 22/10/17 Вск 07:31:11  451799
>>451710
>захотелось переделать связку юниты-клетки в связку массив рендереров - массив координат - массив статов - массив айдишников
Ты что, ебанутый? Это анти-паттерн
Аноним 22/10/17 Вск 08:37:27  451805
>>451710
После такого поста даже запускать не буду, вдруг там окажется такая годнота, что я осознаю что до этого я занимался неправильной хуйнёй, а белые люди всё делают совсем не так.
Аноним 22/10/17 Вск 09:26:46  451815
>>451805
Если у тебя есть хоть одно наследование, или в твоем коде нет ни одной функции SendMessage(), ты и так делаешь все не так.
Аноним 22/10/17 Вск 09:58:40  451821
>>451815
Наследования есть, а сендмесседж нету, это да.
Аноним 22/10/17 Вск 10:17:04  451830
>>451821
Переделывай пока не поздно
Аноним 22/10/17 Вск 10:17:35  451831
>>451815
Или если использует богомерзкий SerializeField вместо божественного public, потому что он больше байт занимает.
Аноним 22/10/17 Вск 10:51:17  451837
Производительность на смартфонах.
Делаю сетевой шутер под андроид. И вот задумался. Есть объект игрока, который я могу разбить где-то на 7 разных компонентов. Это удобно для разработки и код в целом понятнее будет, НО, это породит много вызовов методов, породит больше вызовов GetComponent и тому подобное. Компоненты вида PlayerHealth (синхронизирует здоровье, принимает демадж), PlayerMovement (синхронизирует позицию, обрабатывает передвижение), PlayerVisuals (реагирует на события, создаёт эффекты, отображает модели), PlayerShooting, PlayerInput, PlayerAbilities и т.п.

Не приведёт ли это к проблемам в дальнейшем? Или стоит всё по-старинке захерачить в 2-3 компонентах?
Аноним 22/10/17 Вск 11:22:33  451841
>>451798
Похуй мне на шаблоны, они однохуйственны. А вот разница в скорости в 50 раз - это уже что-то, о чём стоит побеспокоиться.
Аноним 22/10/17 Вск 11:25:47  451842
>>451841
Хуярь на асме, батя грит скорость в небеса улетела к Аллаху.
Аноним 22/10/17 Вск 11:34:11  451845
>>451837
Во-первых, результат GetComponent всегда можно кэшировать.
Во-вторых, когда ты разбиваешь код на компоненты, то ты делаешь свой код гибче и реюзабельнее. Юнити построена на таком подходе, т.к. если бы все компоненты физики/рендеринга и прочего были захуячены в один класс, то ты бы заебался настраивать каждый компонент так как тебе нужно. Ну и было бы дохуища кода, который ты бы не смог переиспользовать и дрочился бы ты с boiler-plate кодом как ебанутый.

Из плюсов могу привести пример. Например, у меня есть компоненты Projectile и Damageable.
Projectile наносит урон компонентам Damageable, Damageable компоненты следят за тем, что если наносимый дамаг выжрал всё здоровье, то пора сдохнуть тому или иному объекту.
Таким образом я смог переиспользовать один и тот же код для юнитов и для статичных объектов на сцене, которые могут быть сломаны, т.к. логика у них по сути одна и та же.

if (damageValue >= currentHealth) InvokeDeathEvent();

Как-то так.
Аноним 22/10/17 Вск 11:35:34  451846
>>451837
>GetComponent
ГейОбжект знает обо всех компонентах и хранит ссылки на них. Поэтому ГетКомпонент быстро отрабатывает. Но если будешь вызывать его по 10к раз за один тик, тогда могут быть проблемы.
Аноним 22/10/17 Вск 11:38:53  451847
>>451841
Ты ебанутая пизда, ты сначала напиши код, который реально будет тормозить и убивать твой CPU, а потом уже пиши, что-то про производительность. В большинстве случаев, игры задыхаются из-за того, что у тебя слишком много говна рисуется на экране.

Повторяю ещё раз, необразованный. Шаблоны нужны для того, чтобы не переписывать один и тот же код по 100 раз, т.к. ты с "архитектурой" обосрался. Они нужны просто для упрощения процесса разработки.
Аноним 22/10/17 Вск 11:53:08  451853
>>451847
> сначала напиши код, который реально будет тормозить и убивать
Я как-то раз запустил while (true) в обычном viod, который висел в падейте и прихуел от того, что у меня даже первый кадр не прорисовывается. Потом понял что я долбоёб и перенёс это в корутину.
мимо шёл
Аноним 22/10/17 Вск 11:53:40  451854
>>451853
> в апдейте
Аноним 22/10/17 Вск 11:54:00  451855
>>451837
Ты ебанутый. Суть компонентов в повторном использовании. Зачем тебе делать дохуя компонентов, которые используются только с одним объектом?
Аноним 22/10/17 Вск 11:55:49  451857
>>451855
> Зачем тебе делать дохуя компонентов, которые используются только с одним объектом?
Архитектурно это проще, но таки, тот ананас ебанутый, 7 компонентов на одном объекте это наркомания.
Аноним 22/10/17 Вск 12:11:17  451860
>>451857
>7 компонентов на одном объекте это наркомания
Ну, можно до 5 сократить.

Player - хранит имя, жизни, обрабатывает получение урона и смерть. И любая другая хрень будет здесь же.
PlayerMovement - обрабатывает передвижение, коллизии, прыжок.
PlayerVisuals - отображает скин игрок, оружие, анимацию, эффекты стрельбы/смерти/крови.
PlayerShooting - занимается стрельбой из оружия.
PlayerInput - принимает ввод и транслирует его на другие компоненты.

Это такой минимум, который не стоит сокращать, как мне кажется. Хотя PlayerInput можно перенести в Player. PlayerMovement тоже можно. Да вообще все эти компоненты можно туда перенести, но это будет пиздец.
Аноним 22/10/17 Вск 12:14:59  451863
>>451860
> но это будет пиздец
Именно. Если у тебя скрипт и швец и жнец и на дуде игрец — там начинается такой анальный цирк, шо я бля ебал того маму рот.
Аноним 22/10/17 Вск 12:36:51  451869
>>451837
Не слушай этих чуханов, так и надо делать.
Аноним 22/10/17 Вск 12:37:26  451870
>>451845
>InvokeDeathEvent
Ты везде юзаешь ивенты, чтобы компоненты не были связаны с друг другом?
Аноним 22/10/17 Вск 12:40:39  451871
>>451860
> Player...
Зачем код разбивать на компоненты если они все используются только на одном и том же го и больше нигде?
Аноним 22/10/17 Вск 12:40:58  451872
>>451870
А для другого эвенты у нас не используются, да?
Аноним 22/10/17 Вск 12:43:17  451874
итт все ебанулися
Аноним 22/10/17 Вск 12:46:56  451875
>>451860
Хуйню пишешь. Ей богу, пора начинать брать деньги за консультации.
Character - хранит имя, жизни, обрабатывает получение урона и смерть. И любая другая хрень связанная с любыми персонажами игры (NPC, враги, игрок). обрабатывает передвижение, коллизии, прыжок.
Player - принимает ввод и транслирует его на другие компоненты. отображает скин игрок, оружие, анимацию
Для оружия - разные компоненты с логикой оружия на самом префабе оружия
Аноним 22/10/17 Вск 12:55:20  451878
>>451861
>А как сделать тогда разные виды оружия?
Разными компонентами

>Оно же у всех компонентов свою хуйню вызывает, не проще ли геткомпонент сделать?
Суть в том, что ты не знаешь во время выполнения игры, какой компонент на оружии, например. Можно делать наследование или интерфейс. Но лучше использовать SendMessage. Почему это лучше? Потому что у тебя может быть не один компонент-обработчик сообщения. Например, компонент, который спавнит отстрелянные гильзы, или проигрывает какой-то эффект
Аноним 22/10/17 Вск 12:56:50  451880
14668422652300.webm (2975Кб, 900x544, 00:00:07)
>SendMessage
>2к17
Аноним 22/10/17 Вск 13:09:16  451888
Пиздец, что за хуйню вы тут городите?
Тут хоть кто-то с кодерской вышкой есть кроме меня? Поднимите руки.
Аноним 22/10/17 Вск 13:11:38  451890
>>451888
Тролли троллят троллей.
Аноним 22/10/17 Вск 13:11:57  451891
14934746333220.webm (2327Кб, 1280x720, 00:00:19)
>>451888
>кодерская вышка
>vs
>реальный мир разработки
Найс траллинг.
Аноним 22/10/17 Вск 13:13:02  451893
>>451891
Да знаешь, уж лучше быть с кодерской вышкой, чем фрезеровщиком, посмотревшим на ютубе ролик "делоем хоррар за десеть менут на юнете"
Аноним 22/10/17 Вск 13:14:00  451894
>>451893
ЧСХ, посмотревший ролик хоррор таки сделает, а ты нет.
Аноним 22/10/17 Вск 13:14:47  451895
14665092640930.jpg (41Кб, 442x440)
>>451888
>Тут хоть кто-то с кодерской вышкой есть кроме меня?
Аноним 22/10/17 Вск 13:14:49  451897
>>451893
Но даже он может сделать игру, а не ковыряться в абстрактных фабриках.
Аноним 22/10/17 Вск 13:15:45  451898
>>451894
Ну да, подвигает ассетики по сцене за два часа и молодец.
https://www.youtube.com/watch?v=cnEr4P6gGWo&t=1s
Аноним 22/10/17 Вск 13:16:50  451899
>>451897
Сегодня я делаю фабрику, а завтра фабрика делает мне игру. Учись у мастеров.
Аноним 22/10/17 Вск 13:20:16  451900
>>451870
Не везде.
Всё зависит от ситуации. Но в большей части использую события.
Аноним 22/10/17 Вск 13:22:08  451901
>>451888
Я с кодерской вышкой. Ты покажи конкретно, где хуйню городят-то?
Лично я вижу, что ньюфаги у "бывалых" интересуются.
Аноним 22/10/17 Вск 13:22:37  451902
В этом треде есть троли?
Аноним 22/10/17 Вск 13:22:56  451903
>>451902
nyet
Аноним 22/10/17 Вск 13:23:20  451904
>>451902
Только орки. И пару эльфов.
Аноним 22/10/17 Вск 13:23:25  451905
>>451900
события с# усложняют архитектуру и логику без видимых преимуществ. Лучше использовать SendMessage
Аноним 22/10/17 Вск 13:26:25  451907
>>451905
Как можно усложнять то чего нет
Аноним 22/10/17 Вск 13:38:50  451909
>>451905
Это платиновый пост?
Аноним 22/10/17 Вск 13:40:30  451910
>>451905
Приведи пример усложнения архитектуры и логики.
Аноним 22/10/17 Вск 13:42:19  451911
>>451902
Тут ТОЛЬКО тролли. Ну, или иронизирующие. Суть одно и то же. И половина из них мемеры.
Аноним 22/10/17 Вск 13:47:35  451912
>>451905
Зацени няшный код от корпораций. ARKit, хололензовский сдк, кинектовский и прочие штуки от больших ребят. Или тех-же юнитеков. Стилистики общей написания плагинов под юньку нет. Но есть понимание, что во-первых - нет перегруза с абстрактными классами. Полностью отсувуют реализации синглтонов и ебучих фабрик с фасадами. Зато есть контроллеры, которые обращаются к управляющему классу, и объекты с компонентами обращаются в эти контроллеры. Во-вторых любые реализации взаимодействия с уи-шными компонентами и прочим связанным с вызовом на конкретных го происходит через геткомпонент, а лучше - публичные unityevents. В-третьих никаких тегов, слоёв и сендмессаджей. Это вообще какое-то костыльное решение для быстрого прототипирования и дебага
Аноним 22/10/17 Вск 13:49:59  451913
>>451815
>>451831
Это траллинг такой?
Аноним 22/10/17 Вск 13:51:52  451914
>>451910
Ну например компонент на пуле должен отправлять сообщение объекту с которым он столкнулся.
1. Очевидно это проще сделать просто с SendMessage и все. Если на объекте есть компоненты получающие это сообщение, они сработают, если нет - ничего не будет.
2. Как ты это сделаешь без SendMessage? Очевидно, подписка на события тут в принципе не может быть сделана. Можно использовать явно GetComponent<Health>() со столкнувшимся объектом и например отнимать ХП.
3. А если у тебя несколько компонентов обрабатывающих это сообщение, то единственный вариант использовать интерфейс с одним методом и как-то foreach (var comp in obj.GetComponents<IDamageable>()) comp.DoDamage();

Очевидно, что первый способ самый простой и с ним все компоненты изолированы друг от друга без зависимостей. Это идеальный вариант.
Аноним 22/10/17 Вск 13:53:29  451915
>>451853
Ну ясен-красен. Ты каждый кадр свой цикл без выхода запускал.
Аноним 22/10/17 Вск 13:55:21  451916
>>451914
Геткомпонент и прямая ссылка на объект. А вы мастер в том, чтоб плодить сущности без их надобности
Аноним 22/10/17 Вск 13:57:25  451917
>>451914
Отправка сообщений единственное правильное решение, о чем говорят сами разработчики давая такой инструмент.
Аноним 22/10/17 Вск 14:00:09  451918
>>451917
Инструмент для возможности быстрой отладки и запуска методов сразу на куче компонентов. Отладки.. Отладки. Отладки.
Аноним 22/10/17 Вск 14:02:30  451919
>>451912
Чем плохи синглтоны то?
Вон у MixedRealityToolkit-a майкрософтовского синглтон на синглтоне и проблем с ними я как-то не заметил.
Аноним 22/10/17 Вск 14:04:58  451920
>>451912
>Зацени няшный код от корпораций
Ну лично из моего опыта, я пришел к выводу, что чем проще и чем меньше кода, тем лучше.
SendMessage делает многие сложные вещи простыми с минимум кода.
Аноним 22/10/17 Вск 14:12:04  451922
>>451919
Этот паттерн не дает никаких преимуществ а только усложняет код и плохо сказывается на производительности. Вместо него можно просто делать поля статичным.
Аноним 22/10/17 Вск 14:13:45  451924
1359560102548.jpg (32Кб, 600x450)
>>451922
Аноним 22/10/17 Вск 14:14:39  451925
>>451919
Mrtk потихоньку их выпиливает, вводя неймспейсы и классы уже в движок. Вот эти все темы с XR.WSA и прочее. Да есть в паре мест синглтоны, но они являются лишь контроллерами для выполнения каких-то методов со сцены. Те в свою очередь пользуются пару-тройку больших классов для спейшал мпюаппинга, войска рекогишнк и прочего инпута. На самом деле все красиво, но в некоторых моментах перемудрили Здравствуйте, коллега. И вообще, что сейчас происходит с ветками на гитхабе посвященным теме, этим всем обновлениями юньки/винды/беткам/очков - пиздец полнейший. То, что юнитеки отдельные mrtp версии пихают - уже говорит о чем-то страшном
Аноним 22/10/17 Вск 14:29:19  451928
>>451914
Во-первых, https://docs.unity3d.com/ru/530/Manual/MessagingSystem.html
Во-вторых, SendMessage - это удар по производительности, т.к. ты вызываешь метод по строке, а тут уже и так становится понятно, что под капотом крутится подобие рефлексии. А также передаёшь аргументы как object. Из-за чего триггеришь лишние упаковки для value-type.
В-третьих, если ты себе инструменты для рефакторинга ломаешь, т.к. если ты поменяешь сигнатуру метода, то тебе надо будет руками пройти и все SendMessage поменять и проверить.

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

UiManager.Instance.LoadingPanel.text = "ЗОПЕКАЕМ ТЕКСТУРЫ)))";
UiManager.Instance.LoadingPanel.progress += 0.15f;

Код редактора был сломан нахуй. Люди, которые работали в редакторе не смогли продолжать работать, а тот чувак так и не понял, что плохого в синглтонах. Ну сломался редактор, ну и чо - ПОЧИНИШЬ ЖЕ)))) ты же его писал)))000

Добро пожаловать в русский геймдев.
Аноним 22/10/17 Вск 14:30:44  451930
А разве сенд месадж не использует рефлексию?
Аноним 22/10/17 Вск 14:31:49  451932
>>451915
Ну да, в том и дело. Говорю ж - долбоёб.
Аноним 22/10/17 Вск 14:37:50  451933
>>451930
Только при первом вызове, а потом кеширует функцию и тогда ее вызов ничем от обычного вызова не отличается.
Аноним 22/10/17 Вск 14:45:34  451934
>>451933
Хех, а вот и фантазёры подъехали. Пруфануть кеширование чем-нибудь можешь?
Аноним 22/10/17 Вск 14:57:45  451935
>>451934
Мамой клянусь!
Аноним 22/10/17 Вск 15:04:19  451936
61ecEb8x2mL.ACU[...].jpg (14Кб, 274x320)
>>451914
Ты тупая чмоня, эвент менеджеры для кого придумали? Подписка не может быть сделана лол блядь. С кем я в один тред зашел, пиздец
Аноним 22/10/17 Вск 15:07:47  451938
.png (6Кб, 526x255)
.png (19Кб, 691x243)
>>451934
Ну ты и васян, купи про версию юнити и посмотри сам.
Аноним 22/10/17 Вск 15:09:13  451939
>>451936
Усложнение архитектуры
Аноним 22/10/17 Вск 17:05:02  451952
дцп танцы.webm (7685Кб, 640x360, 00:03:00)
У меня скоро крыша поедет в попытках написать хорошую архитектуру. А если я напишу паршивую архитектуру, то мне не захочется продолжать. Замкнутый круг самообоссывания.
Аноним 22/10/17 Вск 18:21:00  451956
>>451952
Слушай сюда, n00b.
Пиши так как хочешь/удобно. Как только упрёшься в ограничения архитектуры, достаёшь паттерны и думаешь как они тебе помогут разрулить ту или иную проблему.
Ты по-любому по незнанке наломаешь дров, но ты и учишься, чтобы в будущем не ломать одни и те же дрова, а с каждым проектом становиться всё лучше и лучше.
Только практика поможет тебе понять, что не так с кодом и как дальше с этим жить.
Удачи.
Аноним 22/10/17 Вск 19:25:35  451973
Здарова, пацанва. Хочу реализовать следующее в своей игре:
Есть враг, есть точка, к которой он идет. Точка должна переместиться, после того. как враг до неё дойдет. Точка переместиться должна рандомно, но при этом не попадая за стену. Как сделать?
Аноним 22/10/17 Вск 19:32:45  451974
https://www.youtube.com/watch?v=7kHNUdNHT-A
Чувак говорит, что лучше сделать один апдейт на игру, и вызывать другие псевдо-апдейты(просто функции) из него. Еще про кеширование трансформы. Почему они всю эту хуйню до сих пор не оптимизировали, вот что интересно.
Аноним 22/10/17 Вск 19:56:16  451977
>>451974
Потому что они заняты важными фичами для заманивания артистов, а основная масса пользователей даже не знает что такое рефлексия.
Аноним 22/10/17 Вск 20:10:07  451981
>>451974
Хватит форсить себя, полудурок ебаный.
В юнитиблогах эту тему обсосали уже, нахуя видео записывать? Особенно, когда нет исходников движка и что-то кукарекаешь с умным видом.

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

сори за мат
Аноним 22/10/17 Вск 20:28:50  451987
>>451974
Про трансформ ты жопой слушал что ли? А насчет вызова апдейт, старт и прочего говна посмотри на стек вызова этих функции, он идет из нативной среды ядра движка через прокси объекты с кучей проверок на каждый вызов + там скорее всего какие то уровни аспектов для логирования, синхронизации и еще какого нибудь служебного говна, которое пришлом девам в голову после прочтения 20 ПАТТЕРНОВ ПРОЕКТИРОВАНИЯ КОТОРЫЕ ДОЛЖЕН ЗНАТЬ КАЖДЫЙ ПРОГРОМИСТ. А еще, если бы ты уебок дошел до сборки проекта, то увидел бы настройки оптимизации и твой кусок говна из двух кубов, который ты называешь проектом, работал бы на 4 миллисекунды быстрее.
Но все это неважно, просто ни на сколько не важно, и не имеет никакого значения, потому что вы уебки второй тред подрядят пережевываете говно друг друга вместо того чтобы сделать хоть одну ебучую игру для плеймаркета.
Как же вы твари бесите меня, насрал бы в рот каждому кто еще спизданет про оптимизацию, архитектуру или ооп. Просто трясет нахуй.
Аноним 22/10/17 Вск 20:31:44  451989
>>451987
А ты что сделал, чмоня?
Аноним 22/10/17 Вск 20:32:11  451990
1431952895333.jpg (16Кб, 385x387)
>>451974
Пиздец это чухло минут 5 не может понять что он приравнивает вектор к флоату.
Аноним 22/10/17 Вск 20:32:34  451991
>>451989
Насрал в треде, можешь кушать
Аноним 22/10/17 Вск 20:43:39  451995
>>451990
У него и лист еще бесконечный, охуеть просто. Почему какие-то говноеды, вчера начавшие писать код пытаются учить других?
Аноним 22/10/17 Вск 20:49:25  452000
.jpg (39Кб, 442x409)
>>451995
> пора начинать брать деньги за консультации
> Почему какие-то говноеды, вчера начавшие писать код пытаются учить других
Аноним 22/10/17 Вск 20:51:14  452002
409.png (271Кб, 600x481)
>>451995
ОХУЕТЬ, ОН 300 КИЛОБАЙТ СЭКОНОМИЛ! НУ ВЫ ВИДЕЛИ!? ЭТО ЖЕ МОЖНО ЕЩЕ ПАРАГРАФ ТЕКСТА В ПАМЯТЬ ЗАПИХАТЬ! ВОТ ЭТО ОПТИМИЗОН!
Аноним 22/10/17 Вск 20:53:48  452003
>>451938
Даун, теперь сделай первый вызов не в первом же фрейме. Кэшируется у него блядь.
Аноним 22/10/17 Вск 20:55:20  452004
>>452003
> кешируется при первом вызове
> сделай вызов не в первом фрейме
Ну ты понял
Аноним 22/10/17 Вск 21:06:05  452007
.png (41Кб, 1419x356)
>>452003
>>452004
Хотя да, я понял о чем ты. Странно, проверил пару раз, но так даже дольше получается
Аноним 22/10/17 Вск 21:19:39  452011
>>452007
Лол, да. Я и сам охуел. Что-то здесь нечисто, но пусть это будет магия кеширования, ладно.
Аноним 22/10/17 Вск 22:22:12  452028
>>451973
NavMesh
Аноним 23/10/17 Пнд 00:41:50  452053
>>452052
Бери только те точки, которые за стеной. Либо заранее считай, либо как-то разбивай множество по-умному.
Аноним 23/10/17 Пнд 00:42:11  452054
>>452052
В прошлом треде мелкобуквенный ананас кидал свой ассет, который в навмеше определял "за стеной" точка или нет. Или сам поищи (тред ещё не смыло), или дождись пока он вкатится.
Аноним 23/10/17 Пнд 00:50:16  452056
Можно гайд по воспроизводству видосов? Сам нашёл только нерабочее говно.
Аноним 23/10/17 Пнд 00:50:40  452057
>>452056
> воспроизводству
Воспроизведению, конечно же.
Аноним 23/10/17 Пнд 00:52:56  452058
>>452056
Ты вопрос-то конкретизируй. Если тебе нужны катсценки, то лови
https://www.youtube.com/watch?v=7SsqUb9FgW8
Аноним 23/10/17 Пнд 00:55:21  452059
>>452058
Нужно воспроизвести .mp4 файл.
Аноним 23/10/17 Пнд 00:58:52  452060
>>452059
https://docs.unity3d.com/Manual/class-MovieTexture.html
Аноним 23/10/17 Пнд 01:00:09  452062
>>452061
Книгу из шапки почитай. С такими запросами даже она у тебя "вау" вызовет.
Аноним 23/10/17 Пнд 01:01:33  452063
>>452060
Спасибо, смотрел гайды на ютубе о MovieTexture, но никак не импортировалось видео. Попробую по оф.гайду. Чё-т хуй знает, почему сам не додумался его посмотреть, лол.
Аноним 23/10/17 Пнд 01:59:39  452065
>>451987
Ты ебанутый. В треде движка обсуждают движок, а не игры
Аноним 23/10/17 Пнд 02:25:35  452066
>>451987
кокой злой. впрочем, всё так и есть.
Аноним 23/10/17 Пнд 04:15:53  452071
image.png (21Кб, 399x159)
Сталкивался кто? Как снизить минимальный Lvl? Сама игра почти ничего не жрет. Даже текстурок/света/теней нет. Нихуя крч нет. Два бокса и три префаба.
Аноним 23/10/17 Пнд 04:47:43  452073
>>452071
Тебе надо не снизить, а повысить, так как твой плагин требует апи 24. В настройках для билда ищи.
Аноним 23/10/17 Пнд 05:06:20  452074
>>452073
Так в том то и дело шо мне нужен рабочий апк на киткат и выше.
Аноним 23/10/17 Пнд 05:07:47  452075
>>452074
Значит не используй Tango.
Аноним 23/10/17 Пнд 13:57:51  452109
>>452058
>2к17
>катсцены на майе
Вот нахера юнитеки так старались и пилили тебе божественный Cinemachine?
Аноним 23/10/17 Пнд 14:01:02  452110
>>452071
Это ARCore какой-нибудь или дейдрим?
Аноним 23/10/17 Пнд 17:14:23  452137
>>452058
Не могу удержаться и ссу на тебя еще раз https://blogs.unity3d.com/ru/2017/08/25/community-stories-cinemachine-and-timeline/
Аноним 23/10/17 Пнд 17:21:53  452138
>>452137
> Не могу удержаться и ссу
К доктору обратись, это энурез.
Аноним 23/10/17 Пнд 17:27:51  452139
>>452138
>> Не могу удержаться и ссу
>К доктору обратись, это энурез.
Не могу я к доктору - если я расскажу о своих проблемах и о двачах - обоссыт
Аноним 23/10/17 Пнд 17:29:57  452141
>>452063
гайды многодетней давности. Мувитексчур -
тяжеловесное неповоротливое говно. Тебе сюда https://docs.unity3d.com/Manual/VideoPlayer.html
Аноним 23/10/17 Пнд 17:39:13  452143
>>452062
Сомневаюсь. Я ее видел(совсем немного), вроде ничего супер интересного нет.
Аноним 23/10/17 Пнд 18:17:29  452151
Гайз, как остановить коррутину из другой функции?
Аноним 23/10/17 Пнд 18:18:54  452153
>>452052
Я анон, который вопрос задавал. У меня идея возникла следующая: Можно провреять рейкастом, есть ли стена между точкой и мобом и, если есть, то перемещать её перед стеной.
Аноним 23/10/17 Пнд 18:20:06  452154
>>452151
проверяй буль-буль
Аноним 23/10/17 Пнд 18:23:42  452157
>>452151
StopCoroutine(MyCoroutine());
Аноним 23/10/17 Пнд 18:26:49  452158
>>452153
определи рандом внутри нужной тебе зоны. и... Зачем спавнить спавнить что-то вне нее, чтоб потом подгонять как раз внутрь этой зоны? Это же идиотизм какой-то
Аноним 23/10/17 Пнд 18:40:22  452159
>>452151
Флажком.
Аноним 23/10/17 Пнд 18:41:55  452160
>>452158
Ну прикол в том, что у меня очень много лвлов в игре будет и я хочу потом не запариваясь об этом, делать сами лвла. Ну, чтобы мне не пришлось ничего делать, кроме как ставить самих врагов, сундуки всякие, сам лвл.
Аноним 23/10/17 Пнд 18:43:22  452161
>>452160
Ты хочешь все уровни разом грузить? Нахуя?
Аноним 23/10/17 Пнд 18:43:52  452162
>>452154
У меня прикол в том, что может запуститься несколько коррутин одинаковых. И собственно, флажок будет на все действовать же. Ну или я просто не понял, что ты имеешь ввиду.
>>452157
Попробую, спс.
Аноним 23/10/17 Пнд 18:44:51  452163
>>452161
Че? Нет, конечно. Я имел ввиду, что мне будет впадлу зону спавна точки выставлять каждый раз.
Аноним 23/10/17 Пнд 18:46:40  452164
>>452163
По какому-нибудь закону автоматом выставляй точки.
Аноним 23/10/17 Пнд 20:41:10  452182
>>452180
Зачем агентом? Плодите сущности, сударь.
Если эти комнаты достаточно простой геометрии, то ничего не мешает вполне таки обрисовать границы чем-то вроде мешика по точкам углов помещения(меш и не нужен, нужны координаты точек в углах и все)
Аноним 23/10/17 Пнд 21:19:51  452193
Поцоны, как развернуть объект по направлению движения?
Аноним 23/10/17 Пнд 21:20:32  452194
>>452193
lookat v3.forward
Аноним 23/10/17 Пнд 21:20:37  452195
>>452180
Зачем мне навмеш, если у меня простенькая 2д игра, с самым простейшим поиском пути?
Аноним 23/10/17 Пнд 21:26:16  452196
>>452195
Если она такая простая, то почему тебе так сложно?
Аноним 23/10/17 Пнд 21:32:21  452198
>>452195
Комнаты прямоугольные?
Аноним 23/10/17 Пнд 21:32:41  452199
>>452195
Комнаты прямоугольные?
Аноним 23/10/17 Пнд 21:42:35  452200
>>452198
Да.
>>452196
Тому что я нуб.
Аноним 24/10/17 Втр 00:13:39  452214
Аноны, а давайте гитхабами/битбакетами меряться?

мимо-Столлман
Аноним 24/10/17 Втр 04:17:13  452230
Мне не нравится в каком направлении движется API юнити. Они слишком много перекладывают из натива в C#, где они занимаются всякими ебанутыми микро-оптимизациями, в худших традициях юнити-тредах. Например, отказываются от создания объектов. Создание объектов - это суть C#. Пытаться отказаться от этого и ебашить на структах - это как пытаться выебать C# в жопу без вазелина.
Раньше у юнити было просто и чисто API. Сейчас я смотрю на Playable и на Job System и охуеваю: что это за говно блядь.
Аноним 24/10/17 Втр 07:08:54  452239
>>452230
>Сейчас я смотрю на Playable и на Job System и охуеваю
Это считай плагины. Как и uNet, как и UI. Можешь своё запилить. Главное, чтобы они новую версию шарпа подрубили и нет фреймворка. Тогда я с удовольствием запилю какой-нибудь плагин.
Аноним 24/10/17 Втр 12:56:35  452281
>>452214
Вот мой гитхаб но там пока мало проектов https://github.com/torvalds
Аноним 24/10/17 Втр 16:12:23  452307
>>452208
Короче, я видимо реально не умею вопросы задавать.
>Точка переместиться должна рандомно, но при этом не попадая за стену. Как сделать?
Вот вопрос)))
Аноним 24/10/17 Втр 16:16:04  452310
>>452307
Берёшь минимум, берёшь максимум, ебошишь рандом между минимум и максимумом. Минимум и максимум определяешь во время загрузки комнаты.
Аноним 24/10/17 Втр 21:20:01  452351
>>452310
>>452330
>1. Рейкаст в рандомную сторону от врага. Смотришь на расстояние до столкновения и ебашишь рандомную точку между врагом и столкновением(догадаешься как сделать?)
Спасибо большое, это то, что мне было нужно.

>2. Если у тебя тайловая карта, то простейший пилишь поиск пути. Из этого вытекает и получение всех точек до которых можно дойти, и определение того, есть ли путь до нужной тебе точки.
Это бы не подошло, т.к. у врага может появиться точка, например, за домом и она будет являться проходимой, но он туда идти не должен.
Аноним 24/10/17 Втр 21:58:54  452355
>>452354
Да, я и сделаю рейкастами.

>Чтобы это исправить достаточно пометить точки непроходимые для врагов, которые при этом могут быть проходимыми для игрока.
Дык, если они заагрятся на врага, им надо будет выйти из комнаты, чтобы преследовать его. Ну и поиск путей в таком случае тоже нужен, т.к. мили враги должны использовать его, чтобы обходить всякие столы, тумбочки и т.д.
Аноним 24/10/17 Втр 22:01:32  452356
>>452351
А рейкаст не будет попадать в дверной проем, например, и они не будут выбегать из комнаты? Или я не понимаю чего-то.
Аноним 24/10/17 Втр 22:30:40  452359
>>452356
Вообще на это очень маленький шанс, но я просто добавлю коллайдеры в дверные проёмы в тот же лэер, в котором находятся стены.
Аноним 24/10/17 Втр 23:28:59  452367
https://www.youtube.com/watch?v=cupdlbOFNK4
Ха блядь! Я по одному только инпут филду на 2:48 сразу догадался, что эта игра сделана на юнити. Вот серьёзно: всё, что сделано с использованием стандартных ассетов, выглядит одинаково, и внутренние ограничения на стандартные ассеты - те же кнопки или инпутфилды - меняют дизайн игры узнаваемым образом.
Я пока что умею споттить юнити безотказно по заставочке юнитовской и кнопкам с инпутфилдами. Какие ещё фичи движка выдают его с головой?
Аноним