Этого треда уже нет.
Это копия, сохраненная 4 марта 2022 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Unity thread # 12 698843 В конец треда | Веб
Добро пожаловать в тред Unity - лучшего 3D и 2D игрового движка современности!

Прошлый тред: https://2ch.hk/gd/res/659486.html (М)

Официальный сайт: https://unity3d.com/ru
Документация: https://docs.unity3d.com/ru/current/Manual/index.html
Уроки: https://unity3d.com/ru/learn/tutorials
Форум: https://forum.unity3d.com/
Магазин ассетов: https://unity3d.com/ru/asset-store
UnityWiki: http://wiki.unity3d.com/index.php/Main_Page

На Unity сделано много замечательных игр - Rust, Блицкриг 3, Pillars of Eternity, Tyranny, Kerbal Space Program и многие другие. Главным преимуществом Unity перед другими движками является его простота для одиночной разработки. Не нужно иметь целую компанию девелоперов, чтобы сделать хорошую игру. Если ты один или имеешь небольшую команду и хочешь сделать хорошую игру без претензий на ААА, то Unity станет лучшим выбором. Тем не менее, даже крупные корпорации зачастую выбирают для своих игр именно Unity.

FAQ

- Какие у Unity сильные стороны?
- Простота разработки, удобный инструментарий, кроссплатформенность, богатая документация, огромное сообщество.

- Какие у Unity слабые стороны?
- Сложность в создании фотореалистичной графики. Для графики "как в Crysis" рекомендуется взять другой движок. Хотя Unity вполне способен выдавать не уступающую любым другим движкам картинку, это требует определённого навыка от разработчика.

- На каких языках я могу писать скрипты для Unity?
- На выбор два языка - C# и UnityScript. UnityScript - это что-то среднее между JavaScript и ActionScript. Выбирай язык по своему вкусу, они оба вполне удобны, но помни, что большинство примеров написано на C#.

- Для каких жанров подходит Unity?
- Для абсолютно любых! Жанр ограничивается лишь фантазией разработчика (и его умением писать скрипты, разумеется). Можно создавать и РПГ, и стратегии, и слэшеры. Можно делать VR-проекты или Minecraft-подобные песочницы.

- На каких платформах работают созданные с помощью Unity игры?
- Windows, Linux, MacOS, SteamOS, Android, iOS, Windows Phone, PlayStation4, Xbox One, WebGL, Oculus Rift и многие другие. Полный список можно найти на официальном сайте. Таким образом, игры Unity работают на десктопах, на смартфонах, планшетах, приставках, в браузерах, VR-очках и некоторых других системах.

- Часто вижу скриншоты с красивой природой на Unity. Как такое создать?
- Очень просто! В Unity встроены удобные инструменты для создания террейна и SpeedTree для создания деревьев и готовая реализация ветра - не нужно ничего писать или скачивать и подключать плагины - ландшафт в Unity создаётся в пару кликов.

- Что такое стартер киты?
- Starter Kit - это набор скриптов и префабов, а зачастую и графических элементов для игры. Они призваны облегчить разработку игры определённого жанра и как правило разбиты по жанрам (Action-RPG Starter Kit, RTS Starter Kit, 3D Shooter Starter Kit, Space Game Starter Kit, VR Starter Kit и так далее). Также бывают стартер киты различных игровых элементов, не связанных с геймплеем (Nature Starter Kit с дополнительными природными объектами, Medieval Starter Kit со средневековыми объектами и так далее). По сути, стартер киты выполняют в разработке игры ту же роль, что и фреймворки в программировании. Однако стоит отметить, что использование геймплейного стартер кита принуждает разработчика изучать большое количество чужого кода и чужой структуры для внесения своих изменений и полноценного использования. В связи с этим большинство разработчиков предпочитает писать почти всё с нуля, получая полное понимание работы своей игры. Новичкам крайне не рекомендуется начинать знакомство с Unity со стартер китов.

- Что нужно уметь делать для создания полноценной игры, кроме Unity-разработки?
- Кроме непосредственной разработки игры на Unity, требуется также уметь создавать 3D модели (3ds Max, Blender, ZBrush), 2D рисунки (GraphicsGale, Aseprite, Piskel), текстуры (Substance Designer, NeoTextureEdit), музыку (FruityLoops, Ableton). Не обязательно учить это всё - например, в 2D играх не нужны 3D модели, а музыка необходима далеко не всегда. Также вы можете скачивать элементы для ваших игр на бесплатных сайтах. Если у вас есть деньги, то все необходимые элементы можно заказать у фрилансеров на https://www.fl.ru/ (русскоязычный) или https://www.upwork.com/ (англоязычный).

- Бесплатен ли Unity?
- Можно свободно скачивать, использовать и продавать готовые игры на Unity с лицензией Personal - это абсолютно бесплатно! Но на бесплатной версии при запуске игры будет появляться короткий стартовый ролик "Made with Unity", а также ваши доходы ограничены 100 000 долларов в год. Для снятия этих ограничений нужно приобретать платные версии лицензий Unity. В конечном итоге, платные варианты используются лишь крупными компаниями с огромными доходами, тогда как обычные разработчики в большинстве своём используют бесплатную Personal лицензию.

Обучение

- Язык
Итак, с чего же начать изучение этого замечательного движка? Прежде всего, с изучения языка. Самые основы C# можно узнать на интерактивных курсах здесь:
https://dotnetcademy.net/CSharp/Beginner
или в текстовом туториале здесь:
https://www.tutorialspoint.com/csharp/csharp_quick_guide.htm
Для изучения основ UnityScript выучи вначале основы JavaScript:
https://learn.javascript.ru/
Помни, что далеко не все элементы JS есть в US. Чтобы понять, в чём разница между этими двумя языками, прочти эту статью:
http://wiki.unity3d.com/index.php/UnityScript_versus_JavaScript
Помни, что тебе достаточно одного языка из двух и учить их оба одновременно не нужно.

- Движок
Если ты уже умеешь использовать язык, то можно приступать непосредственно к изучению движка. Крайне рекомендется купить/скачать книгу Unity in action (Unity в действии). В ней подробно описываются множество возможностей движка.
http://www.ozon.ru/context/detail/id/34792570/
Также посмотри на видеотуториалы с официального сайта:
https://unity3d.com/learn/tutorials
Если же ты не любишь видеотуториалы (или не понимаешь разговорный английский) и предпочитаешь текст, то посмотри здесь:
http://catlikecoding.com/unity/tutorials/
Тут крайне подробно описан процесс разработки и приведены примеры кода. Эти туториалы универсальны и описывают множество различных частей игры, от работы с текстурами до генерации карты мира. А вот в этом туториале описыватся разработка двухмерной игры с видом сверху:
https://www.raywenderlich.com/61532/unity-2d-tutorial-getting-started
Это будет полезно, даже если ты планируешь разрабатывать трёхмерную игру. Ни в коем случае нельзя обойти вниманием этот сборник туториалов:
https://noobtuts.com/unity
В нём подробно описывается процесс пошагового создания разных игр - двухмерных и трёхмерных.

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

Шапка: http://www.writeurl.com/publish/zukmrogwv45ptyuseyol
image.png13 Кб, 401x200
2 698849
>>698843 (OP)
На хамбле распродажа ассетов ненужных. https://www.humblebundle.com/software/unity-games-and-game-dev-assets-software
3 698868
>>698832 →
Ну там-то вроде и курс по шарпу(а потом по юнити, если ты про полный), поэтому вроде нормально, что там погромач. Но то, что чел просто зачитывает - это печально. Хотя может это просто введение, а потом будет подкрепление с примерами. Я вот думал взять первый месяц за 5к посмотреть, но как-то хз. Я не особо хочу становиться программистом c# со знанием юнити, у меня вообще был план сделать парочку гиперказуалок просто потому что скучно. Решил чекнуть инфоцыган местных и увидел этого странного чела.
15997395522240.jpg3 Кб, 225x225
4 698869
Как лучше работать с данными в юнити?
Например, я хочу иметь что-то типа базы данных абилок, где у меня будут храниться все их параметры, название, иконка, стоимость, кулдаун, и т.д.
Таких абилок может быть много, десятки, сотни, с ними должно быть легко и удобно работать через инспектор, поэтому просто в коде в массивчике хранить не хочу.
Но и префаб на каждую абилку городить не хочу, это кажется неправильным, все-таки это не геймобжект, размещаемый на сцене, а именно набор данных.
Думал про табличку в экселе, и потом импортировать, но тоже не очень удобно, хочется все-таки иконки через инспектор драг н дропом кидать, а не просто прописывать путь.
Есть что-то из коробки в юнити, или надо смотреть в сторону ассетов?
Databox выглядит похожим на то, что мне нужно, но неужели до сих пор нет из коробки похожего функционала?
15834138583181.png129 Кб, 921x495
5 698874
Что будет, если я куплю ассет, использую его в проекте, потом скину проект другу, у которого этого ассета нет, у него он не будет работать? Или когда добавляешь ассет в проект, он копируется в него целиком, и после этого можно запускать этот проект на другой версии юнити без купленного ассета?
6a96da07172fba0d0250e089ae987e99.png113 Кб, 499x595
6 698876
>>698874
Ассеты импортируются в проект, проблем быть не должно.
15834138583170.png68 Кб, 658x384
7 698885
>>698876
Даже ассеты, которые состоят только из кода, без моделек/текстур/префабов?
Сейчас же даже убрали браузер с ассет стором из юнити, чтобы облегчить редактор, и перевели на package manager, это не значит, что в проекте подключенные ассеты будут качаться через него при первом запуске?

И еще вопрос ко всем в треде, есть ли список must have ассетов, которые стоит по дефолту использовать в любом проекте?
Имею ввиду не ресурсы для игор, а именно полезные расширения редактора или утилиты, которые упрощают и ускоряют разработку.
Например, odin крутая штука, но дорогая, может есть что-нибудь в таком духе, но бесплатное?
Или не бесплатное, но хотя бы не очень дорогое, что стоит купить и потом использовать во всех проектах.
В общем, пишите ваши любимые ассеты, что стоит посмотреть.
8 698891
>>698885
Ну я такой ассет и юзал и он импортируется.
Угадай с какой игры спиздил механику Людвиг 9 698892
Делаю игру, в которой разными предметами персонажи пользуются по особенному. В планах сделать так, чтобы предметы позволяли пользоваться механиками из ретро игр. Сегодня допилил функционал лопаты. Кто играл в эту игру в детстве?
1.jpg69 Кб, 600x330
10 698896
>>698892
Если бы это были плейсхолдеры, то ты бы не заморачивался на анимацию... Надеюсь этов сё же плейсхолдеры. Иначе мне даже подумать страшно, что у тебя в голове.
11 698898
>>698869
ScriptableObject + твой интерфейс ISkill например.
Так ты сможешь переиспользовать свои скилы и менять их параметры через инспектор.

>>698874
Ассет это zip архив, встречал ассеты которые просят тебя регаться на емейл - такие НАВЕРНОЕ не будут работать без твоей учетки, но 99% ассетов просто "вот тебе пара .cs файлов"
12 698899
>>698892

>Угадай с какой игры спиздил механику


Изи, Duck Tales
15749985410790.jpg7 Кб, 217x217
13 698901
>>698898

>ScriptableObject


Спс, то что нужно.
Только у меня в голове не укладывается, почему он называется ScriptableObject, если это объект для хранения данных, почему не DataObject, например. Он же не скриптуется, почему scriptable?
image.png314 Кб, 800x700
14 698904
>>698892
Это не плейсолдеры. Я программист а не художник
15 698905
>>698896
Кстати, если интересно посмотреть что у меня в голове, предлагаю чекнуть мои посты по разработке. https://pikabu.ru/@Peregon
16 698906
>>698905
Всё понятно с тобой.
17 698907
>>698905
Тащемта, анимации неплохие, ты всё сам делал?
Где анимировал, спайн или прямо в юнити?
Они у тебя процедурные, завязанные на физику?
Мне только кровищи не хватает на твоих гифках, хотелось бы крови и угара в такой игре, а не просто всплывашку в стиле детских мультиков
2020-09-15 22-07-43.mov2,4 Мб, mp4,
1280x720, 0:16
18 698908
>>698907
Всё делал сам, анимировал в юнити, часть анимаций процедурные, на физику анимаций не завязано. Есть и кровища. Но пока только в одном из захватов.
19 698909
>>698908
Бля, аж взвизгнул с происходящего.
Как монетизировать планируешь?
Думаю, такая игра зашла бы всяким стримерам, которые стримят треш-игры.
20 698910
>>698909
На текущий момент ебашу ради процесса, мой изначальный ориентир - Duck game. Поэтому и монетизацию наверное стал делать бы как там, просто пэй ту плей. Одноразовая выплата. Но, в теории, здесь легко клепать скины и всякие элементы кастомизации.
21 698911
>>698905
Казах, ты?
22 698912
>>698911
Я из Казахстана, если вопрос об этом
23 698972
>>698901
Наверное под scriptable понимается, что его можно скриптовать, но по факту этого объекта не будет в игре как GameObject-а. Юнете оч старая и скорее всего над неймингами долго не думали, потом так и оставили.
image.png2,3 Мб, 1920x1280
24 699013
Хочу сделать FOW в topdown игруле. Как в Darkwood. Куда посоветуете копать? Гугл выдает только ассет за 60$, да и всё...
25 699015
>>699013
На хабре стетье 10 лет, а это значит что на гавно-мобилках будет 60фпс выдавать в наше время
https://habr.com/ru/post/350396/
Вообще загугли: "habr unity3d 2d shadow", там много результатов и выбери реализацию, которая тебе больше всего нравится/подходит.
Удачи
26 699019
>>699013

>FOW


FOV

>быстрофикс



Вот я дебил. Ошибся тут, и ошибся в гугле, введя вообще FOG.
>>699015
Спасибо!
27 699060
Привет аноны, в процессе создания игры на мобилки возникла такая проблема: я создал сцену, накинул на нее канвас с кнопками и обработчиком событий. По-моему замыслу при нажатии по экрану в любом свободном месте должна начинаться сама игра, а при нажатии на кнопки соответственно должны срабатывать кнопки. Так вот, в редакторе все работает как надо но при портировании на телефон оно работает через жопу и либо работают кнопки, либо работает тап по экрану для начала игры, а вместе они работать не хотят. Как быть?
28 699061
>>699060

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


И как это реализовано?
29 699064
>>699061
через вот этот if в update
if(Input.GetMouseButtonDown(0) && cubeToPlace != null && allCubes != null && !EventSystem.current.IsPointerOverGameObject())
30 699067
>>699064

> cubeToPlace != null && allCubes != null


Хуй знает что это у тебя за условия такие, но что будет если их выкинуть из конструкции?
31 699068
>>699064
Что за хуйню ты наговнокодил?
Делаешь обьект картинку на весь экран, поверх ставишь кнопки, эвент тригер при нажатию на картинку->начать игру, при нажатие на кнопки вызвать функции кнопок.
32 699069
>>699064

> EventSystem.current.IsPointerOverGameObject()


> в редакторе все работает как надо но при портировании на телефон оно работает через жопу


Может быть, потому что на телефоне нет указателя мышки?
33 699307
>>698912
Бро, здесь все из Казахстана.
Это казахстанская доска на самом деле, но об этом не принято говорить вслух.
34 699341
>>698849
Слейте на трекер

>/thread

33cb33bca42f8ec15ea8c1621c9bf371.png1 Мб, 794x798
35 699343
для тех кто не очень часто читает ченджлоги оповещу, что в новой бете (2020.2) Camera.main теперь стала пизже и работает не как раньше аля GameObject.FindWithTag. теперь это почти бесплатная функция:

Scripting: Camera.main is much faster to query.

Camera.main used to be a performance costly function to call. With this optimization a dedicated list of objects with the main camera tag is maintained, and searching this list is almost instantaneous.

так что если ты долбоёб и используешь Camera.main, то теперь ты не долбоёб. принимай поздравления анон
36 699345
>>699343

>то теперь ты не долбоёб


Человек, опередивший время.
37 699392
>>699343

Заебись, пошли на поводу у школьников-говноделов, найс.

Это как майкрософт пихала кучу костылей в ядро NT что бы какой-то там Sim City, эксплуатирующий недокументированное поведение своим говнокодом шёл.
38 699432
>>699392
в данном случае это не костыль и, честно говоря, я рад введению. но когда читал, то деда включил и примерно так же жаловался
39 699449
>>699392

>Это как майкрософт пихала кучу костылей в ядро NT что бы какой-то там Sim City, эксплуатирующий недокументированное поведение своим говнокодом шёл.


Подробнее, пожалуйста. Интересно было бы почитать.
41 699664
Почему в нормальных играх cutout антиалиасится, а в юнити нет?
huyunity.jpg10 Кб, 560x159
42 699694
Зачем я только обновился с LTS до 2020.1 (даже не бета 2020.2), теперь в случайные моменты редактор зависает и только убийство процесса помогает.
Господи, почему в юните с каждым патчем появляются более жуткие баги...
43 699814
Как нужно делать карты для 2д игры?
Grid, Tilemap, все дела. по 1 размеру, никаких доп настроек. Заливка отключена в настройках. Стоило в 2 слоя покрасить 100x100 клеточек примерно(очень маленькая область), как все начинает дико зависать, то есть не не в процессе игры, а именно становится невозможно дальше оперировать редактором с этой сценой, на которой только один Grid с Tilemap-ом.

Я, конечно, знаю много альтернативных решений, по типу генерации карты в реальном времени, прогружая кусками, можно как-нибудь напердолиться, но я думал раз уже все придумали до меня, раз есть редактор и такая возможность, то значит надо нарисовать всю карту, и там уже плясать от этого, активуруя объекты и двигая камеру. Все таки 100х100 и так лагать мне не дает покоя, я что-то не так понимаю, объясните плиз.
44 699838
Юнитач, хочу сделать так, чтобы в конце уровня игрок мог выбрать 1 из 3 случайных улучшений. Т.е в конце раунда на экране появляется UI на котором три кнопки - игрок нажимает одну из них и загружается следующий уровень.

Как сделать так, чтобы улучшения, которые предлагаются игроку, выбирались рандомно из пула?
Есть идея просто добавить их все как отключённые кнопки в UI и включать через foreach child'ы этого UI, пока их не включится 3. Но мне кажется есть вариант получше
45 699856
>>699838
var getRandomIndex = UnityEngine.Random.Range(1, 3) -> вернет тебе индекс твоего улучшения. Потом: IEnchants[] enchants = заполняешь свой массив улучшений.
Потом: var randomEnchantment = enchants[getRandomIndex];
Потом: Передаешь на UI инстанс своего улучшения, для 3х на угад проделай это всё через цикл for.
>>699664
Вроде в редакторе он и не должен работать, нужно билд делать + с последними пайплайнами эту настройку вообще куда-то в другое место вынесли, в Players Settings что-ли.
>>699694
Оказалось я вместо if написал while и получил это из-за бесконечного цикла
>>699814
Честно - не понял, у тебя в редакторе тормозит или в игре?
Может на обоих слоях есть коллизия и там физика с ума сходит?
Если в игре - включи deepProfiler и глянь, че там жрет все мощностя твоего пеки.
У меня в 2019.4 1024х1024 на старом ноуте работало,выдовало больше 30 фпс во всяком случае
46 699861
>>698843 (OP)

Ну че там, этот ваш дата ориен тированный подход в прод уже выкатили? Как там оптимизаторный гений из сонибляди наоптимизировал, летать стало?
47 699863
>>699856
Редактор, говорю же. На сцене ничего кроме этого нет.
Никакой физики вообще, вообще ничего.

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

>1к на 1к на ноуте


На это буду ориенироваться, сяп.
48 699976
>>698843 (OP)

18 сентября компания — разработчик движка Unity вышла на фондовую биржу. За первый день торгов она привлекла $1,3 млрд, а ее общая стоимость выросла до $18,1 млрд. Это на один миллиард больше, чем капитализация Epic Games.

Изначально разработчики Unity планировали выходить на рынок с ценами на акции по $34-42 за штуку, но позже повысили их стоимость до $44-48. Утром первого дня торгов акции были доступны к покупке за $52, а к вечеру выросли в цене примерно до $68.

Unity — движок, который может использоваться для создания игр в 2D, 3D и виртуальной реальности. На нём сделаны Fall Guys, ККИ Legends of Runeterra от Riot Games, платформер Ori and the Will of the Wisps, Subnautica, Escape from Tarkov, The Forest и другие популярные тайтлы. Компании, доход которых не превышает $100 тыс. в год, могут использовать Unity бесплатно.

Вот пидары, могли бы асетстор сделать бесплатным.
image.png80 Кб, 1015x602
49 699981
Сосонг, что такое Editor Loop?
50 699982
>>699981
Рендер редактора юнити.
, 51 699998
Где можно почитать, посмотреть пример годной архитекторы не совсем простой 2D игры? Делаю игру, но мучает ощущение, что путаюсь в сущностях и есть некоторая неконсистеность
52 700009
ананасы! последнее время страдаю каким-то ебаным декаплингом и разбиением на кучку скриптов и не знаю нужно ли так делать. начну с того что в основном всё что я делаю это 2д. привожу пример:

2д платформер
есть персонаж, он должен уметь ходить и прыгать

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

>PlayerInput.cs


public event Action onJumped;
private void Update() {
if (Input.GetKeyDown("space")) {
onJumped?.Invoke();
}
}

этот скрипт вешается на песонажа и создаётся обработчик событий, например

>PlayerActions.cs


public void onJumped;
private void PlayerInput _input;
private void Awake() {
_input = GetComponent<PlayerInput>();
}
private void OnEnabled() {
_input.onJumped += Jump;
}
private void Jump() {
if (_isGrounded == false) {
return;
}
_rigidbody.velocity.y = 5;
onJumped?.Invoke();
}

как вы могли заметить тут есть точно такое же событие onJumped, но нужно оно для того чтоб к нему мог подключиться другой скрипт это событие уже вызывается после проверки, в данном случае _isGrounded; (стоит ли персонаж на земле)

и третий скрипт у меня отвечает за анимации

>PlayerView.cs


private void PlayerActions _actions;
private void Awake() {
_actions = GetComponent<PlayerActions>();
}
private void OnEnabled() {
_actions.onJumped += Jump;
}
private void Jump() {
GetComponent<Animator>().SetTrigger("Jump");
}

Отсюда вопрос: не слишком ли я всё усложняю? с одной стороны я могу добавить ещё скрипт который будет отвечать за стрельбу и он будет отдельным небольшим файлом, а с другой у меня получается очень дохуя мелких скриптов. не знаю стоит ли так дробить. и возможно делать такие связи через event Action не самая лучшая затея? есть у кого соображения на эту тему?
52 700009
ананасы! последнее время страдаю каким-то ебаным декаплингом и разбиением на кучку скриптов и не знаю нужно ли так делать. начну с того что в основном всё что я делаю это 2д. привожу пример:

2д платформер
есть персонаж, он должен уметь ходить и прыгать

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

>PlayerInput.cs


public event Action onJumped;
private void Update() {
if (Input.GetKeyDown("space")) {
onJumped?.Invoke();
}
}

этот скрипт вешается на песонажа и создаётся обработчик событий, например

>PlayerActions.cs


public void onJumped;
private void PlayerInput _input;
private void Awake() {
_input = GetComponent<PlayerInput>();
}
private void OnEnabled() {
_input.onJumped += Jump;
}
private void Jump() {
if (_isGrounded == false) {
return;
}
_rigidbody.velocity.y = 5;
onJumped?.Invoke();
}

как вы могли заметить тут есть точно такое же событие onJumped, но нужно оно для того чтоб к нему мог подключиться другой скрипт это событие уже вызывается после проверки, в данном случае _isGrounded; (стоит ли персонаж на земле)

и третий скрипт у меня отвечает за анимации

>PlayerView.cs


private void PlayerActions _actions;
private void Awake() {
_actions = GetComponent<PlayerActions>();
}
private void OnEnabled() {
_actions.onJumped += Jump;
}
private void Jump() {
GetComponent<Animator>().SetTrigger("Jump");
}

Отсюда вопрос: не слишком ли я всё усложняю? с одной стороны я могу добавить ещё скрипт который будет отвечать за стрельбу и он будет отдельным небольшим файлом, а с другой у меня получается очень дохуя мелких скриптов. не знаю стоит ли так дробить. и возможно делать такие связи через event Action не самая лучшая затея? есть у кого соображения на эту тему?
53 700016
>>700009
Оо, таким же шаблоном реализую логику, задаюсь теми же вопросами.
Как альтернатива смотрел https://m.habr.com/ru/post/281783/ - тип любой скрипт можно дёрнуть через дерево appkication>controller>...
Проще отследить, что на что завязано, но все как-то гвоздями прибито. Я ещё думал о dependency injection, но тут сложности с инъекцией конструктора у monobehavior из-за особенностей инициализации
, 54 700034
>>700009
Ещё, как вариант, отдельный класс для рассылки сообщений. Оба класса чарактера подписываются на событие с конкретным названием, а плееринпут его бродкастит - все это происходит через Мессенджер. Мессенджер содержит список всех методов, которые подписались на это сообщение и вызывает их всех. И в итоге тебе не нужно отдельно из чар контроллера ещё вью дергать
Вот, кажется, пример реализации http://wiki.unity3d.com/index.php/Advanced_CSharp_Messenger
55 700053
OnCollisionEnter2D, как и Stay и Exit не работают
тот же Trigger работает идеально
Я rigidbody есть и там и там, тестировал разные типы, галка стоит\не стоит, область коллайдера нормального размера(иначе бы trigger не работал).
И тем не менее, OnCollision не работает, я уж думал он Deprecated, но нет.
Всегда обходился без него, а тут понадобилось сделать стенки, нужна информация о стороны с которой произошло столкновение, Collision.GetContacts то бишь. Но я не могу получить данные потому что сообщение OnCollision не работает.
Ломаю голову как определить сторону столкновения с OnTrigger. Сталкивался кто?
56 700063
>>700053
on trigger enter дает же коллайдер other со ввсей хуйней не?
57 700067
>>700063
Нет. \\This collider is attached to the Collision2D.otherRigidbody.
Trigger оповещает что дескать есть столкновение с чем-то, но он не надет данных о самом столкновении. Только само столкновение, логично, дает данные о столкновении.
https://docs.unity3d.com/ScriptReference/Collision2D.GetContacts.html
А для этого надо получить сообщение которое не работает ><.
58 700072
>>700067
я тож с on collision не работал
хуй знает, проверь чтобы ригибади был не кинематик

если тебе надо просто сторону с которой пришло столкновение то
vector3 direction = (other.transform.position - this.transform.position).normalized;
59 700074
>>700072
Коллайдер Tilemap считает весь слой за один объект, тут не обойтись без столкновения и его конкретной точки ><
https://answers.unity.com/questions/1572343/how-to-detect-on-which-exact-tile-a-collision-happ.html
60 700100
>>700074
рейкастик пульни тогда и получи точку, как чувачок там и предлагает
61 700105
>>700100
О, дошло, премного благодарен!
62 700106
>>700009
Чеб нет, но мне кажется сложно, обычно лучше делать ДЕКОМПОЗИЦИЮ вместо ДЕКАПЛИНГА т.к. композиция была был такой:
components = new IComponents[new OnJump(this), new OnShoot(this)];
и в update: components.ForEach(com => com.Update());
Плюсы: легко добавлять и удалять компоненты без анальной event += -=, придется использовать интерфейсы, а не реализацию, а значит эти же компоненты сможешь использовать для врагов (переиспользование короче)
>>700016
Я юзал DI, есть специальные для юнете, нашел на хабре заготовку и допилил под свои нужды.
>>700034
Медленно работает, так же как и GetComponent
63 700107
>>699976
Это ты пидор тупой, все юнитивские ассеты и так всегда бесплатными были, за бабки продаются аутсорсные авторские ассеты, это стимул независимым разрабам и художникам делать контент и высталвять его на продажу.
64 700114
UNET по дефолту выпилен из Unity 2019. И планируется быть замененным. Значит я зря сейчас читаю про мультиплеер в оф доках. Что сейчас использовать для создания мультиплеерной игры в юнити, аноны?
65 700116
>>700072
>>700100
Кстати нашел еще способ решения проблемы. Просто к объекту добавлять еще 4 объекта на каждом из которых будет по коллайдеру.
66 700119
>>700106
Почему медленно? Просто лист с ссылками на конкретные методы дергается
67 700120
>>700106
Про Di и хабр - это где инъекция свойства? Там ж все вручную?
68 700153
есть задача сохранять кучу мелких спрайтов в текстуру. на пол проливается много кровищи и после того как я спрайт лужи растянул хочу сохранять его в текстуру пола и сам спрайт удалять ибо память надо экономить. подскажете в какую сторону смотреть?
69 700165
>>700119
Ты же про Broadcast(string, object[] args)?
У нас тут конвертация CLR в C++, вызов нативных методов, потом обратная операция C++ в CLR, потом CLR.PInvoke, большая цепочка для "простого" метода.
По сути гет компонент делает тоже самое, только yourComponent.GetType().Name ищет в своих внутренностях, из-за этого и медленно.
>>700120
я взял https://github.com/yaroslav-gurilev/UnityDI за основу и дописал его под свои нужды (все классы поменял на структуры, убрал всю рефлексию, может еще что-то делал) .
Автор этой репы советует взять https://github.com/Cryofortress/CryoDI его уже не пробовал.
Есть еще забугорная DI Zenject, но лично я не люблю брать оргмоные фреймы и использовать их в слепую, иногда вылазят проблемы из-за которых весь проект потом переделывать приходится.
>>700153
Это всё динамически должно происходить?
Просто так менять спрайт нельзя, UV остается тем же.
Если я правильно понял тебя - тебе нужно mesh.GetVerticies() - считать расстояние между точек, чтобы понять размер нужной тебе текстуры. Создаешь эту текстуру через new Texture(width,height), у этого же объекта есть методы setPixel и рисуешь.
Так же у юнете есть стандартные методы а ля getPointPositionOnTexture что может упростить тебе жизнь
>>700114
Тоже думал, взял colyseus, из минусов - встречаются баги т.к. пилится парой бразильцев.
Можешь взять фотон (как, видимо, делают все), а можешь подождать пару лет и возможно выйдет что-то новое для сети (но что они могут придумать? все уже придумано)
70 700199
>>700165

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


>Можешь взять фотон (как, видимо, делают все), а можешь подождать пару лет и возможно выйдет что-то новое для сети (но что они могут придумать? все уже придумано)



Я в интернете увидел советы использовать Mirror. Colyseus и Photon лучше?
71 700201
>>700165

>Просто так менять спрайт нельзя



мне спрайты менять не надо. надо их запекать в текстуру чтоб у меня не было огромного кол-ва спрайтов луж крови на сцене. наверное стоит добавить что сцена вся 2д
72 700210
Двощ спасай. Делаю мобилку, в эдиторе всё выглядит нормально, а на телефоне качество картинки очень сильно падает.
73 700217
>>700210
Это была проблема Unity Remote, скачал АПК, установил - картинка нормальная.
Другой вопрос - как сделать так, чтобы спрайты растягивались под разрешение экрана?
150635-annotation-2019-12-30-203455.jpeg35 Кб, 550x449
74 700220
кто знает как в URP сделать чтоб камера себя не очищала в каждом кадре? мне нужен Don't Clear на скриншоте, только для URP
75 700221
>>700220
ну или что-то в том духе. у меня есть текстура на которую рендерится одна из камер. там система частиц выдаёт частицы разного цвета и они должны намазываться на предыдущие создавая относительно психоделический эффект
76 700222
>>700220
Зачем тебе URP?
77 700225
>>700222

>Зачем тебе URP?


испльзую shader graph и vfx graph
78 700231
Посоны, подскажите с вопросом. Есть NavMeshAgent в сцене, двигается в точку нажатия мышкой. Как детектить его прибытие в точку назначения? Мне нужно, чтобы после остановки проигрывался звук и менялся цвет, но я не могу понять, как прописать завершение движения.
image.png30 Кб, 557x409
79 700234
Юнитач, есть сцена пикрелейтед. По нажатию кнопки корабль должен устанавливать таблетку под собой в центре условной клетки, если эта клетка пустая. Функционал установки таблетки должен быть реализован через работу с координатами коллайдеров астероидов, находящихся вокруг корабля. (пересечение коллайдеров)

Как это сделать? Может я просто что-то не так понимаю, но натурально в душе не ебу как это реализовать.

да, юнитач, это ТЗ, с меня тонны нефти
80 700235
>>700234

> как это


способов много, начни делать монолитно, как станет тяжело читать сразу начнешь разгребать функционал
81 700237
>>700235

>способов много


Ну, мне нужна наводочка хоть на какой, потому что голова уже вообще не варит.
82 700238
>>700234
а нахуя тебе знать координаты коллайдеров если ты просто можешь округлять положение таблетки?

типа:

Vector3 spawnPosition = new Vector3(Mathf.Round(ship.transform.position.x), Mathf.Round(ship.transform.position.y), 0f);

Instantiate(pillPrefab, spawnPosition, Quaternion.identity);
83 700239
>>700238
По условиям ТЗ нужно сделать именно так, если бы не это я бы уже давно закончил
84 700240
>>700239
я просто не пойму, типа корабль может залетать на астероиды и тогда нужно делать проверку? или таблетка может быть установлена только между двумя астероидами?
85 700241
>>700240
На астероиды корабль залетать не может, таблетку как я понимаю можно установить только рядом с астероидом
86 700242
>>700241
делай 4 каста во все стороны от корабля, если колижн есть, то и астероид есть. таблетку можно ставить

https://docs.unity3d.com/ScriptReference/Rigidbody2D.Cast.html
87 700244
>>700242
Нужно чтобы таблетка ставилась ровно посередине в центре условной координаты, даже если корабль стоит чуть сбоку. И нужна проверка не стоит ли уже на этой координате таблетка.
88 700245
>>700244
ну тогда делай как я выше писал
Vector3 spawnPosition = new Vector3(Mathf.Round(ship.transform.position.x), Mathf.Round(ship.transform.position.y), 0f);

это округлённая координата твоего корабля.

и делай Physics2D.CircleCast на этой же координате. только не забудь исключить слой с самим кораблём. тебе Physics2D.CircleCast сообщит были ли там коллизии и если их нет, то ставь таблетку
89 700246
>>700245
Проблема в том, что все астероиды стоят с небольшим смещением по X координате, поэтому каждый из них чуть правее\левее и при округлении таблетки ставятся не на нужную координату, а со смещением На пике этого не было видно, я проебался чутка
16008900507630.png27 Кб, 557x409
90 700248
>>700246
а зачем так сделано? сделай верно. как тебе ещё вычислить координату Х? например в этом положении у тебя рядом только один коллайдер и тут в лучшем случае можно получить Y ко коллайдеру
91 700249
>>700248
Ну я же говорю, такое ТЗ, нужно чтобы они стояли со смещением. Если хочешь дай ТГ - скину тебе его полностью, чтобы понятней было.
92 700251
>>700249
а сюда кинуть нельзя чтоль? хуле мне тут свой тг палить
image.png34 Кб, 739x393
93 700255
>>700251
Как-то так. + все астероиды смещены в сторону, пикрил.
При нажатии на правую часть экрана, корабль должен устанавливать таблетку. (DONE)

Таблетка может быть установлена только в пустую клетку

Таблетка должна быть установлена в середину клетки.

Функционал установки таблетки должен быть реализован через работу с координатами коллайдеров камней, находящихся вокруг корабля (пересечение коллайдеров)
16008956888860.png36 Кб, 739x393
94 700257
>>700255
если я верно понял, то пустые клетки это те что я отметил красным. тогда делается следующим образом:

тебе нужно сделать Physics2D.CircleCast из положения своего корабля с радиусом который может захватить 4 астероида, но не больше (синий круг). тут нужно не забыть, что нужно использовать contactFilter чтоб игнорировать сам коллайдер корабля, иначе корабль будет возвращаться в результате коллизий тоже

CircleCast возвращает int значение с кол-вом коллайдеров с которым он взаимодействует и ещё заполняет массив RaycastHit2D[] всеми хитами.

тебе нужно чтоб CircleCast вернул 4 и чтоб все коллайдера были астероидами. для нубского варианта прокатит и по тегу проверка.

таблетку ты будешь ставить по координатам хитов (x1 + x2 + x3 + x4) / 4 и (y1 + y2 + y3 + y4) / 4 и тогда она будет точно там где красная точка
95 700258
>>700257
Завтра уже как проснусь попробую, спасибо.
96 700262
>>700199
Колизеусом я сейчас пользуюсь и он мне нравится больше чем стандартное юнете решение.
На фотоне уже тонна игр сделана и туториалов, будет легко разобраться.

>Mirror


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

>>700201
Я хотел сказать, что если ты создашь спрат с размерами 1,1,1 и отскейлишь его до 2,2,2 тебе нужо будет посчитать world distance т.к. текстура будет мылиться
97 700266
>>700153
DECAL
E
C
A
L

https://docs.unity3d.com/ru/530/Manual/shader-NormalDecal.html

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

Перезаписывать текстуру через интеграцию спрайта еще больше говна поешь, т.к. сначала придется спрайт переводить в текстуру, потом перезаписывать саму базовую (фоновую) текстуру. Охуеешь от того как это ресурсоемко, особенно если фоновая текстура имеет большое разрешение.
98 700267
>>700217
Screen.width даст ширину экрана, под него подгончешь спрайт.
99 700268
>>700231
Вешаешь скрипт на объект который двигается, в нем запоминаешь ссылку на объект NavMeshAgent, в скрипте в апдейте сравниваешь NavMeshAgent destination с положением объекта с каким-то округлением, если положение совпало делаешь свои грязные вещи. Ну еще как-то нужно фильтровать что объект не сдвинулся с последней точки которой он достиг, думаю сам придумаешь.
100 700271
>>700231
if(navAgent.remainingDistance < 0.1){
navAgent.stop();
PlaySound();
}
101 700274
>>700268
>>700271
Спасибо, ребята! Буду пробовать.
102 700276
>>700257
Можно как-то через ContactFilter игнорировать все, кроме астероидов?
Пробовал сделать через filter.layerMask = AsteroidLayerMask, но дебаг всё равно показывает коллизию и с игроком, и с границами поля. Не совсем понимаю как ContactFilter работает, а мануал не спасает
103 700278
>>700276
Только написал и сам разобрался
image.png14 Кб, 380x191
104 700295
Сосонг, как установить поддержку Android 4.2+?
Или я что-то не понимаю и Android 4.4 будет поддерживать и меньшие версии?
105 700297
Два вопроса юнити господам. У меня прила на юните. То есть полный аналог андроид материала, только на юнете. Меня волнует
1)Почему фпс падает при переходе с 2019.2 на более новые версии? Рили печёт с этого.
2)Кто-нибудь уже работал с on demand rendering api? Как оно? Я делал тесты, и не скажу что батарея очень сильно экономится.
107 700300
>>700257

>таблетку ты будешь ставить по координатам хитов (x1 + x2 + x3 + x4) / 4 и (y1 + y2 + y3 + y4) / 4


Почему-то вычисляются пивот поинты, не могу понять как изменить на центр. Бтв работает, спасибо.
108 700301
>>700300

>Почему-то вычисляются пивот поинты


вроде пивотпоинты обычно и являются центрами, но если тебе нужен центр коллайдера, то в массиве RaycastHit2D[] у каждого элемента ты можешь взять .collider.bounds.center
109 700340
у меня на сцене много юнитов, ну например 5000, и они идут в сторону башни. башня должна атаковать ближайшего юнита. 5000 опросов дистанции в кадре это очень тяжело для мобилы. есть клёвые варианты решения этой проблемы?
110 700355
>>700340
Если у тебя все 5000 солдат в массиве или листе - нет, не сложно, твой компик миллиард таких операций делает в секунду.
А если очень хочется, можешь посмотреть на Unity.Jobs - звучит как то, что тебе нужно - будет паралельно на всех потоках считать дистанцию
111 700358
>>700340
У башни очевидно есть дальность стрельбы? Значит делаем радикальный таргет и опрашиваем только тех кто в него вступил. Если юниты движутся с одной скоростью то ещё лучше, просто записываем по очереди всех юнитов которые старгетились и по этой же очереди потом их расстреливаем.
112 700368
>>700340
Сортированый список, от ближайшего к дальнему
113 700580
>>700355
к сожалению это не так. собери простой проект, сделай инстансы спрайтов и считай между ними расстояние. ты удивишься как быстро начнёт загибаться приложение

>>700358
что такое радикальный таргет? юниты движутся не с одной скоростью

>>700368
мне этот список сортировать же постоянно надо, следовательно в каждом кадре нужно замерять расстояние

пока что я сижу читаю про quadtree, но похоже что и этого мало. есть вариант с расчётом дистанции внутри compute shader, но это на данном этапе слишком сложно
114 700604
>>700580
Для дохуища объектов как раз и придумали всякие ECS и Jobs. Или используй их, или терпи слайд-шоу. Никаких заклинаний не существует.
115 700605
>>700340
мне кажется можно разбить на клетки игровое поле
так збс и столкновения находить, и для твоей задачи тоже ок
116 700606
Сколько платят за 30 секундный рекламу без скипа за снг пользователя?
ПРОБЛЕМКА 117 700617
Сап двач, почему у меня Unity обратно не меняет размер объекта? По логике же всё отлично вроде как
118 700618
>>700617
Добавь else перед вторым if'ом.
У тебя он выполняется сразу же после первого if'а
119 700658
>>700618
Так странно, вчера пробовал с else, и тоже ничего не работало. А сейчас решил перепроверить, перед тем как тебе написать, и вдруг внезапно всё заработало

Люблю программирование. Спасибо всё равно
120 700660
>>700618
Но почему с if не работает? По идее он же должен одно из этого выполнять, так как они противоположны
121 700665
>>700660
в первом иф устанавливаешь значение в true, и во втором сразу же проверяешь
122 700674
>>700665
Но ведь если в первом if будет true, то во втором if будет false по условию. И наоборот: если в первом false, то во втором true

Разве не должно в таком случае выполняться только одно из условий?
123 700676
>>700617
Поясняю -

if(cubeisbig)
{
Если bool - true выполняем эти действия
}
else
{
Если bool - false эти
}

Всё, тут нечего ебаться, одновременно они никак не могут выполниться даже если во время тика произойдёт изменение этой самой bool.
Боже хотя бы основы программирования изучили, или хотяб уроки с ютуба поделали, основы основ же.
124 700677
>>700674
В первом if ты ставишь cubeisbug = true, после него сразу выполняется второй if, который принимает твое cubeisbug = true и возвращает к cubeisbug = false.

Если во втором добавишь else if (или просто else) - оно не будет выполняться, если выполнилось действие до него

прим.
if (оп = хуй)
{
оп != хуй
}
else if (оп != хуй)
{
оп = хуй
}


Если оп у нас хуй, то выполнится первое действие, а второе - нет. Если же тут будет if + if, то выполнится сначала первое, потом второе.
125 700693
Не очень понимаю, как корректно организовать взаимодействие сущеностей. Как лучше организовать архитектуру, чтобы норм было? Есть какая-то обучающая инфа по архитектуре всего проекта?
1026061260.jpg279 Кб, 838x1200
126 700694
>>700693
SOLID тебе в помощь.
И пикрилейтед.
127 700696
>>700694
Спасибо!
128 700698
>>700674
ты в первом ифе условие меняешь а
саму переменную меняешь, которую потом проверяешь
129 700699
>>700676
>>700677
>>700698
Вроде дошло, спасибо
130 700736
Анончик, тут назрел такой вопрос

У меня есть нерабочий скрипт foo.cs (на самом деле у меня там сотни таких скриптов - это древний ассет, который на новой юньке не работает - но там много того что мне подходит, куда я смотрю).

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

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

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

Я просто заебался два проекта юнити запускать. Ноут, неудобно, да еще и тормозит.
131 700738
>>700736
В самое начало скрипта пишешь "#if false", а в самый конец "#endif"
132 700741
>>700736
Если файлов много, то можно попробовать добавить в начало названия папки, где они лежат добавить "~" или ".", тогда юнька их будет игнорировать
x.mp47,3 Мб, mp4,
1840x1024, 0:09
Как убрать шлейф за синим прицелом? 133 700786
Как убрать шлейф за синим image? ничего не гуглится.
134 700788
>>700786
думаю это твой ебучий монитор
135 700789
>>700788
Я же видео записал на компе а не с монитора
136 700791
>>700789
дык у меня шлейфа на твоём видео и нет
137 700792
>>700791
ну проскакивает слева справа от синих штук - видно же
138 700794
>>700792
у меня на экране ничего не проскакивает, потому я и думаю что это твой ебучий монитор
139 700796
>>700792
Бля, да походу монитор ебучий - посмотрел на паузе
140 700823
>>700736

> Как сделать чтобы гребанная юнити игнорировала этот скрипт?


https://docs.unity3d.com/Manual/SpecialFolders.html
Последний раздел.
transparent.png798 Кб, 2141x1232
141 700844
Почему материал с прозрачной текстурой не отбрасывает тень?

У юнити уже имеется такая встроенная фича?
hdrp.png902 Кб, 1963x742
142 700849
Короче это работает только в HDRP режиме с флажком Alpha Clipping
143 700886
>>700340
ECS + JOBS. Со столь объемным массивом объектов только так, придется изучать эту область. Но работать будет заебись.
144 700887
Есть три класса: Incel, Listva, Sich, которые наследуют от общего класса Dvacher, который наследует от монобихевиора.

Класс двачер имеет открытые поля и абстрактный метод PuknutVTred().

Каждый из трех классов имеет свои уникальные поля и методы.

Реализуемый метод PuknutVTred вызыватся во всех экземлярах классов инцел, листа и сыч через цикл по списку типа Dvacher.

Вопрос - как из списка объектов Dvacher получить ссылки на объекты инфела, листвы и сыча?
145 700888
>>700887
Загугли что такое интерфейсы, скорее всего это то что тебе нужно.
image.png22 Кб, 480x332
146 700938
147 700979
>>700887
Не сильно понял что тебе нужно. Это?
148 700982
>>700979
нужно получить ссылку на объект, как там написано было. Т.е., я так понимаю, что речь идет о том, чтобы из листа dvachers по вызову индекса, например, dvachers[0] можно было вернуть экземпляр не родительского класса, а именно экземпляр класса Incel, т.к. он имеет индекс 0; по dvachers[1] получить экземпляр Listva и т.д.
149 700991
>>700982
Ну в примере так оно и есть. Так как ты не знаешь, какой именно наследник находится по данному индексу, нужно делать проверку через is.
150 701006
>>700991
В примере не возвращается экземпляр класса, а вызывается метод в нем.
151 701007
>>701006
Так у тебя есть ссылка на него, делай с ним что хочешь, хоть метод вызывай, хоть в рот еби.
image.png357 Кб, 600x337
152 701087
как сделать такую яркую картинку?
153 701133
>>701087
Использовать такие яркие цвета.
01.png12 Кб, 1073x638
154 701300
У меня есть условная платформа, которая рандомно скейлится на Instantiate(). Я хочу, чтобы она использовала тайлящийся спрайт, но изменение скейла объекта в трансформе растягивают его, а не тайлят, даже если в спрайт рендере включет тайлинг.
Вопрос: как можно имплементировать скейлозависимый тайлинг спрайтов?
Желательно легковесный на ресурсы, это гиперказуалка на мобилки.
155 701383
Привет, двач. Сегодня начинаю изучать юнити и постепенно делать на нем небольшую 2D стратегию. Eсли что, поможете? Я знаю C# более-менее, но игры на нем никогда не писал (только "змейку" в System.Drawing).
156 701416
>>701383

>Сегодня начинаю изучать юнити и постепенно делать на нем небольшую 2D стратегию


И ты уже обосрался с масштабом.
Если уже делал змейку, то сделай её ещё раз, но на юньке. А ещё лучше понг. А потом простенький платформер или раннер. А потом тетрис.
Стратегии это невъебенно сложный жанр требующий понимания движка которое приходит спустя месяцы дроча.
157 701420
>>701416
Понг только что закончил делать, по туториалу. Моя "стратегия" - это игра наподобие Plants vs Zombies, по которой тоже есть туториалы, причем даже не высокого уровня (180 строк кода).
158 701476
>>700886
я написал quadtree и моя проблема ушла. поднял фреймрейт с 20 до 110
159 701483
Есть годные туториалы которые учат делать менюшки? Желательно с кучей вкладок и сменяймых окон
Можно на английском
160 701695
У меня есть юниты и соответственно компонент их характеристик. Статы у юнитов различаются. Это нормальная практика, когда изменения в характеристиках прописаны в самой иерархии объектов?
Я просто не представляю как это сделать скриптово. Разве что сделать один компонент уникальный для каждого юнита, а второй, общий, будет перенимать из него статы. (Сам задал вопрос, сам ответил)))) Но все равно хочу услышать ваше мнение по поводу практики и как лучше делается это.
161 701698
>>701695
Создаётся скрипт база всех юнитов(характеристики), при создании юнита от туда по его id назначаются нужные характеристики, это самое лучшее решение. Если же у каждого юнита свой скрипт с назначение, это тоже решение но намного хуже оптимизированное, и сложнее отлаживаемое.
162 701701
>>701698
Я правильно понимаю, если у меня на один юнит примерно 30 характеристик, всего юнитов 10, то в скрипте-базе должно быть 300 строчек характеристик?
163 701702
>>701701

>создаешь один скрипт с хар-ками через [serializedField]


>вешаешь на всех юнитов


>настраиваешь через инспектор


>сохраняешь префабы


>???


>Profit

164 701704
>>701702
А, то есть все таки через инспектор\иерархию.
Ладно, спасибо, главное не запутаться.
165 701705
>>701704
Ну это самый простой вариант. Можешь конечно сделать один скрипт не совсем понимаю что тебе пойдёт, но думаю подойдёт скорее интерфейс, чем монобехейвер и в скрипте каждого юнита задавать ему в старте через ID юнита (который ты тоже сам ему присвоишь) его хар-ки, но как по мне это куда геморней и проще и быстрей уже будет через инспектор
166 701707
>>701705
Благодарю
167 701742
>>701087
Шейдеры.
168 701773
Анон, как вы дебажите под iOS? Это ж пиздец гемор по сравнению с ведром, или я что-то не то делаю?
170 701969
>>701133
Чёт кекнул с ответа.
171 701990
>>701958
Нахуй ты мне это говно скинул, дебик?
172 701992
у меня пена ротом уже идёт. это вообще возможно нарисовать свой растровый шрифт и использовать textmesh pro? я нарисовал в фотошопе буквы и цифры которые мне нужны, а как впердолить это в tmp я ниебу. вроде там можно генерить шрифты из ttf, но как сгенерить ttf из изображения тоже нихуя не пойму. помогите аноны
173 702009
Посоны, совет нужон. Есть scriptable object класс модификация, он содержит тип слота в который ставится и массив характеристик, а также некоторые другие параметры, но не суть. Этих модификаций предвидится большое количество, и надо как-то их организовать в нечто вроде картотеки, чтобы например мастерская первого уровня могла просто и без индусского кода получить все модификации первого уровня и показать их игроку например.

Можно конечно вручную создать класс базы данных модификаций и заносить туда лапами каждую по одной, но это пиздец! А если я удолю одну, то надо будет и лезть в базу и там выпиливать вручную ее упоминание. А если будет сто модификаций, а если 500? Надо как-то автоматом закидывать модификацию в массив в базе при создании и выпиливать ее оттуда тоже автоматом если она удаляется, ну и апдейтить, когда я меняю ее характеристики. Можно как-то такое организовать?
174 702012
>>702009
Ну да, организовать такое как-то можно
175 702031
Я правильно понимаю, что порядок вызова Awake и OnEnable сохраняется только для конкретного скрипта на объекте?

Если на одном объекте 2 скрипта с Awake и OnEnable. То после активации объекта сначала в одном скрипте вызовется Awake->OnEnable, а потом в другом Awake->OnEnable.

Но как быть, если в Awake происходит инициализация скриптов и при этом один из скриптов зависит от другого? Хули эти пидорасы из юнити не сохранили порядок вызова на уровне объекта.
176 702032
>>702031
неправильно понимаешь
Awake при создании обьекта, OnEnable перед первым кадром
177 702033
>>702032
Сейчас вот такой порядок вызова:
Script_1.Awake()
Script_1.OnEnable()
Script_2.Awake()
Script_2.OnEnable()
Script_3.Awake()
Script_3.OnEnable()

Script_1.Start()
Script_2.Start()
Script_3.Start()

Но что, если Script_1 зависит от Script_2. И Script_1 в OnEnable ожидает, что Script_2 уже инициализировался. Но на деле же, в Script_2 метод Awake всё ещё не был вызван. Поэтому придётся делать инициализацию по запросу, что неудобно.
178 702035
>>702033
а, перепутал OnEnable со Start, но что мешает использовать старт в таком случае?
179 702036
>>702035
Это относится к интерфейсу. Игрок нажимает кнопку, включается окно с его инвентарём. То есть задаётся Active объекта, а далее скрипты через OnEnable отображают контент.
image.png56 Кб, 628x527
180 702038
>>702031

>и при этом один из скриптов зависит от другого?


Можно через Script execution order. https://docs.unity3d.com/2019.4/Documentation/Manual/class-MonoManager.html
181 702039
Уже несколько дней ломает, как сделать UI по макету пикрил. Есть область вывода записей. Каждая запись это объект UI с названием и областью для вывода записей потомков. Каждая вложенная запись также имеет область вывода записей-потомков. Я им ставлю vertical layout group, и потомки нормально выводятся лесенкой, но записи одного уровня вложенности выводятся неправильно. Они должны учитывать размер друг друга, а они лепятся поверх вложенных, на расстоянии, определенном в vertical layout group - spacing.

Как сделать так, чтобы вложенные элементы каждого элемента включались в расчет его высоты?
182 702040
>>702039
Посмотри компонент ContentSizeFitter.
183 702041
А, и LayoutElement, если ты его не заметил.
184 702048
Такой вопрос:
Есть класс для разных уровней mvc:
- В модели храню данные
- В контроллере описываю логику
- В вью пытаюсь иметь только связь с геймобъектами и, возможно, анимацией.

Как взаимодействовать слоям между собой? Как взаимодействовать разным игровым объектами между собой?

Контроллер должен хранить ссылку на экземпляр модели и вьюхи?

Как должны взаимодействовать делегаты разных игровых объектов между собой? Должен быть какой-то класс, который содержит их экземпляры, или они подписываются на действия друг друга или как?
185 702050
>>702048
И более того - как взаимодействовать со всякими контроллерами\менеджерами ui, звука и тп?
186 702051
>>702048

>MVC


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

Тебе нужно почитать про Dependency Injection в реалиях юнити. Посмотреть аналог Service Locator'a для юнити.

- Model: какой-нибудь интерфейс, через который ты получаешь данные. Реализовывать его может ScriptableObject.
- Controller: скрипт, который запрашивает интерфейс репозитория через сервис локатор и потом получает нужные данные.
- View: ещё один скрипт, который привязан к геймобджектам на сцене. Контроллер ему говорит, у игрока 10 HP, а скрипт вьюшки выводит его уже на конкретный Text компонент и изменяет Progress Bar.
187 702054
>>702051

>Ты уверен, что тебе нужны все эти извращения из Веба?


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

>Тебе нужно почитать про Dependency Injection в реалиях юнити. Посмотреть аналог Service Locator'a для юнити.


Есть ли примеры? Я слышал, что специальные DI контейнеры для юнити такие себе.

Спасибо!
188 702057
>>702054

>Есть какой-нибудь пример\статья по адекватному построению в юнити?


Посмотри многочисленные видео по запросу "unity architecture". Есть много докладов от самих разработчиков Unity. Посмотри "Unite Austin 2017 - Game Architecture with Scriptable Objects" и "Unite 2016 - Unity Architecture in Pokémon Go".

Ещё чужой код полезно смотреть.

>Есть ли примеры? Я слышал, что специальные DI контейнеры для юнити такие себе.


Конечно. Я не пользовался DI, поэтому ничего конкретного посоветовать не могу.

Может если ты приведёшь конкретные примеры для которых нужно продумать архитектуру, то я смогу что-нибудь посоветовать.
изображение.png51 Кб, 1040x663
189 702066
>>702057
Спасибо большое за помощь!

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

Сейчас реализовано так:
Есть базовый класс Interactable, все производные классы от него(например, включение тв или переход в другую комнату) бродкастят сообщение, о том, что действие возможно и передают в сообщении экземпляр класса, который соответствует конкретному действию (переход в другую комнату, включение тв и тп).
Подписчики - это, как правило, ui(который, отображает игроку, что действие доступно) и ActionExecutor, который управляет действиями. Как только ActionExecutor получает сообщение, он сохраняет его у себя и проверяет в update, была ли нажата кнопка , требуемая для этого действия (она хранится в самом классе действия).
Если да, то там большой ActionExecutor дергает нужные классы и инициирует действие. Вот тут и начинается путаница(См скрин 1), как он дергает остальные. Сейчас есть объект app, который содержит ссылки на остальные объекты (а остальные на него), часть через него. еще часть -через мессенджер.

Например, после того, как тв включили, громкость должна регулироваться после смены комнаты (тип, хуже слышно в другйо комнате) - как это должно быть реализовано? Сейчас объект со звуком подписывается на сообщение о смене комнаты,но в целом все сводится к "отправить сообщение, чтобы отправить сообщение"
190 702068
>>702066
На первый взгляд могу предложить такое решение.

1) Логика телевизора хранится в скрипте Televisor : MonoBehaviour. У него будет один метод внешний Turn(). Внутри нужно хранить ссылку на текущую комнату, которая владеет телевизором и ссылку на игровой мир. Игровой мир будет представлен синглтоном. Ссылку на комнату телевизора можно задать через инспектор, либо найти как-то так:
tvRoom = World.FindRoomOfObject(gameObject);

В методе Update делаем проверку:
if (tvRoom == World.CurrentPlayerRoom)
SetHalfVolume();
else
SetFullVolume();

2) На объект телевизора вешаем скрипт, который реализует интерфейс IInteractable.Interact(Character character). Скрипт должен содержать UnityEvent. Внутри Interact пишем:
onTrigger.Invoke();

Далее через инспектор вешаем на onTrigger вызов метода Televisor -> Turn().

3) Для взаимодействия игрока с объектом нужно запросить компонент:
var interactable = targetObject.GetComponent<IInteractable>();
interactable.Interact(this);
191 702069
>>702068
Спасибо!
192 702074
>>702068
Все-таки еще вопрос:
На смену комнаты завязано несколько событий:
1) Включение следующей и выключение текущей комнаты
2) Регулировался звук разных объектов (рассчитывается в зависимости от расстояния комнаты от текущей - т.е. метод должен дергаться каждый переход). Объекты могут менять по ходу игры.

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

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

>В методе Update делаем проверку:


>if (tvRoom == World.CurrentPlayerRoom)


>SetHalfVolume();


>else


>SetFullVolume();



Есть ли смысл каждый апдейт дергать, если менять звук по факту нужно только при переходе из комнаты?
193 702081
Application.LoadLevel или SceneManager.LoadScene?
194 702090
>>702074

>Есть ли смысл каждый апдейт дергать, если менять звук по факту нужно только при переходе из комнаты?


Смысл в том, что это гибкое решение. Ты можешь легко его изменять или дополнять. Вдруг ты захочешь динамически изменять громкость в зависимости от дистанции. Или в зависимости от препятствий. А если игрок временно оглох? Ты ещё одно событие добавишь на этот случай? Или игрок зайдёт в звуконепроницаемую комнату. Ты всеми этими событиями связываешь себе руки.
195 702091
>>702081

>Application.LoadLevel


Уже устарел давно. Используй SceneManager.
196 702092
>>702090
Это аргумент, спасибо!
197 702108
Где и какие примеры готовых и адекватных игр в плане архитектуры можно посмотреть? Интернет выдает статьи с "make your first game"
198 702259
>>702108
затрахался с этим вопросом, везде лепят в духе brackeys от балды и так что хуй потом добавишь новый функционал без батхёрта, НО! пришёл к выводу что куда полезней чем трахаться с этим вопросом в лоб, просто делать мелкие игры и через процесс приходит понимание куда и чего вставлять. за последний год код и архитектура стали в разы чище и лучше, но всё ещё есть пробелы
199 702267
Вот ещё полезное видео на тему архитектуры

Unite Austin 2017 - S.O.L.I.D. Unity
https://www.youtube.com/watch?v=eIf3-aDTOOA
Inspirational games made with Unity – Fall 2020  Unity.mp419,6 Мб, mp4,
1280x720, 1:15
200 702333
>>698843 (OP)
Inspirational games made with Unity – Fall 2020
201 702381
>>702108

Genshin Impact
202 702386
>>702381
Почему это говно завирусилось? Интернет настойчиво мне кидает это название. Чем больше кидает тем больше я не хочу иметь дело с этим.
trADzhldbj8.jpg818 Кб, 1920x1080
203 702393
>>702386
Зря, очень аддиктивная гриндилка.
Похуй что клон ботвы, зато какой. Даже не клон, а развитие идей. Мне вот стилистика зельды не зашла, а тут прям то что надо, и вайфу есть, и боёвка продуманнее. Кое-что кастрировали конечно (физических паззлов например почти нет), но в угоду чему-то другому.
Настораживает что она фритуплей, но я наиграл 30 часов, каких-то пейволлов пока замечено не было. К тому же на старте дают до жопы кристаллов за регистрацию и последующие активности, за которые я выбил пару 4 персов, одного 5 и несколько пушек 4*. В принципе весь контент спокойно проходят и ф2п персами не юзая кристаллы вообще, но всё может поменяться в будущем.
204 702401
>>702267
Збс видос
205 702433
>>702393

>Даже не клон, а развитие идей.


Какое же это развитие идей, если физон вырезали?
206 702444
>>702386

>Почему это говно завирусилось


Китайцы деньги блогерам и стримерам отсыпали
Месяц пройдет, все забудут
207 702504
Overthrowing the MonoBehaviour Tyranny in a Glorious Scriptable Object Revolution
https://www.youtube.com/watch?v=6vmRwLYWNRo
208 702505
>>702386

>Чем больше кидает тем больше я не хочу иметь дело с этим.


Зря, постарайся избавиться от мыслей "мейнстрим параша, а я - нитакойкакфсе с уникальными вкусами", а то много хорошего и интересного пройдет мимо тебя.
Я в соседнем треде отписывался, почему это важная игра для юнити >>702406 →
Думаю, на сегодняшний день это самая технологически продвинутая и высокобюджетная игра на юнити, демонстрирующая на практике потенциал движка, до этого такого масштаба еще никто не делал.
Поправь меня, если есть более продвинутые/высокобюджетные игры на юнити.
209 702533
>>702505

>парашная китайская анимедрочильня с фирменным китайским бекдором "античитом"


>интересное


Ботнет залогинся.
210 702554
Destroy или DestroyImmediate?
211 702555
>>701476
Че за квадтри?
212 702556
>>702259
Лол, а ты чтотли был из тех долбаебов, которые без опыта разработки от а до я, пытаются сделать убийцу скайрима?
213 702560
>>702504
Охуительный подход к архитектуре. Надо чаще использовать скриптаблеобжект.
214 702562
>>702554
Второе в документации не советуют использовать.
215 702598
>>702554
Destroy убивает обьект только в самом конце кадра, когда все соотв. калбеки прилетели, т.е. на момент дестроя обьект все еще не нулл.
DestroyImmediate форсит флаг что обьект убит сразу на момент вызова, но может приводить к багам и не рекомендуется типо.
216 702649
>>702554
Мануал
217 702681
>>702555
на вики доступная статья есть. по сути ты разбиваешь объекты на группы в каждом кадре и опрашиваешь только нужные тебе группы тем самым очень сильно уменьшая кол-во запросов
, 218 702719
Какие обычно взаимоотношения у MVC классов?
Контроллер имеет ссылки на инстансы модели и вьюхи? В какой момент(и где) создаётся контроллер и модель? Как другие классы получают данные из какой-то модели или тригерят контроллер?
219 702735
Аноны, ньюфаг нуждается в помощи.

Есть комната, состоящая из тайлов стен и пола. Каждой координате соответствует только один тайл, где нет тайлов геймобджектов нет вообще, это все я уже проверил - пик 1.

Настройки слоев, тагов и коллайдеров тайлов стены и пола на пиках 2 и 3.

На персонаже висит код, пик 4. В инспекторе для GroundFloor я выбрал соответствующий слой.

Но возникает ситуация, что персонаж не останавливается перед стенкой, а входит в стенку, но при этом когда он в стенке в следующий тайл стенки (слева или справа) он войти уже не может, только вернуться на тайл пола. Что я делаю не так?
5.png90 Кб, 1440x900
220 702736
>>702735

Пик с тем, как персонаж зашел в стену. При этом когда он уже в нее зашел все вроде как работает корректно, на другой тайл стены он не может сдвинуться, в область где тайлов нет вообще тоже, вернуться на тайл пола может.
221 702737
>>702735
Если я не ошибаюсь, то условие для начала движение у тебя содержит проверку, что персонаж столкнулся с объектом с тагом walkable. Ну так на начало движения, если он находится не в клеточке со стеной, он и будет collision с объектом, у которого есть таг walkable. Мне кажется, нужно проверять, что он не сталкивается с объектом с тэгом notwalkable или что-то ьакое
222 702738
>>702737
В смысле если он начинает движение в клеточке с полом
223 702740
>>702737

Добавил стене тег unwalkable, сделал проверку tag. != "unwalkable", теперь он входит в стену и не двигается больше никуда.
224 702742
>>702740
Так убери проверку с волкебл
225 702743
Он сейчас у тебя двигается, только если волкебл касается
226 702745
>>702743

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

>>70274


Зачем тебе проверка волкабл?
Ты ее убрал и после этого работает ожидаемо или нет?
228 702747
>>702746

Не-а, доходит до стены, застревает в ней и даже не может вернуться.
229 702748
>>702747
Можешь полное условие показать?
, 230 702750
Вощем, я бы предложил перенести проверку, что тэг не notwalkable в ты с проверкой, нажата ли кнопка
231 702755
А вы какой порядок публичных полей для скриптов используете? Сначала у вас идут ссылки, а потом параметры, или наоборот?
232 702758
Как в стандартном FirstPersonController сделать так, чтобы игрок когда останавливался, двигался еще какое-то время вперед. Не предлагайте Rigidbody Controller использовать, он вообще неудобный. Перепробовал все, продолжал движение игрока по таймеру, после отпускания W, но все это как-то убого и рывками выглядит, нужна ваша помощь.
233 702760
>>698843 (OP)
Как создать копию лайтмапы в озу?
В случае Texture2D ltluma = LightmapSettings.lightmaps[0].lightmapFar получается ссылка на лайтмапу в видеопамяти. Соответственно, меняя содержимое ltluma, меняется и лайтмапа в видео. А надо иметь независимую копию, с каждым кадром которая будет складывается с мапой/текстурой самописного динамического света и только после этого записываться в видеопамять по адресу оригинальной лайтмапы. Эдакий динамический свет для видеокарт без пиксельных шейдеров, как было в первохл/ку/ку2.
234 702765
>>702758
Ябысделол так. Принцип, надеюсь, поймешь, копипастить несоветую - дроч памяти. А вообще имхо хуёвая фича, создается ощущение симулятора катания на льду.

public float CharSpeed = 10.0f;
public float BrakeSpeed = 3.0f;
protected float acceleration = 0.0f;
Update()
{
if (Input.GetKey)
{
acceleration = CharSpeed;
}
if (acceleration > 0.0f)
{
move(dirrection,acceleration Time.deltaTime);
acceleration -= BrakeSpeed
Time.deltaTime;
}
}
}
235 702769
>>702765

>А вообще имхо хуёвая


Дрочь какая-то получается, проще наверное будет повторять действия игрока какое-то определенное время, но у меня не получается, кто может посмотреть FirstPersonController из Standard Assets и скинуть сюда решение, буду благодарен.
236 702780
>>702769
тебе скинули самое простое и стандартное решение
повторение намного сложнее и получится говно
15992110057821.png346 Кб, 600x398
237 702784
>>702719
Бамп вопросу. Покажите какой-нибудь пример из вашей архитектуры, если кто может, плз
238 702798
>>702780
Где можно почитать все фишки языка C#, которые используются в Шилдте, нет времени все это читать, нужно каждую фишку быстренько изучить, делегаты, ну и прочую полезную залупу, помогите плз.
239 702799
>>702765

>копипастить несоветую - дроч памяти


Почему дроч памяти? Делаю примерно так же.
240 702801
Нашествие кирила?
241 702802
>>702801
Кирилла правильнее.
242 702822
~пару сотен достаточно простых объектов, физика жрет ~30фпс
Обычные триггеры и кинематика, никакой статики-динамики.
Как фиксить?
243 702827
>>702822
1)Объектов оказалось было чуть больше, раза в 2 или 4, то есть ~500...
2)Отключил Vsync. Жизнь хороша!
Был бы рад услышать еще предложения.
CpCqbKiWcAAcvm7.jpg large.jpg47 Кб, 604x411
244 702840
Сделал подобие сервис локатора, но не понял, зачем

Короче, есть класс, производный от monobehavior. Назовем Zalupa.
У него есть [SerializeField] LIst, в который можно впихнуть все менеджеры -хуенеджеры, которые производные от ScriptableObject.
Этот класс имеет метода Get<T>() where T : ScriptableObject - выкидывает инстансы этих классов по типу.

Как дальше сделать по -человечески: чтобы не в каждом классе дергать эту залупу, а какую то логическую прямую получить?
245 702861
>>702822
1 - В настройка Project.Time - fixedDeltaTime поменяй с 0.02 на 0.04, будет буст 50% от физики (т.к. она будет считаться реже в 2 раза)
2 - там у ригидбодей есть метод определения столкновений, заметил что descrete (или как-то так) жрет меньше всего, но тогда через него могут объекты проходить на высокой скорости
>>702827
Даа, vsync портит жизнь всем и на всех платформах, странно что эта хреновина так плохо работает

>>702840
Вообще не понял.. тип ты идешь по своим InterfaceZalupa делаешь .Get<SmallZalupa>() просто чтобы скастить объект?
Попробуй так:
switch(zalupaInstance){
case SmallZalupa smZalupa:
smZalupa.MakeHugeCock();
break;
}
>>702798
К сожалению "быстро" не получится, я перечитал оч много книг и ковырялся в clr чтобы понять это всё на "нужном" уровне.
А если просто то делегат это ссылка на метод, например:
void CockMethod(){ / empty / }
в другом методе или как переменная:
Action methodLink = CockMethod;
methodLink();
Ну и типов делегатов несколько, я взял самый простой, а они могут принимать параметры и возвращать результаты и тд
>>702784
У всех свои велосипеды, если смотреть средне-сложные проекты - черт ногу сломит.
Рекомендовал бы держать все данные в "доступном слое" т.е. MonoBehaviour должен ссылатся на какой-то объект, но не быть главным объектом (как это делается во всех туториалах ютуба или самой юнете).
Рекомендую посмотреть сурсы HL1 т.к. там идет глубокое взаимодействие NPC с миром и при этом у всех типов NPC разные триггеры и условия.
После знакомства с сурсами халвы станет сразу понятно откуда у всех ECS и DOTSов ноги растут (только растут как-то криво)
245 702861
>>702822
1 - В настройка Project.Time - fixedDeltaTime поменяй с 0.02 на 0.04, будет буст 50% от физики (т.к. она будет считаться реже в 2 раза)
2 - там у ригидбодей есть метод определения столкновений, заметил что descrete (или как-то так) жрет меньше всего, но тогда через него могут объекты проходить на высокой скорости
>>702827
Даа, vsync портит жизнь всем и на всех платформах, странно что эта хреновина так плохо работает

>>702840
Вообще не понял.. тип ты идешь по своим InterfaceZalupa делаешь .Get<SmallZalupa>() просто чтобы скастить объект?
Попробуй так:
switch(zalupaInstance){
case SmallZalupa smZalupa:
smZalupa.MakeHugeCock();
break;
}
>>702798
К сожалению "быстро" не получится, я перечитал оч много книг и ковырялся в clr чтобы понять это всё на "нужном" уровне.
А если просто то делегат это ссылка на метод, например:
void CockMethod(){ / empty / }
в другом методе или как переменная:
Action methodLink = CockMethod;
methodLink();
Ну и типов делегатов несколько, я взял самый простой, а они могут принимать параметры и возвращать результаты и тд
>>702784
У всех свои велосипеды, если смотреть средне-сложные проекты - черт ногу сломит.
Рекомендовал бы держать все данные в "доступном слое" т.е. MonoBehaviour должен ссылатся на какой-то объект, но не быть главным объектом (как это делается во всех туториалах ютуба или самой юнете).
Рекомендую посмотреть сурсы HL1 т.к. там идет глубокое взаимодействие NPC с миром и при этом у всех типов NPC разные триггеры и условия.
После знакомства с сурсами халвы станет сразу понятно откуда у всех ECS и DOTSов ноги растут (только растут как-то криво)
246 702863
>>702861

>поменяй fixedDeltaTime 50% буст


Ты няша
247 702873
>>702863

>Ты няша


Нет ты
248 702877
>>702861
Спасибо! А как в случае 2д игры всё-таки обычно:
Вью висит на конкретно объекте и является производной от monobehavior. Какая обычно связь с контроллером, который либо просто класс, либо скриптабл обжеккт? Он находится и создаётся во вьюехе или где обычно?
249 702879
>>702877
2д так же как и 3д работает.. или я вопроса не понял.
Ты MVC или MVVM хочешь сделать?
Самый простой способ (как мне кажется) держать ссылки на основные классы в синглтонах (GameManager какой-нибудь) и из твоей вьюхи можешь дернуть через евенты инспектора GameManager.YourStaticMethod, но думаю лучше дергать не напрямую а из вьюхи.
250 702880
>>702879
Во, норм варик. Спасибо!
251 702895
>>702873
>>702863
Вы тут потрахайтесь ещё.
252 702901
Стоит ли переходить с 2019.2 на 2019 lts или 2020.1?
253 702903
>>702901
Ну когда я перешел с 2019 lts на 2020 у меня пропал баг перетаскивания окна (если менял размер внутренних окон, весь редактор становился черным и вылетал с ошибкой стабильно)
254 702920
Use Unity to bring your imagination to life
https://www.youtube.com/watch?v=ifqpTOXEr1Q
255 702930
Аноны, помогите, пожалуйста, разобраться в чем проблема. Я создал простенький таймер обратного отсчета. Он считает от 10 до 0.

1. Таймер запускается после нажатия на кнопку Start/Restart.
2. Если время обратного отсчета еще не истекло и нажать Start/Restart, то отсчет пойдет по новой.
3. Если время обратного отсчета истекло и нажать Start/Restart, то отсчет тоже пойдет по новой.

Проблема:
Когда во время отсчета я нажимаю на кнопку, то все работает, как надо. Но когда время истекает и я нажимаю на кнопку, то таймер больше не запускается и отображается цифра 1.
256 702945
>>702930
Ты нихера неправильно сделал. Могу за 500 р. сделать тебе правильно.
257 702948
>>702945

>Могу за 500 р. сделать тебе хорошо.


исправил
258 702950
>>702948
Бля. Ну ладно тогда.
259 702954
>>702945
Эх, жаль. У меня нет денег
image.png44 Кб, 1240x538
260 702981
Вкатываюсь с абсолютного нуля в эту вашу решетку. Чому он кириллические строки не розумиет? Что сделать чтоб кириллицу можно было юзать?
image.png52 Кб, 1384x527
261 702987
>>702981
А впрочем похуй, уже сам нашел
262 702992
Всем привет. Делаю свой клон хотлайн миами, нужно сделать подбор, кидание, хуяние оружия. В голову приходит только скрывать оружее которое я поднял, а потом в момент броска спавнить перед игроком, ну или может прятать на слой ниже и делать то же самое. Но мне кажется что это костыль хуйня говно какоето, как это можно реализовать нормально?
263 702995
>>702930
Короче. Я реализовал данный функционал без корутин и все работает должным образом. Но может кто-то знает в чем тут у меня ошибка? Это может быть баг у Юнити?
264 702998
Как организовать архитектуру, чтобы в каждом менеджере не приходилось делать GameObject.FindObjectOfType<CharacterController>();
265 703010
>>702998
Добавить методы Initialize или Fill (или другое "заполняющее" слово) и заполнять эти менеджеры самому

>>702930
Когда вызываешь StartCoroutine(YourMethod()) - оно возвращает ссылку на коротину, которую нужно отменить, нет?
266 703012
>>702992

Наверное ремув геймобжект оружия, в момент подъема, с добавлением в переменную типа ArmedWeapon значения, соответствующего этому оружию. А по нажатию на кнопку броска ты спавниш перед игроком оружие соответствующего переменной типа, а саму переменную приравниваешь к нулю.
267 703013
>>702998
Если ты повсюду ищешь контроллер персонажа, значит у тебя изначально кривая архитектура.
268 703016
>>703013
Ну пока в одном месте, но уже напрягло.
Наверное, для таких взаимодействий, луче сообщения
269 703018
>>702998
Например через синглтоны. На Awake в CharacterController заполняешь статическое поле Instance, в остальных классах пишешь CharacterController.Instance для взятия экземпляра.
270 703058
Короче, такая проблема:
Есть класс, производны от monobehavior. Все менеджеры приклепляются к нему как ScriptableObjectы, а их "апдейты" прикрепляются к эвенту этого класса, который дергается раз в Update().

Внезапно, в какой-то момент Updatа. Один из методов одного менеджера прерывается на update другого класса. Это возможно?
271 703059
>>703058
А даже не так, гораздо проще.
Метод дергается эвентом, который завязан на столкновение персонажа с объектом. Метод начинает выполняться и в какой-то момент внезапно начинается апдейт другого объекта. МОжет быть такое?
272 703063
>>703059
Чегоо..
В юнетях обработка скриптов идет линейно пока ты не подключишь новые потоки, так вот, ответ- ДА ты можешь вызвать апдейт одного менеджера из другого по своему желанию и работать оно будет как ты сделал.
273 703064
>>703059
Все, разобрался. Если кому-нибудь интересно, то былая такая ситуация:

В ходе выполнения метода я дергал list для которого нет экземпляра. В итоге должен вылететь эксепшн - но он не вылетает, а просто вся цепочка прекращается и происходит переход к следующему апдейту
274 703075
почему оно не выводит стринг в лог?
275 703076
>>703075
а если инт ставлю то выводитса, объясните в чем проблема?
276 703081
>>703075
Всё оно верно выводит, ты в Start объект создал, присвоил wen - стринг этого объекта, потом в конце Start этот объект разрушается вместе с тем полем, в итоге в wen лежит теперь непойми что, поэтому он тебе это и выводит в лог.

Сделай PlayerWeapons pw глобальным: объяви его под "public string wen;"
277 703089
>>703081
Хуйню несёшь. Встретились два шарписта от бога, блеать.

>>703075
pw.currentWeapon - string? Или там есть свойство / метод, который возвращает строку, вроде .ToString() или .Name?

>>703076

> а если инт ставлю то выводитса


Где именно ты ставишь int? Как тип wen?
278 703093
>>703089
Там два скриншота.
>>703075
Видимо, на момент, когда дергается Start() класса weapon, для класса player он ещё не дёргался. Перенест содержимое из метода Start в метод Awake.

Общая идея, что в авейках лучше держать настройки текущего монобихейвира, а в стартах - завязки на другие
279 703095
>>703093

> Перенест содержимое из метода Start в метод Awake.


То есть ты намекаешь, что wen == null?
280 703096
>>703075
ПОРЯДОК ОБРАБОТКИ
В юнете можно указать приоритеты скриптов в твоем случае PlayerWeapons.Start может выполниться ПОСЛЕ Weapon.Start и из-за этого строка будет null.

int выводит (скорее всего 0?) т.к. int wah; даже без прямой инициализации будет иметь default value, а точнее 0.
281 703111
>>703075

>почему оно не выводит стринг в лог?


Потому что ты даже базовые туториалы не посмотрел, лалка.
282 703123

>>70309>>703093


Почему тогда не выводится пустая строка, как в нормальных шарпах?
283 703130
>>703123
Дебаж и посмотри что там лежит
, 284 703133
Посоны, на скок плохо иметь много монобихейвиоров?
Лучше ли по возможности переносить из них все скриптабл оьжекты или ещё лучше в стандартные C# классы, которые не будут иметь дубликаты на стороне юнитовского c++?
На сколько тогда плохо пользоваться юнити эвентами?
285 703134
>>703133
Что значит плохо? Решай проблемы по мере их поступления.

Насчёт скриптабле обджект. Если у тебя есть shared data, то её стоит хранить в СО. Смотри доклады от команды Юнити. Там у них много полезного.

Видео по теме
https://www.youtube.com/watch?v=6vmRwLYWNRo
286 703149
>>703134

>Что значит плохо?


В плане перформанса, т.к. для каждого юнитивского класса есть класс в С++ , а у монобихейвиара еще и постоянно дергающийся коллбек в виде апдейта.

>Решай проблемы по мере их поступления.


Тогда нужно будет все готовое переделывать жи

>Видео по теме


Я смотрел, потом и задался таким вопросом
287 703155
>>703134
Посмотрел все-таки в профайлере, пока все норм. Буду тогда действительно походу решать
288 703162
Как лучше связывать управление персонажа и движение?
1) Персонаж имеет экземпляр класса управления и получает от него инструкции, если нужно двигаться
2) Управление - синглотон и публичным эвентом. Персонаж подписывается и в случае нажатия дергается соответствующий метод
289 703183
>>703162
Двигайся от частного к общему.
1) InputSystem. Надстройка над дефолтным инпутом Юнити. Знает, нажал ли игрок кнопку Стрелять или направление движения, и т.п.
2) CharacterMotor управляет движением персонажа. У него есть публичные свойства, которые указывают хочет ли персонаж прыгнуть или направление движения.
3) CharacterController передаёт из InputSystem команды в CharacterMotor.

Какие ивенты, какие синглоты. Что-то ты городишь за ебанутую, сложную систему.
290 703198
>>703183

> CharacterController передаёт из InputSystem команды в CharacterMotor.


Так вот как они связаны? Композиция, ассоциация или что?

>Какие ивенты


Если по нажатию, кроме действия персонажа, должно еще что-то происходить?
1.jpg121 Кб, 800x600
291 703208
>>703198
Объект 'Character' хранит три синих компонента с изображения. Ссылки на друг друга они получают через GetComponent.

UI узнаёт о состоянии персонажа через компонент CharacterState. Как UI получит ссылку на объект этого компонента? Например, пускай её хранит тот, кто создаёт персонажа. Компонент World. Как к нему обращаться? Через статическую переменную, но пускай это будет не синглтон. У него будет статическая переменная Current. Она задаётся в методе OnEnable и стирается в методе OnDisable. Более того, UI напрямую знать о персонаже не обязательно. Будет ещё один контроллер, который хранит ссылку и на персонажа, и на UI, и обновляет состояние интерфейса в зависимости от состояния персонажа.

Это как я вижу. Но что тебе на самом деле подойдёт - чёрт знает.
292 703222
>>703208
Спасибо! У меня один класс вместо двух Character Controller и motor. Сейчас понял, что хорошая затея разделить, если захочется переиспользовать для движения не через инпут.

> но пускай это будет не синглтон


Почему, какая разница?
293 703229
>>703222

>Почему, какая разница?


Синглтон должен быть доступен всегда и везде. В данном же случае World будет доступен только во время игры и нигде больше. В меню его уже не будет, например. Если ты обратишься к нему в меню, ссылка будет null.
294 703232
То есть в данном случае ты создашь объект уровня сцены, но с глобальным доступом.

Держи код:
https://pastebin.com/igL6WwsU
295 703240
>>703229
Так и синглтон же тоже нулл будет до первого обращения? Ну лан, спасибо, надо посмотреть!
296 703241
>>703240

>Так и синглтон же тоже нулл будет до первого обращения?


Синглтон всегда доступен. Иначе это не синглтон. И его статическая ссылка Instance никогда не будет null.
297 703242
Есть еще такая проблема( я писал где-то выше. но лучше не стало), схожая с той, что выше:
Игрок подходит к объекту, у него отображается, что он может провести действие. Если он нажимает кнопку, происходит действие, которое может затрагивать разные классы (звук, окружение, UI, инвентарь, самого персонажа).
Как лучше сделать - один класс, который будет дергать все, что нужно, в зависимости от типа действия(например, воспроизвести текст, если персонаж хочет что-то сказать\прочитать) или действие само нотифицирует все классы и по эвенту дергауются нужные методы подписчиков?
298 703244
>>703241
Я под синглтоном имею в виду определение типа этого https://metanit.com/sharp/patterns/2.3.php

Экземпляр создается при первом запросе и, если запроса не было, то не создается вообще.
Если экземпляр создается на OnEnable, то действительно создается всегда и, если я верно понимаю, это просто попытка симулировать статический класс, расследуемый от monobehavior но это не точно,
299 703245
>>703244

>насследуемый

300 703246
301 703251
>>703245

>наследуемый

302 703252
>>703096

> int выводит (скорее всего 0?) т.к. int wah; даже без прямой инициализации будет иметь default value, а точнее 0.


Ну вот, значит в строке 12 надо написать:

public string wen = "";
303 703253
>>703252
З.Ы. И/или использовать if (String.IsNullOrEmpty(wen)) return;
304 703261
>>698843 (OP)
Были кнопочки, управляющие геймплеем. Добавил два элемента типа text, в итоге кнопки вообще перестали реагировать на нажатия. Что это может быть?
305 703266
>>703261
Точнее даже так. У меня на сцене два канваса, вот тот, что с кнопками управления, ни на что не реагирует. А второй, с другими элементами, работает нормально.
306 703283
>>703242
Бамп вопросу
307 703332
>>703261
Когда создаешь panel там есть флаг raycastTarget или interactable - выключи эти флаги т.к. по z-order-у они видимо выше и блокируют твои кнопки своими телами.

>>703283
Ну смотри, по идее лучше из евента дергать все классы по отдельности.
Спустя некоторое время если видишь, что некоторые куски повторяются больше чем другие - их уже выносишь в другой класс для "переиспользования"
308 703335
>>703332
Спасибо!
309 703360
>>703242
Тебе нужен Observer, который наблюдает за действиями игрока и он уже дёргает методы, либо Юнити События. При этом Observer ничего не знает об UI, о звуковой системе, о инвентаре и так далее. Он знает только о наблюдаемом объекте, то есть об игроке.
310 703418
>>703360
Спасибо! Я примерно так и сделал:
Когда игрок касается предмета, с которым можно взаимодействовать, этому классу(далее менеджер действий) прилетает нотификация с этим предметом. Менеджер действий подготавливает действие. Если игрок жмакает кнопку использовать, то этот класс дёргает у предмета метод StartAction(). Предмет уже и отправляет нотификация кому нужно и с чем нужно.

Класс предмета можно сделать абстрактным и каждый реальный предмет будет реализовать его (можно было бы с интерфейсом, кстати).
Но я сделал один monobehavior класс, который чисто передает действие менеджеру действий. А само действие - scriptableObject, который вешается на компонент интерактивного предмета
311 703525
Имеет ли смысл читать книжки по шарпу, чтобы лучше понимать юньку?
312 703539
>>703525
А что ты от нее хочешь?
Если делать игры, то, конечно, нужно
313 703540
>>703539
Просто складывается впечатление, что юнитивский шапрп настолько сам в себе, что к классическому яп имеет очень малое отношение.
314 703543
>>703540
Это ложное впечатление. Там нет другого синтаксиса. Есть ситуации, когда какие-то техники C# юнити резервирует для своих нужд(например, конструкторы), но это не значит, что не придется писать на "голом" C#
Может, ты с js путаешь?
315 703544
Как думаете, как лучше организовать работу с git на трёх человек(2 кодера и 1 артист)? Стоит ли разделять работу каждого на разные ветки? Пуллреквесты думаю сразу нафиг, ибо все изменения обсуждаются в мессенджере.
316 703547
>>703544
А код вы в мессенджер тоже проверяете?
Я б стандартно делал. Основная ветка и каждый раз новая на новую бранчу
317 703549
>>703547
На новую функцию
318 703551
>>703549
Каждый раз новая ветка? Как-то это слишком, по-моему. Не лучше сделать ветку main с релизами, ветку dev и каждому разработчику по ветке, из которой потом всё перетекает в dev.
319 703556
>>703551
Так и знал, что ты это скажешь.
То, что я описал - стандартный метод работы с гит.
Если каждый будет вести по своей ветке, вы потом, как пить дать, свою жизнь возненавидите, когда конфликты резолвать начнет. Траст ми.
Хорошая практика - ветка на конкретный не оч большой участок когда. Иначе разъедетесь и пиздец
320 703559
>>703556
Кто-то из нас заводит ветку на фичу и потом любой может вносить туда изменения до тех пор, пока фича не будет реализована? А если потом решим её дополнить?
321 703560
>>703556
Ну, конечно, если вы будете себе дев подливать постоянно и следить за актуальностью веток, то ради бога но этого не будет
322 703564
>>703559
Ну у фичи должны быть конкретные acceptance criteria. Если хотите дополнить(при этом она рабочая на этом этапе), заливайте фичу в дев, делаете бранч от дева.
323 703573
>>703564
Хм, и здесь рекомендуют заводить бренчи на фичи
https://www.youtube.com/watch?v=ISW2nS_v3Ic

Надо подумать, как перейти на такую систему. Пока кажется, что это тяжело...
324 703576
>>703573
Понимаешь, это не зависит от инструмента. Когда в принципе работает команда (неважно, дом строит или очередной велосипед собирает), должно быть понятно, кто что и в какой момент делает и чего хотят добиться.
Работа с веткой на человека - просто, но до момента, как вы поймёте, что делали два задних колеса или вообще два разных велосипеда, которые не собрать в один
325 703596
>>703540
Можешь относиться к юньке как к MonoGame-у или XNA.
Да у юньки есть такое, что она дергает методы по имени (привет awake,start,update), а могла бы через интерфейс..
Но вообще в неё уже притащили часть либ из ентерпрайза (и тех кто это делают закидывают гавном).
И да - у юньки есть свои "тонкости" из-за которых сказывается такое впечатление.
326 703607
Я снова вернулся.
327 703608
>>703607
Из небытия?
328 703633
На линуксах в Юнити работал кто-нибудь? Это адекватно вообще?
329 703688
Читал тут про оптимизацию для мобилок. Разработчики отказались от батчинга, объединили всю сцену в один меш и выводили её за один раз. Батчинг реально не стоит использовать, если хочешь максимально оптимизировать сцену?

https://dtf.ru/gamedev/7533-mobilnyy-shuter-guns-of-boom-optimizaciya-grafiki
Допустим, есть статический и динамический батчинг. Нашему проекту стало существенно лучше, когда мы вообще всё это выключили. Нет ничего — только сцена, которая рендерится вся сразу. Это ограничение как раз и привело к тому, что карты не очень большие. Куда бы ты на карте не смотрел — нет отсечения, вся сцена рендерится всё время.
330 703696
>>703688
Про рендеринг 250к полигонов одним тиком, вместо 50к, но через 10 dc - сомнительно.
Рендеринг полигонов сам по себе простая операция, даже 10 лет назад на android 4 мой проект с 60к полигонов стабильно держал 45фпс.
Сжатие текстур - вот это уже лучше, юнитеки уже давно советуют батчить текстуры в атласы и так их использовать, в этом нет открытия для тех кто давно в этом варится.
331 704086
а как в два дэ игре с видом сверху настроить физику так чтобы все работало нормально? например если прикладывать силу к обьекту, но с гравитацией в ноль он будет постоянно тормозить, а если включить гравитация то все будет падать вниз
332 704087
>>704086

>например если прикладывать силу к обьекту, но с гравитацией в ноль он будет постоянно тормозить


Не будет тормозить*
333 704109
>>704086
Смотря какого эффекта хочешь добиться, если персонажа двигаешь то велоситом при нажатии задаёшь, а при отпускании клавиши вырубаешь
334 704144
>>704109
кидаю оружее адд форсом, хочу чтобы оно терлось об пол и само по себе тормозило
335 704147
Пилю бесшовные материалы в дизайнере. Позавчера запилил обои, вчера потолок, сегодня пол. Действия игры будут в нежилом деревянном многоквартирном доме советских времен.
Надо напольный и потолочный плинтус ебануть, чтобы эти углы глаза не резали. Впрочем, думаю, и плинтуса тоже будут глаза резать
336 704153
>>704144
orugie.velocity = Vector2.Lerp(orugie.velocity,Vector2.zero,skorostTormozheniya * Time.deltaTime);
337 704304
>>704147
Делай стык плинтуса с сантиметровой щелью, на половину забитой грязью. И в плоскости соприкосновения с полом/стеной должны быть полукруглые щели из-за выгнувшихся половиц. Половицы должны скрипеть и как бы постукивать когда на них наступаешь.
338 704378
Хочу сделать SceneLoader статичным классом и пользовать его из других скриптов без использования синглтона и поиска его в каждой сцене, но проблема в том, что он также должен висеть на кнопке, а кнопка, при прикреплении к ней статичного скрипта, его не видит, и может работать только с обьектами на сцене. Как быть как фиксить, или может есть способы получше?
339 704388
>>704378

>также должен висеть на кнопке


Нет, не должен, это кнопка должна быть на подсосе

А во вторых как ты статик собираешься повесить на кнопку, лол
340 704510
Кто-нибудь использовал "RuntimeInitializeLoadType.AfterAssembliesLoaded" для инициализации всяких внутренних сервисов/синглтонов? Я даже не знал, что оказывается у RuntimeInitializeOnLoadMethod можно задать тип загрузки. Что он может загружаться не только после сцены, но и перед загрузкой сцены.
341 704562
>>698843 (OP)
Имеется сцена с объектами, напротив каждого объекта кнопка, тыкая по кнопке, выбираешь нужный объект, потом он у тебя в игре появляется соответственно.
Как лучше в скрипте прописать выбор? У меня пока только одна идея: повесить на каждую кнопку отдельный скрипт с булевой переменной, и в зависимости от того, какая переменная активирована, респаунить объект, но это как-то топорно. Есть более качественное решение?
342 704574
>>704562
Пишешь простой МенеджерРеспавнаОбъектов, который принимает данные, что спавнить и где спавнить, а на кнопки вешаешь функцию из менеджера, в которую эти данные и передаются по клику. Для удобства еще можно обернуть в enum типы того, что спавнишь
343 704576
>>704574
почему какойто там сакутин постоянно и везде твердит что менеджеры/контроллеры это каловая масса для лохов, но все повсеместно пишут менеджеры, да контроллеры?
344 704577
>>704574

>а на кнопки вешаешь функцию из менеджера, в которую эти данные и передаются по клику.


Как это делается?
345 704579
>>704576
Не знаю кто что пишет, но как по-другому контролить жизненный цикл однотипных объектов в простой форме?
UI-Buttons-Add-Event-Button[1].jpg39 Кб, 381x445
346 704580
>>704577
Вот тут добавляешь поле, в него можно будет перетащить объект со сцены с скриптом менеджера и у него выбрать нужную функцию, которую следует вызывать при клике, там же можно указать что в функцию передать нужно
347 704581
>>704580
Понял, спасибо
image.png52 Кб, 802x451
348 704591
Как в юнити текст делать менее вырвиглазным?
Писали что при увелечении шрифта он делается более четким, и для статов сработало(50 стоит)
Но в боксе пиздец вытикают глаза если смотреть и никак исправить не могу
349 704594
>>704591
TextMesh Pro
TheGameYu9ISg9sHs.jpg449 Кб, 1920x1080
350 704609
Добавил плинтуса. Пусть так, все равно никто разглядывать будет. Там будут шкафы, кровати и прочее. От резкости избавился и ладно.
351 704629
Какие есть подводные камни от использования Zenject? Или только одни плюсы?
352 704637
>>704609
С плинтусами теперь прям заебись. Красиво.
353 704644
>>704609
Прям детство вспомнилось
354 704649
Моно Девелоп же автоматически вместе с юнити скачивается? Или надо вручную? У меня почему то из доступных редакторов только обоссаная визуал студио
355 704654
>>704649

>обоссаная визуал студио


Ты что - сумасшедший? Качай бесплатную студию 2019 года. Ну, или Rider, если есть деньги. А маня-девелоп это позапрошлый век. Даже не знаю, кто в здравом уме будет в этой залупе работать.
356 704656
>>704654
Что значит "работать"? Код писать? Это обычный текстовый редактор. Что, вс как-то отступы магическим образом расставляет?
357 704658
358 704666
>>704649
VS CODE ставь, визуал Студио тут нахуй не нужна с лишними процессами
sage 359 704668
>>704666
Двачую этого.
>>704656
Зачем пользоваться обычным если есть необычные?
360 704669
Все обучающие материалы, это что такое функция, что такое переменная, и никто, абсолютно никто не говорит о вещах для среднего уровня и выше. Может быть это специфика языка, когда кроме как знаний паттернов, возможностей Unity и базовой основы (переменные, функции, коллайдеры, корутины) больше ничего не нужно? Я сам на своих проектах сталкиваюсь только с базисом, так как нужно если было бы что-то реализовать, а я бы не смог, я бы давно обратился в гугл и нашел решение. Нужно ли читать книги посвященные C#, или достаточно знать паттерны, уметь проектировать проекты до старта и всё?
361 704670
>>704669
Или я обычный говнокодер? Но вопрос изучения остается открытым, как мне узнать о всех нюансах, не проработав где-то в офисе 5 лет, я хочу чтобы мне сразу объяснили чем тот или иной метод лучше и в какие моменты, чтобы я мог соревноваться с хорошими кодерами.
362 704672
>>704670

>я хочу


Хоти.
У тебя есть документация, берешь её и читаешь.
363 704684
>>704670
У меня схожая проблема
Вкатился зимой 20го в Пыху, выкатился после полугода, понял что веб не моё. До этого немного ковырялся стажёром - джуном в вебе у товарища в конторе

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

Вот и непонятно - что же делать?
Изучить шарпы? Насколько плотно их изучить?
Изучить юнити? Интерфейс? Библиотеки? Какие то консольные команды, характерные для этого софта?
Что и в каком количестве имеет значение как для новичка, так и для стремящегося? И вроде на все эти вопросы есть ответы в ОП посте, так что заранее пардон, просто раздуваю
364 704685
>>704670
>>704684
Не забывайте, что кодинг — лишь инструмент, а не сама цель.
image.png7 Кб, 322x255
365 704736
Есть один алгоритм, процедурно генерирующий данжи. Использую тайлмапы и тайлы. Есть два вопроса:
1) У меня нет опции создать тайлмап в ассетах, только отдельный тайл. Пришлось создать прямо в иерархии две тайлмапы, пикрил. А мне религия не позволяет держать в иерархии то, что можно держать в виде ассета/префаба. Хотя может я что то не понимаю и так и надо.
2) Я что то не разобрался, как менять цвет тайлов.
Заранее спасибо, аноны.
366 704749
Сосач, есть лестница в 2Д платформере, чтобы игрок зависал на ней, а не падал - во время соприкосновение с лейером лестницы rigidbody2d игрока задается gravity = 0.

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

Проблема 2: когда игрок пробегает по лестнице пик2 - трансформ падает на ~0.02, что визуально незаметно, но из-за чего персонаж застряет в клетке, и вылезти можно только зажав "вверх" чтобы лезть по лестнице и "влево\вправо". Предполагаю, что сие тоже из-за гравитации.

В общем в поисках решения как реализовать "игрок не падает с лестницы, когда залез на половину и остановился" иным способом.
367 704750
>>704749
бля, я еблан, два одинаковых пика загрузил. Ну по описанию вроде всё и так понятно
368 704754
>>704749
>>704750
Обычный свич запили.

Если коллизия с лестницей верна И если игрок нажал клавишу вниз - гравитация 1 и сколько у тебя там, иначе гравитация 0.
369 704755
>>704736

>цвет


В палитре или в самой мапе. Если не получится проверь чтобы у тебя был .png с прозрачностью.
370 704757
Не понял, и как это проблему решит?
Если игрок нажимает клавишу вниз, то вместо спуска по лестнице - он будет просто падать. А если не нажимает, то гравитация всё ещё 0 и он всё ещё не может прыгнуть
371 704767
>>704755

Я имел ввиду програмно. В палитре то понятно.
372 704774
Чики двощ. Ищу как реализовать в 3д физику мягких тел. Проблема в том, что у меня микс процедурных и baked анимаций. Obi вроде как не подходит для skinned rigged meshes. Какие-либо альтернативы есть ещё?
373 704777
Как вы относитесь к пробелам в названиях объектов на сцене, в названиях префабов, сцен? Мне кажется, так гораздо читабельней выходит. И только ресурсы стоит называть без пробелов и в начале писать тип/назначение ресурса, потом после символа подчеркивания уже его название.
374 704785
>>704774
Мне стало интересно как в генши импакт сделали и физику тел и физику одежд еще это всё и на телефоне запустили в 120fps
375 704787
>>704785
Так она ж там на минималочках, а одежда - анимация, а не физика
376 704805
>>698843 (OP)
Я не знаю, это только у меня так или что. Когда добавляют компонент cloth на объект и пытаюсь выделить точки, эти точки появляются только под определенным углом и то еще бывает не все. То есть мне просто приходится хуевертить камеры вокруг, чтобы они соизволили появится. Это баг какой-то или что?
377 704809
На чем написан мультиплеер для игры Heartstone? Хотелось бы во время изучения мультиплеера взять уровень повыше, чем использование библиотеки Photon. Поэтому интересуют хоть обычные ключевые запросы благодаря которым я смогу понемногу изучить как пишется сеть в такой игре. Спасибо.
378 704818
>>704809
Зная требования близардов к Senior Software Engineer, Server - Hearthstone можно прикинуть что там на чем работает.
3+ years of experience of server programming
Strong C++ programming skills
Some experience with deploying a live service
Self-motivated and willingness to pitch in on many areas of small game development
Excellent verbal and written communications skills
Pluses

Previous experience shipping game titles or other software
Linux development experience
Networking experience in TCP / IP and UDP protocols
Computer science or related degree
Database development experience (MySQL, Oracle, etc.)
379 704911
>>704787
Точно?
https://www.youtube.com/watch?v=HbE2gWODNMs

+ делать 360 анимаций (повернул влево на 5 на 10 15* и тд очень муторно, вряд ли они так делали).
По плащу видно как он ломается при повороте, мне кажется это все же физон

>>704805
От полигона зависит т.е. с обратной стороны полигона могут быть проблемы, с лицевой у меня все норм было

>>704818
Есть пример с++ сервера какого-нибудь? Или игрового сервера на гите? Не обязательно ХС-а, чего угодно
380 704935
>>704818
СТРОНК прогаминг скилз, такие ниибические требования как будто в НАСА зовут, а по итогу багерное говно тупого говнас такой-то фирмой и бюджетом, которое мог бы пофиксить любой васян из мухосранского вуза, но нет. Что ли лично Беня(уже нерелейтд, но всеж) делал? Пичот.
381 704936
>>704911

>Есть пример с++ сервера какого-нибудь? Или игрового сервера на гите? Не обязательно ХС-а, чего угодно



https://github.com/project-topaz/topaz/

https://github.com/SapphireServer/Sapphire
382 704939
>>704935

Обычные проблемы менеджмента в раздутом крупняке. Ты же кулстори о разработке Last of Us 2 слышал, как там пол отдела моделило уже заведомо завернутый контент прямо в Recycle Bin?
383 704940
>>704939

>Ты же кулстори о разработке Last of Us 2 слышал, как там пол отдела моделило уже заведомо завернутый контент прямо в Recycle Bin?


Где почитать?
мимо
385 704967
Нужно двигать персонажа постоянно вперед в рамках уровня
вроде такого https://apps.apple.com/US/app/id1499812410?l=en , на уровне также есть повороты в сторону, на повороте камера, находящаяся чуть выше и сбоку от персонажа двигается вместе с ним. Как реализовать перемещение?
386 704974
>>704936
Спасибо правда спасибо

А что-нибудь по проще, уровня крестики-нолики онлайн, сможешь найти?

Прост хочу в кресты вкатиться через написание сервера.
387 704987
>>704974

Тебе бы тогда просто с изучения крестов путем написания диалоговой адвенчуры с применением стандартной библиотеки и пердолинга консольки начать, а уже потом сетью заниматься.
image.png94 Кб, 921x508
388 704994
>>704967
Бля, это выглядит очень просто, но я всё ещё не могу понять как реализовать.
Пока всё что приходит в голову - привязать игрока к камере и двигать её вдоль уровня. Но всё ещё нужно как-то ограничить движения игрока краями дороги. как-то не хочется по-инвалидному по 5 box collider'ов цеплять
389 704997
Анон, есть где-нибудь готовый ассет ближней боевки от первого лица?

Хочу сделать что-то типа hexen по геймплею. Начал писать свой велосипед - получается хуево, как-то я делаю не так - мобов надо прям выцеливать чтобы пнуть, а они наоборот дерут так что не спасешься - вместо фана одно раздражение.
390 705003
>>704997
На ютубе выбери плейлист Soulslike игры и делай по нему
391 705005
>>705003

>Soulslike


я про fps - от первого лица
392 705028
>>704669
А чё ты хочешь-то?

>Может быть это специфика языка, когда кроме как знаний паттернов, возможностей Unity и базовой основы (переменные, функции, коллайдеры, корутины) больше ничего не нужно



Кому не нужно? Какого языка? Почитай про делегаты, например. Наследование, нтерфейсы, абстрактные классы, виртуальные методы. Наверное, ты конструкторы даже не используешь, если через юнити залез в шарпы. Но может тебе и не надо, я не знаю, какая у тебя архитектура.
В моем понимании, твоя инженерная мысль при реализации той или иной функции будет ограничена кругозором. Какие-то вещи можно сделать лучше/быстрее/проще, а ты об этом и не знаешь
393 705029
>>705005

>Начал писать свой велосипед


>мобов надо прям выцеливать чтобы пнуть, а они наоборот дерут так что не спасешься


Кириль дальше ИИ, понятно что ты тупо через навмеш приближаешь врага к игроку, уменьшай скорость, делай рывки в разные стороны, разнообразь игру
, 394 705033
Ребята, где можно посмотреть примеры готовых 2д игорянов на предмет адекватной архитектуры? Не туториалы, а полноценные игры
395 705069
Анон, подскажи.
Хочу сделать функцию, показывающую диалог (да/нет) в виде bool res = ShowDialog().
Внутри этой функции канвас диалога делаю активным и при нажатии на да/нет попадаю в скрипт-обработчик этих кнопок.
Как мне вернуть результат в ShowDialog?
396 705077
>>705069
Можешь подробнее описать, не оч понятно? А вызов нужных методов из этих обработчиков в методе ShowDialog почему не сделать? Или эвент не дёрнуть?
397 705079

>Можешь подробнее описать, не оч понятно?


Есть условный UIManager

public static class UIManager
{
private static IDialog _testDialog;

public static bool ShowTestDialog()
{
_testDialog.Show(); //внутри происходит Canvas.enabled = true;
}
}

Вызываем Show(), появляется UI диалога. После этого, например, жмем на кнопку "да".
Нажатие кнопки обрабатывает скрипт TestDialogHandler

public class TestDialogHandler : MonoBehaviour
{
public void OnYes()
{
Debug.Log("Yes");
}
}

Вопрос в том, как в ShowTestDialog получить результат (в нашем случае true) из OnYes

>А вызов нужных методов из этих обработчиков в методе ShowDialog почему не сделать? Или эвент не дёрнуть?



Попробовал сделать что-то вроде такого:

public static bool ShowTestDialog()
{
bool res = false;

TestDialogHandler.DialogResultEvent.AddListener((dialogResult) =>
{
res = dialogResult;
});

_testDialog.Show();

return res;
}

Но тут надо какую-то задержку ставить, чтобы до срабатывания эвента из метода выход не случился.
397 705079

>Можешь подробнее описать, не оч понятно?


Есть условный UIManager

public static class UIManager
{
private static IDialog _testDialog;

public static bool ShowTestDialog()
{
_testDialog.Show(); //внутри происходит Canvas.enabled = true;
}
}

Вызываем Show(), появляется UI диалога. После этого, например, жмем на кнопку "да".
Нажатие кнопки обрабатывает скрипт TestDialogHandler

public class TestDialogHandler : MonoBehaviour
{
public void OnYes()
{
Debug.Log("Yes");
}
}

Вопрос в том, как в ShowTestDialog получить результат (в нашем случае true) из OnYes

>А вызов нужных методов из этих обработчиков в методе ShowDialog почему не сделать? Или эвент не дёрнуть?



Попробовал сделать что-то вроде такого:

public static bool ShowTestDialog()
{
bool res = false;

TestDialogHandler.DialogResultEvent.AddListener((dialogResult) =>
{
res = dialogResult;
});

_testDialog.Show();

return res;
}

Но тут надо какую-то задержку ставить, чтобы до срабатывания эвента из метода выход не случился.
398 705080
399 705089
Как залететь в юнити ? Уже 2 недели пытаюсь что-то сделать, гуглю если не получается и пытаюсь снова и снова, но у меня только жопа сгорает с того, что я нихуя не умею. Как вы влетели в юнити ?
400 705092
>>705089

>только жопа сгорает


Через это
401 705105
>>705079
А, понял. Ну, как я говорил, используй эвент или лучше unity event.

https://www.youtube.com/watch?v=oc3sQamIh-Q
402 705108
>>705089
Начни по готовым примерам из книги или видосов
image.png264 Кб, 1920x1040
403 705112
>>705108
Ну у меня успехи. Я заставил объект двигаться. Но это спустя сотни нервов... Неужели все так
404 705113
>>705089
>>705112
Купи курсы и смотри видеоуроки, делай копии простых игр.

Ну и вообще да, настоятельно рекомендую курсы, как минимум основы с них получишь. С литературой сложнее и дольше, из литературы лучше почитать что-нибудь про ООП или паттерны.
405 705115
>>705113
Ну давай так, ты покупал/записывался на курсы ? И если да , дай советик , пожалуйста. Просто кинуть куда-то деньги и получить ничего
406 705118
>>705113

> что-нибудь про ООП или паттерны


и сломать мозг новичку окончательно.
ооп не нужен если ты не пилишь какой-то АА* проект
407 705120
>>705118

>ООП не нужен


Скажи это любому работодалю. Может ты ещё скажешь, что и паттерны не нужно знать?

>>705115
На юдеми есть много курсов, смотри топ по рейтингу\популярности само собой на английском, если жалко денег - на рутрекере спирачены почти все популярные курсы.
Стоят они на скидке 10-15$, а скидка там постоянно. Если сейчас нет - подожди пару дней-неделю и будет.
408 705121
>>705120
Сяп
409 705124
>>705112
Нет, в следующий раз, когда ты столкнешься с аналогичной проблемой, для тебя она будет уже типовой и ты справишься быстрее.

>>705118
Мозг быстрее ломается как раз без ООП, как мне кажется.
410 705163
>>705069
Тебе нужно что-то типа промисов (либо тасков), гугли unity promise
411 705171
>>705069
Самый простой способ без каких-то либ и тд:
В диалоге сделай метод public void ShowDialog(string text, Action<bool> callback){
// сохрани каллбек в этом Mono объекте
}
void OnDialogResult(){
// тут какая-то твоя логика в диалоге, пусть _result - будет true или false (да нет)
callback(_result);
}
В месте где вызываешь делай:
void SomeMethod(){
string question = "Ты лох?";
Dialog.Singletone(или ссылка, как хочешь).ShowDialog(question, (isSuccess)=>{
if(isSuccess){
MakeAIAngry();
}else{
MakeAIYourFriend();
}
});
}
412 705186
>>705171
А где асинк авэйт? Этот код же подвесит систему? Или нет?
413 705189
>>705186
Нет, суть в том, что ты создаешь делегат и отдаешь его своему скрипту диалога, с этого момента выполнение скрипта закончилось и update метод работает как и всегда.
Потом когда нажимаешь да или нет то у тебя сохранен делегат и он вызовется нормально.
Там есть еще что улучшать, например сохраненный делегат (который callback(_result)) лучше обнулять после закрытия формы, короче просто попробуй так сделать, это не долго и не сложно.
Правильный ответ 414 705190
>>705069
Делай в стиле ДОД.
Возвращаемое диалогом значение - это данные.
Состояние видимости диалога - это данные.
Все данные пиши в базу данных, которую видит и скрипт диалоговых кнопок и скрипт вызывающего объекта.
Логика вызывающего такова:
Чекаю в БД поле диалог-открыт, если открыт - прерываю работу.
В БД в поле диалог-результ записываю нулль.
Вызываю диалог, передаю ему некоторый текст.
В апдейте чакаю в БД, открыт ли диалог? Если диалог закрыт, чекаю в БД поле диалог-результ и действую соответствующе.

В диалоге логика:
Я родился!
Я записал в БД что я видимый.
Я прочитал во входных данных текст и отобразил его.
Если я стал невидимым, я записываю нет/отмена/ложь в БД.
Если я стал невидимым, но кнопка да была нажата, я записываю в БД да/правда/ОК.
В любом случае я обязательно что-то записываю в БД, иначе никак.
Записываю в БД также, что я невидим.
Умираю!
415 705191
>>705189
Код очень потоконебезопасный и ты сам это понимаешь.
416 705193
>>705190
Ты не ту задачу пришел сюда решать, у нас не модальные диалоги, а 1 инстанс больше не будет, понимаешь? нахуй нам бд нужно вообще, что ты несешь вообще

>>705191
а мне и не надобыло решать эту проблему, вопрос в другом был
417 705224
Пытаюсь собрать несколько префабов в AssetBundle, пробовал разные способы из интернета, пробовал передавать в BuildPipeline.BuildAssetBundles() карту из префабов и все равно всегда Unity начинает обходить все ассеты в проекте, застревает на каждом проклятом png и весь процесс создания AssetBundle занимает больше двух часов. Гугл выдает только несколько несчастных, которых задаются тем же вопросом, что и я, и им просто никто не отвечает.
Почему так долго? Почему Unity идет по каждому ассету, когда я вот прямо ей даю список, из которого я хочу получить AssetBundle?
Может сейчас уже есть более удобная альтернатива бандлам? В документации написано: лучший совет по организации ассетов, не использовать Resources, а использовать AssetBundles.
, 418 705250
Чуваки, раз подняли тему асинхронных методов - на сколько это вообще здравая идея в юнити их использовать?
bandicam 2020-10-20 13-56-33-572.mp42,8 Мб, mp4,
1016x592, 0:12
419 705253
Почему я не могу фэйд нормально сделать? Материал Standart, Rendering Mod Transparent, ошибка очевидно в коде, но я не могу найти проблему, скиньте как вы это используете.

if(fadeOut){
Color objectColor = carsObj[way].gameObject.GetComponent<MeshRenderer>().material.color;
float fadeAmount = objectColor.a + (1 * Time.deltaTime);
objectColor = new Color(objectColor.r, objectColor.g, objectColor.b, fadeAmount);
carsObj[way].gameObject.GetComponent<MeshRenderer>().material.SetColor("_Color", objectColor);

if(objectColor.a >= 255){
fadeOut = false;
}
}
420 705256
>>705253
Да, в коде ошибка, сделал через Color.Lerp.
421 705258
>>705191
Так просто синглтон заменить на обычный объект, нет?
422 705266
>>705120

>Скажи это любому работодалю


ну, ежели работодателю, то да... И там не только ООП надо знать, не так ли, а туеву кучу всего, без чего обычный инди-разработчик вполне может обойтись
423 705267
>>705266
Ну для себя и узкого круга можно и говнокод пилить, конечно на уровне яндере симулятора, но мне кажется всяко лучше, если код чистый, красивый и понятный. Знание ООП, СОЛИДа и базовых патернов лишним всё равно никогда не будет.

Но в общем ты прав, конечно, для себя можно и без этого. но нахуя, если можно с?
424 705304
Салам Алейкум Программисты и модельеры, есть функция на первой картинке, которая двигает обьект вилоситей и при ударении об стену вращает его на угол отражения, но, проблема в том что в первом случае отражается правильно, а во втором неправильно, подскажите пожалуйста, как пофиксить, а то я ебло 2 дня только рэйкаст писал
425 705306
Помоги юнитач. Нужно сделать так, чтобы по тапу на экран блоки заполнялись зеленым. Есть нужные спрайты, но не понимаю как реализовать. Метод тапа и всё прочее уже готово, нужно просто чтобы зеленый спрайт было видно только внутри боксов. или может как-то можно слайдером реализовать или чем, я хз
427 705316
>>705309
У меня это UI
Не спрайты, а имэджы
428 705323
>>705316
Разобрался
Там нужен image и компонент mask
В целом даже ещё удобней, чем с спрайтмасками. Спасибо
1.PNG889 Кб, 1010x719
429 705349
Привет, девелопперы.
Давно мечтаю сделать игру: 2D визуально-диалоговая песочница рпг... короче клон "Валета плетей". С юнити очень мало знаком, но кодить умею.
Реквестирую план вкатывания, при котором потрачу минимум времени на изобретение окошек с кнопками, и максимум времени на логику с механиками.
Может там в магазе есть фреймворки для визуальных новелл, или какие то удобные наборы компонентов?
Или достаточно пару видосов глянуть, и уроков читнуть и никакие васяны не нужны?
Unity20201020203832308x264.mp47,3 Мб, mp4,
1504x720, 0:05
430 705360
>>698843 (OP)
>>698843 (OP)
Анончики, в юнити есть возможность прописать путь допустим звука, чтобы не назначать ручками этот звук каждому объекту со скриптом? Пользовался вот таким решением:
_sound = (AudioClip)UnityEditor.AssetDatabase.LoadAssetAtPath("Assets/_Data/Sound/SFX/menuTouch.wav", typeof(AudioClip));
но оно работает только в редакторе, и билд с таким кодом нельзя сделать, ошибка cs0234.
431 705361
Есть массив, в нем изначально 0 элементов, я в него помещаю сначала первый объект, потом второй. Когда кол-во объектов достигает трех, мне нужно удалить первый объект. Короче суть в чем, максимум 2 объекта, если больше, то первый удаляется и в конец добавляется новый, но у меня какая-то проблема, я сделал вот так, но потом появляется баг из-за которого что-то не до конца очищается и объекты зависают и это действие не выполняется.

fadeLists.Add(newFade);
if(fadeLists.Count == 3){
fadeLists[0].Reset();
fadeLists.RemoveAt(0);
}
432 705380
>>705349
А почему ты РПГ мейкер не хочешь использовать? Ровно под твою задачу
433 705386
>>705380
Не хочу себя ограничивать, мало ли, там идея придет сделать 3д мини игры, или с частицами выебоны, или на консоли выкатить, или еще что. И вобще, я кодить ИИ секс рабов хочу, а не в редакторе персонажей анимацию дрочить, редакторе карты деревья расставлять.
image.png203 Кб, 597x413
Реализация FOV для юнити 434 705396
Всем доброго времени суток, аноны.
Недавно я начал пилить рогалик, проникнувшись жанром, как платформу выбрал юнити, потому что имел мало-мальский опыт общения с ней и вообще визуализацию и всякий интерфейс сделать проще.
Первым делом запилил генерацию подземелья и возможность ходить по нему не втыкаясь в стены. Теперь настал черед поля видимости.
Алгоритмы рейкастинга/шадоукастинга я прочекал и вроде бы даже понял в основном, то есть как в определенной области определить какие координаты должны быть видимы, а какие нет я представляю. Вопрос в том, как применить это к моим ресурсам.
Имеем следующее: Два листа Vector3Int, один содержит позиции тайлов пола, другой тайлов стен я использую листы вместо массивов потому что с массивами я был бы вынужден генерировать карту в строгих рамках, две тайлмапы, одна для тайлов пола, другая для тайлов стен (и на ней висит коллайдер, в который стукается игрок). Игрок, монстры и предметы для взаимодействия это геймобжекты.
Я могу каждый раз когда игрок смещается с помощью рей/шадоу кастинга определять видимые позиции и красить тайлы соответствующие видимым позициям в (1,1,1), невидимые в (0,0,0), а так же отключать SpriteRenderer монстров и объектов, если они не в линии видимости игрока. Или можно создать третью тайлмапу над всем подземельем, состоящюю из черных квадратов и удалять/добавлять тайлы в зависимости от их видимости. Или может это все костыли и есть другой, более правильный и общепринятый метод. Буду благодарен за любые советы. Пикрил - макетный альфа-вариант, чтобы пост не был без картинки.
435 705407
Вопрос по инвентарю и реализации инвентаря: как лучше сделать?

Есть InventoryController и метод AddItem(nventoryItem item)
В него прилетает InventoryItem, который содержит:
- картинку для инвентаря
- название
- ссылку на объект, который нужно вытащить из инвентаря при необходимости.

В InventoryController есть LinkedList<InventoryItem> items, который содержит весь список айтемов и LinkedListNode<InventoryItem> currentItem, который держит текущий выбранный элемент.
Элементы можно переключать

При добавлении айтема, в AddItem(nventoryItem item) дергается InventoryView, чтобы добавить картинку на UI:

public void AddItem(InventoryItem item)
{
//Создается слот из префаба
var slot = Instantiate(slotPrefab, this.transform);
//Получаю нужный компонент вьюхи
var view = slot.GetComponent<InventoryItemView>();
// Вью получает ссылку на айтем
view.Item = item;
//Айтем получает ссылку на вью. Вот тут основной вопрос
item.View = view;
//Устанавливаю картинку
slot.transform.FindChild("IventoryItem").GetComponent<Image>().sprite = item.Image;
}

На сколько это плохо, что InventoryView.AddItems(nventoryItem item) меняет item, вставляя ссылку на вьюху?
Меня смущает, что если дернуть где-нибудь (но пока таких кейсов нет) айтем до того, какон "Добавлен" на ui, ссылка на вьюху будет нерабочей (Правда, можно в геттер адекватное описание добавить).
Как лучше сделать в данной ситуации?
435 705407
Вопрос по инвентарю и реализации инвентаря: как лучше сделать?

Есть InventoryController и метод AddItem(nventoryItem item)
В него прилетает InventoryItem, который содержит:
- картинку для инвентаря
- название
- ссылку на объект, который нужно вытащить из инвентаря при необходимости.

В InventoryController есть LinkedList<InventoryItem> items, который содержит весь список айтемов и LinkedListNode<InventoryItem> currentItem, который держит текущий выбранный элемент.
Элементы можно переключать

При добавлении айтема, в AddItem(nventoryItem item) дергается InventoryView, чтобы добавить картинку на UI:

public void AddItem(InventoryItem item)
{
//Создается слот из префаба
var slot = Instantiate(slotPrefab, this.transform);
//Получаю нужный компонент вьюхи
var view = slot.GetComponent<InventoryItemView>();
// Вью получает ссылку на айтем
view.Item = item;
//Айтем получает ссылку на вью. Вот тут основной вопрос
item.View = view;
//Устанавливаю картинку
slot.transform.FindChild("IventoryItem").GetComponent<Image>().sprite = item.Image;
}

На сколько это плохо, что InventoryView.AddItems(nventoryItem item) меняет item, вставляя ссылку на вьюху?
Меня смущает, что если дернуть где-нибудь (но пока таких кейсов нет) айтем до того, какон "Добавлен" на ui, ссылка на вьюху будет нерабочей (Правда, можно в геттер адекватное описание добавить).
Как лучше сделать в данной ситуации?
Endless Dungeon20201020235141898x264.mp413,8 Мб, mp4,
1360x768, 0:09
436 705408
>>705360
Ещё мож знает кто от чего может так пидорасить спрайты в готовом билде игры?
437 705410
>>705408
Возможно с леером проблема - попробую персонажу выставить более приоритетный леер или меньшую координату Z

Прикольно смотрится, кстати. Сам всю логику движений делал?
438 705425
>>705304
Разобрался, вместо Vector2.Angle нужно использовать Vector2.SignedAngle, всем спасибо
Unity20201021082440077x264.mp45,9 Мб, mp4,
1600x752, 0:04
439 705443
>>705410

>Возможно с леером проблема


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

>Сам всю логику движений делал?


Физон движения и малый поиск пути делал по этим материалам https://gamedevelopment.tutsplus.com/series/understanding-steering-behaviors--gamedev-12732 , боёвку сам придумывал.
440 705476
>>705386
Там не нужно ни дрочить анимацию, ни расставлять деревья.
441 705487
>>705476
Как там с интерфейсами? Есть что то кроме нижней панельки с диалогами (которые все скипают) и варианты ответа в центре экрана? Окошки есть? Их можно таскать? Драгидроп есть? Кнопки можно кастумизировать? Прогрессбары есть? Сейвлоад можно отключить?
442 705512
Как заебато шарпы выучить, а то я как гой даже за самой простой задачей лезу в гугл. Сейчас хочу проект начать и уже дето неделю просто втыкаю в экран и спрайты двигаю туда сюда. Рассказывайте как вы выучили
443 705522
>>705512
Хз, я кресты учил по этому курсу https://ravesli.com/uroki-cpp/ , в шарпе всё понятно было, когда по мануалам юнити изучал.
444 705530
>>705522
ну за основы шарпов я шарю, но за сам функционал юнитискрипта не особо. Мне документацию дрочить и всё?
445 705538
>>705487
Как я понимаю, там тоже есть полная кастомизация. Посмотри to the moon, сделан на РПГ мейкер, в коммерческом плане достаточно успешная. Там есть кастомные пазлы
446 705539
>>705530
Не оч понял, в чем сложности конкретно юнити скрипта
15921309983960.png941 Кб, 811x636
447 705546
Поделитесь вашими идеями, опытом личным или знаниями общепринятыми, как делать движение камеры, что бы плавно, без багов и на больших скоростях работало.
У меня стоит обычная проверка уровня центр камеры отходит от игрока на такое-то расстояние-двигать камеру к игроку, как только расстояние от камеры до игрока около 20 пикселей - остановиться. И в общем-то нормально работает на медленной скорости, но как только я увеличиваю скорость персонажа, камеры тоже, то либо персонаж вылетает за пределы камеры, то камера на больших скоростях перепрыгивает персонажа-пытается отпрыгнуть обратно, но так как у нее большая скорость в данный момент времени-она опять перепрыгивает персонажа в обратную сторону и все дергается и багуется.

И еще похожий немного по смыслу вопрос, как фиксить вылет персонажей за стенку с коллизией на больших скоростях? Шаг персонажа, его скорость, видимо околобольше+ размеров коллайдеров, юнити просто не успевает наверное просчитывать физику. Одно из решений это просто сделать коллайдер огромным чтоб он заранее считал типа, в ручную все тестировать при каких скоростях объект будет вылетать, а при каких нет?
Или опять таки уже есть лаконичные решения таких проблем.
448 705549
>>705538
Посмотрел - деревья, валуны, спрайты бегают по карте. Ни одной кнопки, окошка не увидел.
449 705558
>>705530
Мне друг мой скинул спизженные откуда-то курсы, когда узнал что я этой хуйнёй страдаю. Я их освоил за за пару месяцев, начинал сто раз тогда, и на анриале пытался что-то делать, но по итогу в этих курсах разобрался и пилю на юнити игрушку. Если есть нужда - залью анону на гугл, там по 2д парнишка в тех курсах в основном поясняет, но после этого уже в юнити шарить начинаешь и знаешь куда гуглить.
450 705654
Простой код, который не хочет работать.
public float speed =0.25f;
transform.Translate(Vector2.up Time.deltaTime speed);
Объект передвигается слишком быстро, а если напишу
transform.Translate(Vector2.up Time.deltaTime 0,25);
то всё правильно.
Неужели это баг? Или что-то упустил?
451 705655
>>705654
Если она у тебя паблик может в инспекторе другое значение стоит?
452 705656
>>705654
Разобрался. Два скрипта висело. И через код не меняло скорость, которая указана в поле. Такие мелочи могут надолго затормозить работу.
453 705658
>>705656
Значение в инспекторе преобладает, я так тоже проебывался
454 705666
>>698843 (OP)
Крч, я пишу суровый интерпрайз, хочу начать делать чего-нибудь для души и этим зарабатывать. Поможет ли мне в этом unity? Как долго вкатываться, имею опыт программирования? На какую зп я могу рассчитывать? Меня вообще возьмут, или рынок мёртвый?
455 705668
>>705666

>для души


>зп


Выбери одно
456 705669
>>705668
Это лучше чем тырпрайз, по крайней мере, на первый взгляд.
457 705674
>>705669
Я не в теме, но мне чомуто кажется, что придется пилить казуальное говно для мобилок или танчики
458 705675
>>705674
в большинстве случаев придется пилить казуальное говно для мобилок или танчики
459 705730
>>698908
Анон, сделай свой тред
460 705734
>>705675
А рогалики?
461 705744
>>705734
Какие?
462 705886
>>705744
Казуальные. Для мобилок.
463 705904
ЧТО ИЗ СИШАРПА Я ДОЛЖЕН ЗНАТЬ ДЛЯ ЮНИТИ?

Не обязательно же все знать? И насколько часто там используется вышмат?
464 705905
>>705558
Кидай
465 705906
>>705904
Хочешь ассетфлипать - Н И Х У Я, а если хочешь делать "свою" игру - базис шарпа офк, а также куча разных выебонов и костылей вокруг возможностей движка и шарпа, до которых тебе надо будет допереть самому или суметь нагуглить подходящий вариант.
466 705908
>>705904
там нихуя не надо знать из шарпа и вышмата
другое дело нужно быть неъвбеменно умным и знать все чтобы дело шло проще легче быстрее и резльутат был лучше

>>705906
зис, я вообще задал только пару вопросов практичных в этом треде, все основное сам изучаешь, рецептов нет, все сам
467 705910
Не гоните ссаными тряпками макаку тупую, которая только вкатывается.
Короче, есть пикрилейтед 1. Почему при срабатывании этого условия в апдейте не скипается последняя строчка апдейта? Оно просто продолжает вызывать ту функцию перед дебагом и сам дебаг. Когда я стою на нужном расстоянии до цели и по логике у меня должен быть всегда ретёрн с апдейта, тем самым должен быть пропуск той последенй строчки, разве нет? Пикрл 2 - мои те два метода, что вызываются в интеракте и в конце апдейта, мало ли в них обосрался.
Сама параша работает, т.е. при нажатии на Е я получаю шмотку в инвентарь и всё такое. Вопрос именно в высвечивании этой вот самой подсказки про нажатие на Е, ибо оно тупо не высвечивает никак. Я уже в else кидал эту залупу - всё равно ловлю вызовы этого дебага и очистки текста каждый фрейм даже в радиусе работы условия.
468 705911
>>705910
Попробуй без ретурна просто иф/элси сделать, и тыкни пару дебагов в функции посмотри что и когда вызывается, проанализируй и помёшь где обосрался.
469 705912
>>705910
Ты скрипт не туда запихнул небось
470 705915
>>705910
Поставь брейкпоинт и продебажь, че ты хуйней маешься.
photoz.jpg58 Кб, 1547x275
471 705929
Подскажите по фатону, 20CCU это 20 юзеров максимум? Зачем мне 60гб?
20 юзеров в одной сессии?
Смотрю на план "500CCU за 100$ месяц" и думаю, не дешевле ли написать (или взять) стендалон сервак и поставить его на какой-нибудь VMS за 250р? (при этом тащить будет сразу 3к игроков)
472 705931
>>705929

>Зачем мне 60гб?


Это бесплатный трафик. Если его истратишь, то за дополнительный нужно доплачивать.

>не дешевле ли написать (или взять) стендалон сервак


Дешевле. Но смысл фотона в том, что ты просто берёшь и пишешь сетевой код на клиенте, а всё остальное они берут на себя. Всю эту ёблю с запуском новых серверов, с регионами и тому подобное.
473 705932
>>705931
Спасибо, расскажи еще плз про 20 юзеров, это будет 20 юзеров на весь мир?
а за 95$ в месяц будет уже 500 юзеров?
Если рассматривать CS1.6 (например) вот играет 12 человек на сервере и по простой математике у меня будет 42 сервера на 12 человек?
474 705933
>>705932
CCU - это количество игроков онлайн на весь мир. Доступные регионы выбираешь ты сам.

>а за 95$ в месяц будет уже 500 юзеров?


За 95$ у тебя одновременно смогут играть 500 юзеров. Что будет, если онлайн скакнёт до 600? Тогда появится сообщение, что тебе нужно сменить тарифный план. Игроки продолжат спокойно играть, онлайн может вырасти хоть в 10 раз, но тебе нужно будет платить.

>Если рассматривать CS1.6 (например) вот играет 12 человек на сервере и по простой математике у меня будет 42 сервера на 12 человек?


Да.
475 705934
Есть ещё интересный сервис с мультиплеером:
https://playerio.com/

Его фишка в том, что логика комнаты выполняется у них на сервере. Ты на C# пишешь DLL и заливаешь к ним. У Фотона есть такая услуга, но только на энтерпрайз тарифе и api там такое себе. У плеер ио мне api понравилось, но там есть ёбля с потоками.
476 705947
Почему мы не стали делать идеально
https://habr.com/ru/company/pixonic/blog/346374/
477 705951
>>705947
Сидит тут полторы калеки, заходит в бар успешный девелопер и говорит:

>Если вкратце, то целый зоопарк:


>Master/game servers — c#, akka, photon engine


>Profile servers — Java 8, Guice, Resteasy, Hazelcast, Cassandra


>Microservices clan/league/matchmaking/communication — scala, akka, postgresql, scalikejdbc, cassandra, phantom

478 705954
есть 2д сцена, на ней с десяток спрайтов. на каждом по коллайдеру2д без rigidbody. когда я кликаю по объекту, то выстреливает метод OnMouseDown и окрашивает этот спрайт в другой цветю это именно то что мне нужно, но ещё мне нужно чтоб когда я кликал вне этих спрайтов, то они все возвращались в исходный цвет и я не пойму в каком месте мне отлавливать клик и как его отделить от клика по спрайту. помогите
479 705955
>>705954
Покажи метод
480 705956
>>705955
это обычный встроенный метод
https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnMouseDown.html

тут вопрос только том как мне организовать всё что сцена знала когда кликают по ней, а не по спрайту, а спрайт знал когда кликают по нему, а не по сцене
481 705961
>>705956
if(Physics.queriesHitTriggers == false)
{
перекраш обратно
}
482 705962
>>705961
а не, говно
483 705967
>>705956
Как вариант:
Создай локальную переменную _lastClickedObj;
Пускаешь райкаст на объект:
если попал
if(_lastClickedObj != null) разукрасить_обратно();
_lastClickedObj = hit.GetNewObject();
_lastClickedObj.разукрась();
Если ткнул в пустое место
if(_lastClickedObj != null) {
разукрасить_обратно();
_lastClickedObj = null;
}
484 705969
>>705967
А через ивенты такое реализовать можно?
485 705971
>>705969
Попробуй, я так не делал, сейчас лень разбираться
486 705976
>>705951
Вот это покроет весь зоопарк
https://playfab.com/

Либо чисто плеер ио. Хули ты пиздишь.
487 705978
>>705976
Чего ругаешься?
Я имел ввиду что никто из нас на наших инди проектах не будет использовать 20 разных либ на 20 разных языках. Возьмем фотон какой-нибудь и проект даже не доделаем.
488 706003
OnPointerUp не работает. Читал, что нужно добавить OnPointerDown или OnPointerEnter, но не помогает. Не могу понять, в чем проблема.
489 706009
>>706003
Event System добавь
490 706010
>>706009
Уже разобрался. Букву пропустил.
491 706029
>>705954
добавь на сцену (выше остальных спрайтов) бэкраунд с прозрачным спрайтом и лови клики на нём
492 706032
>>705910
Зафреймил ретёрн сабстракта тебе ин апдейт, чек ит аут.
493 706053
Есть некое int A = 4 и Vector3Int Huita (0,0,0). Почему мне вычисление Huita.x - A выдает результат -1?
494 706123
Алоха. Вопрос к бывалым. Тут загорелась в жопе сера научиться делать игры на Unity, в поисках курсов наткнулся на следующее:
https://www.school-xyz.com/hyper-casual
Следовательно вопрос, если посмотреть на описание программы и учесть возможность скинуться на него с парой друзей, сильно ли он будет полезнее чем остальные предложения на рынке, или вовсе бесплатные варианты на Youtube?
Возможно кто-нибудь уже проходил клевые курсы и может подсказать где можно найти?
495 706124
>>706123
P.S.

Учитывая что цена там нихуевая.
496 706127
Двач, хочу наложить на спрайт градиент, чтобы они переливался, какими инструментами в юнити это можно сделать?
497 706128
Гайз, подскажите плиз, пытаюсь зайти в аккаунт в Unity Hub, нажимаю sign in, загорается на пару секунд белый экран, и тут же гаснет. Зайти не дает. Сталиквался ли кто-кто нибудь с подобной ебатой, проблема не гуглится от слова совсем.
498 706145
>>706123
Там больше учат как заработать на гипер-казуальной параше в гугл плее, разве нет?
499 706148
>>706053
Так не может быть, ты где то накосячил
1.jpg169 Кб, 1602x863
500 706164
Посоны, а внутри геймобжекта можно как-нибудь чисто спрайт заскейлить? Если скейлить трансформ геймобжекта, то там следом колайдеры хуйядеры его скейлятся, ебанина такая их руками назад делать. Пока пришла только идея добавить внурь ещё один геймобжект и к нему спрайтрендерер прилепить и его чисто скейлить, но вот чёт очкую геймобжекты плодить, которых итак по итогу будет дохуя.
501 706166
>>706164

>добавить внурь ещё один геймобжект и к нему спрайтрендерер прилепить и его чисто скейлить


Так обычно и делают.
502 706168
>>706166
Ясно, пасиб.
503 706179
Не первый раз наталкиваюсь на сборку Юнити, которая не хочет запускаться у меня на компьютере. Насколько это частая проблема? А если игра выйдет в стим, а у игроков не будет запускаться?

Пользуюсь виндовс 10.
504 706180
>>706179

>А если игра выйдет в стим, а у игроков не будет запускаться?


То они заберут назад деньги и в отзывах напишут что мамашу твою ебли.
505 706198
>>706128
бля, ну я ща вскроюсь с этой хуйней, памахите
507 706210
>>706198
Да переустанови хаб уже ёбаный, если не помож вместе с юнькой и делов то, больше времени ерундой маешься.
Endless Dungeon20201025110229292x264.mp415,8 Мб, mp4,
1360x768, 0:11
508 706218
>>705408
Пожал спрайты анимаций в два раза разрешение, поменял фпс анимаций с 60 на 30, запихнул каждую анимацию в спрайтшиты, под 4к сжатие текстур в юнити они влезли, в редакторе всё-равно подлагивает, а в готовом билде пропадают куски персонажей и иконка инвентаря партачит - но уже значительный прогресс в сравнении с тем, что было. Но, блять, ужимать дальше некуда, попробую спрайты "земли" пожать и ещё надеюсь на то, что пропадают куски из-за конфликта имён, все анимации одинаково названы, как и спрайты к ним, может юнити при билде что-то через пизду сжимает и потом неправильно рантайм декодирует.
509 706242
>>706210
Ебать, вот это совет. Такой неочевидный ход, сам додумался до такого, или подсказал кто?
Разумеется блять я уже 10 раз переустановил, и старые версии хаба попробовал, и сука все что могло ограничивать его работу aka брандмауэр\антивирус и тд позакрывал. Осталось только с бубуном попрыгать над компом.
510 706245
>>706209
Да это первое куда я пошел, попробовал все что там советовали, и нихера. Безысходность...
511 706276
>>706218
Разные типы апдейта, влияние на компонент через родственников.
Такой хуйни не должно быть.
2.jpg52 Кб, 793x808
512 706278
>>706276

>Разные типы апдейта


Вся логика игры крутится в фикседАпдейт. Клики мышки только ловлю через апдейт.

>влияние на компонент через родственников


Ну вот зомбик у меня одним геймобжектом идёт и сам свой аниматор контролит, а на нём пропадает спрайт на видяшке видно. Ну конечно на него "влияет" родственный геймобжект игрока, но там типа отнять хп и всякое такое, как иначе то подобное реализовывать. Напрямую на его аниматор влияет только когда анимацию ошеломления запускает энеми.шортСтан(), но это хуйня я думаю и в первых версиях игры не было таких багов, а код этот уже был.
Персонаж игрока состоит из нескольких геймобжектов - оружие, щит, башмаки... аниматоры которых контролятся основным родителем геймобжектом, но всё же сомневаюсь в твоём предположении, потому что это не объяснит допустим куда проебалась иконка инвентаря. Но предположение это ещё обдумаю. Делаю ставку на конфликт имён файлов, проверять буду как наберусь сил всё перепилить.
513 706285
Задам тупой вопрос, но всё же.

На данный момент я работаю в той сфере, которая мне просто остаебала. Мало того, что работы много и она мне не нравится, так ещё и получаю копейки в районе 50к. ОЧЕНЬ хочу перекатиться в геймдев индустрию, а именно в погромисты на unity.

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

Планирую потратить на вкатывание около года-полутора, поэтому не смущает количество необходимых знаний. Главное знать что именно изучать.
514 706291
>>698843 (OP)
делаю что -то под мобайл (да в мармолсете, но позже на unity)
low-poly (максимум 9k tris на здание)
pbr всё такое (моделил/запекал)
в дальнейшем буду фиксить
что скажите?
515 706292
>>698843 (OP)
делаю что -то под мобайл (да в мармолсете, но позже на unity)
low-poly (максимум 9k tris на здание)
pbr всё такое (моделил/запекал)
в дальнейшем буду фиксить
что скажите?
516 706297
>>706291

>low-poly (максимум 9k tris на здание)


>pbr всё такое


Просто комбо какое то. Интересно сколько полигонов у твоего главного героя.
517 706298
>>706297
разве мобилки не вытянут такое?
GTA IV на планшете 2д13 года запускали и вполне себе играли, а там геометрия на зданиях есть и по 37k tris
image.png43 Кб, 420x618
518 706299
>>706285
Пикрелейт требования выдвигаемые вот прям сейчас, завышенные конечно, но если знаешь это, то точно возьмут.
>>706285

>Планирую потратить на вкатывание около года-полутора, поэтому не смущает количество необходимых знаний. Главное знать что именно изучать.


Если именно программистом, то очень серьезно изучать шарп.
И параллельно изучать движок, можно через https://learn.unity.com/ или курсы с торрентов.
>>706285

>что работы много и она мне не нравится, так ещё и получаю копейки в районе 50к.


Так в гейдеве все так же.
519 706300
>>706285
Ну, удачи с перекатом на 30-40к
520 706302
>>706298
Просто сделай базовую сцену со своими моделями, сбилди под мобилку и потести.
521 706305
>>706299

>unity junior


>в среднем 2000 у.е. в месяц

522 706308
>>706299
Зачем нужно затемнение кода здесь?
523 706310
>>706218
это в юнити эффект зернистости или из-за видео?
image.png33 Кб, 513x350
524 706331
Установил версию Юнити 2019.4.13f1. Они урезали возможность открывать скрипты из инспектора? При дабл клике уже не открывается, как раньше.
525 706337
>>706331
пкм - Edit Script
Работает даже на Transform компоненте
Unity20201026135454629.png1,6 Мб, 1292x768
526 706360
>>706310
В юнити.
изображение.png30 Кб, 649x435
527 706389
А можно поплакать? Мое нищепок не тянет пустую юнити

Почему я такой неудачник и как мне с этим жить? Работаю на нищезарплату, думал поделать игры чтобы себе купить комп для разработки. Поделал
528 706406
Анончики. Подскажите какой-нить глубокий разбор или туториал по DOTS, чтобы от и до, со всеми подводными камнями и работой под капотом.
529 706432
>>706389

>думал поделать игры чтобы себе купить комп для разработки


Ахзазазх.
530 706450
А у вас есть способ отлавливать глобальное нажатие пкм эвентом?
Ожидал, что OnPointerClick будет так работать, но он вызывается только при клике на объект, к которому привязан
531 706465
>>706389

>Почему я такой неудачник


>думал поделать игры чтобы себе купить комп


Ответ на вопрос кроется в самом вопросе. У тебя ложные представления о жизни
532 706466
>>706406
Буквально на днях слили туториал на эту тему, я его пару месяцев искал.
https://cgpersia.com/2020/10/udemy-unity-tutorial-collection-173422.html
Из этой коллекции тебе нужен: Update your Unity programming skills to take advantage of the new Data Orientated Technology Stack and Burst Compiler
Course link: http://www.udemy.com/course/unitydots/
image.png25 Кб, 376x325
533 706471
>>706337
Нихуя не работает. А сам скрипт серого сцета, что характерно. Может это нововведение у них?
534 706472
>>706471
Ты по названию компонента правой кнопкой тыкни
535 706473
>>706472
А, так работает. Спасибо. Но тем не менее, раньше было удобнее открывать скрипты
5B5D339B-AA04-438E-9168-E791261987C6.jpeg87 Кб, 720x1520
536 706475
Как сделать слежение камеры как в cube surfer ?
Камера следует только за персонажем, но когда он слайдится влево-вправо, она остаётся на месте
А ведь там ещё дорога поворачивается.
537 706476
>>706466
Спасибо
538 706477
У кого-нибудь были проблемы с Адмиксом? Зарегался на сайте, а внутри движка сука упорно не хочет входит, log in attempt failed
539 706519
>>706450
if(Input.GetKeyUp(KeyCode.Mouse0)){
// отжали мышь
}
>>706389
Какая версия? мой комп из 2007 тянул 2019 lts (только я оч сильно дрочился с перфоменсом благодаря этому научился всему такому)
>>706475
Проверка дистанции по одной оси, вместо трех.
А вот как правильно настроить эту ось - твоя работа
540 706526
>>706519
Про оси спасибо, идея хорошая
541 706559
Анон, чет я туплю, вебвью поддерживает встраивание видео без навигационных клавиш? Например с ютуба или своего сервака.
542 706561
>>706299

> Зарплата зависит от количества сделанного


Ох, саундс лайк наебалово
543 706569
Обмазался UI Toolkit в превью-версии. Заебись вещь, правда пока лагучая.
544 706573
>>706569
Показал бы что сделал хоть..
>>706559
через UnityPlayer - да, там вообще клавиш нет
545 706588
>>706573

>через UnityPlayer - да


А есть гайд?
546 706589
547 706590
>>706589
Это нативное встраивание. А у меня элемент (база знаний по игре) находится в вебвью, проксируется с моего сервака. И вот туда, помимо текста, я хочу впендюрить еще видео.
image.png146 Кб, 647x651
548 706591
Делаю типичную бродилку по коридорам и комнатам, и, чтобы упростить игроку прохождение, хочу добавить необязательную возможность делать пометки маркером на стенах, дверях, короче, на мешах (можно рисовать стрелки и текст, например).
Рисовать он будет курсором мыши.
Как думаете, мне подойдет Line Rendered? Пока чел будет удерживать курсор, я буду с интервалом, например, 100мс, запоминать позиции курсора и передавать их в Line Rendered.
Это будет происходит так. Чел подходит к стене, переходит в режим рисования спец клавишей (пусть будет "P"). В этот момент я поворачиваю камеру к стене, чтобы она смотрела прямо на стену, под нулевым углом. Потом формируется Line, который просто будет висеть на стене.
Норм идея?
Но может есть хорошие и бесплатные готовые варианты?
549 706596
>>706590
Аа, возьми либу vjs и через стиль .video-js .vjs-big-play-button {
display: none;
}
скрой кнопку, через JS управляй видео.
Хуюнити умеет дергать методы из других языков (включая нативный ios или android)
>>706591
Норм, у lineRender-а есть встройная функция relax - которая удаляет слишком близкие точки + через raycast ты можешь рисовать не в воздухе, а прям на своих объектах
550 706603
>>706596

>через raycast ты можешь рисовать не в воздухе, а прям на своих объектах


а, точняк
551 706611
>>706596

> возьми либу vjs


Понял, спасибо. Только либа выглядит жирновато, другого способа нет?
552 706620
>>706611
Другую либу поищи))0
Юнити не предлагает ничего, что выходит за рамки движка, если UnityPlayer не нравится - подключай что-нибудь стороннее.
553 706636
OnControllerColliderHit создает мусор.
Если какие то алтьернативы CC хитдетекшена?
OnColliderEnter не может пробиться через кожу контроллера (любой толщины), то есть не работает.
на форумах советуют не юзать дефолтный cc, лучше пишите свой, круто, а зачем тогда он есть вообще, может пока пишу свой контроллер, еще свой движок напишу заодно?
554 706640
>>706636
К-костыли
555 706648
>>706640
к-кокие?
это юнитевский подкапотный калбек, они его зачем то сделали классом, нигде неподкопаешься
556 706688
>>706648
Ладно написал свой контроллер, хуй с вами.
557 706693
>>706688
Быстро ты. А разговоров-то было..
558 706695
>>706636
Столкнулся с этой же проблемой и из решений правда начал костылить свой контроллер, очень неудобно, но другого выбора нет
559 706697
>>706695
Меня беспокоит что дефолтный там под капотом использует PhysX апи и на плюсах, то есть уже оптимизированнее всех васянских контроллеров и всегда будет, да и вообще мы движок берем чтобы игры делать а не под унитазом гайки крутить.
560 706699
>>706697
Яб покрутил, только они даже не дают эти слабые гайки закручивать вместо них..
А! Еще помню, что если убрать этот метод OnHit то лишнего GC не будет
561 706707
Тестирую под свой старый телефон, не смотря на то, что игра не оптимизирована, все работает ок, хороший фпс и не греется ничего.
Дал потестить людям на чуть более старых моделях и на очень современных моделях типа сосунг галакси - говорят греется и при чем достаточно сильно.
Игра очень примитивна 2д. Андроид 4. В чем может быть причинакроме подкручивания гаек и моих исправлений в будущем? Это какая-то распространенная проблема или что?
Все изображения юнити автоматически определяются ассетами, то бишь при созданий-удалении объектов с одним видом используется одно изображение или каждый раз определяется новое? И чтобы это исправить мне вручную надо прописать префаб какой-нибудь?
562 706708
>>706699
Ага и инфы о колижене тоже не будет. Зачем я этот метод вообще добавил по твоему, для красоты чтоли?
Нет, мне нужен калбек о говне по которому я хожу.
И юнити дает мне этот срущий мусором калбек, вот только чинить его как я понимаю некому, все заняты очередная_ненужная_маркетинговая_хуйня_нейм.
563 706749
Как правильно сделать показ рекламы и остановит при этом игровой процесс?
564 706755
>>706749
В меню, инвентаре, в магазине. Просмотрите рекламу чтобы получить 1 монетку.
565 706756
>>706755
Да не, не в этом вопрос. Рекламу то я впендюрил, но игра при этом продолжается. А надо чтобы он останавливался на время ролика.
566 706757
>>706756
То есть у тебя даже нет паузы втф.
Пауза дизайнится в самом начале посьтроения архитектуры, просто останавливай все процессы, по свичу и по timeScale = 0;
567 706759
>>706757
Пауза есть, она через timeScale=0 сделана. Я просто думал, что это все приложение целиком остановит, включая саму рекламу.

>по свичу


А это что?
568 706760
>>706759
Мой сленг. Свич-переключатель. Ну типа if нет паузы то код, если есть паузы то нет кода.
569 706761
>>706760
Ну понял, спасибо, сделаю тогда через таймскейл.
570 706780
Как у меня печёт. Переезжаю с 2019.2 на 2019.4 и начинается ебала с firebase. Не работает android resolver. Ну блять, бесить. 2 дня просидел, бросил.
571 706790
>>706780
лол, толи еще будет 2020.х
572 706798
По рекламе вопрос. Как правильно считать значение ShowResult.Finished, чтобы понять, когда закончился рекламный ролик? В обычном if не считывается, пишет, что не конвертируется в булевый тип.
573 706872
>>702393

> стилистика зельды не зашла, а тут прям то что надо


Поздравляю, у тебя начисто отсутствует вкусь. Геншин настолько дженерик пиздоглазая хуйня что хуже уже некуда.

> вайфу есть


Как что-то хорошее.
574 706873
>>706872
Не баламуть, а то он сейчас разойдется.
575 706900
Как начать проигрывать следующую анимацию за 10 сек до окончания первой анимации? Многое что перепробовал, все что-то не то.
Самый рабочий вариант был первым-определить общее время всего нужного порядка анимаций, и затем создавать объекты с одним временем, только включающими анимацию в разные отрезки.
Не работает как надо потому что я криво как-то флажками ставлю отметки, в итоге они начинают косится со временем и вместо анимации у меня пусто(так как пустые отрезки нескольких объектов начинают совпадать).
576 706903
>>706790

> еще будет 2020.х


Ну кстати разобрался. Оказалось, что слишком длинный путь до проекта.
577 706960
Бля как сделать ии как в хотлайн маями? Пока придумал только колхозить через навмеш, вешая спрайты пола и стен на тридэ кубы, а на юту бе два индуса и один русак, у которых ии просто трансформом транслейтом либо рб велосити идет в сторону игрока, и если зайти за стену то он в нее упирается. Подскажите какими инструментами это делать, может какие-то сторонние библиотеки?
578 706964
>>706960
Можешь из челиков рейкасты пускать чтоб они в стены не долбились, для несложного передвижения этого хватит я думаю
579 706969
>>706964
нашел тутор от индуса с использованием a-star pathfinding
Endless Dungeon20201030002257596x264.mp419,7 Мб, mp4,
1600x896, 0:13
580 706977
>>706218
>>706278
Бля получилось! Даже спрайты анимаций назад увеличил в два раза, правда от сапог и перчаток, как отдельных объектов с анимациями, отказался.
581 707011
>>706977
Пост уровня помохте решить проблему.
А не можно закрывать я сам нашел.
???
582 707013
>>707011
Сейчас учить тебя, щенка, будем..
У программистов есть такое понятие "поговорить с уточкой", так вот суть в том, что пока ты рассказываешь свою проблему - тебе в голову приходит решение.
Если не веришь, можешь загуглить.
Самое смешное что это правда иногда работает.
583 707014
>>707013
Лол школота "у програмиста", это блядь у всех есть долбоящер, а не только у прогера. Сука термин он тут придумал ниибацо локальный, програмис хуев. Ору.
И здесь долбоящер проблема не твоей шизофрении, а в том, что я блядь, описал.
Нашел проблему - пиши тут же решение, это правило хорошего тона. Сука какой кринж с тебя ловлю пиздос.
584 707015
>>707011
Ну знаешь, анон порой очень помогает, поэтому если я ловлю затуп и не могу разродится решением пару дней - то тут строчу посты.
585 707016
>>707015
Нашел ответ сам - пиши его. Это не твой личный дневничок.
586 707017
>>707016
>>706278

>Делаю ставку на конфликт имён файлов, проверять буду как наберусь сил всё перепилить.

587 707082
>>706977
Так а в чем в итоге проблема то была, если вкратце?
588 707088
>>707082
Да хуй его знает, переименовал все файлы анимаций по уникальному каждый, когда их заново переделывал, спрайты все поджал под их точное разрешение, убрал два объекта анимированных с персонажа. Либо перегруз был движка из-за количества тяжёлых "анимаций", шесть объектов со спрайтшитами анимаций по 4к было на персонаже основном, стало четыре, либо юнити путался в готовом билде из-за одинаковых имён спрайтшитов анимаций. Ещё кэшировал аниматоры, к которым каждый апдейт обращаюсь. Вообще не думал что спрайтовая графика побольше чем 3д отжирать может.
589 707223
Пацантре, насколько безопасно использовать jobs? Ориентировка пк и мобильные
590 707237
>>707223
Да безопасно то безопасно. Мне было сложно начать думать под эту DOTS методологию.
Ии они давно хотели запретить доступ через статику (т.е. работай только с данными, которые пришли в джобу)
591 707246
Подскажите пожалуйста, хочу сделать кроссворды. Как правильно рисовать грид? Нужно ещё чтобы можно было наложить текстуры типа нарисовано от руки на старой бумаге. Ещё в общем меню буду выводить все кроссворды в види миниатюр с сохранённым состоянием. Я делаю через Image и просто скейлю его, а миниатюры генерирую заранее, но выходит очень дорого, на 5000 кросов с сейвами уходит сепкунд 10 на пеке, а на мобилке того больше. В общем, реквестирую трушный способ.
Ещё прикупил ассет новый Shapes, но пока не пробовал
592 707248
Добавил короче рекламу. Попытался сбилдить и мне выдало 80 ошибок лол. Попытался по форумам пошариться, там то ли проблема в том, что две версии рекламных пакетов в ассетах лежат, то ли устаревшая версия ассетов. Так толком и не понял. Кто-нибудь сталкивался? Добавлял unity ads через asset store
593 707255
>>707246
Грид через Tiles.

Миниатюры в реальном времени незачем генерировать. Если состояние сохранено то сохраняй к нему и уже готовый кроссворд.
594 707269
>>707255
Ну нее, тайлс тут точно не подходит.
595 707270
Аноны, есть у кого-то примеры или ссылки на примеры 2д боевой системы (управление вверх/низ/лево/право) . Как в зельде короче.
Хз, не могу придумать адекватное что-то. Милишная атака для таких игр выглядит странно, а поочередная как в героях сложная для такого лоха как я.
Может есть советы куда копать?
мимо 2 месяца стажа юнити и c#
596 707272

>Internal: JobTempAlloc has allocations that are more than 4 frames old - this is not allowed and likely a leak


Почему юнити сама под себя протекает? Никаких мемных жоп систем не использовал и не собираюсь, стоит ли беспокоится?
597 707280
>>707272
Значит какой-то ассет украл
598 707308
Допустим моей игре не нужна реалистичная симуляция физики, хватит ли Physics.ComputePenetration с оверлапами для нужд простого 3д платформера?
599 707311
>>707280
Пустая сцена с кубами блин.
Ассетов чужих тоже нет, только пара шейдеров от васяна, которые даже не использую.
Ладно, удолил весь мусор из проекта, на всякий.
600 707356
>>707311
А какая версия? Может какой-то юнетивский пакет ругается, давай разберемся, если больше инфы дашь
>>707308
Можешь вообще на райкастах написать свой контроллер.
Пару лет назад на старом ноуте делал платформер с гридом от юнити, так вот физика его грузила на 20-40%, переписал на райкасты (пускал 2 в пол и 1 в сторону куда идет перс), этот способ грузил ноут на 0.1-1.5%
ddo2ps4-d405bac4-b24a-4785-8c6d-3cb2c3d679c.png29 Кб, 754x666
601 707357
>>707356

>Можешь вообще на райкастах написать свой контроллер.


Так если у меня куб, надо 8 рейкастов делать чтобы сквозь углы не проходить, а если сфера/капсула то вообще хз, надо именно оверлап (у меня капсула).
кинул 100 своих капсул оверлап + пенетрейшен контроллеров, проц грузит 25% в среднем.
43564565467443.png26 Кб, 771x365
602 707359
>>707356
Unity 2018.1.0f2, в меню Package Manager все дефолтное.
Честно не знаю какую инфу давать, я не знаю причин.
Похоже что абсолютно рандомно вылезало, будто юнити само на себя там чето под капотом бухтит.
С тех пор как задал вопрос вот пока не вылезало (эффект плацебо сработал).
, 603 707435
Как обычно используется смена/ разное оружие в 2д играх?
1) отдельный набор спрайтов для персонажа с каждым оружием?
2) отдельная "рука" с каждым оружием? Как она тогда связывается с чарактером?(один объект чарактер, который содержит все части, в т.ч. руку?) Как как они связываются в коде?
604 707458
Как сделать анимацию поблескивания кнопки? Или чтобы по ней прокатывалась волна света?
605 707462
>>707458
Ассетом
606 707464
>>707462
Каким?
607 707467
https://www.youtube.com/watch?v=qSLVv5bFLd0
За какую сумму и какое время написали бы данный функционал, с системой диалогов, квестами и вознагрождениями, инвентарем.
сумму указывайте с учетом того, что еще нужно объяснить как это работает и расширяется, по канонам ООП
608 707488
>>707464
Очевидно же
610 707507
>>707435

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


Никак.

>1) отдельный набор спрайтов для персонажа с каждым оружием?


В фоллачах так первых было, вот ебанина аниматору была, да и моделек из-за этого по парочке на оружию и броню было.

>2) отдельная "рука" с каждым оружием? Как она тогда связывается с чарактером?(один объект чарактер, который содержит все части, в т.ч. руку?) Как как они связываются в коде?


Я пилю топдовн рогалик и у меня щит/меч/броня/шлем - отдельные объекты со своими аниматорами и анимациями, синхронно контролируемые основным объектом.
611 707513
Это требования к вакансии, можете объяснить по-русски что требуется, на примерах.
- Deep understanding of asset workflows, data serialisation
- Low level knowledge of C# APIs and Unity APIs
- Strong knowledge of C# and modern programming paradigms, e.g. async/await
612 707515
>>707435
>>707507
Переведу на профессиональный язык.
Для 2д есть 2 типа анимации.
Спрайты и костная.
Спрайты это покадровая классическая анимация, как флипбук. Позволяет делать ВАУ эффект и дает плавный красивый контроль, но делать это все аниматору очень долго тяжело дорого.
Костная анимация это когда у тебя есть обычные картинки объектов и модель, связывающая движения между ними. Упрощает анимационный процесс тк не надо рисовать покадрово картинки для каждого движения и объекта, но выглядит чопорно, специфично, как флеш игры тех лет, требует усилий чтобы сделать ну прям красиво.
Спутать эти стили невозможно. Вопрос дизайна.
613 707516
>>707513
1)Купил установил использовал
2)Знать как все работает из коробки, а не из документации, сидеть на гите и читать каждый класс
3)Тоже самое только еще в целом нужно знания иметь о компутар сайнс
614 707523
>>707515
Спасибо, но вторым пунктом я не совсем костную имел в виду.
Пример: есть какой-то спрайтовый персонаж с анимацией сражения на мечах. Например, враги умирают только если касаются меча, а не всего персонажа. И вообще ещё видел, как один спрайт разбивали на несколько (персонаж и оружие)
615 707539
>>707516

>1)Купил установил использовал


А data serialisation это что? Ассет воркфлоу, это поток работы, то есть как работают ассеты нужно разбираться и все?

>3)Тоже самое только еще в целом нужно знания иметь о компутар сайнс


Ну я почитал про async/await, но в комментариях как обычно холивар, что можно использовать корутины, и в каких-то ситуациях асинк не подходит. Где мне подчерпнуть всю современную информацию о работе с кодом в Unity? Может просто фишки, как асинк/эвейт, я сам уже нагуглю. Нет почему-то такого списка нигде, если кто-то в блоге у себя писал, что должен знать сениор на юнити по шарпу, то дай инфу, а то у меня только какая-то расплывчатая информация.
616 707553
Аноны, есть смысл перекатываться на 2020.1?
617 707555
>>707515

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


И чё в юнити есть для этого инструменты хорошие? Просто я покостную анимацию через спрайтер пилю и импортирую в юнити уже спрайтшиты готовые.
618 707592
Кто-нибудь шарит за блендшейпы? Когда двигаю ползунок в редакторе, фпс падает кадров на 200. На сцене только модель с ригом и ~100 блендшейпами. При этом в видосах на ютубе люди как-то рилтайм рандомят одновременно 200 шейпов и фпс почти не проседает.
619 707617
>>707553
Если ты занимаешься чем то специфическим, чекаешь вручную ченджлог всех версий от твоей текущей до последней.
Если обычно анон пилящий инди, то всегда надо переходить на новую версию, за исключение альфа и бета билдов. На данный момент 2020.1.11 последняя стабильная и 2021.1.0 Alpha вкусная, но не стоит пока.
620 707618
>>707467
Думаю около 15к рублей выйдет вместе с объяснениями и не говнокодом внутри. Все что выше просто не нужная накрутка от более опытных кодеров которые и так зашибают по несколько к. зелени в месяц.
621 707631
Приветствую Анонов. Подскажите пожалуйста, допустим я собираю стул, мне нужны 4 ножки, спинка, сидение и 10 гвоздей. Как я могу зафиксировать это с помощью скриптов в unity и допустим при сборке стула у меня расходовались материалы из инвентаря.
622 707668
Почему коллайдер объекта со второго скрина во время игры блокирует коллайдер кнопочки юайки во время игры? У меня на коллайдере кнопочки скрипт такой пиздатенький висит, чтобы при наведении кнопочка цокала, в стартовом меню всё зоебок работало, а внутри игры вот не хочет. Объект со второй пикчи диэйблю в редакторе - и звуки с кнопочки начинают работать. Уже думаю писать скрипт на дизэйбл всех коллайдеров на время паузы, но может есть простое не костыльное решение?
623 707669
>>707668
Коллайдер это физический объект и его в UI не надо применять
Есть события триггеры для UI элементов, есть graphic raycast
Но не надо коллайдер
624 707673
>>707669

>события триггеры для UI элементов


Хорошо, и как OnMouseEnter() эвент без коллайдера запустить? Либо какой-либо его аналог.
625 707676
>>707618
Ты уверен? Сделаешь сам такое за 15 тысяч? Готов заказать.
626 707677
>>707617
Я чекал, ничего для себя вкусного не нашёл.
627 707700
>>707673
Накидываешь интерфейс IPointerEnterHandler и реализуешь его метод, всё
628 707715
>>707700
Спасибо, анон!
629 707717
>>707673
Накидываешь компонент Event Trigger, там много всяких событий
image.png182 Кб, 878x577
630 707830
Может кто сталкивался с такой проблемой хотя и маловероятно
После перехода на Pro версию перестали открываться проекты с Unity 5, бесконечно висит пикрил на рабочем столе, при этом не отображается в трее, диспетчер задач показывает, что всё работает нормально эдитор не "не отвечает"
631 707896
Где годные курсы по C# взять на русском?
632 707903
>>707896

>на русском


Нигде
633 707906
634 707990
>>707676
Да, не вижу проблем. Возможно не так красиво будет, но сделать не сложно. Пару дней работы.
635 707994
Хотел добавить покупки в приложение. Я правильно понял схему, надо сначала загрузить проект в гугл плей, получить под него ключ, а потом с этим ключом уже настраивать дальше?
636 708003
>>707994
Нет неправильно, ключ ты сам генеришь
637 708060
>>707990
Почему не так красиво, там же ноды обычные, или ты через инспектор будешь делать?
638 708072
>>708060
Какие годы ты имеешь в виду?
другой анон
639 708073
>>708072

>Ноды

640 708083
1.png8 Кб, 515x216
641 708185
Сап, юнитач
Может кто подскажет, почему эта блядская функция возвращает всегда false.
Вводные: есть тайлмапа со стенами, на нее повешен TilemapCollider2D, ей задан слой BlockingLayer.
Функция находится в скрипте, повешенном на персонажа. Переменная LayerMask BlockingLayer создана, в инспекторе для нее выбран соответствующий слой (тот, на котором стены).
Причем если я не отключаю собственный коллайдер персонажа (он тоже находится на слое BlockingLayer) то столкновение происходит. ЧЯДНТ?
642 708191
>>708185
А причем тут функция, если столкновение происходит если ты оставляешь игрока с таким же слоем. Ищи ошибку в работе луча, сделай дебаг рей и смотри куда он стреляет, может ты не туда запускаешь.
2.png41 Кб, 924x498
643 708192
>>708191
Сделал дебаг линии, запускаю луч туда куда надо вроде. Этот луч проверяет доступность клетки для алгоритма поиска пути.
644 708193
>>708192
сделай копию игрока и проверь, будет ли он видить его на другой клетке (перейди туда, а не проверяй как в первый раз на том же персонаже), может дело в самих клетках
645 708194
>>708193

Алгоритм поиска пути висит на игроке, но может искать путь между любыми точками, потому что пока он просто обозначает путь красными точками. Я запускал код поиска между двумя точками не связанными с игроком. Проблема остается та же: рейкаст в подфункции определяющей есть ли коллайдер на клетке не видит коллайдер тайлмапы стен.
646 708195
>>708193

Вот, например, поиск пути между двумя точками, не связанными с персонажем.
image.png12 Кб, 536x177
647 708211
Просто ебаный рейкаст не пашет. Вот тут и вектора2, и вообще просто луч между двумя точками, точно пересекающий стену, и все равно не происходит нихера, ни сообщения в дебаг логе, ни нарисованной дебаг линии.
648 708213
>>708211
Зачем тебе коллизия с рейкастом? Чем дефолтный юнити не устроил
649 708216
>>708213
О каком дефолтном юнити речь?
В данном случае рейкастом я проверяю, есть ли в точке объект,блокирующий путь. Если нет, то создаю новый нод с соответствующими координатами.
650 708217
>>708216
колбек OnCollisionEnter()
651 708218
Аноны, подскажи срочно!
Как добавить extra linker flags в xcode билд?
652 708220
>>708217
Подощло бы, если бы я двигал коллайдер. А я ничего не двигаю, я создаю список нодов посредством прощупывания клеток на предмет чего то, что блокирует путь.
653 708225
Пытаюсь в билд под ios, получаю парашу
building for iOS-arm64 but attempting to link with file built for unknown-unsupported file format
Как фиксить?
654 708233
У меня на машине весит три материала, отвечающий за фары, колеса и саму машину. Как через код обратиться к каждому из этих материалов?
655 708249
>>708225
Билд под айос разве не на максоси надо делать?

>>708233
Циферку в качестве аргумента ставь при получении компонента
656 708283
Аноны помогите или обьясните что гуглить.

Проблема такая. Ставлю на цилиндр ригидбоди и навмешагент. Циллиндр в воздухе и падает вниз. Приземляется на обьект с навмешем и ходит туда сюда. Все работает.

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

Не понимаю что не так. Почему работает только с цилиндром а другой моделькой нет?
657 708285
>>708283
Гугли коллайдер
658 708286
>>708285
Но на цилиндре коллайдера нет.
image.png19 Кб, 405x248
659 708287
660 708356
>>708249
Пробую из под винды. Ассет называется iOS Project Builder
661 708441
Пацаны, что дешевле по ресурсам, рейкастить чтобы определить проходимый объект или нет или перебирать список непроходимых позиций?
662 708447
>>708441
Кто сильнее кит или слон? Тупой вопрос, тебе виднее должно быть.
Зачем тебе профайлер дали.
663 708452
Почему у шейдера не могу по этой команде RenderingMode с Transparent на Opaque переключить?
material.SetOverrideTag("RenderType", "Opaque");
664 708690
Нужно поработать с геймпадом, никогда раньше геймпадами не пользовался, какой купить чтобы вставил и работало без пердолинга? А может есть эмуляторы?
665 708727
У меня террейн над которым летает вертолетик. Как дешево и сердито сделать так чтобы все домики и деревья внизу были окутаны туманом?
666 708731
а как собсна говоря сделать ночь? чтобы все черное было как в расте или арме ночью. по дефолту в юнити при директ лайте интенсити 0 все просто серое
667 708735
>>708211
А разве рейкаст пускается из точки в точку, а не из точки в направление?
668 708736
>>708211
Лайнкаст используй
669 708738
>>708736
Либо кастуй луч не в конечную точку, а в направлении по формуле направление = откуда кидаешь луч - куда кидаешь луч;
670 708740
>>708735
>>708736

Я и так и так пробовал. Одна и та же функция при одних и тех же условиях и настройках в разных проектах ведет себя по разному. В одном (основной) спокойно детектит коллайдер с тайлмапы, в другом (тестовом) в упор не видит. Я специально написал две одинаковые тестовые функции, каждая из которых и лайнкастит и рейкастит в обоих проектах, и все равно, в одном пашет, в другом нет. Я не понимат.
671 708743
>>708738
Посмотри, как было изначально: >>708211
А самое веселое что скакнуло напряжение, комп ушел на ресет и скрипт в котором была эта функция в том числе перестал открываться. Точнее открывается, но в виде пустого файла в блокноте.
Я как уже сказал выше попытался по разному порейкастить и полайнкастить в стены, нихуя не вышло, при том что в другом проекте для проверки создал точно такие же функции и там все работает. Сверил настройки физикс, все одинаково. Хз, может быть что проект забаговал?
672 708754
>>708452
Потому что, нужно будет рекомпилировать весь шейдер, это рутовое свойство, его просто так нельзя менять.

>>708690
У меня китайски за 500р работал, суть проста, делаешь Input.GetAxis или Input.GetAxisRaw, вместо читой 0 или 1 контроллер может возвращать 0.1 0.2 0.3 и тд

>>708731
Смотря какие у тебя настройки, в конфиге light есть ambient light - этот свет будет светить всегда и со всех сторон.
Тут у тебя 2 выбора - можешь динамически менять этот параметр и 2й способ - создать Direction Light и крутить его трансформом. А еще лучше всё сразу.
673 708756
>>708740
Мож на стенках не 2д коллайдер висит, или с леером что-то?
674 708769
>>708756

На стенах в обоих проектах тайлмапколлайдер2д, слой указан и там и там, через public LayerMask BlockingLayer, стенам указан слой BlockingLayer, в инспекторе для скрипта выбран этот слой. Короче создам завтра новый проект и буду надеяться что это бага конкретного проджекта.
675 708781
>>708769
у меня было похожее говно из-за Composite Collider 2D. попробуй сменить в нём geometry type
Pepe smiling.png227 Кб, 703x600
676 708821
Насоветуйте курс или серию уроков обучающих делать 2д мобильные игры с нуля на Юнити скачать без смс
677 708822
>>708821
Шапку читал?
678 708823
>>708754

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


Как рекомпилировать? Я только скомпилировать могу. Вот так это в шейдере выглядит, Tags { "RenderType"="Opaque" "PerformanceChecks"="False" }, то есть я как раз к тэгу обращаюсь, можешь точно сказать как решить это?
679 708826
>>708821
Кирилл плез
680 708848
Ребят двачую iOS Project Builder. Компилю под айос из под винды. Сказка ваще! Никакие нахуй клауды не нужны
681 708893
>>708823
Создай копию шейдера с другим тегом и меняй материал через скрипт.
Эти теги никак нельзя менять по другому
682 708899
Как обменивать информацию в Photon во время коллизии?
Вижу коллайдер другого игрока, беру компонент статов, меняю иии ничего не происходит потому я хз как менять статы.
Документацию пролистал кроме RPC ничего не нашел. Неужели я не могу манипулировать статми в процессе коллайдига без функции на стороне? Не хотелось бы переписывать много всего с нуля :\
683 708997
Как отслеживать в UI, что у меня элемент зажат? У меня плавающий список, и мне нужно когда кнопка зажата, чтобы он листался.
684 708998
>>708997
Если клавиша зажата и если координата лежит на кнопке.
685 709006
>>708998
Мне кажется, не нужно так изъебываться с координатами. Нужно только знать как проверить что кнопка зажата, а не нажата, а остальное функционал стандартный с проверкой того мышка в кнопке или нет Юнити я думаю уже сделал.
686 709067
>>709006

>уже сделал


Ну удачи в поисках несуществующей хуйни.
Епт что за школота пошла, сама задает вопрос, отвечаешь, а они еще не верят лол. Нахуй тогда было задавать вопрос если и так все знаешь пиздос.
687 709069
>>709067
Ты дебил? Функция на кнопке срабатывает после отпускания мышки, ты нихуя не написал что мне использовать, дятел.
688 709073
>>708997
Костыльный способ придуманный только что мной на коленке:
EventsManager.Current.ActiveElement (кажется, точно не помню), суть в том, что в этом классе ты можешь взять HoveredObject и SelectedObject (на который зажал лкм) и обернуть это в свои костыли.
Минус - в том, что тебе придется работать по имени или дергать компонент (или еще что можешь придумать)

второй вариант: Создай компонент IHoverable (например), унаследуй от интерфейсов IPointerDownHandler, IPointerUpHandler, ну дальше ты наверное понял, после срабатывания DownHandler ставь isHover = true и в update() делай свою логику.
689 709074
>>709073
Спасибо
690 709082
>>709069
Ору, какой агрессивный школьник.
691 709087
>>709082
Ты орешь когда тебя в жопу порят только, инфантил.
692 709092
>>709087
Все что надо знать о кирилах
гд раковая тематика
693 709097
>>709092
Ты долбаеб сам хуйню нести начал, со своими стрелочками, лучиками, запоминаниями какими-то, вообще хуйню поришь, школьник.
694 709101
>>709097
А вот и перефорсик пошел агрессивный от кирила, думаю тебя самое время зарепортить
695 709107
>>709101
Тебя за тупые советы зарепортить и навечно из этого раздела выкинуть, сам понимаешь почему.
696 709147
>>709107
Тупорылая школота плез
697 709199
установил URP, создал ассет, подключил и вставил в него 2D Renderer. всё это для того чтоб спрайты себя сами сортировали в зависимости от значения Y (скриншот). но есть хуйня что спрайт который выше по Y с какого-то хуя находится над тем что ниже. это баг такой? кто-то использовал этот функционал? пивоты для спрайтов указал, sprite sort point тоже
698 709233
>>709147
Что ты пиздишь, даун, везде школьников видишь, и нихрена в Юнити не шаришь, даешь тупые советы от себя, иди учись, а не зависай тут, на раковой доске со школьниками, лалка.
699 709237
>>709233
Раковая опухоль из би, хватит засирать тред своей тупостью, ты просто смешон
Поскорее бы ваша дистанционка закончилась и вас опять выгнали бы санными тряпками на уроки
700 709238
>>709237
Я школу 30 лет назад закончил, ты о чем, рачок
701 709242
>>709237
Ты наверное педофил какой-то или сам школьник, если у тебя в мыслях до сих пор школьники мелькают. Задумайся, может это тебе пора с дистанционки уходить, мамкин недопрограммист.
702 709270
>>709238
А по мозгам все такой же даун, да?

>>709242
кирил на саммодупе плез, пролистай свои высеры выше и пойми какое же дегенеративно хуйло, почем зря засирающее тред, вот давай сука иди и мотай, ебло
703 709278
Хочу начать делать игры на юнити на андроид, в шапке на эту тему ничего не сказано. С чего начать, если я вообще ничего не понимаю в программировании? Знаю, что для юнити надо знание c#, решил сначала начать с него.
704 709282
>>709278
официальные уроки на сайте Юнити по созданию на нем простых игр - твое лучшее начинание.
705 709284
>>707631

>Как я могу зафиксировать это с помощью скриптов в unity и допустим при сборке стула у меня расходовались материалы из инвентаря.


с помощью программирования. Если ты умеешь кодить, то изложишь эти мысли в программном виде.
706 709292
>>709284
Благодарю) Я уже разобрался. Согласен, описание гавно. Скорее всего сам бы так же ответил)
707 709308
Анон с проблемой рейкаста не детектящего коллайдеры репортинг ин.
Проблема локализована, мои рей/лайн-касты не видят конкретно тайлмапколлайдер2д. Причем в оригинальном, старом проекте видят, блядь, а в новых я создал еще один, чтобы проверить, может это был баг проекта нет. Настройки Physics2d одинаковые в обоих проектах. Настройки слоев, тайлмап, коллайдеров, тайлов одинаковые в обоих проектах. Я уже не знаю, что сравнивать чтобы понять, почему в одном месте лучи детектят тайлмап коллайдер, а в другом блядь нет.
708 709372
Приветствую анонов. Ситуация следующая. Я в качестве свойств для объекта (Scriptable) использую так же срок его использования. Т.е. если объект не использовали, то пользователь теряет его из инвентаря. Таймер у меня реализован -=Time.DeltaTime. И вот допустим пользователь не заходил в игру допустим два дня. Соответственно воспользоваться предметом он не может, он должен у него исчезнуть. В качестве решения думаю делать так, при выходе пользователя из игры через PlayerPrefs сохранять значение даты/время и текущий остаток секунд по таймеру объекта, затем при старте игры сопоставлять с сохраненным значением вычислять количество секунд, затем отнимать полученное значение от остатка секунд по таймеру объекта, если значения <=0 тогда уничтожать убивать объект из инвентаря. Решение мне кажется костыльным, возможно анон сталкивался с этим и может предложить другое направление?
709 709373
>>709372
В дополнении сюда же, если допустим пользователь аварийно завершил работу приложения получается я не запишу значения текущих показателей времени и при старьте игры, обращусь к прошлым значения, что может вызвать коллизию, правильно понимаю?

Ньюфаг-Unity
710 709374
>>698843 (OP)
Скачал Unity Hub,но не нашел русского языка,только англ и варианты китайских
С чистой совестью работать на английской версии или есть простой способ поставить русский язык?
711 709376
>>709372
>>709373
когда что-то добавили в инвентарь, то записываешь этому предмету время добавления и продолжительность жизни сразу, не ожидая выхода. тогда при аварийном закрытии ты всегда сможешь посчитать нужно ли его удалять или нет

дополнительно рекомендую синхронизировать время с интернетом чтоб переводом часов не наебали
712 709378
>>709374
ладно,глупый вопрос
, 713 709409
Есть анимация удара мечем. Как корректно сделать так, чтобы противник умирал именно от удара меча, а не от того, что коснулся персонажа во время анимации (например, сзади или под мечем)?
714 709429
Чому на UnityLearn по запросам RTS и strategy вообще ничего нет? Самое близкое что нашел - Tower defence. На юнити вообще что ли стратежки не пилят?
715 709436
>>709409
включай коллайдер меча только тогда когда идёт анимация удара
716 709449
>>709429
Есть на Udemy хороший курс по RTS, можно управлять армией, создавать ее, создавать здания и это не основа, основа - мультиплеер на Mirror, иди ищи, стоит по акции копейки. выбери только английский язык
717 709450
Я тут совсем мимокрокодил, просто поспорил давеча со знакомым на тему какие игры на каких движках делают.
В общем вопрос - как из ПК-игр, сделанных на Unity, на данный момент считаются самыми масштабными в плане ресурсов разработки и объёма проданных копий?
718 709454
>>709436
У меня есть спрайт анимации всего персонажа. Т.е. нужен отдельный подобъект меч или как?
719 709455
>>709454
не обязательно, можно просто объект с коллайдером (хитбоксом) меча. включай/выключай его и смотри что в нём за коллизии
720 709460
>>709450
Заходишь на википедию и смотришь https://en.wikipedia.org/wiki/List_of_Unity_games
>>709450

>в плане ресурсов разработки


По мне так это Escape_from_Tarkov, Genshin_Impact и Wasteland_3
изображение.png44 Кб, 274x172
721 709492
>>709455
Хм, включать в зависимости от конкретно кадра? Или хитбокс должен двигаться (внутри персонажа)?
Вот пример, положение меча на 1 и 2 отличается от последнего кадра.
722 709528
Как вы храните контроллеры? Просто класс фасад, где лежат все контроллеры для всех персонажей?
723 709544
>>698843 (OP)
Привет всем, что подскажете использовать для клиент-серверной работы для игры на несколько игроков (в тч желательно с возможностью поднимать локальный сервер)? Я смотрел в сторону telepathy\apathy, но как понимаю возможностей куда больше и не знаю, насколько они уместны
724 709552
>>709242
Ты говоришь педофил так, как будто в этом есть что-то плохое.
725 709563
>>709544
Я на colyseus сижу, но вот

>поднимать локальный сервер


Так что не смотри
хотя рядом анон делает мобу на нем
изображение.png2 Кб, 413x33
726 709601
Есть объект, которому включаю анимацию через аниматор таким образом.
Мне нужно выключить (enable = false) объект на время(на самом деле , родителя), но когда я его опять включаю, играет дефолтная анимация (видимо, сбрасываются переменные).
Если я включаю анимацию на OnEnable, то после появления он какое-то время отображается со старой анимацией и только потом начинает играть нужную. Как пофиксить?
727 709612
Есть 3 префаба дороги, в кадре всегда находятся 2 из них, тот, что остается сзади, выключается. Нормальный способ передвигать этот префаб вперед остальных двух?
if(spawnPoint > nextSpawn){
for(int i = 0; i < objectList.count; i++) {
if(!objectList.activeInHierarchy)
{
objectList. transform.position = new Vector3(бла-бла-бла, бла-бла, бла);
objectList.SetActive(true);
nextSpawn+= 5.0f;
}
}
}
И это можно считать минипулом (за исключением того, что новые объекты не пулятся, т.к. и не нужны)?
728 709613
>>709612

> objectList.SetActive(true);


objectList.SetActive(true);
фикс
729 709614
>>709613
Лол, пиздец я довен.
objectList.SetActive(true);
730 709615
Блять, эта хуйня удаляет i в квадратных скобочках.
731 709637
Поясните за смешивание анимаций. Нужно сблендить атаку и бег. Как можно запилить воздействие анимации атаки в состоянии покоя на все туловище, а в состоянии бега - только на верхнюю половину? Гуглил, везде ответ один - второй слой с маской верхней части тела, и на нем атака. Но в этом случае когда персонаж стоит на месте и бьет - похож на ебаного паралитика, т.к. ноги не задействуются. Пробовал менять вес слоя в зависимости от инпута, пробовал разные костыли - все до пизды. Придется делать две анимации для обоих состояний? Но тогда нужно ведь и для прыжков/падений/etc тоже допиливать. Аноны, выручайте
732 709656
>>709637
Ну да, придется, в кс-ке 200+ анимаций, даже на player_turn_right_30, player_turn_right_75 и тд
image2020-11-14184553.png156 Кб, 1263x693
733 709673
Делаю а ля RTS, сделал лейблы хп над головами с именами солдат и при 7 солдатах ловлю просадки фпс-а (текст не меняется, меняется только позиция).
Так вот канвас для этого у меня отдельный - т.е. все эти 7 плашек рисуются сразу во 2й канвас.
Какие еще варианты поднятия производительности?
734 709684
>>709673
А в чем смысл второго канваса? Если сделать просто спрайты-полоски над головами, у которых скейл меняется при изменении хп? По идее не должно просаживать же
735 709692
>>709492
включать в анимации и можешь двигать если так лучше работает. тут же вопрос вкусовщины. я бы на 3й и 4й кадр наложил прямоугольник размером с весь меч и шлейф в четвёртом кадре. потестил бы и если б было ощущение что задержка (что игроков дохуя бесит), то натянул бы ещё и на второй кадр.

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

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

https://www.youtube.com/watch?v=5vXbem2ejJw
736 709697
>>709199
Выглядит так, будто там есть невидимая сетка и мышь рисуется выше своей "ячейки", поэтому визуально она уже на дереве, хотя по факту она ещё на нижней ячейке, поэтому рисуется под деревом, а не над ним и как только она переходит на ячейку дерева, она начинает рисоваться поверх него по правилам сортировки. Надеюсь понял, о чём я.
737 709743
>>709692
спасибо большое!
738 709747
Игры еще не сделол, но в почти пустой сцене наблюдаю периодические микростаттеры (нерегулярные), отчего зависит вообще неясно, фпс счетчик не проседает, профайлер молчит.
По ощущению как будто на 2-3 сек игра "догоняет" кадры, затем снова все норм.
В билде тоже есть. Может кто знает куда стоить копать хотябы?
739 709753
>>709747
Что-то обрабатывается в Update, что-то в FixedUpdate?
740 709757
>>709753
Да.
кинематик ригибади двигаю в FixedUpdate, инпуты к ним беру из Update (а как надо?)
741 709759
>>709753
upd
засунул все в FixedUpdate, никакой разницы, все равно подпидорашивает
еще заметил что включенный всинк уменьшает статтеры (был выключен), теперь они короткие и редкие, но все еще есть
играть конечно можно, но бля(
742 709760
>>709757
С инпутами все ок, просто некоторые физику двигают в фиксед, а камеру - в простом апдейт, выглядит со стороны как фризы. По посту показалось что из этой оперы.
Скинь сомнительные участки скриптов тогда чтоль
123123.png113 Кб, 1304x1016
743 709764
>>709760
у меня камера в LateUpdate вся (с колиженом Physics.BoxCast в конце)
пикрил собственно все немногое что присходит, вырезал мелочь
744 709770
>>709764
В этом куске ничего нет такого вроде. Пробни targetFrameRate покрутить
745 709775
>>709770
Я извиняюсь но сейчас тест показал что пидорасит именно ригидбади.
Изменил камеру, чтобы плавно летала за игроком, и у нее статтеров не оказалось (раньше она статтеры копировала прост), значит фреймрейт тут не причем.
Видимо все таки у меня в коде где то что то (как же заебало воевать с движком).
746 710044
Юнитачеры, я в отчаянии и близок к переезду на годот с этим своим траблом с рейкастами и тайлмап коллайдерами. Кто нибудь, запустите пожалуйста у себя этот проект и скажите, пишет ли у вас в дебаг логе что то или нет. Ну или вдруг вы заметите что то, что я упускаю уже две недели, из за чего у меня не детектятся тайлмап коллайдеры рейкастом, скажите. https://dropmefiles.com/xNxTg
747 710063
>>710044
Ща посмотрю. Как раз читал сегодня твое сообщени, хотел ругнуть, мол хоть бы код выложил
изображение.png18 Кб, 1059x507
748 710073
>>710044
Короче, ты наркоман, щас напишу
749 710079
>>710044
Вот что у тебя на экране, когда ты дергаешь TestCast();
Конечно, rayHit.collider и lineHit.collider будут = null.
Объекта нет на поле.
На костылили ради теста (Скрин два) - все взлетает. Скрин с результатом выше (но там то один то два хита).

Тебе нужно подумать над системой инициализации, чтобы однозначно понимать, что, когда и в каком порядке инициируется.
750 710080
>>710073

Я подозревал что ебусь в шары. Жду, доброанон.
изображение.png6 Кб, 338x180
751 710083
>>710080
Для примера так лучше, тогда оба хита будут. Надо про порядок почитать.
P.S.
Научись дебагом пользоваться
752 710085
>>710079

Странно, я думал что если я сначала вызываю функцию, которая создает тайлмапу, а потом функцию, которая кастит луч, то к моменту каста луча тайлмапа и коллайдер уже существуют. Видимо это не так. Спасибо, анонче!
753 710096
>>709449
Анон, ну ты бы ссылку дал. Только что закончил курс на юдеми и это было лучшее вложение 5 баксов. Даже не смотря на то я в английский не шарю. Тоже хочу еще подобное.
754 710100
>>710085
Ты можешь подебажить и выявить для себя более конкретные вопросы.
755 710101
В данном случае - это SetTile(), видимо
756 710155
>>710096
Unity Multiplayer: Intermediate C# Coding & Networking
757 710207
>>710155

>Unity Multiplayer: Intermediate C# Coding & Networking


Пасиба. Сук, 130 бачей стоит. Когда там акция..
758 710208
>>710207
Впрочем нашел купон.
759 710246
Подскажите, каким образом можно смоделировать земную среду? Предпочтительно работу различных газов (гелий, водород).

С твердыми телами понятно. Но что делать с телами легче воздуха? Например воздушные шары.
760 710267
>>710246
А что ты именно смоделировать то хочешь? Тебе диффузные процессы нужны (но зачем?) или что? Чего достичь то хочешь?
761 710311
>>710208
Напиши туи отзыв, как посмотришь или пройдешь. Теперь тоже думаю
762 710329
>>710267
да загорелся идеей смоделировать работу дирижабля. После дня раздумий понял, что к чему такие трудности, ведь можно просто высчитывать интенсивность его подъема на высоту в зависимости от количества единиц газа.
763 710331
>>710329
Вот да.
764 710371
>>710311
Ок. Но я щас начал проходить другой курс на юдеми, но от тех же авторов: RPG Core Combat Creator.
Знал бы что анонам местным интересно, расшарил бы аккаунт.
765 710380
>>710371
Скоро черная пятница, по скидону купим
766 710579
Хочу сделать слайдер сверху подобный оному в играх VooDoo, чтобы отображать пройденное игроком расстояние до финиша.
Но не понимаю как реализовать, как перенести значение на слайдер. Дорога прямая
767 710582
>>710579
Расписал как дебил конечно. Не понимаю как вычислить пройденное расстояние и перевести его в "0, 1", чтобы закинуть на слайдер
768 710615
>>710582
>>710579
Дай скрин или видео. Вообще хуй знает, о чем ты.
Можно сделать грид и положение на гриде переводить в значение
image.png60 Кб, 996x801
769 710624
>>710615
Я уже всё сделал. Со слайдерами раньше не работал, не знал, что можно минимальное и максимальное значение менять, поэтому сам себе проблем придумал. Вот как реализовал в итоге
1605857298883.jpeg20 Кб, 648x364
770 710654
Как там дела со сборкой под пороховую бочку PS3? В 4.6.2, успешно приобретенной на торренте, требуется модуль сборки, найти который - не самая простая задача. Может, в новых версиях модуль идет из коробки?
Интересуюсь именно третьей плоечкой, потому что в наличии четыре штуки с разными вариантами взлома. Да и проект не грузный - комфортно дышит на пентиуме 4 и зеленой 6800.
В идеале хотелось бы, чтоб модуль выдавал на выходе пригодный к запуску iso/pkg/PS3_DISC.SFB+PS3_GAME.
771 710712
>>710654
Я давно хотел взять себе виту и на неё билды накатывать, знаешь как? научить можешь?
772 710724
>>710712
Благое дело, но не знаю, потому и сам задаю подобный вопрос. Но тебе бы в первую очередь посоветовал разобраться с пиратством на вите, есть ли оно вообще там.
773 710760
>>710712
О полдерживаю. Вообще, юнити поддерживала разработку на Виту до какой-то версии.
774 710772
>>710624
чтоб от 0 до 1 получить можно было сделать currentDistance / distanceFromStart

на будущее юзай самокоментирующийся код и называй методы по тому что они делают. метод Distance не делает дистанцию, а обновляет прогрессбар. когда будешь писать большие проекты с другими людьми, они от таких названий ебанутся
775 710774
>>710772

>чтоб от 0 до 1 получить можно было сделать currentDistance / distanceFromStart


А ведь точно. Надо подтягивать математику мне, конечно
776 710872
Нужна помощь, юнитач.
Есть игра с числом, которое игрок должен набрать. Число это на каждом уровне разное и выбирается случайно из заданного диапазона.
Игрок набирает число проходя через баннеры, на которых написаное действие (прим. +13, -20 и т.п). пик1
Игрок движется безостановочно и должен решать пройти или не пройти через баннер, чтобы набрать нужное число.

Собственно, нужен метод, который будет принимать это финальное число, разбивать его и закидывать на баннеры, а также генерировать близкие к нужным числа и закидывать их на другие баннеры
Например на финале 7 баннеров - 4 из них верные, на них алгоритм закидывает нужные числа. (прим. для числа 54 с пикрила: 11, 22, 17, 4. И на 4 других баннерах другие, но желательно близкие по значению числа: -18, 9, 10)

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

Приветствуется любая помощь, начиная от советов как отредачить мой код, чтобы работало нормально, заканчивая предложением своего решения.
777 710876
Геймдевелоперы и девелоперессы, какой единственно верный и правильный способ делать катсцены для 2д игры? Через таймлайн, сайн машин или вообще кодом каждую сцену писать?
778 710919
>>710876
Что за сайн машин?
Таймлайн удобная штука, она сочитает и писание кода, делаешь свой скрипт "OnTimelineTrigger" и там делаешь любой код.
Вобщем таймлайн советую
779 711030
Допустим нужно в сцене рисовать 1000х1000 поле с клетками, где каждой клетке можно менять цвет по её кординатам, и менять каждый кадр какие-нибудь клетки во время игры. Как это лучше сделать?
780 711031
>>711030
Да, рисовать не на UI, нужно поле, которое можно будет покрутить как 3д объект.
781 711139
>>710872
Лень читать, но тебе же
782 711141
>>711139
Нужно пересчитывать каждый раз, когда игрок подобрал баннер с операцией. Т.е. есть метод, который берет число, разбивает его на рандомные целые части и эти части закидывает в пуллбаннеров, которые могут попасться. + Какие-то рандомные
Игрок подобрал баннер - метод дергается ещё раз (ТК текущее значение поменялось)
783 711196
>>711030
Очевидно миллион объектов это дохрена, рисуй в текстуру
784 711327
Подскажите, как скоординировать условную силу броска пропорционально движению пальца по экрану? КАК В ЭНГРИ БЕРДС
То есть игрок двинул пальцем на 1 см, кидаем с силой 10, двинул на 2 см, кидаем с силой 20.
785 711334
Кого-нибудь тут интересует небольшой фриланс?

Нужно сделать несложную приложуху для юнити. И дорабатывать её постепенно.
Много не плачу, но и особых знаний не нужно.

Приложуха должна уметь отображать 3д модель, чтоб ее можно было крутить, приближать
И должна выводить текст, который будет получать по http api (json)
Обсудить ТЗ можно по мылу, eeexshare95 собака gmail.com
786 711339
>>711327

Так и отображать, по школьной формуле F = kx, где F это сила, k это коэффициент натяжения, а x отклонение, в твоем случае задаваемое пальцем. k ты подберешь экспериментально, меняя его и посматривая, что получается, пока результат тебя не удовлетворит.
Теперь ты спросишь, как же мне реализовывать разную силу в юнити то? А я отвечаю, сила есть a*m, где a - ускорение, а m масса. Масса у твоего снаряда постоянная, значит в итоге ты будешь менять ускорение в зависимости от того, насколько сильно игрок оттянул снаряд.
787 711341
Чем в unity можно рисовать 2д графики типа пикрл?
788 711346
>>711339
Это я в целом понимаю. Мне нужно понять какие конкретно методы использовать. Там же есть и старые методы ввода, и новые, и надежные и ненадежные. Вот мне бы понять, какой самый новый и самый надежный.
789 711348
>>711346
>>711339
Чем именно считывать движения пальца, в этом вопрос.
790 711351
Только вкатился, и сразу проблема.
При первом запуске висит "starting server", отказывается работать дальше. Что делать?
791 711378
>>711341
1 - создаешь new Texture() и делаешь setPixels
2 - Создаешь класс GraphRenderer: MaskableGraphic и реализуешь интерфейсы, в которых есть доступ к канвасу

>>711351
Антивирусы, файрволы, недостаточно прав, закрытые порты, etc
792 711383
>>711341
Тебе эти графики в игре нужны, или для отладки?
793 711398
>>711383
Не игра, но приложуха. Графики - важная часть для юзера
794 711496
Пагни, а какая версия .net фреймворка и С# сейчас у 2020.1?
795 711523
>>711496
Кастомная .net standart 2.0 и c#6 кажется
796 711565
>>698843 (OP)
Как-где посмотреть краш лог? Юнити-игра крашится, я хочу знать после вызова какой функции.
797 711589
>>711523
Пиздец. На дворе уже кор 5 или как там и шарп 9.
798 711599
>>711589
Нахуя тебе кор и шарп 9? Вот какие именно нииабацо нужные особенности ты собрался использовать а блет?
799 711601
>>711599
Чел, я хочу писать код для игрулек, а не дрочить код, иначе бы я пошёл работать программистом. Я хочу все современные возможности и улучшения языка, а не ковырять дедовский кал. Да банально тот же синтаксический сахар сделает разработку приятнее.
800 711604
>>711601
Нихуя не понял из твоей шизофазии.
То ты говоришь что хочешь писать, то что не хочешь, дедов и сахар приятный еще приплел зачем-то.
801 711615
>>711589
версия языка точно выше 6, лень гуглить.
802 711683
помню что в каком-то ченджлоге читал что с какой-то версии юнити (вроде 2020) можно в инспекторе порядок элементов массива или списка менять просто драг-энд-дропом, но я не вижу как это врубается. это аттрибут поля какой-то нужен дополнительный или что-то я не так делаю?
803 711696
>>711589
В следующей версии обещали шарп 8 завезти.
А самописное гавно у них т.к. они свою версию движка паралельно делают со своими какими-то оптимизациями которые не заметны.
Например инкрементальный GC и доп инструкции для более простого конвертирования коды в плюсы.
Нам как разрабам от этого толка мало, у юнитеков в принципе выбор направления развития странный, что поделать.
804 711697
>>711683
Надо бетку 2021 скачать, это еще не релизнули в стейбл
805 711707
>>711601

>не дрочить код, иначе бы я пошёл работать программистом


Ну оно и понятно, так бы ты мог ответить, зачем тебе 9 версия и тем более кор, лол
806 711720
кто за open project следит? не охуели уже от того что эти пидорасы воооооообще всё заворачивают в ScriptableObject?

система ввода? конечно вставить в скриптблобджект!
система событий? скриптблобджект!
персонаж? понятное блядь дело что ему нужно 4 скриптблобджекта!

после трёх выпусков теперь на автомате начинаю думать как каждый свой код впердолить в скриптблобджект. что за хуйня, аноны?
807 711737
>>711720
Ссылку дашь?
Вообще плюсы этих объектов в том, что при загрузке инстанс полностью очищается и подгружает данные из префаба и нет доп оберток между плюсами и шарпами - микрооптимизация.
808 711738
>>711720
Я так делаю, брат жив.
Что тебе не нравится?
Монобихевиер жрет дофига из-за колбеков и тп. Скриптабл обжект меньше.
Лучше всего использовать классы, которые не будут производными от юнитевских классов. Если прям нужен отклик от юнити, то скриптбл
809 711740
>>711737

>Ссылку дашь?


https://www.youtube.com/playlist?list=PLX2vGYjWbI0S6CnkDm0AwVgA6E6L_vJNf

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

>>711738

>Что тебе не нравится?


дык полтора-два года назад никто эти скриптблобджекст в глаза не видовал и жили все нормально, а теперь их овердохуя. у меня нет никакого хейтинга per se, просто я удивлён что они там у себя в офисе юзают их в таком количестве
810 711751
>>711740
Ну хз, тут рассказывали. Можно рассказы и 2015 найти
811 711875
Помогите! Я уже даже не знаю куда и как гуглить. Проблема в том, что у меня не работают некоторые вкладки в эдиторе. Build Settings по нажатию просто ничего не делает. Я уже пробовал и сцены добавлять и создать новый проект, но Build Settings так и не реагирует ни на что. Делал переустановку. Иногда возникают проблемы с инспектором - отсутствует скроллбар, но это решается перезапуском unity. Ни ошибок по запуску в консоли. Как быть?

Версия 2020.1.15f1
812 711883
>>711875
Оперативки сколько?
813 711896
1.jpg54 Кб, 1303x726
814 711912
Анон, я пилю крч инвентарь, и предметы засовывать все буду под юайный Scroll View. Но вот мне не нравится что его можно прокручивать просто кликнув мышью в любую область 1 и потянув вверх или вниз, я хочу чтобы прокручивать можно было только ползунком 2. Это можно по-простому как-нибудь сделать?
815 711968
Прошёл С# стартер на ИТВДН, сейчас закрепляю метанитом.
По идее этого должно хватить для старта в Юнети. Какие есть свежие нормальные курсы с основами? Интерфейс там, базовые концепции и т.д. Желательно, чтобы можно было скачать на альтернативной площадке(иф ю ноу вот ай мин).
816 711971
Пишет что не может создать ключ для keystore тк якобы пароль или расположение keystore не верны.
keystore оставался там же где я его создал через Unity же, пробовал перемещать в папку с проектом, ошибка все та же.
Версия юнити и прочих сдк стабильные и совпадающие.
Как обойти проблему, пусть и с костылями?
817 711987
>>711968
Распиши плиз план вката
Тоже чет захотелось, умею писать хелоуворлды с гуглом
818 712005
819 712028
>>711971
Удивительно что проект с многомиллиардным вложением долларов имеет кучу жопошных неисправностей. Например, ты не можешь сделать просто статичное лого на ВЕСЬ экран(только задним фоном).
Ответ работника ююнити техноложис? Ну тип короч мы подумали что как есть будет норм, а кому надо тот экран загрузки с 0 напишет.
Спрашивается зачем для галки делать нерабочую вещь?
Также с коллизей и кучей других модулей.

На счет вопроса, все очень плохо и все очень тухло, вопрос тупа не решаем нормальным способом, разрабы разводят руками и просят логи у всех подряд.
У меня была версия 2018, все идеально робило, кроме этой фигни.
Я поставил версию 2019(при чем не без проблем, с переустановками и тп). ВНЕЗАПНО появились менюхи и прочие приблуды которые в версии парумесячной давности ПОЧЕМУ-ТО АРРГх не было. Ключ создался нормально.

Казалось бы вопрос решен. А нихера. Ес-но я теперь не могу открыть старый проект, в облако я его забыл загрузить. Придется теперь ручками с 0 опять все раскидывать по сценам.
И ладно у меня личный проектик, обрезок для души, а если бы проект был побольше? Косяк на косяке, костыль на костыле. Зачем вообще такие движки нужны если все равно потом все приходится изучать в корне и переписывать с 0 как тебе надо.

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

Думаю надо было создать ключ через напрямую через ждк, но я хотел надеется на лучшее. а теперь поздно пить боржоми
820 712040
>>712028

>а если бы проект был побольше?


То его бы делал не такой ебаклак, азазаз.
821 712041
>>712040
Но я и так его буду делать, расширять свой проект.
823 712089
Ку, юнитикамрады. Назрела необходимость сделать систему уровней для мобайл дрочильни типа cut the rope. 50+ уровней, последовательное открытие их, UI панель выбора, три звездочки за идеальное прохождение и т.д. Интересует архитектурная составляющая всего этого. Сначала я подумал делать префабы уровней и грузить их на одну единственную сцену. А может все таки лучше будет наделать кучу сцен и не заморачиваться? Или использовать какой-нибудь scriptable object? Из готовых ассетов нашел только https://assetstore.unity.com/packages/tools/gui/level-manager-55921 . Но как то сомнительно выглядит
824 712090
>>712089
Разницы нет никакой. Сцена это тот же объект.
825 712092
>>712090
Не хочется потом при добавлении новых уровней или функционала испытывать попапболь
826 712093
>>712092
Ты что ли кирил-вкатывальщик очередной? При изменении функционала всегда будет присутствовать попаболь, это неизбежно.
827 712096
>>712093

>Ты что ли кирил-вкатывальщик очередной?


Мне сложно судить, но пара проектов в сторах есть. 1,5 года варюсь около юнити и c#

>При изменении функционала всегда будет присутствовать попаболь, это неизбежно



Тогда зачем все эти абстракции, ООП, SOLID, MVC, паттрены?
828 712101
>>712096

>зачем


>1.5 года



Чет не похоже что ты уже 2 года варишься раз такие глупые вопросы задаешь. Они нужны для своих целей и вероятно ты неосознанно их используешь в процессе и так.
829 712113
>>712101
Возможно ты прав
image.png4 Кб, 372x97
830 712130
Почему вместо текста в окне сцены я вижу такое, а в окне игры все нормально?
ohno.png40 Кб, 452x278
831 712167
15143750749100.jpg951 Кб, 1438x2000
832 712269
Юнитаны, есть такая проблема. Есть пошаговая игра, в ней скиллы, которые в ходе выполнения могут прерываться требованием дополнительного инпута.

То есть будь это консольное приложение всё выглядело бы как то так
void FooSkill()
{
...
if(input == null)
{
input == UIManager.GetSpecificInput();
}
...
}

Но блокировка основного потока в юнити закончится так себе, поэтому остаётся только
1)Городить конечный автомат из кусков скилла и ждать коллбеков от ГУИ с требуемым инпутом, чтобы запустить следующий кусок.
2)Почти то же самое, но проверять не появился ли инпут в апдейте. Не так путанно, но апдейте в скилле иначе вообще не нужен.
3)Ждать инпут асинхронно, почти не разсирая код конечным автоматомэто за меня сделает компилятор Но это усложнит и запутает интуп манагер.

Может есть какие то ещё варианты или готовые решения?
833 712270
>>698843 (OP)

>На выбор два языка - C# и UnityScript. UnityScript - это что-то среднее между JavaScript и ActionScript


>Для изучения основ UnityScript выучи вначале основы JavaScript:


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



>End of support for UnityScript


>Starting with Unity 2018.2, support for UnityScript (Unity's version of JavaScript) has ended. C# is now the only supported language going forward. You can learn more about the reasons for this change here. There is an official UnityScript-to-C# Automatic Conversion tool to help those wanting to transition their UnityScript projects over to C#.



Когда перекатывать будете, обновите инфу про юнитискрипт что ли. Он уже джва года как мёртв...
лох 834 712272
Кириллы, подкиньте свежий ORK Framework
Помощь нуфагу 835 712279
Смиренно прошу почтенных юнитиебов о помощи.
Начал вкатываться в юнини, прохожу вводный урок.
Проблема: в режиме Game не отображается часть спрайтов, при этом они отображаются в Scene. Где я проебался?
836 712282
>>712279
кирил умер даже не начав жить
837 712284
>>712282
Кирилл все еще борется за жизнь и просит помощи, слабым голосом
838 712285
>>712284
У тебя объекты за друг друга спрятались на разных z слоях.
839 712287
>>712285
Кирилл чувствует прилив сил, но сильно теперь смущен вопросом отчего эти объекты уебывают обратно в отрицательный Z после Pause - Game
840 712288
>>712287
Аа, все. Кирилл разобрался и сердечно тебя благодарит
изображение.png14 Кб, 255x268
841 712290
>>698843 (OP)
Какую версию качать? Я пытался вкотиться лет 5 назад, тогда такого разнообразия не было.
842 712296
>>712290
Качай 2020 релизную.
843 712315
ебаный врот этого таймлайна нахуй, как добавить кустомный трек нахуй
image.png13 Кб, 391x288
844 712316
где кнопка бля где кнопка
Безымянный.png282 Кб, 1052x403
845 712356
Создал пустой 3D-проект - получил вот это: 4712 файлов в 467 папках. Это точно пустой проект? Как мне это архивировать, что из этого нужно заливать на гитхаб или куда-либо ещё, если захочу поделиться исходниками игры или сделать резервную копию? В каждом новом проекте будет такое вот месиво из мелких файлов? Я привык, что в папках моих проектов только созданные лично мной файлы, максимум 1-2 сгенерированных редактором/компилятором, а что мне делать тут? Я не понимаю, помогите(

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

Может, есть какие-то гайды, как обращаться с файлами проекта юнити? Что из этого можно выкидывать/генерировать заново, например, а что - уникально для проекта и необходимо сохранить, и т.д.
846 712358
>>712356
Лол, что за шиза? Не проще забить?
847 712360
>>712358
Не проще.
1. Я привык следить за порядком в своей файловой системе (хотя получается не всегда).
2. Архив с таким количеством файлов создаётся долго, распаковывается тоже долго (даже на SSD).
3. Большую часть этих файлов, как я понимаю, заливать в git не нужно, но каких - непонятно.
4. Если создать несколько проектов, проблемы от такого числа файлов будут возрастать.
5. Я бы мог на это всё забить, если бы у меня было бесконечное количество ресурсов ПК, но увы.

Вообще, я просто хочу понять и разобраться, почему всё так, а не иначе (чистенько-компактненько).
Безымянный.png11 Кб, 706x143
848 712365
>>712356
>>712360
Извиняюсь, затупил и погорячился. Надо было сразу папки проверить. Короче, я так понимаю, Library - это какие-то стандартные библиотеки Unity, которые генерируются автоматически и от них можно спокойно избавляться, когда проект отправляется в архив/гит? Я понимаю, что они, скорее всего, зависят от используемой версии Unity, но, надеюсь, если вдруг что - их потеря не столь критична... Там вообще бОльшая часть файлов - какой-то кэш, а кэш обычно можно сбрасывать...
849 712370
>>712167
А, да, точно. Спасибо!
изображение.png6 Кб, 159x318
850 712373
Я правильно понимаю, что Юнити когда-то давно имела полноценный перевод на русский, а потом на него забили? В документации к старым версиям много статей на русском, но потом переводчики куда-то потерялись.

Я-то и на английском прочитаю (так даже лучше, не будет путаницы в терминах), но странно, почему у самого популярного игрового движка не успевают переводить всю документацию?

unity3d.com всё ещё официальный сайт? А unity.com? Я знаю, они переименовали движок Unity3D -> Unity, но что с сайтами?
851 712378
>>712365
Заливай файлы из рутовой папки (там файлы проектов всяких, мало весят), ProjectSettings (10 файлов с конфигами, которые ты меняешь в редакторе) и Assets (собсна весь твой контент)

>>712356
Если говорить про скомпилированную версию - то в projectSettings есть strictEngineCode которая якобы может порезать 70% движка и убрать юнитикод который ты не используешь.
852 712388
>>712378
Понятно, спасибо. Я уже выкинул из проекта все стандартные пакеты (пока они мне точно не понадобятся), из "кучи файлов" остались только какие-то Artifacts, но это вроде какой-то скомпилированный код, в общем пофиг.

>в projectSettings есть strictEngineCode которая якобы может порезать 70% движка и убрать юнитикод который ты не используешь


Звучит как полезная фича, но я не нашёл, где это установить? Впрочем, я пока туториалы изучаю, рано париться об оптимизациях)
853 712490
сижу в телеге в группе новостей юнити и там переодически постят ссылки на ченджлоги свежих релизов, но каждый раз по этим ссылкам 404. надо ждать от нескольких часов до дней прежде чем эти ссылки будут работать. отсюда вопрос это что какая-то региональная хуйня? может у вас работает?

https://unity3d.com/unity/whats-new/2020.1.16
854 712498
Как учиться, если везде уроки по 5 версии или в лучшем случае 2018?
1.png11 Кб, 325x472
855 712515
>>712490

>может у вас работает?


У меня по твоей ссылке тоже 404.

>постят ссылки на ченджлоги свежих релизов


А сами чейнджлоги постят? Или только ссылки, лол?

Посмотри https://unity3d.com/unity/whats-new/
На пикриле - список всех ченджлогов, доступных сейчас.

Вангую, что в твоей "группе новостей" хотят быть впереди планеты всей и постят ссылки, которые вскоре станут активны - несложно угадать, какая будет ссылка, ведь они все по единому шаблону выполнены (/whats-new/номер.версии.юнити). Вот если они кроме ссылки постят сам чейнджлог - тогда да, хороший вопрос, откуда они это узнают... Алсо в Телеграме есть фича - робот Телеграма сам ходит по ссылкам и делает превью, если этот робот не смог сделать превью страницы или на превью 404 - тогда страница реально пока не существует.

Есть ещё вариант, что кто-то в той группе новостей является разработчиком или комьюнити менеджером Юнити, но это нужно только чтобы инфу раньше публикации на сайте выкладывать (а не ссылку, ссылка известна) и вряд ли такое будут делать в какой-то русской соцсеточке, если юнити даже русской локализации толком не имеет...
856 712517
>>712498

>везде уроки по 5 версии или в лучшем случае 2018


Ты по ссылкам из шапки ходил хоть?
Вот, например: http://catlikecoding.com/unity/tutorials/ - сам сейчас вкатываюсь, смотрю и пробую эти туториалы, там для 2019 версии, но 2020 судя по всему не сильно отличается. Это самая база, но начни хотя бы с этого, а потом будешь руководствоваться мануалом - https://docs.unity3d.com/2020.1/Documentation/Manual/ - ибо так надёжнее, чем слепо следовать советам васянов с ютуба. По мере того, как начнёшь разбираться в движке, сможешь понимать туториалы от старых версий, самостоятельно адаптируя их к новым версиям ("так, тут сказано бе, но бе с такой-то версии стало ме, поэтому нужно сделать не бе, а ме, понятненько").
857 712604
>>698843 (OP)
Вы тред перекатывать собираетесь или опять будете до 1500 тянуть?
Шапку, я думаю, нужно обновить.
858 712618
>>712604
да лан, нормально сидим
image.png74 Кб, 1146x612
859 712694
Любой эмейл не верен, любой ник уже занят
втф?
изображение.png33 Кб, 718x121
Новорожденный юнитиеб нуждается в помощи 860 712700
Учусь пытаюсь. Столкнулся с проблемой. Где то проебался в коде Однако ранее внизу выдавались список где и в каком скрипте проебался, сейчас же там пустое поле. а к такому видеогайды меня не готовили.

Собственно вопрос: куда исчезла панель с ошибками и как вернуть? Скучаю по ней
861 712721
>>712700

>панель с ошибками


Это консоль, она не только с ошибками.

>как вернуть


Ctrl+Shift+C (прям как в браузере) или через меню window > general > console. Откроется в отдельном окошке - просто перетащи его за заголовок на то место, куда хочешь поместить, и он должен пристыковаться к остальным окошкам.

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

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

Сам всего два дня копаюсь, консоль как раз сегодня изучил и поставил на видное место.
73881d915b3776d42188575e9082dfc869e695c5d8c54bad99f308568e2[...].png87 Кб, 483x539
862 712785
>>712694
Так ты ПРОЧИТАЙ И ПРИЙМИ ToS и Privacy Policy
863 712786
>>712694
Все юнитидебилы такие тупые?
пукович.png52 Кб, 1204x590
864 712801
>>712785
>>712786
Ребят, я понимаю ваш сарказм, но вы сейчас сильно обосрались. Пикрил - как было бы, если бы от него требовалось прожать галочки. От него форма требует не галочки прожать, а ввести правильное мыло и придумать уникальный ник. Даже если бы он прожал галочки, она бы всё равно его никуда не пустила.

>>712694
Понятия не имею, почему так, может у тебя с браузером проблемы? Или какие-то невидимые символы случайно вводишь? Или у них этой ночью были проблемы с регистрацией, кто знает...
865 712830
>>712801

>Даже если бы он прожал галочки, она бы всё равно его никуда не пустила.


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

Кстати, как adadadda, так и pukovich с высокой долей вероятности могут быть заняты. Неси пруф хотя бы с 64-битным именем, сгенерированным нормальным ГПСЧ.
866 712866
народ, нужен шейдер, которые будет игнорировать глубину (просвечиваться через другие объекты). Я сам вообще в шейдеры ни зуб ногой, мб есть готовый?
Спасибо
867 712869
Создаю объект из префаба, он из разных мелких частей. Как убрать у него тени? Если пытаюсь выделить отдельную часть префаба то она закрыта для редактирования.
868 712870
>>712830

>Ты можешь быть уверен в этом только если у тебя уже был опыт общения с формой


Сцуко, я специально для тебя этот пукович.png >>712801 запилил, а ты говоришь "если у тебя был опыт..."?!

>pukovich с высокой долей вероятности могут быть заняты


pukovich свободен (как минимум прямо сейчас), пруф на скрине выше. А вот puk, pukpuk, pukov и pukich уже заняты.

Форма чётко и ясно подсветила ему "эти поля говно, переделывай", пока все поля не будут зелёными - не пустит. Это поведение стандартно для веб-форм, она не будет пускать тебя дальше, пока ты не исправишь все красные поля. Галочки на эти поля никак не влияют.

>>712694
Я ещё раз проверил форму. Скорее всего у тебя проблема с сетевым подключением, либо с доступом к серверам юнити, либо сами сервера тормозили, когда ты пытался зарегаться. Эти поля не сразу отображают статус "занято"/"свободно", они делают запрос к серверу (ну, это очевидно), пока не получат корректный ответ от сервера - статус не изменится. Если у тебя медленное нестабильное соединение или сервер испытывает перебои в работе, форма могла сохранить исходный статус "занято" и больше не смогла получить корректный ответ от сервера, чтобы обновить статус поля.

Короче, попробуй ещё раз, попробуй с другого браузера, попробуй с другого компа... Где-то должно заработать)
1.png100 Кб, 956x384
869 712871
>>712869

>Если пытаюсь выделить отдельную часть префаба то она закрыта для редактирования.


Какую часть ты пытаешься изменить? Закрыт для редактирования только порядок child'ов.

>Как убрать у него тени?


УМВР, пикрил (юнити 2020.01).

Но ты можешь убирать тени через собственный скрипт, если имеет смысл скрывать/показывать тени во время игры.
Юняти-шатает-мне-нервы.PNG10 Кб, 505x161
870 712952
Господа, у меня одного происходит шляпа со скейлом костей при экспорте из блендера? Не буду перечислять какие настройки экспорта пробовал, проще сказать что все что связаны с этим самым скейлом. Так же заметил что тоже самое явление запечатлено на туториалах. Это норма?
изображение.png30 Кб, 558x217
871 712971
>>712952

>Господа, у меня одного происходит шляпа со скейлом костей при экспорте из блендера?


Да, ты один такой уникальный, гордись этим. Скейлит тут свои кости у всех на виду, бесстыдник...

>какие настройки экспорта пробовал


Я просто нажал Export > Collada (Default) (.dae) > export COLLADA
872 712972
Кстати, на счёт костей. Я знаю, что их используют для анимаций, и примерно представляю себе, как создаются анимации в блендере (когда-то пытался в 3D-анимации, потом забил). А что на счёт юнити? Вот я импортировал модельку параллелепипеда с костями, смотрю, вручную можно каждую кость двигать и моделька правильно изгибается, это хорошо. Т.е. я могу и через код костями управлять? Глупый вопрос, наверное, сам знаю, что могу, если могу найти по имени и обратиться к компоненту transform...

Вот только проблема - кости почему-то друг с другом не связаны. В Блендере они были выстроены в цепочку, в режиме позинга сдвинуть кость из середины вообще невозможно, в режиме редактирования кости остаются связанными, но кости вокруг сдвигаемой "растягиваются". А в Юнити те же самые кости сдвигаются свободно и при этом сильно искажают модель. Допустим, для вшитой в модель анимации это не важно (анимация-то в блендере делается), но как быть с ручными манипуляциями в юнити и процедурной анимацией? Может, проблема в формате экспорта (dae), или нужно что-то где-то настроить, чтобы сохранялись связи между костями?
873 712981
>>712972

>п.1.


Да, можешь в твиттере посмотреть процедурные анимации, люди оч крутые штуки делают через код с костями.
Если про процедурные - управлять через код.
Если с готовыми анимациями - создаешь Controller и кидаешь туда анимации. Юнити контроллер это отдельная тема на самом деле.

>п.2.


В блендере (как и в максе) это настраивается в костях (либо модификатором).
Вообще когда я из макса экспортировал в fbx у меня кости экспортировались с такой же иерархией и я мог вращать кости нормально, но мог и польностью вырывать их.
Скорее всего от этого нет лекарства, нужно просто аккуратно с этим работать
874 713004
Господа, напишите пожалуйста список требований на позицию джуниор юнити девелопера
875 713030
>>712981

>кости экспортировались с такой же иерархией и я мог вращать кости нормально, но мог и польностью вырывать их


Вот у меня такая же ситуация - иерархия есть, вращаются нормально, но можно "вырвать", если изменить Position.

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

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

Ладно, не важно, нужно туториалы изучать... последовательно)
photo2020-08-2811-47-32.jpg164 Кб, 952x1280
876 713058
>>712971
Кости вертикально выставлял? Суть в том, что вертикально выставленные кости, как например рут в моём случае, имеют скейл в единичку при импорте, вне зависимости от формата, будь то fbx или dae, а вот отклонённые от вертикали т.е. кости спины, руки, ноги, ВСЕ остальные уже имеют этот джиттер скейла. Можно было подумать, что это как-то связано с иерархией, но нет, вертикальная кость в цепи так же имеет нормальный скейл

>>712972

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



Примерно такое же поведение костей можно получить и в блендере, убрав галочку с "connected" в параметрах кости. Кость так же будет наследовать поворот, скейл и положение, но будет иметь дополнительную степень свободы в лице оффсета. Если оффсет нулевой, поведение в сущности будет идентично. Полезное применение находит в деформируемых ригах, загугли "overwatch animation slow motion", так нагляднее. С деформациями анимация может восприниматься лучше, приём по сути переняли у 2D аниматоров. Если интересна тема рига и деформаций в частности, то у Pierrick Picaut на ютьюбчике много интересного, тема деформируемых ригов и как их можно по человечески засунуть в Юняти разобрана в "Exporting stylised character rig from Blender to Unity". Ну так же курсы у него здоровские, много интересного подчерпнул. Только вот у него тяжёлый французский акцент. И конечно же эти курсы можно найти на торренте
877 713074
>>712871
Спасибо, разобрался. Оказывается надо было открыть префаб в отдельном окне и там все нашаманить. А если просто выделить в окне с ассетами, то панель инспектора недоступна.
изображение.png330 Кб, 616x379
878 713076
Начинающий юнитиеб смотрящий гайды и пытающийся стать Кириллом столкнулся с очредным вопросом:
Сижу я , сделаю свои юнитиебские дела(спрайты, скрипты и тд)и вдруг эщельме-гещельме! и то что я делал ближайшие полчаса вдруг сбрасывается и удаляется из Hierarchy, без каких то ошибок или уведомлений. Просто "ВЖУХ" и делаешь все с того момента как запустил.
Что я делаю не так?
879 713103
>>713004

>джуниор юнити девелопера


Вот это вбиваешь на hh/glassdoor и получаешь ответ на свой вопрос.
изображение.png2 Кб, 252x95
880 713108
>>713076

>то что я делал ближайшие полчаса вдруг сбрасывается и удаляется из Hierarchy, без каких то ошибок или уведомлений


Дай угадаю: ты нажал кнопку "Play", игра была запущена в фоне, ты что-то менял в сцене и сразу видел изменения в игре, а потом снова нажал "Play" и всё вернулось в тот вид, в котором было до первого нажатия? Это абсолютно нормально. Редактор Юнити позволяет изменять структуру сцены и объекты на ней прямо во время игры. Это полезная фича, когда ты хочешь поэкспериментировать со сценой или сделать в готовой сцене что-то, что игрок обычно сделать не может, при этом всё происходит в реальном времени. Но когда ты закрываешь игру, сцена возвращается в состояние до запуска. Это тоже полезно, т.к. во время игры можно насрать в сцену очень много лишнего (как скриптами, так и вручную через окно редактора) и было бы плохо, если бы это всё сохранялось в файле сцены. В общем, впредь следи за кнопочкой "Play" и состоянием окна "Game".
881 713109
>>713108
Именно так. Спасибо.
То есть я верно понял что сцена сохраняется после паузы?
ы.jpg92 Кб, 638x795
882 713110
>>713058

>такое же поведение костей можно получить и в блендере, убрав галочку с "connected" в параметрах кости


Это я знаю, но мне казалось привычнее, когда кости жёстко связаны. Это ж реалистично.

>С деформациями анимация может восприниматься лучше, приём по сути переняли у 2D аниматоров


Слышал и об этом, но мне бы хотя бы просто человечка для игры сделать и анимации к нему)

>твоё лицо, когда узнал, как тебя анимировали



Алсо видел некоторые деформации персонажей в записях матчей прямо в овервоч, там можно ставить на паузу, но мне казалось, что это просто глюки физического движка, т.к. повторно поймать одну и ту же деформацию не удавалось - каждый раз какая-то новая хрень. Часто такое заметно когда кого-нибудь убивает, особенно взрывом - конечности и голова на секунду могут отлететь за метр от тела... Реально на глюк похоже, а не на сознательно выполняемый приём.
изображение.png27 Кб, 618x134
883 713111
>>713109

>я верно понял что сцена сохраняется после паузы?


Нет, ты что-то не то понял. Сцена сохраняется после нажатия Ctrl+S, но только пока ты находишься в режиме редактирования - режим игры и даже пауза режима игры не позволяют ничего сохранить. Повторяю, режим игры - это режим для быстрых тестов и простых экспериментов в реальном времени, он не рассчитан на редактирование сцен с последующим сохранением. То есть сначала редактируешь сцену в режиме редактирования, сохраняешь (не обязательно, изменения сохранятся в любом случае), запускаешь режим игры, смотришь как это выглядит во время игры, при желании как-то экспериментируешь, выходишь из режима игры в режим редактирования, теряя экспериментальные изменения, и дальше продолжаешь редактировать сцену в режиме редактирования. По-моему это должно быть очевидно...

Теоретически, есть способ сохранить игровую сцену после изменений во время игры. Но для этого нужно писать свои скрипты, и я пока сам не знаю, как это можно сделать в юнити. Проще не выдумывать лишнего и делать так, как было задумано разработчиками юнити.
изображение.png3 Кб, 265x73
884 713112
>>713058

>Кости вертикально выставлял?


Да.

>отклонённые от вертикали т.е. кости спины, руки, ноги, ВСЕ остальные уже имеют этот джиттер скейла


Ну да, сейчас проверил - что-то такое получается.

>ВСЕ остальные


У меня почему-то не все. Но, возможно, потому что я только несколько костей повернул и скелет простой.

Имхо, если в туториалах на это внимание не обращают и в мануале/на форуме юнити ничего найти об этом не удастся, никакого официального объяснения или советов - скорее всего это норма и с этим придётся просто смириться. В конце концов все эти числа в Transform - типа float, а float подвержен появлению и накоплению ошибок округления. Там ведь матрицы друг на друга перемножаются, чтобы эти числа получить, или что-то в этом роде, короче матановские операции, влекущие за собой ошибки округления.

Если работает - забей, если будет вызывать ошибки в игре - тогда будешь думать, как это решить.
Можно скриптик написать, чтобы округлял все эти значения прямо в редакторе, например...
изображение.png736 Кб, 600x600
885 713114
>>713111
Понял. Еще раз спасибо, держи котика
886 713124
Юнити определилась с новым сетевым фреймворком
https://blogs.unity3d.com/2020/12/03/accelerating-unitys-new-gameobjects-multiplayer-networking-framework/
Eu1P9aMqk.jpg65 Кб, 604x640
887 713143
>>713112

>Имхо, если в туториалах на это внимание не обращают и в мануале/на форуме юнити ничего найти об этом не удастся, никакого официального объяснения или советов - скорее всего это норма и с этим придётся просто смириться.



Тоже прихожу к такому выводу

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


Мне кажется, что это не тот случай, тогда бы ошибка накапливалась ближе к концу иерархии. Но ты натолкнул меня на мысль, что если это как-то связано с точностью float, которая теряет какое-то там количество знаков из мантиссы за пределами порога в 10000. Вспомнил, что старом блендере по умолчанию единицей измерения были попугаи, и для правильного размера объектов нужно было в параметрах сцены переключиться на метры и прописать скейл в 0.0001. Нужно провести следственный эксперимент
изображение.png536 Кб, 700x522
888 713147
Начинающего Кирилла мучает вопрос: есть ли в нэте курсы по С# в пределах Юнити? Ну то есть объясняющий что в С# дергает за какие нитки в Юнити, как и почему. Или такого в принципе нет и нужно просто учить весь C#?
889 713160
>>713147
Сразу вопрос: ты программировать в принципе умеешь? На каком-нибудь языке до C# пытался программировать? Хотя бы скрипты автоматизации на .bat или AutoIt? А в школе учили Pascal или какой-то другой ЯП? Если у тебя есть какой-либо опыт, особенно если это Pascal или что-либо C-подобное, то проблем с пониманием C# быть не должно даже без каких-либо учебных материалов.

>что в С# дергает за какие нитки в Юнити, как и почему


Насколько я понимаю, в Юнити используется полноценный рантайм C#. Код, который ты пишешь конкретно для Unity, обычно нуждается в двух вещах: модуле UnityEngine и описании нового потомка класса MonoBehaviour, вот так:
using UnityEngine;
public class ИмяКласса : MonoBehaviour { код }

Модуль UnityEngine содержит в себе основной функционал юнити, который ты можешь дёргать из своего кода. А класс MonoBehaviour содержит в себе основу для игрового объекта, которую ты можешь изменять, объявляя методы с определёнными именами и записывая в них код. Эти методы вызываются из кода движка Unity тогда, когда происходят определённые события - в этом заключена суть программирования игры (игровой код реагирует на какие-либо события игрового мира). Собственно, всё, дальше ты можешь программировать практически как захочешь (в рамках имеющегося рантайма mono, как я понимаю).

Проще говоря, твой код на C# описывает потомки MonoBehaviour, методы которых вызываются из кода движка Unity, а ты в своём коде в свою очередь обращаешься к коду на Unity, чтобы получить, передать или изменить данные или состояние движка и игровых объектов в сцене (ну и не только это, при желании).

>нужно просто учить весь C#?


Не обязательно, если ты умеешь в другие ЯП. Просто, если возникнут вопросы "как делается ... в C#" - загугли этот вопрос и в 99% случаев найдёшь или ответ, или страницу в мануалах C#. Но чаще всего тебя будет интересовать "как делается ... в Unity", и ответы на эти вопросы ты можешь найти в официальных мануалах к Unity или в туториалах. Имхо, нет смысла учить какие-то хитромудрости C#, которые не имеют отношения к геймдеву вообще и к написанию кода под архитектуру Unity в частности (создание виндовых окошек, например). Да и "весь ЯП" невозможно выучить, обязательно будешь что-нибудь забывать, а часть функционала никогда на практике не пригодится, поэтому рациональнее изучать то, что требуется для решения задачи, а об остальных особенностях и инструментах языка знать только в общих чертах, иначе зароешься в изучение инструментов и забудешь об изначальной задаче - разработать игру)

Поправьте, если я написал какой-то бред, я сам не очень разбираюсь(
889 713160
>>713147
Сразу вопрос: ты программировать в принципе умеешь? На каком-нибудь языке до C# пытался программировать? Хотя бы скрипты автоматизации на .bat или AutoIt? А в школе учили Pascal или какой-то другой ЯП? Если у тебя есть какой-либо опыт, особенно если это Pascal или что-либо C-подобное, то проблем с пониманием C# быть не должно даже без каких-либо учебных материалов.

>что в С# дергает за какие нитки в Юнити, как и почему


Насколько я понимаю, в Юнити используется полноценный рантайм C#. Код, который ты пишешь конкретно для Unity, обычно нуждается в двух вещах: модуле UnityEngine и описании нового потомка класса MonoBehaviour, вот так:
using UnityEngine;
public class ИмяКласса : MonoBehaviour { код }

Модуль UnityEngine содержит в себе основной функционал юнити, который ты можешь дёргать из своего кода. А класс MonoBehaviour содержит в себе основу для игрового объекта, которую ты можешь изменять, объявляя методы с определёнными именами и записывая в них код. Эти методы вызываются из кода движка Unity тогда, когда происходят определённые события - в этом заключена суть программирования игры (игровой код реагирует на какие-либо события игрового мира). Собственно, всё, дальше ты можешь программировать практически как захочешь (в рамках имеющегося рантайма mono, как я понимаю).

Проще говоря, твой код на C# описывает потомки MonoBehaviour, методы которых вызываются из кода движка Unity, а ты в своём коде в свою очередь обращаешься к коду на Unity, чтобы получить, передать или изменить данные или состояние движка и игровых объектов в сцене (ну и не только это, при желании).

>нужно просто учить весь C#?


Не обязательно, если ты умеешь в другие ЯП. Просто, если возникнут вопросы "как делается ... в C#" - загугли этот вопрос и в 99% случаев найдёшь или ответ, или страницу в мануалах C#. Но чаще всего тебя будет интересовать "как делается ... в Unity", и ответы на эти вопросы ты можешь найти в официальных мануалах к Unity или в туториалах. Имхо, нет смысла учить какие-то хитромудрости C#, которые не имеют отношения к геймдеву вообще и к написанию кода под архитектуру Unity в частности (создание виндовых окошек, например). Да и "весь ЯП" невозможно выучить, обязательно будешь что-нибудь забывать, а часть функционала никогда на практике не пригодится, поэтому рациональнее изучать то, что требуется для решения задачи, а об остальных особенностях и инструментах языка знать только в общих чертах, иначе зароешься в изучение инструментов и забудешь об изначальной задаче - разработать игру)

Поправьте, если я написал какой-то бред, я сам не очень разбираюсь(
image.png159 Кб, 344x345
890 713174
>>713160
Учил только основы С и имею базовое понимание циклов,функций, указок, массивов и ТД. Вобщем уровень чуть выше Хелло ворлд. Поэтому смотря туториал по создании какого нито Марио нихрена не понимаю то ли объясняющий использует свои элементы то ли дёргает элементы Юнити и хотел бы найти какой то туториал чисто по скриптоебству, желательно для совсем дебилов.
891 713210
Сап юнитач, есть вопрос.
Мне нужно чтобы мой введенный в инспекторе string с атрибутом передавался в код без атрибута и возвращался обратно, не теряя атрибут.
Нужно это для работы локализации с цветным тектом.

Иными словами - я ввожу в инспекторе что-то вроде
<color=#7CFC00>Enemy killed</color>
в инспектор передается только "Enemy died", там код локализует строку и возвращает её, на выходе мы получаем
<color=#7CFC00>Враг убит</color>

Реально ли вообще такое сделать?
892 713211
>>713210

>в инспектор передается


В код скрипт передается
самофикс
893 713256
>>713210
Ничего не понял, но ты выключи ReactText и используй простой ввод.
В крайнем случае можешь сделать кастомный инспектор где написать DrawText(yourString, куча параметров для отображения)
894 713262
>>713174

>Поэтому смотря туториал по создании какого нито Марио нихрена не понимаю то ли объясняющий использует свои элементы то ли дёргает элементы Юнити


А какая разница, что он использует и дёргает? Повторяй за ним пошагово, постепенно научишься.

Есть официальные туториалы https://learn.unity.com/pathway/junior-programmer/

Если хочешь знать все элементы юнити, изучай мануал:
https://docs.unity3d.com/2020.1/Documentation/ScriptReference/index.html
И ещё здесь есть подробности о скриптинге под юнити:
https://docs.unity3d.com/2020.1/Documentation/Manual/ScriptingConcepts.html

>Scripting concepts


>Although Unity uses an implementation of the standard Mono runtime for scripting, it still has its own practices and techniques for accessing the engine from scripts. This section explains how objects created in the Unity editor are controlled from scripts, and details the relationship between Unity’s gameplay features and the Mono runtime.



Достаточно было сходить на официальный сайт юнити и пройтись по ссылкам. Тебе лень?
895 713264
>>713210
А зачем ты локализацию через инспектор вводишь?
Локализация обычно реализуется через списки строк в отдельных файлах (под каждый язык отдельный файл), и совершенно не важно, что будет содержаться в этих строках - можешь любые атрибуты добавлять.
Или ты хочешь, чтобы в файле локализации был просто текст без атрибутов?
896 713265
>>713262
Не лень. Я знаю про них. Проблема в хреновом техническом английском(причина в изучения ингла по книгам и мультам).

Но в любом случае спасибо. Придется подтягивать тех ингл
897 713268
>>713264
Локализация работает по принципу:

>В компонент текста вписывается ключ (или просто строка, которую нужно локализовать)


>Скрипт, висящий на тексте принимает этот ключ


>В зависимости от системных настроек телефона ищет ключ в файле локализации (если русский - в Russian, если английский - в English и т.д)


>Заменяет текст (место, откуда брал ключ) на соответствующий этому ключу текст в файле локализации



В целом работает всё как часы, но мне нужна возможность делать куски текста цветными. Например у меня написано "Приближается ЙобаДракон в колличестве 200 штук" и я хочу, чтобы "ЙобаДракон" было написано красным, а остальное обычным цветом.

Можно окрасить создав новый скрипт и в нём уже через код локализовать строку (или отдельные слова) и сразу давать цвет, но у меня много мест в которых нужно так сделать, а создавтаь десяток новых скриптов не хочется
898 713273
>>713265

>Проблема в хреновом техническом английском


Так ты хотел туториалы на русском языке что ли?

Да, придётся подтягивать английский. Давно пора, если не первый день в интернете)
Тем более что все мануалы к программам обычно только на английском, а без мануала разобраться трудно, если вообще возможно. Ещё и наиболее полные ответы на вопросы можно получить на стековерфлоу или других англоязычных форумах, а среди русскоязычных либо никто ничего не знает, либо не хочет объяснять...
899 713274
>>713273
Думал может кто то присоветует на русском туториалов , на тытупе или каком стороннем ресурсе.

На тытупе есть какой то Гоша Дударь , но его то ли в этом треде , то ли по соседству пидором звали и всячески учится у него не советовали
900 713275
>>713268

>возможность делать куски текста цветными


А записывать в файл локализации эти теги >>713210

><color=#7CFC00>


Никак нельзя?

Я сам даже текст на экран разместить не знаю как, мда
901 713276
>>713275
Нельзя, так оно, к сожалению, не работает
902 713282
>>713276
Может быть, там какие-то экранирующие символы автоматом вставляются?
изображение.png3 Кб, 155x56
903 713307
Только что создал новый проект и юнити сообщила, что вышла новая версия. Нажал на кнопку обновить, ничего не произошло. Закрыл юнити. В юнити хаб нет кнопки "обновить", я могу только скачать новую версию отдельно от старой. Чё делать? Удалять старую - качать новую? Почему они не сделали кнопку "обновить версию", очевидно же, что между 15 и 16 не должно быть существенных различий.
904 713322
>>713307
Ладно, пофиг, установил новую и удалил старую.
Но как лучше делать в будущем? Я правильно сделал?
изображение.png2 Кб, 371x39
905 713327
Попытался сделать WebGL билд сцены с UI-кнопками, билдилось очень долго, минут 8, в итоге получаю в консоли Firefox получаю ошибку "символ unityFramework не определён". ЧЯДНТ? У кого-нибудь WebGL-билды получалось делать?

А ещё я хотел попробовать сделать билд IL2CPP под винду, но билд не прошёл - какая-то ошибка обращения к il2cpp.exe или что-то типа того... Ну, это я так, просто проверяю.
906 713336
>>713327
1 Скачай Servez (синяя рожа).
2 Сделай билд в условную папку mywebglbuild.
3 запусти Servez - укажи папку mywebglbuild
4 в браузере открой http://localhost:8080
5 на этом этапе всё будет работать
Проблема эта т.к. браузеры сейчас блочат JS и http в файловой системе и нужно поднимать локальный сервак.
Кстати если не хочешь делать эти 5 шагов, другой вариант закинуть билд на настоящий сервак
907 713337
Можете пояснить за ECS? Я правильно понимаю, что сейчас если есть куча циклов, они выполняются на одном процессоре, не используя кучу тредов, которые сейчас в современных процессорах, а ECS делает игру более производительной. Вопрос на сколько?
908 713366
>>713336

>Проблема эта т.к. браузеры сейчас блочат JS и http в файловой системе и нужно поднимать локальный сервак.


Я знаю об этом, но эта ошибка выглядит по-другому. Я уже делал изменения в about:config и браузер перестал блочить запросы через по file://, но ошибка осталась. Servez установил и запустил, ошибка всё та же.

Такое ощущение, что билд кривой получился...
909 713371
>>713337

>ECS делает игру более производительной


ECS - это подход к разработке игр, преимущественно направленный на упрощение дизайна объектов, но также он может являться основой для data-oriented design (DOD). На производительность влияет не ECS, а реализация DOD, которая в Unity называется Data-Oriented Technology Stack (DOTS). Ну или как-то так. Я сам толком не понимаю, наделали кучу терминов и названий(

>Вопрос на сколько?


Зависит от типа контента. DOD имеет смысл, когда у тебя тысячи/десятки тысяч однотипных объектов, с которыми тебе нужно работать последовательно. Суть в том, что в ООП данные разбросаны по памяти, процессору приходится каждый раз искать следующий класс и ждать его загрузки из RAM в свой кэш; если же мы реализуем DOD, тогда однотипные данные хранятся у нас одним блоком, который процессор может загрузить заранее в свой кэш, в результате мы экономим время на поиске объекта/ожидании доступа к объекту.

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

А если хочешь подробнее - читай официальные статьи https://unity.com/dots
837097cb798c5caa4124a4ea39ef2a82cb094b10604f027bda07bb2f911[...].png77 Кб, 255x197
910 713382
Нюфаг в треде
Актуальна ли 5-ая версия Юнити или она уже в прошлом?
versions.png7 Кб, 152x726
911 713400
>>713382
А сам-то как думаешь?
https://docs.unity3d.com/Manual/index.html
Зачем тебе 5-я версия?
912 713406
>>713400
железо слабое, или не суть?
913 713420
>>713406
Не знаю, мой компьютер с 2008 не сильно обновился, тормозов в редакторе юнити 2020.01 не замечаю.
Учитывая то, что они нацелились на оптимизацию рантайма под слабые машины/мобилки - должна быть даже быстрее старой.

Или у тебя вообще какой-нибудь нетбук?
914 713447
>>713420
у меня и средне-пека и средне-бук, примерно одинаковые по железу, покупали году в 2015. Видимо надо тестить получше.
915 713467
>>713447
Уже пробовал? Что конкретно у тебя тормозило? Если компиляция кода/сборка проекта - оно на любом компе "тормозить" будет, всегда придётся немного подождать. А вот графический интерфейс и редактор сцены тормозить не должны.

А вообще вот официальные системные требования:
https://docs.unity3d.com/2020.1/Documentation/Manual/system-requirements.html
Где-то видел приписку типа "остальные требования зависят от сложности конкретного проекта". Т.е. чем более сложный проект пилишь, тем выше требования к ПК. Ну, как и с любой другой программой - Блендер тоже можно открыть на любом нетбуке, но более-менее сложную графику на нём не сделать - чем больше полигонов, тем выше нагрузка вплоть до зависаний.
916 713529
>>713366
Выключи компрессию в player settings, забыл про это сказать.
JS код ожидает ответ gzip, а т.к. приходит архив без этого заголовка - вываливается ошибка.
сори, сразу не вспомнил
1.png252 Кб, 1601x850
917 713591
Анончики, пытаюсь через юайшный рэйкастер кинуть рейкаст из transform.position объекта PinkDragonSteelArmor, чтобы поймать в него объект InventaryCell - нихуя не получается.
Пробовал юайным рейкастером просто от позиции мышки рейкаст кидать, если мышка в центре объекта PinkDragonSteelArmor - успешно ловятся рейкастом оба вышеперечисленные объекта.
Начал дебажить по координатам - координаты рейкасты мышки, по которым рейкаст попадает, отличаются от координат объекта PinkDragonSteelArmor, с которого рейкаст промахивается, точнее отличаются по иксу и зэте, по игрику совпадают.
Вот есть же Camera.ScreenToWorldPoint, может есть что-то такое для UI?
918 713596
>>698843 (OP)
Какие способы есть сохранения анимации(созданную в унити)? Чтобы при форсмажорах можно было бы перенести ее из одного проекта в другой.
Перенес контролер, перенес саму анимацию - а в ней кадры пустые, без отсылок спрайту, я вообще не понял зачем тогда .анимация нужна, раз она не сохраняет спрайты и их порядок.
Я слышал об экспорте-импорте материалов, но не знаю каким образом экпортируется анимация (может также поломано, без спрайтов), да и экспорт работает только если у тебя проект под версию юнити открывается, то бишь не всегда есть возможность открытия проекта и экпортирования материала из него.
919 713609
>>713596
Пробовал делать анимации в блендере, а затем импортировать в юнити?
920 713611
>>713591
Ничего не могу подсказать, извини, но почему Inventary? https://wooordhunt.ru/word/inventory
921 713612
>>713609
Подумывал, но блендер разве не слишком сложная программа для 2д? Устанавливал другу много лет назад, я там еле сам разобрался какими клавишами что вертеть.
922 713616
>>713611
Лол, мой колхозный английский хули, исправлю.
923 713621
>>713591
В чем проблема, не понял? Ты жмешь на кнопку и?
карта.png43 Кб, 887x384
924 713622
Накопились вопросы по тайловым картам:
1. Использую пакет 2D Tilemap Editor, он достаточен или есть что-то лучше?
2. Есть ли бесплатные ассеты для автотайлинга в юнити? Чем пользовались?
3. Может быть, будет лучше использовать Tiled? Как там с импортом в юнити?
4. Слои карты делаются отдельными Tilemap+TilemapRender, правильно?
5. Есть ли утилиты для отрисовки вариаций промежуточных тайлов?
6. Можно ли добавлять тайлсеты? Я по одному тайлу импортирую.

Может есть свежий туториал по тайловым картам в юнити?
925 713624
>>713612

>блендер разве не слишком сложная программа для 2д?


В 2D там всё проще получается, не нужно вертеть сцену и заботиться о третьей оси. Кстати, несколько лет назад проходил туториал по анимации 2D-персонажа в блендере, было очень просто повторить по шагам. Вот, нашёл:
https://blender3d.com.ua/rigging-2d-personazha-v-blender/ - перевод на русский
https://cgi.tutsplus.com/tutorials/how-to-rig-a-2d-character-in-blender-for-cut-out-animation-or-explainer-videos-part-1--cms-26159 - оригинал

>еле сам разобрался какими клавишами что вертеть


Есть специальные шпаргалки со всеми хоткеями. Но на практике чаще всего нужны только 3 клавиши - G, R, S (смещение, поворот, масштаб). Да, первое время сложно и путаешься, но потом становится настолько привычным, что управление в любой другой программе кажется крайне неудобным (мне вот не нравится управление QWERTY в юнити и других движках).
926 713627
>>713624
Блендер так блендер.
У меня просто место закончилось на диске и никак не очистить, программы чет вообще дофига жрут. Там плагин установил, тут фотину, сям, тут гиг сям гиг и вот у меня остались последние 5-10 гигов которые сжирает юнити тютелька в тютельку во врема билда.
Так влооом копаться в этом чтобы установить блендер аааргх.
927 713628
>>713621
На кнопку я не жму. Мне нужно метод написать, который будет кидать рейкаст от координат объекта, то бишь "под себя" рейкастить и видеть что под ним. Так вот кидаю я рейкаст по gameObject.transform.position - и он ничего под собой не ловит, следом я написал метод рейкаста от курсора мышки для теста, ну тип работает вообще всё это или нет, навёл его на объект посерединке, где в теории должен быть тот самый его gameObject.transform.position, которым пытался рейкаст кидать и ловить то, что под ним - и рейкаст с курсора всё ловит. То есть курсор кидает рейкаст с какой-то другой системы координат по юайке и всё делает правильно, и мне теперь надо разобраться как перенести в ту систему координаты координаты объекта, с которого мне нужно рейкасты кидать.
928 713629
>>713622

>3


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

>4


да

>тайлсеты


да, можно
929 713630
>>713628
Делай кнопки невидимые, они уже с встроенными методами, зачем изобретать колесо
и я догадываюсь в чем твоя настоящая проблема, но не хочу чтобы меня закидали бананами за очевидность
930 713631
>>713630
Это тралленк такой? Просто я тут с этим ещё не сталкивался.
931 713633
>>713631
Что тут трольного?
932 713635
>>713467
по моим наблюдениям подъедает, но вроде жить можно. Там же фоном всякие ноджсы и агенты еще грузятся.
933 713637
>>713467
забавно, 5-ый крашнулся не загрузив редактор. 19- вполне сносно работает, хоть и загружается долговато.
934 713638
>>713637
Бля не понимаю этого дроча на версии. Вы что там прожекты каждую неделю высираете что вам так все необходимо апдейтить?
Я сидел спокойно на 18 несколько лет пока некоторые тут ныли что дескать 20 лагает и блабла, на что мне было, конечно же, глубоко похуй. Написано же для дурашек ЛЕГАСИ, СТАБИЛЬНЫЙ РЕЛИЗ, ТЕСТОВАЯ ВЕРСИЯ. Вы читать умеете алло. Вот недавно из-за предолинга и у меня все слетело в своей версии, я так уж и быть обновился до СУПЕР НАНО НОВЕЙШЕЙ ТЕХНОЛОГИЧНОЙ МЕГА КРУТОЙ ПРОДВИТОЙ 19ой версии, фух какой же каеф, благодарен ребяткам за бета тест.
надо будет - перейду дальше или вообще откачусь. Не надо будет - буду сидеть. В чем у вас проблемы?
935 713644
>>713638
ну 6-ую я просто сравнить хотел, да и примеров для обучения на ней горы. А так, да, 19тя стоит.
936 713646
>>713638
5ую просто хотел сравнить, шустрее или нет.
937 713652
>>713627

>Блендер так блендер.


Я не настаиваю, просто предложил как вариант. Сам только начинающий.

>Так влооом копаться в этом чтобы установить блендер аааргх.


Попробуй это - https://windirstat.net/ - легко сможешь найти, что занимает слишком много места. Обычно больше всего места занимают видео, музыка и современные игры. Ещё место может занимать Windows копиями обновлений и контрольными точками восстановления, это можно очистить системной утилитой (свойства диска - очистить диск). Также советую включить и настроить сжатие папок и файлов NTFS - оно не поможет с медиафайлами (картинки, видео и музыка обычно уже сжаты более эффективными методами), однако исполняемые (exe/dll) и текстовые файлы (в т.ч. скрипты) сжимает превосходно. К примеру, Unity 2020.1.16f1 с документацией и WebGL-экспортом занимает у меня всего 4 ГБ, без NTFS-сжатия она занимала бы 6 ГБ. Без WebGL и документации она вообще весила меньше 3 ГБ со сжатием.

А ещё можно скачать portable версию Blender, сейчас она весит 195 МБ в архиве и 523 МБ в распакованном виде. Если использовать сжатие NTFS - будет занимать всего лишь 321 МБ. На производительность сжатие файлов не влияет, по крайней мере я давно пользуюсь этой фичей и проблем ни разу не замечал (жалею, что раньше боялся включать это сжатие). Главное не сжимать файлы самой операционной системы, а то, говорят, может не смочь загрузиться, т.к. драйвер для разжатия загружается позже критически важных файлов, которые можно случайно сжать)) Т.е. лучше помечать отдельные папки (свойства - другие - сжимать...).
938 713653
>>713635

>Там же фоном всякие ноджсы и агенты еще грузятся


Играю в игры, не закрывая редактор Unity. Фоном оно не крутится, только когда реально что-то нужно делать.
>>713637

>загружается долговато


Ставь на SSD. И, кажется, только первый запуск самый долгий, пока происходит настройка, потом всё из кэшей.
>>713644

>примеров для обучения на ней горы


А смысл? Ассеты из стора уже не загрузишь - устаревшие купить нельзя, а новые просто не заработают. Если обнаружишь какой-то баг - надежды на исправление патчами нет, т.к. апдейтов больше не будет. Даже совет на форуме спросить - вряд ли найдётся достаточно фанатов 5-й версии, чтобы помочь тебе с какими-то проблемами в ней. Потом, это не "вчерашняя" версия, она реально устарела же, невыгодно отказываться от новых фич и багфиксов.

>>713638
Как-то слишком сильно у тебя бомбит, если ты всем абсолютно доволен и в своих решениях уверен.
Я вот сразу поставил себе 2020.01, потому что буквально через месяц-полтора выйдет 2020 LTS, так зачем мне обучаться на прошлогоднюю версию? А там уже и 2021 можно будет щупать, так, из любопытства скорее...
Безымянный.png36 Кб, 504x496
939 713658
>>713591
Сам инвентарь реализовываешь? Пакет Game Foundation не пробовал? Там вроде готовый инвентарь есть. А ещё можно было бы ассет какой-нибудь найти, хотя бы чтобы глянуть, как его можно реализовать...

>>713628

>видеть что под ним


Зачем предмету в инвентаре что-либо видеть, проверять и т.д.?

Базовый инвентарь реализуется так:
1. Есть массив NxM ячеек, в ячейках - ссылки на объекты (указатели) или типы предметов (числа).
2. То, что видит пользователь, рисуется кодом, опираясь на данные массива из пункта 1.
3. Действия пользователя изменяют массив из пункта 1.
4. Единственные датчики в системе - это ячейки, на которые пользователь может нажать.
5. В системе инвентаря есть скрытая ячейка - "рука пользователя" (см. ниже).

Перенос предмета внутри инвентаря осуществляется так:
1. Игрок кликнул на ячейку - мы записали в "руку" ссылку на эту ячейку;
2. Игрок кликнул на вторую ячейку - мы обменяли местами содержимое первой и второй ячеек.
Аналогично с переносом в/из инвентаря.

Кстати, поскольку пустая ячейка тоже содержит ссылку (null), то код получается крайне универсальным:
1. Мы можем менять местами два предмета сразу;
2. Можем перемещать предмет в пустую ячейку;
3. Можем выбирать пустую ячейку, а потом предмет для неё.
И всё это - одним и тем же кодом в три команды присваивания (X = A; A = B; B = X).

Собственно, зачем усложнять?
940 713659
>>713658
Да, забыл добавить, могут быть варианты "руки":
1. Самое простое - "рука" только помечает ячейку, с которой мы хотим произвести обмен;
2. Визуальное "перемещение" предмета - "рука" сама является ячейкой под предмет (обычно пустая, null).

С первым всё просто, поясняю второе:
1. За курсором следует невидимая "ячейка", в которой может быть иконка любого предмета;
2. Когда игрок кликает по ячейке инвентаря, она обменивает своё содержимое с этой ячейкой;
3. С этого момента ячейка видима, но создаёт впечатление "перетаскивания предмета";
4. Когда игрок кликает снова по пустой ячейке - она обменивается с этой "ячейкой руки".
Для оптимизации, невидимая ячейка может следовать за мышкой только пока открыт интерфейс инвентаря и зажата, скажем, ПКМ; когда инвентарь закрывается или ПКМ отпускается, эта ячейка автоматически возвращает своё содержимое в последнюю ячейку или в ту, над которой последний раз был курсор мыши.

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

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

Есть варианты?
942 713669
>>713664
Да, использовать простой статический класс со статическими методами. вообще забудь про рефлексию, из-за неё у тебя потом будет очень много проблем
943 713672
Челы,помогайте,все перерыл.Перехожу в плей мод,если долго в нем стою и потом выхожу,вылетает юнити.Никаких ошибок,ничего,просто вылет.Думал из-за того что на новую версию перешел,но нет,уже откатился на старую,там тоже такая же беда.Раньше было такое,но очень редко,как-то не предавал значения этому,а теперь каждый раз.
944 713674
>>713672
У меня на версии 2019.4 часто вылетала, еще были проблемы с ресайзом окна (при ресайзер всё могло почернеть и приходилось перезапускать).
Перешел на 2020.1 тоже пару раз вылетело, потом обновил драва на видюху и перестало (ноут с 2мя картами)
А вообще у юнете есть лог в файл, можешь поискать где он и возможно поймешь в чем проблема
945 713679
>>713674
логи к сожалению ничего не дали,там просто никаких проблем,все идет своим ходом,но когда выходишь из редактора - вылет.Сейчас попробую обновить дрова,мб поможет
946 713681
>>713658
>>713659
Знаешь, я вот почитал тебя и понял што рейксаты могу с курсора кидать при драгэнддропе же, а они как раз работают как мне надо. Мне прост на драгндроп нужны рейкасты, чтобы смотреть куда потащил объект. А идею с инвентарём я в другом месте подхватил и немного другую, но тож массив объектов будет там, все дела. Спасибо.
947 713691
>>713681

>рейксаты могу с курсора кидать


А почему не сделать как >>713630 предлагал? Подложка ячеек может быть выполнена как кнопка UI. У неё есть события входа/выхода мыши и автоматическая подсветка (удобно, но почти не вижу такого в играх). Даже можно будет сделать управление инвентарём с клавиатуры)
nX32sjEzrqk[1].jpg24 Кб, 808x128
948 713696
Можете подробно объяснить как работает данный код.
К примеру, у нас меняются данные, мы подписываем на это действие делегат, который описываем ниже? А как это объяснить: "А obj в данном случае захватывается и хранится в делегате."? Где он хранит эти данные, и какой в этом вообще смысл?
949 713732
>>713696
Это просто анонимный метод: https://metanit.com/sharp/tutorial/3.15.php
Анонимный метод (анонимная функция) - это кусок безымянного кода, ссылку на который мы храним в переменной (в C# это "делегат"), и можем вызывать как обычный метод (функцию), но только если знаем ссылку на него. Делегат, по сути, всего лишь хранит ссылку на метод, а анонимный метод - метод, который создаётся без определённого имени.

>подробно объяснить как работает


item - экземпляр какого-то класса
onValueChanged - событие этого класса, на которое можно повесить обработчик события
item.onValueChanged - это поле для хранения ссылки на обработчик события onValueChanged
delegate (bool v) - объявление анонимного метода, который может принимать аргумент v
{ ClickButton(...); } - код анонимного метода (хранится где-то в памяти, доступ к ней по ссылке)
(v, obj, ...) - аргументы ClickButton, которая находится в анонимном методе
v - аргумент анонимного метода, передаётся в ClickButton
obj - ссылка на какой-то объект, которая передаётся в ClickButton

Как работает:
1. Мы создали анонимный метод, в которой вызываем метод ClickButton;
2. Мы присвоили ссылку на этот метод в поле onValueChanged экземпляра item;
3. В какой-то момент произошло событие onValueChanged;
4. Где-то внутри item произошёл вызов onValueChanged;
5. Вызов прошёл по ссылке и вызвал ClickButton.

>Где он хранит эти данные


Тебя это волновать не должно. Какой смысл копаться в кишках рантайма C#?

>какой в этом вообще смысл?


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

Если тебя волнуют анонимные методы - можно обойтись без них. Просто создай метод класса с каким-либо именем, а затем присваивай ссылку на него полю item.onValueChanged. Однако, если тебе не нужно обращаться к этому коду из других методов/классов, то рациональнее будет создать анонимный метод - так не будет лишнего мусора в интерфейсе класса (лишних именованных методов).

объяснил как смог, сам C# только начал изучать
949 713732
>>713696
Это просто анонимный метод: https://metanit.com/sharp/tutorial/3.15.php
Анонимный метод (анонимная функция) - это кусок безымянного кода, ссылку на который мы храним в переменной (в C# это "делегат"), и можем вызывать как обычный метод (функцию), но только если знаем ссылку на него. Делегат, по сути, всего лишь хранит ссылку на метод, а анонимный метод - метод, который создаётся без определённого имени.

>подробно объяснить как работает


item - экземпляр какого-то класса
onValueChanged - событие этого класса, на которое можно повесить обработчик события
item.onValueChanged - это поле для хранения ссылки на обработчик события onValueChanged
delegate (bool v) - объявление анонимного метода, который может принимать аргумент v
{ ClickButton(...); } - код анонимного метода (хранится где-то в памяти, доступ к ней по ссылке)
(v, obj, ...) - аргументы ClickButton, которая находится в анонимном методе
v - аргумент анонимного метода, передаётся в ClickButton
obj - ссылка на какой-то объект, которая передаётся в ClickButton

Как работает:
1. Мы создали анонимный метод, в которой вызываем метод ClickButton;
2. Мы присвоили ссылку на этот метод в поле onValueChanged экземпляра item;
3. В какой-то момент произошло событие onValueChanged;
4. Где-то внутри item произошёл вызов onValueChanged;
5. Вызов прошёл по ссылке и вызвал ClickButton.

>Где он хранит эти данные


Тебя это волновать не должно. Какой смысл копаться в кишках рантайма C#?

>какой в этом вообще смысл?


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

Если тебя волнуют анонимные методы - можно обойтись без них. Просто создай метод класса с каким-либо именем, а затем присваивай ссылку на него полю item.onValueChanged. Однако, если тебе не нужно обращаться к этому коду из других методов/классов, то рациональнее будет создать анонимный метод - так не будет лишнего мусора в интерфейсе класса (лишних именованных методов).

объяснил как смог, сам C# только начал изучать
950 713736
>>713732
Ты мне объяснил, что я и сам знаю. Подписка на анонимную функцию, окей. Но объясни вот что:
1) У нас вызывается onValueChanged (то есть меняется значение у кнопки), откуда берется значение переменной v
2) И второе, что мне было интересно.

>>А obj в данном случае захватывается и хранится в делегате.


Как он захватывается, откуда берется? Меня не интересует как код работает, ты мне скажи, что такое obj, ведь я в методе ClickButton над ним какие-то действия произвожу, мне нужно знать откуда я его беру.
951 713744
>>713736

>Ты мне объяснил, что я и сам знаю


Какой вопрос - такой и ответ))

>откуда берется значение переменной v


А мне откуда знать? Ты даже не говоришь, какого класса экземпляр item. Нужно открывать документацию и смотреть, что это за класс, и какой именно аргумент он передаёт в обработчик события onValueChanged. Но судя по логике, если значение item - булево, тогда v в onValueChanged - это новое значение item (true или false). Если же значение item не типа bool, тогда я без понятия, что это за аргумент - нужно смотреть документацию (или исходный код класса).

>что такое obj


>мне нужно знать откуда я его беру


Ну по идее это ты мне должен сказать, что у тебя за obj такой и откуда ты его взял. Ты показал всего одну строчку кода, а мы тут должны гадать, что у тебя было до этой строчки?

Теоретически, obj берётся из той зоны видимости, где создаётся анонимный метод. Но это не точно)
952 713745
>>713696
>>713736
А откуда ты этот код вообще взял? Это оно?
https://docs.unity3d.com/2019.1/Documentation/ScriptReference/UI.Toggle-onValueChanged.html

По-моему это устаревшая хрень, в 2020.1 этого уже нет вроде как. Даже в 2019.2 такой статьи уже нет.
Но если у тебя действительно UI.Toggle, тогда v по идее должен быть новым знанием тумблера (true/false).
953 713747
>>713638

>не понимаю этого дроча на версии


>В чем у вас проблемы?


Вспомнил главную проблему устаревших версий: они сильно отличаются от новых. Вот ты дрочишь-дрочишь API старой версии, а потом через пару месяцев понимаешь, что пора бы уже перекатываться на новую версию, а API новой версии ДРУГОЕ. И начинаешь учить заново, а заодно перекатывать свои старые проекты на новые API. Нахрен оно надо, учить 2018.4 LTS в 2020, когда через год 2018 станет legacy?
954 713748
>>713745
Всё, спасибо, врубился, я думал дрочь какая-то, а оказалось всё гораздо проще. А почему не используется, что сейчас используется?
Безымянный.png37 Кб, 821x446
955 713750
>>713748

>А почему не используется, что сейчас используется?


Извини, я перепутал. Unity.UI не удалили, а выделили в отдельный пакет, документация разделилась:
https://docs.unity3d.com/Packages/com.unity.ugui@1.0/manual/script-Toggle.html
В новых версиях, чтобы использовать UI, нужно импортировать соответствующий пакет (пикрил).

А для того, чтобы повесить обработчик события, можно использовать инспектор, примерно так:
https://nagachiang.github.io/tutorial-pass-parameter-with-sliders-onvaluechanged-in-unity/
Я попробовал, у меня в 2020.1 работает.
956 713753
>>713750
А если я во время игры эти кнопки создаю, мне нужно через код на них события повесить. В этом случае решение с делегатом нормально подходит.
957 713761
Аноны, хэлп. Пытаюсь сделать внутриигровые покупки, создал все товары в гугл плей консоли, но один из них никак не хочет активироваться. Пишет "Произошла непредвиденная ошибка..." Два дня уже так. Все остальные товары активировались нормально, все они управляются одними скриптами по одну сценарию.
958 713794
>>713761
Может, проблема на стороне гугла? Напиши в саппорт, вдруг у них что-то в базе сломалось.
959 713800
>>713669
Так не получается нихуя. Там нужен Courotine, а его нельзя использовать в статических классах.
960 713840
>>713800
Сделай синглтон, в чем проблема
image.png1,3 Мб, 705x706
961 713882
Задача: написать любую мини-игрушку чтобы в ней использовалось два паттерна проектирования на c#
Начал делать клон Reigns, пока что не знаю куда там там можно запихать паттерны. Предполагаю, что можно засунуть сохранение через Memento, но может можно как-то прям в логику свайпов или изменения показателей красиво сделать?
962 713980
Аноны, какие первые проекты вы делали/посоветуете?
Уже несколько месяцев смотрю курсы на разных платформах, копирую материал и думаю что "учусь". Но на самом деле все это хуйня видимо, пока не сядешь и не будешь делать что-то свое и сам.
Так вот, хз с чего лучше попробовать. 2д проект или 3д. 2Д игры сами по себе не особо нравятся, особенно платформеры какие-то или top-down. 2.5Д уже получше. В свое время очень много играл в такие игры, но тут беда уже с ассетами всякими. Даже для учебы.
Остается по идее только 3д. Но 3д должно быть намного сложнее чем предыдущие варианты.
В общем, на распутье короче. Посоветуйте, с чего вы начинали?
963 714011
>>713980
Делай что хочешь, тут у всех свой ебанутый путь, который ни к чему хорошему по сути не привел. Устраивайся на работу и решай универсальные задачи, а начинай с чего хочешь, главное понимай работу Unity и C#
964 714012
>>713980
Главное выучить C# хорошо и понимать практику программирование на этом языке. Если ты только смотрел курсы по unity - уверяю, c# у тебя на дне, нужно подтягивать серьезно. Дальше уже что угодно можно и работу попробовать найти, если скилл не позволяет, то куча разных инди команд, работающих "на энтузиазме" тебя примут. Только совсем к школьникам идти не надо.
965 714014
>>714012
Ну c# возможно у меня и правда на дне. Хотя опыт программирования есть. 2 года работал веб-макакой с JS.
Мне бы такой проект, который по сути смог закрыть пробелы и помог в устройстве на работу. Типа, не с пустыми руками как чмоня после курсов скилбокса. Я в душе не ебу какие навыки ожидают от джунов в геймдеве. hh.ru и похожие сайты врут в основном.
966 714052
>>714014
1) Заходишь в плеймаркет
2) Ищешь простую игру
3) Делаешь ее

Если джуном, то хватит 2-3 проекта, понимание синтаксиса и ООП (берешь метанит, реализуешь в своем проекте все принципы и учишь наизусть, чтобы не тупить на интервью). У меня в 2015 на позицию Джуна спрашивали знаю ли как работает физика и анимация, то есть знания, которые за минуту получаются. Тебе будут готовы платить за то что ты макакишь над игрой.
967 714073
>>714052
В 2015 году видимо было легче :) Сейчас требования возросли наверное . Но спасибо за ответ, Анон.
968 714131
Кто может подсказать можно ли с помощью playmaker'а сделать процедурно генерируемый ландшафт с пещерами, данжами, городами и биомами, используя ассет ландшафта?(если есть тутор, то было бы замечательно)
969 714249
>>714131
Ага, можно, ты на тред посмотри
, 970 714270
Такой вопрос: есть несколько монстров, у каждого есть компонент monsterView(просто пример) и контроллер (просто c# класс). Что содержит экземпляры контроллер? Есть какой-то фасад, который содержит лист контроллеров или как это происходит? Где и как они создаются?
971 714281
Сколько в месяц зарабатываете?
972 714285
>>714270
У меня обычно всегда есть рутовый класс (условно Root.cs или GameManager.cs) который уже знает про другие компоненты систем, он дергает последовательно (или параллельно) эти системы.
В каждой из систем может быть такая же вложенность или сразу какая-то логика.
Кстати на всех моих GO висят "линкеры", а не monsterView (как советуют во всех туториалах) благодаря чему я могу без оверхедов чуть ли не всю сцену обойти.

В последнем проекте пошел еще дальше: сделал опять 1 рутовый класс (с состоянием всей игры) пару менеджеров (input, animations) и кучу хелперов. На удивление получилось даже лучше чем я ожидал и текущий код очень легко переиспользовать и расширять.

>>714281
В офисе 300кк в наносекунду
На играх 0
973 714287
>>714281
В среднем 7000$ с плеймаркета.
974 714289
>>714285
Спасибо!
Можешь подробнее про линкеры рассказать или туториал как раз скинуть?
В целом у меня похожая система, есть gamerunner, внутри есть charactersManager. Но непонятно, вот, я хочу из префаба ещё монстра создать, что делать? Контроллер один на всех, а для нового монстра только вью и дата класс новые нужны? Где тогда держать лист монстров и нужно ли?
975 714290
Есть ещё вопрос: Как обычно реализуется то, что, например, при вызове меню персонаж более не реагирует на нажатия на клавиатуре, но теперь с помощью ее переключаются возможные варианты выбора в меню?
Сейчас у меня есть класс InputController,. Где есть всякие event Action типа OnMoveClicked, OnJump и тп. На них уже подписаны нужные методы персонажа
976 714296
>>713747
Станет так станет, в чем проблема? Надо будет перекатится, перекатишься, блжд.
Учить что-то раз в 3-4 года эффективнее, чем учить каждый год.
Какие-то нелогичные у тебя мысли.

>>713653

>зачем мне обучатся



Не знаю чему вы там так усердно ОБУЧАЕТЕСЬ, кек.
Мне даже сложно представить поделия кирилов которые постоянно чему-то обучаются из НОВОГО. Видимо я совсем хлебушек и отстал от профессиональных стандатов индустрии и кирильского тренда этого треда, в частности.
977 714328
>>714289
Линкерами я их так называю, возможно у них есть какое-то другое название, но у меня это чуть-ли не пустые классы UnityGo: MonoBehaviour{ }
Условных монстров расскидываю в словари [команда, List<IUnit>]
Для кастомизации все делают на ScriptedObject-ах, в них же и префабы храню.
По сути этот "линкер" и выступает в роли вью
А где хранить его дату решать тебе, я и в общей кучу хранить пробовал и в инстансе монстра, во всех кейсах работает, тут от твоей игры больше зависит как удобнее

>>714290
Если ты знаешь когда игрок открыл меню, так выставь флаг SuspendEvents = true; и в этих методах if(SuspendEvents) return
helpPlz.png15 Кб, 916x850
978 714339
Помогите решить простую задачу, самому мозгов не хватает.
У меня есть 2 вектора и мне нужен аналог Vector3.LerpUnclamped(from, to, 1.3f) только вместо условного 1.3f нужно конкретное число..
Я могу это обернуть в цикл и постепенно увеличивать 1.3f проверяя расстояние через Distance, но же какой-то костыль..
Тут есть матаны которые мне помогут одной формулой решить эту проблему?
979 714455
>>714339
Прикольный задум в твоей игре. Молодец.
980 714477
>>714339
Если правильно понял по картинке, хочешь получить почку на определённом расстоянии от объекта, который задаёт расстояние? Если так, то можно сделать так:

Vector3 dir = pos1 - pos2;
// Получаем расстояние от объекта 1 к объекту 2 + требуемое расстояние
float lenght = dir.magnitude + 4f;
Vector3 finalPos = dir.normalized * lenght;
981 714531
>>698843 (OP)
Кто-нибудь знает почему 2 кнопки в одном месте одновременно не нажимаются, нажимается только верхняя? Юнити не поддерживает пузырьковый эффект чи що?

Добавил Группу полотна, убрал галочку с блокировать луч, все равно не нажимаются одновременно.
982 714544
>>714328
Спасибо!
983 714546
Есть объект с компонентом, который принимает в поле scriptableObject. Когда я ставлю enable = false(в игре), ссылка на объект пропадает.(и поле пустое, если вернуть enable) Из-за чего это может быть? Есть объекты с аналогичными компонентами и там все норм
984 714574
>>714477
Да! Круто, спасибо!
п.с. что можно почитать чтобы стать таким же крутым как ты?
0udAnQwVLkA.jpg36 Кб, 640x320
985 714627
>>714574
Если без шуток, то нужно читать всё, но для начала про векторную математику. Сам был шокирован, как на первый взгляд сложные вещи можно красиво и лаконично решить. Не знаю, начни со статьи "Practical use of Vector Math in Games" на gamedev.net, первое что нагуглил более-менее сносное. Так же там есть ссылки на связанные с этим делом статьи, про скалярное произведение и т.п.
986 714644
>>714531
Ребят никто не знает как это работает? Очень не хочу изобретать колеса и пердолить херовый дизигн на костылях.
987 714739
>>714531
Что?
988 714740
>>714531
Дык соедини две кнопки в одну. Если у тебя есть условия появления кнопое то перенеси это в функции вызываемые кнопкой.
989 714743
Можно ли сделать так, чтобы в мобильном приложении на Юнити снизу и сверху отображались стандартные панели с кнопками и времен, а не все пространство занимала игра?
990 714750
>>714743
Да, можно, первая ссылка в гугле:
Screen.fullScreen = false;
https://docs.unity3d.com/ScriptReference/Screen-fullScreen.html
991 714751
>>714750
Спасибо
992 714932
Необходимо ли, в целях оптимизации, кэшировать Transform объекта в скрипте, висящем на нём самом? Или можно спокойно обращаться gameObject.tranform? Просто недавно узнал что до недавней поры прям обязалово было Camera.main кэшировать, если каждый кадр обращаешься.
993 714936
>>714932

>Необходимо ли,


Желательно.
>>714932

>Или можно спокойно обращаться gameObject.tranform?


Будет происходить вызов transform через GetComponent и заявляется что это медленно.
>>714932

>прям обязалово было Camera.main кэшировать


Исправили только в версии 2020.2, а учитывая что многие сидят на 2018 и 2019 следует уточнять версию.
https://blogs.unity3d.com/2020/09/14/unity-2020-2-beta-is-now-available-and-we-welcome-your-feedback/
994 714939
Кто юи тулбоксом обмазывался, там драг-н-дроп так и работает только в редакторе? Начал пилить через костыли, MouseDownEvent и MouseMoveEvent'ы.
995 714954
>>714932
Необходимости нет, об этом говорят сами разрабы юнити
Сорс: https://blogs.unity3d.com/2014/06/23/unity5-api-changes-automatic-script-updating/
in Unity5 we also cache the transform component on the c# side, so there should no longer be a performance reason to cache the transform component yourself.

А обращаться к своему transform можно минуя gameObject - через transform прямо в скрипте: transform.position = new Vector3();
996 714967
>>714954
Зоебись!
>>714936

>Исправили только в версии 2020.2


Ну я и говорю до недавнего времени мол это делать надо было, но у меня всё-равно 2019.2.3, пересаживаться посреди проекта очкую, как-то раз пилил говноигру на мобилку и заапдейтился под конец, а там какой-то объект новый в Юнити точь-в-точь моей одной переменной назвали, ебаторился потом с этим.
997 714968
>>714967

>Зоебись!


Для общего развития можно почитать https://habr.com/ru/post/303562/
Кэширование при инициализации актуально также и для свойств, предоставляемых GameObject по умолчанию, таких как .transform, .render и других. Для доступа к ним явное кэширование все равно будет быстрее
benchmark.png36 Кб, 895x395
998 715052
>>714967
>>714968
Статья немного устарела, получать компоненты дженериками стало быстрее, чем приведением типов. Решил уточнить, потому что пару раз наталкивался на староверов которые голословно утверждали что именно приведением типов быстрее. Так действительно было когда-то, но давно

P.S. - большая разница между результатами моно и il2cpp по всей видимости из-за маршалинга, так что никаких аномалий. Думаю, результаты обращения по кэшированному компоненту будут примерно схожи по скорости между бэкэндами, протестирую чуть позже если интересно. Сущности того, что дженерики быстрее как в редакторе так и в билдах это не отменяет. Пикрелейтед -- функция бенчмарка, мелкими боксами вставил кусочки скринов из внутриигровой консоли
Unity 2020.2 is now available (1).mp428,5 Мб, mp4,
1280x720, 3:09
999 715144
1000 715202
Аноны, нубский вопрос наверное задам, но он меня терзает долго.
Вот я уже несколько месяцев активно пытаюсь вкатываться в юнити, смотрю много курсов на юдеми, в ютубчике и на юнити лерн. Пока своих проектов не делал, но собираюсь после НГ. В целом, много нового узнал (я надеюсь).
Но вот все эти знания все равно можно сказать поверхностные. Никто не рассказывает о каких-то бест практис в рамках курсов, о паттернах проектирования и архитектуре проектов, типа как лучше начинать чтобы не забуксовать через 20 скриптов и т.д.
понятно что это обычно с опытом приходит и надо что-то свое писать, ведь не зная проблемы ты не поймешь решение других людей.
Поэтому вопрос - а это вообще важно на позицию джуна? Типа, от меня будут требовать ёба архитектуру проекта и паттернов. Как я тут пытаюсь не изъебнуться от синглтонов и кучи монобехейверов на объекте. В вакансиях хуй разберешься.
Есть тут аноны которые прошли путь вката или собесят кого-то? Подскажите чмохе.
изображение.png19 Кб, 730x276
1001 715231
Анон, подскажи пожалуйста, что значит вот это >= в конце?
1002 715233
>>715231
Логическая операция "больше либо равно"?
1003 715234
>>715233
Зачем она нужна в return?
Ааа, блин, я кажется понял, если там 1, то идет проверка, и возвращается true.
Блин, туплю, спс.
1004 715244
Есть тут аноны которые уже работают в геймдеве? Сколько у вас времени ушло на вкат и какая база знаний была до этого?
1005 715258
Загрузил abb в гугл плей в закрытое тестирование, скачал, а вся игра будто под зумом двукратным. Камера короче в 2 раза ближе чем надо. В редакторе все норм, естественно. Кто-нибудь знает, с чем связанно?
1006 715267
Я сильно рачила, если список предметов инвентаря передаю по ссылке через мэйнКамеру? Ну типа чтоб любым другим объектом его легко было поймать я повесил на мэйнКамеру скрипт со ссылкой на итемЛист, ещё там на сам канвас ссылка есть, точней на его графикРейкастер и ректТрансформ. К мэйнКамере легко через любой объект выйти и так кучи ссылок ручками назначать не надо будет.
1007 715268
Аноны, перестал работать мой кряк для хабы, которым патчил редакторы. Скиньте плиз рабочее решение, надо на 2019, 2020.1, 2020.2
1008 715269
>>715144
Ждём год и прееходит
1009 715285
>>715258
ой я дебил
image.png4 Кб, 405x43
1010 715297
Как же доебала эта хуйня.
image.png4 Кб, 405x43
1011 715298
Как же доебала эта хуйня.
1012 715302
>>715244
Никакой базы, два года, можно за год при желании.
>>715267
Нихуя себе ты выдумщик, не думал, что кто-то способен придумать нечто настолько извращенное и безумное.
1013 715347
>>715302

>Нихуя себе ты выдумщик, не думал, что кто-то способен придумать нечто настолько извращенное и безумное.


Ну работает же.
1014 715360
>>715267
У меня вместо камеры отдельный объект. На этом объекте скрипт с полями под скриптейблы. Плюс на нём же простенький моноскрипт, через который я влезаю в моно, если он вдруг когда-то требуется. Иногда просто нельзя обойтись без такой пустышки.
1015 715494
Короче, есть персонаж, он берет газету и читает.
На переднем плане газета и текст (котоырй читает герой).
На заднем плане остается все остальное (герой, окружающий мир и тп).
Как немного затемнить все, что находится на заднем плане?
Добавить полупрозрачную стеночку?
1016 715495
Создаю объект из префаба через GameObject.Instantiate, он создается почему-то задизейбелынй. WHy so?
1017 715513
>>715495
Может префаб задезейблен?
Может на объекте есть скрипт с кодом SetActive(false)
1018 715514
>>715494
2 варианта:
1 по проще - сделай quad перед камерой и через код выставляй прозрачность материала
2 по сложнее - делаешь несколько слове рендеринга, весь мир Layer 1, текст и бумага Layer 2, пишешь CustomPostProcess и затемняешь в нем весь layer1 - сложнее т.к. больше кода нужно писать + простенький шейдер нужно будет написать
1019 715525
>>715514
Спасибо! А в первом же случае он все затемнит, а не конкретный слой?
1020 715526
>>715525
Все для игровой камеры, интерфейс и другой UI нет.
Вот еще 3й вариант, в UI сделать панель просто черную и её менять, так даже лучше будет чем квад перед игровой камерой, тогда сможешь затемнять вообще все кроме книжного UI (поменяешь z position)
1021 715529
Нашёл решение для патчинга любой версии, но хуй вам скину
1022 715557
>>715529
а что ты там патчишь без остановки?
1023 715616
>>715557

>для патчинга любой версии


>ты там патчишь


Дебил блять
1024 715799
Я не понимаю, создаю из префаба объект, но он все равно создается задизейбленный, чтобы я не ставил. В дебаге пишет, что объект актив. ЧТо за хуйня?
1025 715843
>>715799
Все нашел, случайно дизейблил на старте в кастомном компонент
, 1026 715849
Персонаж в игре взаимодействует с разными объектами и у него должно появляться меню с разными вариантами действий.
Есть какие-то годные гайды по подобному или по ингейм меню?
image.png391 Кб, 1503x958
1027 715862
Почему у меня изменение значений ни на что не влияет вместо обещанного "make the bricks appear larger"?
1028 715863
>>715862
А хотя уже сам понял: я не ту текстурку редактировал, secondary map вместо main
1029 715955
Кто работал с ProBuilderMesh? Почему из скрипта ничего не меняется? Код:
foreach (ProBuilderMesh mesh in MeshSelection.top)
{
 Vertex[] vertices = mesh.GetVertices();
 // чёто делаем с vertices
 mesh.SetVertices(vertices);
 mesh.ToMesh();
 mesh.Refresh();
}
ProBuilderEditor.Refresh();
1030 715965
Есть игра, что-то вроде рпг или квеста(2д, вид сбоку). Есть две ситуации:
1) Персонаж читает газету, которая лежит на столе. Задний фон затемняется, появляется спрайт газеты на переднем плане и сверху еще текст (что персонаж читает). При нажатии на любую кнопку, чтение прерывается
2) Персонаж прячется (в шкаф, например). На деле тоже появляется спрайт "вида из шкафа", далее локация, в которой он находится, сам персонаж и тп должны спрятаться, персонаж должен перестать реагировать на нажатия клавиатуры. Вместо этого должно появиться меню, с вариантами действий(в т.ч. выйти из шакфа)

Функции похожи тем, что обе заставляют появиться спрайт(либо шкафа, либо газеты), но отличаются влиянием на другие вещи ( в первом случае еще появляется текст, во втором - исчезает персонажа, блокируется клава) и разные варианты отключения.
Должен ли это быть один компонент или нет? Как лучше сделать взаимодействия с другими классами\ функциями - выключение отображения локации\персонажа, появление текста?

-
1031 716215
>>698843 (OP)
Как не имея макбука портировать на версию для ios? Без лишних головных болей. Не для загрузки в аплстор. Хочу знакомому человеку показать приложение на его планшете. Это возможно?
1032 716255
>>716215
Возможно, но для этого все же придется взять мак на день, чтобы скачать оттуда файлы. В ассет сторе: iOS Project Builder for Windows

>One-time physical access to Mac OS/X to grab a couple files to complete the setup (simple instructions are given, as well as assistant scripts, on how to deploy the necessary files from the Mac side to the Windows side of your computer).

1033 716334
>>716255
Ни у кого лишнего мака не найдется? x)

Понравился паЗИтИффнЫй ответ одного из юзеров связки

>So I bit the bullet and dropped $1000 on a refurbished Macbook Pro



Интересно, у людей окупаются покупки маквещичек и прочих лицензий аппстора?..
1034 716417
Есть пять массивов, у них очевидно есть названия. Мне нужно взять это название, сохранить его в PlayerPrefs, а потом при необходимости забрать переменную из PlayerPrefs и пройтись по массиву с нужным мне названием. Как это сделать? Я видел можно функцию по имени вызывать, но как это с массивами сделать я не знаю, и даже не знаю какой еще костыль можно придумать, так как задача реально сложная.
clipping.gif5,1 Мб, 380x214
1035 716421
Проблема литералли гифрелейтед, спрайты клипаются слишком рано при движении камеры. В теме, откуда я украл гифку, пишут поменять в SpriteRenderer bounds, но это нельзя сделать, потому что у bounds нет setterа. Есть идеи?
1036 716481
Сап, решил запилить псевдо стратегию с кучей экранов, а значит сцен
Интерфейс прописал чтобы он не удалялся при загрузке, но поскольку у боевки другой интерфейс, я старый решил отключать
SceneManager.LoadScene(levelToLoad, LoadSceneMode.Single);

if (levelToLoad == "Fight")
{
mainUI.gameObject.SetActive(false);

}
else
{

mainUI.gameObject.SetActive(true);

}
Вот если удалить все лишнее и привести в примитивный вид
Проблема в том что FindObjectOfType; при не активно возвращает null, и не могу понять как его включать обратно
1037 716487
Сап, двач. Почему не находит компонент Image? Я очень тупой в скриптинге
1038 716488
>>716487
https://dotnetfiddle.net/pqsvOf
Вот код. Я хочу сделать, чтобы кнопки отключались в настройках по клику на кнопку
1039 716490
>>716488
>>716487
Сериализацию пока не добавлял. Знаю, что не будет сохраняться, я хочу сначала с этим разобраться
1040 716491
>>716490
Я понял, что у меня не было using UnityEngine.UI;, но всё равно код не работает
1041 716493
>>716481
по первых проще это записать так:

mainUI.gameObject.SetActive(levelToLoad != "Fight")

и ты получаешь минус 7 строк кода, а во вторых тебе нужно хранить ссылку на объект, а не постоянно её искать. к примеру вот так:

public class MyClass : MonoBehaviour {
private GameObject _mainUIGA;

private void Start() {
_mainUIGA = FindObjectOfType(typeof(MainUI)).gameObject;
}

// тут твой сраный код в с методом котором ты делаешь

_mainUIGA.SetActive(levelToLoad != "Fight");
}

конечно лучше это дополнить проверкой на наличие на сцене вообще такого класса и так далее, но тут главное схему тебе объяснить. если у тебя будет ссылка на объект, то тебе не нужно его искать и, как следствие, ты сможешь его вырубать и врубать когда захочешь
1042 716499
Как на телефоне оставить воспроизведение музыки если игра была закрыта?
1043 716504
>>716499

>закрыта


свернута
1044 716506
Аноны, только у меня переодически слетают сейвы? Пробовал хранить и в плеерпрефс и в persistentDataPath
1045 716558
На удеми большие скидки в честь рождества
Кто что берет или знает годного?
Сам думаю взять что-нибудь от него https://www.udemy.com/user/james-doyle-4/ поскольку годно на ютабе показывал как и почему надо делать. Да и его голос уши не режет. Но напрягает что он ни в одном курсе не затрагивает тему pathfinding
1046 716579
>>716558
Посмотрел курсы, а что там собственно такого необычного, чего нет на ютубе? Давай я тебе найду по нужной тебе теме материал за 999 рублей.
1047 716586
>>716558
Торрент освой чтоле наконец
1048 716588
>>716586
С торрентов только ассеты и готовые решения можно воровать, по туториалам даже бесплатные лучше чем те что пиратят
1049 716590
>>716588
Я в своё время(2014) начинал с уроков на оф канале юнете. Для старта самое то.
1050 716604
Как локальный размер коррелирует с общим?
Неужели кроме bounds ничего нет и остается только каждый раз чекать соотношения реального размера к локальному?
1051 716615
>>716558
Ну и какой смысл брать за деньги самые основы, когда они есть в бесплатном доступе? Ладно бы еще платить за продвинутый уровень. А так, бессмысленно просто.
Безымянный 5.png5 Кб, 627x71
1052 716631
Почему верхняя команда не работает?
1053 716644
>>716631
Ты не сконвертировал переменную очевидно же
Первый день в программировании?
1054 716698
>>716644
Не совсем.
В C# шарю более-менее, могу что-то написать, сам Unity тоже понимаю как работает, а вот конкретно в скриптах для C# я полный ебан
1055 716699
>>716698
*в скриптах для Unity
изображение.png236 Кб, 1819x909
1056 716704
Анон, че за хуйня? ProBuilder 5

Ставлю Plane (кстати, почему у меня нет полей где можно прописать размеры? Только мышкой тягать)

Делаю материал с текстурой. Хочу эту текстуру натянуть на весь plane

Отерываю редактор UV и вот такая хуита, мой плейн разделен на 4 части, в итоге 4 текстуры. Как нормально сделать?
1057 716705
>>716704

>Ставлю Plane


А где ты его ставишь? Там где тип выбираешь, там же под ним сразу размеры.

>Отерываю редактор UV и вот такая хуита


Так просто уменьши, в этом ничего страшного нет.
В твоем окне UV слева сверху кнопка изменения размеров, в этом тоже ничего страшного нет
1058 716711
>>716705

>А где ты его ставишь? Там где тип выбираешь, там же под ним сразу размеры.


Нет там ничего. Только список с типами примитивов и пара опций у некоторых

>>716705

>В твоем окне UV слева сверху кнопка изменения размеров


Там кнопка масштаба, она дико неудобна, так как от центра, а не края. приходится сначала масштабить, потом двигать, опять масштабить, опять двигать
, 1059 716782
Слетают ссылки на скриптабл обжекты(в serialeised field) при загрузке/перезагрузке уровня, как фиксить? У меня в них логика разных менеджеров, типа менеджера музыки.
1060 716791
>>716782
В статиках хранить важную инфу
в seerializedField нужно хранить просто настройки которые 1 раз загружаются (условно) и больше тебе не нужны
1061 716863
Анчоусы, собрался процедурно генерировать город и не могу решить, как собирать дорогу. Брать пачку префабов, потом получать крайные левые и правые вершины и сваривать? Или изначально генерировать дорогу плейнами плюс фурнитура по бокам? Как профитнее? Пока что начну второй вариант, но вдруг вы чего подскажете.
1062 716871
>>698843 (OP)
У меня есть миниигра на юнити и я хочу сделать для нее простенький сервер что бы там было что-то типа чата. На чем его делать и как?
Я знаю джаву.
И хотелось бы заодно что бы была проверка на подленность покупки игровых предметов, а то знаю я, как игры школота ломает, хотелось бы узнать как такого избегать. Потому что там будет рейтинг и не хотелось бы чтоб читеры были в топах
1063 716887
>>716863
В гта просто чанки идут, даже не связанные между собой.
Я тоже делал чанками, вроде получилось, немного времени потратил на механизм "соединения" т.к. у меня были умные дороги и им нужно было знать про соседей.

>>716871
Ух! Ну смотри, читеры будут в топах даже не ломая твой сервер, они могут ломать саму игру без покупок т.е. тебе нужно обсуфиксировать (или как там) твой код, потом защитить все переменные (нет, я не про private, а прям про байтоебство и хеширование), далее - как твой сервер то поймет, что ему пришел score не от читера? никак.

Про сам сервер можно хоть на ассемблере его написать и общаться простым get/post, можешь попробовать написать свой мини-протокол или отправлять байты напрямую.
Можешь использовать свою яву, можешь спринт прикрутить, можешь на ноде сделать (давно levelgd постил гайды на нашей доске, походу удалил канал).

Про подленность можешь рискнуть, но помни, твой сервер должен работать всегда и если по какой-то причине у тебя отвалится база - то ты у всех игроков заберешь предметы? думаешь им это понравится? рискуешь встрять оч сильно.
Unity 2020-12-27 13-23-10-82.jpg70 Кб, 1600x730
1064 716895
Анончик, я опять к тебе со своими головняками. У меня вот есть код для поиска пути в простых ситуациях, типа обхода мелких препятствий. Я пускаю рейкаст от персонажа в точку назначения pos, куда мышкой кликнул бежать, и если а пути ничего нет - персонаж бежит прямо:
borderStuckHit = Physics2D.RaycastAll(transform.position, Vector3.Normalize(pos - transform.position), 10f);
Но допустим в ситуации как на скрине одного прямого лучика недостаточно, он не попадает по сундуку и персонаж топчется на месте около него.
Вот я нарисовал синеньким ещё два лучика, которые хочу пускать - есть ли какой грамотный способ вычислить направление для их запуска относительно точки pos? Можно на персонажа повесить ещё два дочерних геймобжекта в эти направления и по их координатам пускать, но мне кажется это как-то костыльно.
1065 716900
>>716895
навмеш тебе в помощь
1066 716901
>>716887
А может можно как-то сначала проверить пришел ли платеж а потом только давать предмет? Дело в том что игра как бы онлайн и похуй если у чела предмет будет только на клиенте, главное что бы у всех остальных это не отображалось
1067 716906
>>716901
Если говорить про андроид, то там, насколько я помню, в гугл консоли можно указать url твоего сервера и когда кто-то купит предмет, то сам гугл его дернет с параметрами типа yourserver.ru/api/gotItem?itemId=1&userName=Wanya и тд
Там же в консоли можно загрузить список всех покупок для каждого игрока, просто создай аккаунт и прочитай документацию, у меня с этим вообще никаких проблем небыло.
1068 716919
>>716895
Анон, а как ты сделал затемнение остального участка если там героя нет или он далеко?
1069 716927
>>716919
Источник света над персонажем и на все спрайты вешаю шейдер специальный, чтобы 2д на свет реагировало.
gta-5-road-01-c6162.jpg18 Кб, 415x389
1070 716947
>>716887

>В гта просто чанки идут


Так всё равно на чанки разбивать, лимит поликов рано или поздно наступит. Но чанки это только отображение, в коде никто не мешает не разбивать дороги на куски и делать их настолько умными, насколько надо. Я немного о другом спрашивал. Хотя в гта как раз плейны с фурнитурой, буду пытаться брать с них пример.
Unity 2020-12-27 20-35-20-91x264.mp422,7 Мб, mp4,
1600x766, 0:15
1071 716950
>>716895
Короч запиздячил так - кидаю 4 рейкаста по вектору скорости, прибавляя к нему Vector3.up/down/left/right помноженный на 3. Вот, всё вроде пиздатенько, и новые геймобжекты не наплодил.
image.png11 Кб, 796x188
1072 716992
Нельзя так писать в update:
Input.GetAxis("Mouse X");
так как string мусорит, надо объявить выше:

string mouseX = "Mouse X";
void Update()
{
Input.GetAxis(mouseX);
...
}
Не так ли?
1073 716993
>>716992
Мне кажется ты без этого намусорил. Даже если ты в Update вызываешь функцию Crouching, то какой смысл создавать переменную вне проверки, и делать изменение высоты вне проверки, если есть такая возможность, что кнопка не зажата.
image.png15 Кб, 811x238
1074 717000
>>716993
Напиши еще раз, где у меня косяки, только малость понятнее, а то я не особо доходчивый. Немного вот поправил, так лучше?
1075 717004
>>717000
1) Зачем создавать переменную постоянно? Создай переменную и присвой ей значение на старте.
2) Почему ты в проверке на нажатие не можешь выполнять свой Lerp?
1076 717006
>>717000
Плюс с чего ты решил, что Lerp не будет работать, когда ты кнопку отожмешь? Ты изменяешь isCrouching, а проверяешь newHeight. Поработай получше над своим кодом, логику всю прочухай, а то пока нет логики в твоих строчках.
1077 717007
>>717006
А, тут я затупил, переменная же постоянно новая создается.
Моя единственная притензия - создание постоянно новой переменной + постоянное использование Lerp'a (в прошлом случае), хотя можно перенести в проверку.
1078 717013
>>716927
Ебать наука. Шейдер небось сложный?(
B9g2Nh9IYAE6a-.jpg9 Кб, 604x215
1079 717069
1080 717091
>>698849
можно ли писать на плюсах в юнити
кресты не преношу со времен шараги
1081 717093
>>717091
ошибся
не переношу решетки
1082 717105
>>717091
Можно, загугли, про это даже в документации написано
1083 717146
>>716871
Гугли receipt validation
1084 717237
>>717146
Спасибо
>>717146
>>716906
>>716887
А мне вот интересно, на сколько безопасен в плане таких вот взломов айфон? Вот с андроидом мне примерно ясно, а продукция эпл?
1085 717243
>>717237
Лол, а с хуёв ли ты взял, что яблоко чем-то лучше? Тем более, что "взламывать" будут не прошивку телефона, а твоё дырявое поделие.
1086 717247
>>698843 (OP)
Вот я хочу сделать меню выбора уровней.
И тут возник вопрос. Сами уровни-то как лучше хранить? Допустим это сериализованные данные. Текстовые файлы. Просто их в Resources побросать? А потом пробегаться читать их и создавать по кнопке на каждый уровень в меню? А если их много? Например несколько сотен. Они же все будут в памяти торчать? Можно как-то сделать так, чтобы подгружать не более одного ассета за раз? И можно ли сделать так, чтобы не подгружая их все, уже иметь в распоряжении какую-то инфу о них (ну там номер уровня, брифинг, картинку), а потом уже подгружать остальное при собственно выборе уровня? Быть может, нужно делать уровни адресеблсами?
1087 717257
>>717247
Почему у меня такое чувство, что ты поехавший?

>Сами уровни-то как лучше хранить?


Все твои уровни - это заранее созданные и настроенные юнитисцены. Нужно выбирать между сценами? Создаёшь скриптейбл объект, в нём поля для названия уровня, картинки уровня и ссылки на сцену. Всё. А ещё лучше создать тип скриптейбл объекта для каждой сцены и ещё один скриптейбл, в котором хранить ссылки на все объекты сцен. И в память грузится только твой текст, картинка и ссылка на сцену.
1088 717259
>>717257

>Все твои уровни - это заранее созданные и настроенные юнитисцены


Не обязательно.
>>717257

>в память грузится только твой текст, картинка и ссылка


Нуфаг.
1089 717304
>>717259
Я же говорю, поехавший.
1090 717394

>>71710


ru.stackoverflow.com/questions/601420/%D0%9C%D0%BE%D0%B6%D0%BD%D0%BE-%D0%BB%D0%B8-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D0%A1-%D0%B2-unity3d-%D0%B2%D0%BC%D0%B5%D1%81%D1%82%D0%BE-%D0%A1
1091 717503
Посоветуйте книги, которые помогут научиться оценивать объем времени на поставленные задачи.
1092 717514
>>717503
Только практика
1093 717515
>>717503
ого, я за 10 лет опыта так и не научился, но понял что лучше все оценки умножать на 2.5 т.к. делать быстрее лучше чем опаздывать
1094 717809
Посоветуйте какой-нибудь проект, который вы где-то взяли (купили или просто скачали) и он вам понравился по архитектуре, по работе между классами, по объявлению переменных, к примеру нет какой-то загруженности и всё распределенно между классами, переменные вынесены куда-то в отдельную часть, UI подгружаются из каких-нибудь настроек и все в таком духе. У меня просто проблема, я могу сделать любую логику хоть в одном классе, но выглядит это всё убого и не красиво, хотелось бы научиться работать именно по красоте, для команды.
1095 717883
>>717809
Таких нет.
Смотрел таркова, фантазмафобию, даже хартстоун, у всех этих проектов какая-то своя хотел бы сказать костыльная архитектура.
Тебе просто нужно начать делать и все, а с опытом поймешь для какой игры какая архитектура лучше подходит
1096 717889
>>717883
Как ты посмотрел? Я ничего против костыльной архитектуры не имею, я наоборот хочу научиться делать всё хоть в какой-то архитектуре. Я говорю о том, что меня бесит, когда у меня 20 gameobject'ов в испекторе висит, и в них можно запутаться, я хочу вынести их во что-то отдельное, я хочу сделать код более менее универсальным под задачи проекта. То есть меня интересует чистота кода, а не какая-то эфимерная богом данная архитектура. Это же как-то называется, когда ты сидишь и продумываешь архитектуру. Есть у нас два таких класса, они взаимодействуют с таким-то по такой-то цепочке. Вот это вот всё как планировать, как научиться, если как я сказал выше, я могу весь проект в один скрипт уложить, а хотелось бы что-то более масштабное попробовать.
image.png1,3 Мб, 1280x720
1097 718231
народ, подскажите, в какую сторону копать и что изучать для игры с видом сбоку наподобие This War of Mine/Lone Survivor? т е минимум физики, но горсть интерактивных объектов/вейпоинтов с зачатками стелса и, опционально, многоэтажными картами
до этого был опыт в аркадах/платформерах, даже в паре джемов участвовал, но именно адвенчуры еще не пробовал делать

пикрелейтед, чтобы было понятнее, на что хочется чтобы был похож результат
1098 718255
>>716487
Тебе не нужен тут геткомпонент
1099 718256
1100 718260
>>717889
Возможно тебе стоит почитать про gof паттерны
1101 718302
Надеюсь меня тут за такое не забанят.
У меня есть заказ, написано уже где-то процентов 20, нужно его доработать, работы примерно на неделю, плачу 15 тысяч. С какими-то вопросами могу помогать, нужно ваше желание разобраться в коде (строчек 300 несложных), навести немного порядок и умение писать логику приложений, само по себе приложение не сложное. Оплачивать могу хоть каждый день, после согласования с заказчиком.
Писать в тг @nulcomp. В планах найти небольшую команду разрабов. В ходе разработки могу помочь или обсудить решение.
1102 718368
>>718302
Чел, так тут по сути с нуля сделать и всего 15 тысяч, ты серьезно?
Ты поподробнее расписал бы что там, а то может я зря с такого жлобства охуевать начал
1103 718382
>>718368
Там всего понемногу. Я знаю, что тут разные люди сидят. В прошлый раз я платил 15к за пару часов работы, и то люди не согласились, хотя сами в своем же проекте ради интереса это реализовали. Мне нужен именно человек с навыками ниже среднего. Для какого-нибудь школьника 15к за неделю получить это нормально, если учитывать что при этом тебе не нужно быть Васерманом.
1104 718400
>>718382
Ну тогда теперь ясно@понятно
1105 718440
Сап, что вот это за хуйня? Возникает от любой камеры, и в игровом режиме, и в неигровом. Как будто камера кидает тень вокруг себя. Она разве не прозрачная должна быть? Раньше такого не было, появилось ВДРУГ и без особых причин на то.
image.png867 Кб, 1914x1042
1106 718442
А, вот, ещё подметил. На поверхностях, на которых нет НИКАКОЙ тени - эта штука не срабатывает.
1107 718445
>>718442
>>718440

А, всё, понял, я имбецил. Сделал слишком огромные объекты и дальность отрисовки тени не дотягивается, лол.
1108 718486
А можно в юнити как то равномерно осветить все объекты, без солнца и и иных источников света? Чисто для дебага
1109 718504
>>718486
В окне сцены отожми лампочку.
1110 718514
Аноны, мб у кого есть Game Creator купленный? Скачал с трекера - не хочет инсталить. Поделитесь пожалуйста.
image.png38 Кб, 977x303
1111 718522
Почему эта шляпа вешает Юнити наглухо после нажатия mouse2?
Изначально того что обведено красным не было, а вместо обведенного синим было то что выделено желтым. Но в такой конфигурации камера доходя до 90 или 0 просто застревала там насовсем и уже никуда не поворачивалась из-за того что значение угла немного перескакивало эти отметки на какие-то незначительные доли. Я решил тупо округлить теперь вообще всё виснет. Как правильно сделать? Сразу говорю я полный нуб в программировании, хотя по скрину наверное и так понятно.
1112 718523
>>718522
Там кстати двоечка зря стоит, но проблема не в ней
1113 718582
Сап двач. Что я делаю не так? Почему я не могу перенести предмет в Timeline?
1114 718583
>>718582
Там просто нет опции что-то добавить
изображение.png82 Кб, 721x388
1115 718637
Делаю спрайтовый шутан, есть следующие вопросы:
1) Как натянуть текстуру так, чтобы на всех объектах повторяющийся паттерн имел одинаковое кол-во пикселей? Сейчас получается, что он дублируется, но где-то растянут, где-то наоборот сжат (см пик)
2) Есть враг, который по определенной логике поворачивается и идет всегда прямо. Как сделать так, чтобы дочерний элемент со спрайтом и анимацией все время смотрел на игрока? Сделал через Looakat:
var look = new Vector3(this.player.transform.position.x, transform.position.y, this.player.transform.position.z);
this.transform.LookAt(look)
Но проблема в том, что ротейшн родительского объект все сбивает
Escape From Tarkov Screenshot 2020.12.18 - 17.16.04.91.png2,3 Мб, 1920x1080
1116 718650
Здорово ребзя, а не видели ли вы примеров реализации сохранения неограниченной вложенности в json, как в Таркове обвес на стволах матрешкой. Для простоты пусть будет некий рут объект, начало дерева. На нем несколько слотов для размещения обвеса, в каждом из этих слотов стоит или не стоит модификация определенного типа, которая сама может содержать несколько слотов под модификации, и так далее. Просто сериализовать не выходит, лимит сериализации не дает, и справедливо, потому что может получиться бесконечная петля вложенных объектов.

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

Задача, конечно, непростая, может хоть подскажете, в каком направлении копать.
image.png129 Кб, 759x480
1117 718704
Этот канвас на сцене мешает наносить текстуры на объекты,я его скрывал в Layer->UI, все равно мешает, хотя и становится невидимым.
1118 718708
>>718704
Помогло снятие галочки активности
1119 718720
>>718231
Ну ищи примеры 2д платформеров. начинай с них. Потом смотри, как делается инвентарь. Далее смотри сам, что нужно игре и гугли,к ак делать
1120 718730
>>718720
ну, об этом и писал

> до этого был опыт в аркадах/платформерах, даже в паре джемов участвовал



вот с инвентарем/стелсом и подобным особого опыта не было (не считая того, что в одной из моих игр у врага перед лицом была Trigger-область, до активации которой он не начинал атаковать ГГ)
1121 718739
>>718730
Так в чем вопрос то? В интернете туториалов для инвентаря полно, гугли и делай.
Но у тебя проблема явно в том, что ты не знаешь, что в игре будет. Вопрос "как сделать игру" очень странный.
Подумай над механикой, выпиши, какие функции в игре будут и как вообще они будут работать. Потом уже пиши код. Делать без четкого плана - очень плохая затея. И в логике будет куча дырок, ТК не будет стройной картины мира + сто раз переделывать будешь
1122 718768
>>718650
Боюсь тебя огорчить, но на юнити такое сделать нельзя.
1123 718808
>>716698
Ты щас хуйню какую-то написал. Это тоже самое кодерство на сясярпе только используя апи юнити.
1124 718809
Аноны, как вам идея делать кроссплатформенные приложения а-ля нативные? Сейчас ведь можно повторить все элементы нативных на юнити ui, использовать OnDemandRendering апи чтобы не рендерить экран каждую секунду. Зато миллион ассетов в помощь и простота разработки. В отличии от нативной разработки много плюсов.
1125 718963
>>718768
Так тарков на юнити.
изображение.png365 Кб, 335x500
1126 718993
>>718768
А ты неплох
1127 718995
>>718637
1 - это называется UV карта, у тебя 3 стула:
стул №1 - для каждой стены создавать материал и выставлять там tile руками, геморно и костыльно делал так когда только-только юнете изучал
стул №2 - создать шейдер и использовать world position UV, чуть сложнее и тоже придется создавать материалы с оффсетами
стул №3 - создавать мир не кубами, а правильной моделькой в 3д редакторе и руками создавать UV тайл самому
2 - у тебя есть GO - враг, дай ему дочерний GO и добавь туда спрайт, потом вызывай LookAt именно у дочернего

>>718650
Делай проще, пусть у тебя будет условный класс:
class InventoryItem {
string Id;
string Parent;
... любая твоя инфа
}
Как ты мог догкадаться твой инвентарь должен храниться одним полем InventoryItem[] items;
Сложность в соединении айтемов, в Parent нужно передать Id родительского, таким образом ты напишешь больше кода, но можешь сделать сериализацию в любую глубину.

>>718704
В иерархии слева от названия есть глаз и рука, тыкни на руку и тогда канвас будет виден, но при этом игнорироваться при клике мне тоже часто мешает

>>718809
Делал так 10 лет назад, в те времена мне отказали т.к. простая логин форма с 2мя текстурами весила 20мб, а такое же приложение на нативной яве 1мб.
В целом если делаешь для себя - можешь, почему нет?
1128 719035
>>718995
Спасибо

>2 - у тебя есть GO - враг, дай ему дочерний GO и добавь туда спрайт, потом вызывай LookAt именно у дочернего


Так я так и сделал. Но если меняется ротейшн у родительского го, то у дочернего тоже и лук эт почему-то не взлетает
1129 719045
>>719035
Что значит не взлетает?
Тогда когда меняешь родительский, обновляй еще и дочерний.
Я вообще думал ты вызываешь LookAt в апдейте каком-нибудь
1130 719053
Привет, юнити тредик! Столкнулся с такой дилеммой: продолжать пилить свой 3й проект, или читать техническую литературу про паттрены проектирования, SOLID и прочие ООП. С одной стороны в юнити уже более-менее ориентируюсь и не хватает знаний архитектуры. С другой - практики тоже не особо хватает. Как бы ты поступил на моем месте?
1131 719060
>>718808
Так я знаю, но конкретно это у меня не получается
1132 719067
>>719053
Да просто делай и все! это же ты 20 раз уже про архитектуру тут спросил?

Тебе никто и никогда не сможет сказать "как надо" так, чтобы оно подошло ко всем твоим проектам, такого просто быть не может.

Если брать твой солид и ООП то даже сейчас есть люди, которые смогут сказать где и то и другое НЕ подходят т.к. даже у них есть слабые места.
image.png25 Кб, 612x332
1133 719068
>>719045

>Что значит не взлетает?


Спрайт не смотрит на игрока.

>Я вообще думал ты вызываешь LookAt в апдейте каком-нибудь


Так и есть.
Изначально есть отдельны компонент на объекте со спрайтом, которые его поворачивает каждый апдейт через lookat - работает ок.
Далее я добавил на родительский объект компонент с движением(См скрин).
Спрайт перестал на меня смотреть. Я списал это на то, что апдейт спрайта может вызываться до апдейта родителя, который переписывает ротейшн.
В итоге я пытался в родительском объекте в старте 1)найти подобъект и сделать лукэт для него и 2) найти компонент через GetComponentInChild и вызвать метод в нем. Оба варианта провалились. Сейчас еще посмотрю, мб где ошибся
1134 719071
>>719068
>>719045
Блин, перестал работать и сам компонент с лукэт без движения.
Пересоздал объект, назначил компонент заново - все ок(во всех трех вариантах). Так и не понял в чем дело было, объекты одинаковые были, вроде как.
1135 719079
>>719071
>>719068
Думаю тебе лучше сделать billboard шейдер для твоего спрайта.
1136 719081
>>718995

>Делал так 10 лет назад, в те времена мне отказали т.к. простая логин форма с 2мя текстурами весила 20мб, а такое же приложение на нативной яве 1мб.


>В целом если делаешь для себя - можешь, почему нет?


За 10 лет многое изменилось. Сейчас игры по 1.5 гб миллионами качают. То есть для мессенджера это не подойдёт, потому что да, вес больше и скорости открытия нет. Но для чего-то, не юзающего нативные штуки типа камеры, очень даже.
1137 719114
Как сделать, чтобы по клику на кнопку какой-то файл загружался в телефон?
1138 719149
Как в иерархии показать сразу 2 сцены? Хочу из объекты из одной перетащить в другую.
1139 719152
>>719149
ps
Хочу сделать отдельную сцену для главного меню. Сначала хотел ограничиться одной, но когда запускаю игру (в смысле, жму на ярлык с игрой), то приходится ждать секунд 20, то есть, загружается вся игра. Я хочу чтобы сначала быстро загрузилась меню, и только потом, в зависимости от того, что выберет игрок (новая игра, продолжить, загрузить), загрузить всю сцену игры.
Сцена для игры только одна, игра небольшая.
image.png21 Кб, 512x359
1140 719154
>>719152
Картинка для наглядности. Я могу открыть только одну сцену, кликнув на нее в ассете, и только после этого она откроется и покажется в иерархии. Я бы хотел чтобы в иерархии были сразу две.
1141 719157
>>719154
>>719152
>>719149
Отбой, перетащил к сцене меню сцену игры и перетащил оттуда нужные элементы. Потом сцену удалил обратно.
1142 719173
Кароче, такая проблема. Есть персонаж с CharacterController. Когда я его двигаю в Update() функцией Move, если игра на мгновение зависает, после развисания, персонаж резко рывком движется вперед. А если в фикседапдейте, то все нормально. Но, мне нужно двигать в обычном апдейте. Как пофиксить?
1143 719175
>>719173
ты Time.deltaTime используешь?
1144 719176
>>719175
Да, вот так вычисляю следующую точку.
The-Chameleon-game-download.webm534 Кб, webm,
650x364, 0:06
1145 719179
смотрел на ютубе небольшой лецплей игрухи с итчи.ио и там на персонаже очень любопытный шейдер когда он превращается в другого персонажа. есть идеи как подобные вещи вообще делаются? не похоже что там просто случайный дисплейсмент вершин, а происходит именно какая-то пикселизация

если кому интересно что это за игра то вот ссылка
https://merlinogames.itch.io/the-chameleon-demo
1146 719185
>>719176
не очень понятно почему у тебя вращение влияет на расстояние между двумя точками. если ты по вейпоинтам двигаешь то можно сделать так:

_moveSpeed = 5f;
_direction = (_nextPoint - transform.position).normalized;
_movement = _direction (_moveSpeed Time.deltaTime);

_controller.Move(_movement);

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

>_movement = _direction (_moveSpeed Time.deltaTime);


двощ порезал умножение какого-то чёрта, но думаю ты разберёшься
1148 719193
>>719067
Не, это не я 20 раз спрашивал. Просто я к тому, что это хотя бы понимать надо на базовом уровне. Чтобы потом выбрать "как надо"
1149 719197
>>719185
Короче, лерп у меня для того, чтобы персонаж при развороте в противоположную сторону сперва до нуля замедлялся, и заново разгонялся (ну ты понял, типа идет влево, игрок нажимает стрелку вправо, персонаж не резко разворачивается и с той же скоростью идет вправо, а сперва замедляется). Но сейчас я потестил и понял, что проблема именно в лерпе. Придумаю что-нибудь другое.
1150 719198
>>719197
тебе тогда лерпать нужно не движение, а _moveSpeed. что-то типа этого:

_moveSpeed = Mathf.Lerp(0f, _maxSpeed, _directionRatio);

где _directionRatio это значение от 0 до 1 при которых 0 это твой персонаж смотрит в противоположную сторону, а 1 это твой персонаж смотрит в нужном направлении. тогда постепенно разворачиваясь он будет ускоряться
1151 719200
>>719198
В этом есть смысл, попробую.
1152 719210
>>719200
мне стало скучно и я решил тебе помочь с _directionRatio

_direction = (_nextPoint - transform.position).normalized;
_directionRatio = Mathf.InverseLerp(-1, 1, Vector3.Dot(transform.forward, _direction));
_moveSpeed = Mathf.Lerp(0f, _maxSpeed, _directionRatio);

собственно при помощи Vector3.Dot мы вычисляем на сколько вектор forward твоего объекта и нужное направление схожие. проблема в том что Vector3.Dot возвращает 1 если вектор смотрит в одном направлении и -1 если в противоположном. посему там есть Mathf.InverseLerp есть который возвращает всегда от 0 до 1 в заданном промежутке (-1, 1)
1153 719220
>>719210
Спасибо, добавлю себе в todo list.
1154 719221
Жму "Новая игра", выполняется такой код
Time.timeScale = 0;
SceneManager.LoadSceneAsync("Game");

Time.timeScale = 0 я написал, чтобы игра не сразу началась, а после того, как я нажму пробел, типа, я готов. Во многих играх такое сделано.

В принципе, работает, но один Update в загруженной сцене все же срабатывает (судя по дебагу в консоле). Как фиксануть это? В принципе, не мешает, но может так не должно быть, а значит, где-то косяк закрался, который может всплыть в какой-то момент
1155 719226
>>719221
А, туплю. Update всегда будет выполняться, timescale не влияет на такое
1156 719240
Почему эта хуйня всегда false независимо от нажатия на пробел?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TimeManager : MonoBehaviour
{
public bool isGamePaused;

void Start()
{
isGamePaused = false;
}

void Update()
{

if (Input.GetKeyDown(KeyCode.Space) == true && isGamePaused == false)
{
isGamePaused = true;
}

if (Input.GetKeyDown(KeyCode.Space) == true && isGamePaused == true)
{
isGamePaused = false;
}

}
}
1156 719240
Почему эта хуйня всегда false независимо от нажатия на пробел?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TimeManager : MonoBehaviour
{
public bool isGamePaused;

void Start()
{
isGamePaused = false;
}

void Update()
{

if (Input.GetKeyDown(KeyCode.Space) == true && isGamePaused == false)
{
isGamePaused = true;
}

if (Input.GetKeyDown(KeyCode.Space) == true && isGamePaused == true)
{
isGamePaused = false;
}

}
}
1157 719241
>>719240
потому что ты выставляешь её true, а потом сразу же после этого делаешь проверку является ли она true и если true, то меняешь на false. не могу удержаться и не добавить что ты идиот
1158 719242
>>719179
Возьми шейдер PSX называется, так вот этот шейдер делает перемещение вертексов и искажение UV, в этом шейдере этот параметр offset (условно) стоит 0.5, а на твоем видосе его меняют до 10 и просто меняют модельку.
Тааак чтоо ищи шейдер и микро-изменение тебе поможет.

П.с. можешь morphing погуглить, там прям все меняется и более эффектно чем тряска вертексов.
1159 719243
>>719241
Чувак, я полный нуб в программировании, перед новым годом начал смотреть туториалы, так что это нормально. Т.е. Оба эти if выполняются одновременно что ли а не последовательно? Или GetKeyDown не дискретный а продолжает выдавать true некоторое время? Я просто думал, что GetKeyDown сразу же становится false.
1160 719244
>>719243
>>719241

Короче как этого избежать?
1161 719245
>>719243
>>719244
А хотя похуй, уже сам понял что надо не просто if а else if во второй проверке писать
1162 719247
>>719245
Хотя буду рад если поясните максимально примитивно за то в каком порядке что выполняется. Ибо хуйню я пофиксил, но вот эти вопросы>>719243 остались.
1163 719248
>>719245
у тебя у конкретного кадра выставляется значение Input.GetKeyDown(KeyCode.Space)

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

и да всё что тебе надо это if-else сделать или ещё короче:

if (Input.GetKeyDown(KeyCode.Space) == true) {
isGamePaused = !isGamePaused;
}

тогда каждый раз при нажатии пробела твоё поле isGamePaused меняет своё значение на противоположное
1164 719249
>>719247
если вот это >>719248 не очень понятно, то могу схему нарисовать простую ибо бессонница
1165 719250
>>719248
Спасибо за объяснения. И вот за этот isGamePaused = !isGamePaused; способ переключения, я такого не видел.
>>719249
Да все понятно отлично.
1166 719251
>>719250
! - оператор not

!true это тоже что и false и !false это тоже что и true
1167 719301
Анон, помоги тупому нуфагу.
У меня есть метод, который ищет ближайший объект к игроку и возвращает его геймобжект для дальнейших манипуляций. С геймобжекта я беру компонент класса, которые реализует интерфейс IInteractable.
Вопрос: как мне брать эти самые классы без конкретики называния каждого класса этого интерфейса? Я пытался как-то через абстрактный класс и вызывать его перегруженный метод, но с помощью дебага понял, что у меня переменная с ссылкой на интерфейс отдаёт null чтобы я не делал. Хоть наследованием, хоть интерфейсом, всегда null, хотя объект оно находит, а вот дальше тупо не могу понять как мне взять все классы этого интерфейса, если так можно сделать.
Юнити 2019.4.9f1 версии лтс
1168 719350
Как в юнити вручную расставить порталы оклюжен кулинга?
Автоматическая расстановка - глючная срань.
1169 719408
Сап двач,
подскажи плиз как сделать правильно с точки зрения архитектуры и здравого смысла.

Есть префаб, который должен кликаться. Я создаю в рантайме какое-то кол-во префабов с уникальной айдишкой.
Потом после клика на один из префабов я хочу вызвать функцию OnClick в другом скрипте, который относится к камере.

Я пока не понимаю как правильно это сделать. На ум приходит следующие решения:

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

Оба способа мне не очень нравятся, но возможно придется выбрать что-то.
Так вот вопрос, если способ сделать это элегантнее. Если нет - то что принято в мире юнити?
1170 719442
>>719408
Первый вариант быстрее по производительности, да и чем он тебе не нравится, хорошее решение. Но если у тебя вся сцена - объектов 10, то зачем тебе эти делегаты, находи камеру в скрипте префаба и не еби голову. Событие клика, как и практически любой инпут, происходит относительно редко, на производительности это не скажется.
1171 719480
>>719442
ну думал может именно для этих целей что-то более красивое придумали.

Спасибо анон
изображение.png226 Кб, 1325x903
1172 719496
Пилю такой вот инвентарь. И столкнулся с проблемой - при перетаскивании в eventData.position даются координаты относительно экрана, а мне нужны локальные координаты моей сетки инвентаря.

Самый прикол в том, что у самого таскаемого объекта в RectTransform координаты меняются правильно, локально, относительно родителя. Поясните посоны, не понимаю.
1173 719503
>>719301
Если я правильно понял - всякие GetComponent<MyAwesomeInterface>() работает, меня даже удивило что юнете может искать интерфейсы, так что скорее всего ты либо получаешь не тот объект, либо ищешь его там, где его нет (попробуй GetComponentInChildren<>)

>>719350
Скорее всего никак, неправильные флаги выставил, убери галку с Occludee Static у своих дверей.
Если не нравится юнитевское, пиши свое или в ассет сторе бери, видел там минимум 2 решения самописных

>>719496
RectTransformUtility.ScreenPointToLocalPointInRectangle возможно это поможет, до конца не понял что ты хочешь, получить координат пикселя в айтеме или сам айтем
1174 719505
>>719301
Я, честно, не оч понял, что ты хочешь, но могу свой опыт описать, мб, поможет:
У меня есть ActionManager с методами, например PrepareAction( IInteractable action), InvokeCurrentAction(), CancellAction() и полем IInteractable currentAction. Интерфейс IInteractable содержит метод Perform().
Когда игрок касается какого-то игрового предмета, в ActionManger отправляется сообщение с классом действия, который реализует интерфейс IInteractable (Действие можно получать через GetComponent<IInteractable>(), например. У меня отдельный компонент для interactable объекта, а сами конкретные действия реализуются разными скриптабл обжектами, которые пихаются в serializedfield класса IInteractable).
В методе PrepareAction( IInteractable action) (это может быть и свойство, кстати) прилетевший класс IInteractable сохраняется в IInteractable currentAction а также дергается UI класс, который отображает отметку на экране, что доступно действие.
Если игрок выходит из зоны действия интерактивного предмета, то триггерится CancellAction(), который отключает отметку в UI и чистит currentAction.
Если же игрок нажимает действие, то ActionManager запускает InvokeCurrentAction(), в котором просто делает для IInteractable currentAction.Perform();
ActionManager ничего не знает о том, что конкретно будет делать IInteractable в Perform() - его задача подготовить, соообщить о том, что действие готово и далее либо запустить, либо отменить действией.
Само действие в своем конкретном перформ уже описывает, что ему нужно делать. Мб какие-то отдельные объекты дергать, мб еще что-то.
Например, у меня есть действие, которое просит в персонажа произнести (отобразить текст) речь, есть действие, которое передает в инвентарь конкретный предмет и удаляет исходный.
1175 719575
Кириллы, подскажите площадке где можно попирать свежие версии всяких ассетов аля playmaker и тд
1176 719793
Кто-нибудь использовал официальный юнитивский Localization package (он сейчас в версии 0.9)? Назначил я в нем разные тексты для разных языков, в эдиторе все переключается как надо входящей в пакет менюшкой в углу окна, а как собственно в игре язык переключать?
1177 719794
>>698843 (OP)
Кроссреференсы это нормально вообще? А то чет иерархия по пизде идет.

Вот допустим у меня некая хуйня Y1(допустим куб контролируемый игроком), в текущий момент управляется хуйней X1(игрок1)

Я хочу процессе, менять и куб и игроков. При это не только игрок отправляет (знает о) кубу данные и команды, но куб иногда тоже хочет что нибудь сообщить.
На первый взгляд когда игрок берет под контроль куб, он еще и сообщает кубу, что ты управляешься теперь мной.

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

Как игру короче сделать?
1178 719795
>>719496
Помоему эта хуйня рейкастом делается на ячейку.
1179 719796
>>719794
Или надо что то вроде dependenci injection делать?

Т.е. делать одну абстракцию вверх (какой нибудь ControlManager) и внутри его уже прокидывать все эти связи?
1180 719797
>>719793
PS: Подозреваю что вот этим методом, но он inaccessible due to its protection level.
1181 719798
>>719797
бля сам метод-то не копипастнул:

LocalizationSettings.SelectLocale(identifier);
1182 719837
>>719798
Короче оказалось что это делается с помощью LocalizationSettings.SelectedLocale = LocalizationSettings.AvailableLocales.Locales;

Остается вопрос как назначить локализованные значения для опций в ui dropdown.
1183 719841
Захотел попробовать покавырять Юнити. Сейчас не могу просто добавить в него модель из 3Д Макса. Вернее куб добавляется но без текстур.
Я сейчас ставил новый макс и там работа с материалами выглядит немного иначе чем в старых версиях, к которым я привык. Но я натянул текстуру на модель. При экспорте хочу поставить галочку но потом выдает ошибку и такая модель получается без текстур. если галочку не ставить, то ошибки нет, но и текстур снова нет. Пробовал гуглить ошибку но как-то прямо мою проблему не выдает поисковик.
Может тут скажут что делать? Или может версия макса фиговая? Или может вообще блендер или что-то другое использовать?
1184 719867
Хотел сделать простую ориентировку в пространстве, в итоге уже какой день офигеваю с ротации.

.forward как и .right не работают как надо

.Rotate() не меняет оси объекта? Что? Это баг что ли, как некоторые люди на форуме жаловались, или что? если так то понятно почему оси не работают

при определенных настройках некоторые оси даже меняются, да вот только классические .forward * speed все равно нихера не работают

Я уже перепробовал и все кватернионы(изменения 2ух осей также меняют и третью), и относительность пространства, и темы все на 20 раз перечитал, везде фигня какая-то. Гайды уровня "я сам не знаю как работает эта тема, но я придумал бесполезные костыли для себя которые больше никому не помогут так что гг".

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

Я уже кукухой скоро поеду. Все темы кажутся бессмысленными, и даже доки мало чем помогают.
1185 719905
>>719841
Я текстуру отдельно кладу в юнити рядом с моделькой, потом создай новый материал your-model.mat и туда в MainTexture перетащи свою текстуру.
Материал в 3й вкладке модельки нужно проставить и будет работать.
там больше способов как выставить текстурку для модельки
slon.gif7 Мб, 320x240
1186 719997
>>719905
>>719905
Да, я читал про этот способ и пока я только-только начинаю мне его хватит. Но что если у меня сложная модель с 10 текстурами и разными материаламми. И таких моделей много. Это же гемор сначала в максе назначать, а потом в юнити. Плюс куча файлов вместо одного. Вроде и сделали вариант экспорта в одном fbx, а вроде он нихуя не работает.

К сожалению я такой человек, что трудности меня сильно демотивируют. Особенно когда речь идет о чем-то, что должно делаться одним нажатием кнопки, а приходится пердолиться. Жопа горит как пионерский огонь с таких вещей.
1187 720026
>>698843 (OP)
Сап, аноны, в общем нужна ваша помощь.

Кратко:

Пилю по гайду игру.

Есть два скрипта, в нем есть одна переменная с именем условно Peremennaya и один IEnumerator с именем условно ienum().

Автор зачем то пересоздает заново в другом скрипте эти же методы. Я хочу их просто вызвать в другом скрипте.

Для переменной я в первом скрипте объявил ее паблик, а во втором я сначала объявил переменную public Script1 peremennaya и вызвал ее как peremennaya.Peremennaya - все вроде компилится без ошибок. А вот с нумератором я не понимаю, как его вызвать.

Собсна, прошу от вас помощи как это сделать грамотно, и во-вторых, сказать, правильно ли я произвел вызов переменной по описанному мной способу? Заранее спасибо
1188 720027
>>720026
Скрины, если что, 1-2 переменная и нумератор в первом скрипте а 3 - как я вызвал ее во втором
image.png58 Кб, 762x458
1189 720029
>>720027
>>720026

Короче нагуглил такую хуйню, результат на скрине (нумератор объявил пабликом в первом скрипте). От вас просто прошу оценить качество решения. Заранее спасибо
1190 720030
>>720029
А нет, не сработало, выдает NullReferenceException: Object reference not set to an instance of an object
1191 720058
>>719575
cgpeers.com
Но там регистрация раз в определённый период. Я хуй знает какого числа, чисто случайно попал в нужный день и зарегался сразу.
1192 720059
>>719867
Гугли книжку unity в действии. Там вначале показывается как это все делать
1193 720060
>>720058
1ого и 17ого, но сейчас рега ток по промо
1194 720062
>>719997
Старайся делать 1 материал для модельки, это и удобство и перфоманс (т.к. каждый материал создает DrawCall и внутри будто рендерит как отдельный объект).

А вообще понимаю о чем ты, из-за проблемы (и моей лени делать модельки) я уже 10 лет не могу ни одной игры доделать.
1195 720063
>>720059
Книжки для червей.
Я уже сделал, разобрав пару ассетов. Это тупая хуйня на костылях, работающая через жопу, ну или доки кто-то через жопу пишет.
К ротации применяются разные методы чтобы они не пересекались и только тогда она блять работает.
Я ебал.
1196 720065
>>720063
Тебе не надо всю книгу читать для этого. Просто возьми пример оттуда Или ты суп ножом ешь?
1197 720066
>>720065

>просто возьми


Спасибо братиш, я уже сделал сам. но пометку на будущее оставлю.

>суп ножом


У меня свой, духовный путь. Май вей из э хард вей.
1199 720068
У меня много тупых шизоидных вопросов:

Предположим я хочу сделать майнкрафтоподобный графон, и чтобы в кадре было ну очень дохуя всего анимированного. При этом анимации примитивные.
1. Если скажем у меня есть некие враги, их мало видов, но при этом они существуют в больших количествах. Как в этом случае можно все сделать максимальео эффективно в плане производительности? Вот например мне кажется можно нагенерировать мешей под каждый кадр анимации(ведь вся модель из 6-10 кубов состоит, то есть треугольников там очень мало) и поместить это в видеопамять и отрисовывать нужный буфер когда надо. Это можно в юнити сделать? И норм ли будет?

2. А если каждый куб в каждом монстре анимировать отдельно - понятно что это можно сделать геймобжектами, но тогда производительность будет в говне, да и 99% функционала геймобжектов тут вообще не нужно будет. Может есть альтернатива чтобы я сам мог рисовать что хочу как хочу?
Ведь условно 10 кубов на монстра, если 100 монстров в кадре - это 1к дроуколлов при такой реализации для разных трансформаций. Норм же вроде? Или нет? При этом я смогу еще и процедурно что-то интересное анимировать прям на лету, в отличии от первого подхода.

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

4. А может мне стоит погуглить геометрический шейдер для чего-то такого?

Ну и может есть что почитать по поводу анимаций и вообще обмене данными между видеокартой и процессором?
1200 720125
Есть ли разница что юзать - system.Random или unityengine.Random?
1201 720126
>>720125
как раз недавно на хабре читал статью о том как чел жаловался на UnityEngine.Random. основной его тезис был в том что это статический объект и если ты задашь ему сид, то он будет одинаковый на весь чёртов проект, что довольно скудно и в целом рекомендовал юзать его самописный суперпростой и лёгкий рандом. я вот сиды не юзаю в рандоме, но юзаю вспомогательные методы типа Range которых в System нет. System тупой и ест память

https://habr.com/ru/post/531042/
1202 720127
>>720126
Да, чет мне кажется у меня с этим проблем не будет, мне сид не нужен.

А в других потоках юнитивский рандом будет работать? А то я слышал что юнити апи только из основного потока можно юзать.
1203 720128
>>720127
что ты имеешь в виду?
1204 720130
>>720128
Ну если у меня будет много потоков из System.Threading работать и я там буду делать Random.Range - это норм?
1205 720132
>>720130
не слышал чтоб это вызывало какие-либо проблемы, но специально не проверял
1206 720145
>>699449
Сынок, это надо знать!
Впрочем аргумент инвалид. Начиная с восьмёрки майкросовт забило хуй на это всё, из-за чего крупным корпорациям например пришлось менять целый парк принтеров, ибо старые дрова нахуй пошли, я дро их не поддерживает, разрабы принтеров тоже.
1207 720146
>>720145
Начал вкатываться в ваш Юнити. Сейчас уже третью игру пилю (в основном говно из спрайтов) за 2 недели. И при создании нового проекта хаб начал мне создавать новый проект внезапно, но предварительно решив обновиться и докачать 4 гига какого-то говна из интернетов. Уже два часа сижу и жду пока оно создаст ПУСТОЙ проект.
Отсюда вопрос. Часто у вас так? Это баг или фича? Хаб новый, всё установлено не сичтую винду 2 января, обновления все скачал тогда же. Интересно что он там качает и нахуя, если я его об этом не просил. И почему нельзя это следать в фоне например пока я Кирилю своих эльфов и грабить корованы? А что если я ААА студия? Работа встанет на 1 день потому-что юнити стреляет мне в ногу?
1208 720148
>>720146
у меня ничего не докачивает, это какая-то странная байда и смени провайдера. 2 часа ждать 4 гига это 2007й

покажи что пилишь
1209 720150
>>720148
Я хз, кстати даже что там реально качатеся, ибо хаб не показывает. Просто кинуло окно "Я качаю апдэйт". И всё. В итоге ребутнулся, оно докачало быстро и запустило.

>покажи что пилишь


Да нечего показывать пока. 2 недели как вкатился. В планах сделать что-то типа Марио или Чип и дэйла в 2d. Но обучение мне даётся как колхознику нейронные сети.
1210 720151
>>720150

>Сейчас уже третью игру пилю


>Да нечего показывать пока



две допилил или дропнул?
1211 720152
>>720151
Допилил. Но показывать стесняюсь, это скорее проекты для обучения чем "Я ща это зарелизю в СТИМ!!!". Например текстовый квест с вариантами диалогов. Там "Играть" минут 5. Или 1 левел товер дефенс, в котором иногда мобы идут не по маршруту.
1212 720153
>>720151
Вообще не имею привычки дропать что-то. Думаю в гейдеве я с этим дальше двачей не уеду.
1213 720154
>>698843 (OP)
Чап, обьясните как работают платные штуки для игры.
Например купиля тайлсет. Прям за деньги, официально, вставил его в Юнити, А сейчас читаю что в условиях использования я не могу его вствалять в проекты которые пойдут в сторы. И зачем такое вообще надо тогда? Зачем такое покупать? Кто этим пользвется? Что будет если я всё равно вставлю? Меня возьмут за жопу?
1214 720155
>>720153
тогда показывай первые две поделки
OkayGuy.jpg72 Кб, 1705x959
1215 720156
>>720155
А как это здесь принято? Куда кидать?
1216 720158
>>720156
сделай пару скриншотов, приложи их и расскажи что там за херня. или видео запили
1217 720170
>>720068
1. через ECS можно даже 10к сложных моделек рендерить и полчуать 100fps+.
Можешь начать копать в этом направлении либо - анимируй только тех кто рядом т.е. если фигура далеко - рендери её одним объектом, так тоже никаких проблем быть не должно.

2. Можешь пойти сложным путем и написать свою систему анимаций (как в майне), менять вершины кодом, будет 1 dk и 1 меш. Прикрутишь ecs, будет еще лучше.
Обжекты не просаживают особо перфоманс, можешь попробовать решить свою проблему в лоб и просто посмотреть в профайлере что будет жрать перфоменс.

3. Типа того, указываешь оригинальный меш, вызываешь у него GetTris GetVerts и весь этот мусор, делаешь new Mesh() и ему вызываешь SetTris SetVerts. Если сохранишь результаты GetTris - то производительность не должна пропасть.

4. Ты можешь нагуглить плавные простые анимации вроде "покачивания листвы", тебе нужна конкретная анимация конкретных вершин, а для такого нужно хорошо разбираться в шейдерах и много времени потратить на это, я бы не советовал.
1218 720238
>>720154
Скорее всего тебе продали пизженные где-то в другом месте тайлсет. Поэтому его и нельзя использовать в коммерции.
Двач.png54 Кб, 1093x481
1219 720330
>>698843 (OP)
Сап двач. Где можно заказать услугу, чтобы моё приложение скомпилировали нормально под Google Play? Я уже просто заебался с этим мучаться. Мне просто хочется выложить приложение, которое я делал несколько лет на Google play.
Я готов заплатить за это деньги
1220 720342
>>720026
>>720027
>>720029
>>720030

ПОМОГИТЕ МНЕ ПОЖАЛУЙСТА
1221 720351
>>720342
А МОЖНО НЕ ОРАТЬ?
https://docs.microsoft.com/en-us/dotnet/api/system.collections.ienumerator?view=net-5.0

И во-вторых что за тупой вопрос про правильность вызова переменной? Вызвалась? Ну так чего тебе еще надо? Ты про расположение функционала? Ну так архитектура это ТВОЕ епт субъективное решение, никто не придумает за тебя как ТЕБЕ надо.

Я могу ошибаться, но тебе надо подтянусь основы прежде чем задавать вопросы в Юнити треде. Зайди что ли в C тред.
1222 720396
Привет гд-аноны, у меня возникла ошибка во время создания своей игры. А именно: есть скрипт обработчик свайпов, он обрабатывает свайп по экрану и определяет его тип влево, вправо, вверх или вниз был сделан свайп Также есть скрипт движения игрока который принимает эти типы свайпов и на их основе сдвигает игрока. Ошибка возникает когда я пытаюсь перезапустить сцену или запустить след уровень:

MissingReferenceException: объект типа Rigidbody был уничтожен, но вы все еще пытаетесь получить к нему доступ.
Ваш сценарий должен либо проверить, является ли он нулевым, либо вы не должны уничтожать объект.

Собсна, как ее преодолеть? Вот скрипты для понимания:
https://pastebin.com/4izcytC5 - обработчик свайпов
https://pastebin.com/TLrg2ZS3 - движение игрока
1223 720397
>>720396
C одной стороны мне иногда хочется фейспалмом лицо пробить от нашествия кириллов. А с другой стороны мне греет сердце то, что я все таки понимаю вещи чуть лучше, чем некоторые.

А теперь по делу. Зачем ты задаешь вопрос в треде, когда тебе сам юнити УКАЗАЛ на проблему и дал тут же ее РЕШЕНИЕ?
кста это платиновый вопрос с которого уже бомбил другой анон время назад

а)Делай проверки на существование объекта
б)Ищи где у тебя уничтожается объект, ты стучишься в несуществующую дверь
1224 720492
>>720351

>А МОЖНО НЕ ОРАТЬ?


Да я охуел просто всем помогли а меня обошли

Так у меня вопрос не по самому кодингу, а по тому, как мне скрипт, привязанный к одному объекту в одной сцене, вызвать в другом объекте другой сцене. Гайды, которые я искал - не помогли, он их не видит, или я правильно GameObject вызвать не могу, а ты мне просто определение IENumerator-а скинул... Спасибо конечно, но я не могу нужной инфы найти. А так, на шарпе я вроде кодить БАЗУ могу
1225 720497
>>720492
Скинь свой код на пастебин и давай сюда ссылку, я тебе напишу как можно
украду твой код и продам за миллиарды
1226 720501
>>720497
https://pastebin.com/TFpfGZg5

Короче, в первом скрипте Achievements.cs есть метод public IEnumerator FirstFarm () и переменная [SerializeField] public bool isUnlocked;. Во втором MainMenu.cs они у меня заново созданы. Первый скрипт привязан к объекту Main Camera в одной сцене, второй к к объекту Main Camera в другой сцене. Я же хочу сделать так, чтобы второй скрипт видел метод и переменную из первого скрипта, но не могу это сделать
1227 720519
>>720501
Самый простой вариант через static:
https://pastebin.com/Mggd2jS8

В MainMenu я сменил имя одного метода с Achivements на AchivementsClicked (т.к. был конфликт)
1228 720523
>>720519
Спасибо, попробую у себя
1229 720537
>>720492

>всем ответили


А никто тебе и не обязан, лол. Это тред не про "сделайте за меня домашку". Если ты посмотришь на этот тред, то то он состоит на 70-90% из кирилов, пары стремящихся челиков - только эти и могут по доброте душевной ответит на проблему с которой они сами сталкивались. Нашествие кирилов такое глобальное что все шарящие уже давно ушли или таят молчание изредка когда уж совсем бомбит от тупости намекая на косяки.

>базу могу


Нет, не можешь. кек
1230 720544
Что-то начал гуглить про ецс и охуел -юнитивский ецс все еще в превью, но есть другие, и там не всегда есть поддержка многопоточности.

Какой лучше юзать?
1231 720560
>>720537
Я про то что я посмотрел 10 постов с вопросами вверх и вниз - каждому ответили, мне нет, я про это

>Нет, не можешь.


Потому что в ООП не могу?
1232 720598
В какую российскую компанию вы бы устроились, если бы в перспективе хотели бы стать Dungeon Master'ом, город не принципиален. Я вот рассматриваю Кефир, который тюрягу для ВК сделали, и еще кучу интересных проектов на Unity сейчас разрабатывают. Хочется найти такую, подойти под ее требования, и дальше стремиться и развиваться. А если вы против такого, то напиши как по вашему мнению или опыту стоит всесторонне развиваться Unity разработчику, чтобы любая компания через год этих тренировок взяла вас на тим лида или синеора.
1233 720625
>>720598
Ты хочешь начать ненавидеть делать игры? Тогда делаешь всё правильно.

>>720544
кодманки на ютубе на ецс уже несколько игр сделал и запилил сотни гайдов. Про другие ничего сказать не могу.
Для начала можешь использовать джобы и бурст без ECS.
1234 720637
>>720625
Нет, я хочу услышать мнение очередного долбаеба, который ничего толкового не скажет.
1235 720667
Как заинклюдить в шейдеры текстуру из проекта (чтобы её не было в интерфейсе). Только с помощью Custom GUI?
1236 720844
>>720637
тебе в /po
1237 720885
>>720492
Да у тебя каша в голове,ну ты реально хуйню пишешь. Иди про Шарп читать, ни какую базу ты не шаришь
1238 720907
>>720492
Сделай объект dont destroy on load, чтобы при переключении сцены не удалялся и вызывай в нужной сцене
1239 721099
>>698843 (OP)
Когда перекатываться собираетесь? Я еле нашёл через каталог.

Какую актуальную версию ставить? 2020.2.1f1, да?
Когда примерно стоит ждать LTS выпуск 2020? И стоит ли ждать?
1240 721103
>>721099

>Какую актуальную версию ставить? 2020.2.1f1, да?


Да.

>Когда примерно стоит ждать LTS выпуск 2020?


Скорее всего весной.

> И стоит ли ждать?


Чего ждать то, потом обновишься и нормально.
изображение.png4 Кб, 330x175
1241 721105
>>721103
Спасибо за ответ.

>>2020.2.1f1, да?


>Да.


Тут новые шаблоны для мобилок, документации на них не нашёл. Я как раз подумываю сделать игру под мобилки, начинаю с нуля. Стоит пробовать "Mobile 3D"?
1242 721107
>>721105

>Стоит пробовать "Mobile 3D"?


Уже попробовал... Чёт не совсем то, чего я ожидал. Тут просто пара пакетов для логирования на андроиде и нотификаций, и всё, в остальном как обычный пустой проект. Может в настройках что-то особенное для мобилок настроено... Ладно, значит, придётся самому всё делать. Я надеялся на готовые приблуды для мобильного UI
TEMP.jpg168 Кб, 1231x906
1243 721247
>>698843 (OP)
Почему, если текстуру изменить в шейдере, тень будет как от исходной текстуры?
1244 721263
>>721247
Потому что тень вычисляется отдельным от твоего шейдером? Не знаю.
1245 721268
>>720126

>https://habr.com/ru/post/531042/


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

>все пули будут разлетаться в четком порядке для заданного seed’a,


>Как минимум - игроки заметят и в дело вступит эффект отмены.


Что он имеет в виду? И с чего он приплёл "эффект отмены"?

>Синдром отмены, реакция отмены, или состояние отмены, — реакция организма, возникающая при прекращении или снижении приёма лекарственного средства и проявляющаяся ухудшением состояния пациента (развитием симптомов или состояний, на устранение которых было направлено действие препарата, а порой и возникновением качественно новых симптомов или состояний, отсутствовавших у пациента прежде). Под синдромом отмены также понимается синдром, возникающий в результате прекращения интенсивного употребления любых психоактивных веществ, также называемый «абстинентным состоянием».



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

А ему видите ли "разброс пуль после каждой загрузки одного и того же сейва одинаковый", лол.
1246 721282
>>721268
отмена тут к тому что это влияет на погружение. овервоч это мультиплеерная состязательная игра, тут контроль играет важную роль и патч этот был именно для того чтобы уменьшить случайность. если ты играешь в сингл и видишь одни и те же паттерны везде это делает из симуляции аркаду

собственно автор в первом же абзаце предыстории тебе рассказывает в чём проблема. он хочет чтоб левел генерировался случайно, но управляемо (с возможностью указания сида), а поведение мобов генерировалось тоже случайно, но отдельно от левела
1247 721393
Подскажите как привязать состояние анимации к переменной. Есть фитиль горит ориентируясь на таймер хода, на таймере можно накрутить значение во время игры, нужно что бы фитиль тоже менял своё состояние вместе с таймером. Как то вроде мысли есть, но все они топорные.
1248 721435
>>721282

>делает из симуляции аркаду


1. Большинство игр - аркады, а не симуляторы.
2. Симуляторы должны быть детерминированными, в них нет места полному хаосу.

>он хочет чтоб левел генерировался случайно, но управляемо


>поведение мобов генерировалось тоже случайно, но отдельно от левела


Вот я не понимаю, зачем отделять мобов от уровня?
Возьмём две игры:

1. Пошаговая аркада, где мобы ходят по клеточкам и паттерны легко увидеть. Если игрок загружает старый сейв, он ожидает, что мобы пойдут точно по тем же маршрутам, по которым шли раньше. Если они пойдут по новым маршрутам - это будет выглядить как "испорченный сейв". Просто представь, что ты сохранил карту, по которой летела пуля, а после загрузки этой карты пуля полетела в случайном направлении. Какой в этом смысл? Моб, который сидел в клетке А, перед сейвом собирался пойти в клетку Б, ему нужно было что-то там сделать. Если он после загрузки сейва пойдёт в клетку Б - это будет выглядеть так, будто бы игра не прерывалась. Если он после загрузки пойдёт в любую другую клетку - это будет выглядеть так, будто игра стёрла ему память, или это совсем другой моб, или он где-то гулял в промежутке между сейвом и лоадом и теперь у него другие планы.

2. Сложная реалтаймовая симуляция, где мобы могут гулять где-то по карте, пока игрок их не видит, заниматься своими делами и т.д. В такой игре игрок не сможет заметить паттернов, если не будет ходить по пятам за одним мобом и наблюдать, чем он занимается. Если вспомнить игры типа GTA - там пешеходы хотят по строгим маршрутам, но ты этого не заметишь, если просто пройдёшься по улице. Ты заметишь это только если будешь следить за одним конкретным пешеходом - в какой-то момент поймёшь, что он бессмысленно ходит по кругу. Следовательно, в такой игре вообще не важно, каким образом будут генерироваться решения ботов - детерминировано или нет. Но и в такой игре лучше, чтобы поведение было детерминировано. Допустим, ты послал бота за выпивкой, бот ушёл из твоего поля зрения, ты сохранил игру, снова загрузил её - и бот пропал, то есть не вернулся с выпивкой. Может быть, он решил пойти в театр или на работу, но про выпивку он уже забыл, ибо его поведение оказалось сгенерировано с нуля.

Итого - в обоих случаях необходимо детерминированное поведение ботов, связанное с зерном карты или, если точнее, с неким общим потоком симуляции игры, который мы сохраняем целиком, а не по частям. Я даже представить не могу ситуацию, где бот должен выбирать новое поведение после загрузки старого сейва...
1248 721435
>>721282

>делает из симуляции аркаду


1. Большинство игр - аркады, а не симуляторы.
2. Симуляторы должны быть детерминированными, в них нет места полному хаосу.

>он хочет чтоб левел генерировался случайно, но управляемо


>поведение мобов генерировалось тоже случайно, но отдельно от левела


Вот я не понимаю, зачем отделять мобов от уровня?
Возьмём две игры:

1. Пошаговая аркада, где мобы ходят по клеточкам и паттерны легко увидеть. Если игрок загружает старый сейв, он ожидает, что мобы пойдут точно по тем же маршрутам, по которым шли раньше. Если они пойдут по новым маршрутам - это будет выглядить как "испорченный сейв". Просто представь, что ты сохранил карту, по которой летела пуля, а после загрузки этой карты пуля полетела в случайном направлении. Какой в этом смысл? Моб, который сидел в клетке А, перед сейвом собирался пойти в клетку Б, ему нужно было что-то там сделать. Если он после загрузки сейва пойдёт в клетку Б - это будет выглядеть так, будто бы игра не прерывалась. Если он после загрузки пойдёт в любую другую клетку - это будет выглядеть так, будто игра стёрла ему память, или это совсем другой моб, или он где-то гулял в промежутке между сейвом и лоадом и теперь у него другие планы.

2. Сложная реалтаймовая симуляция, где мобы могут гулять где-то по карте, пока игрок их не видит, заниматься своими делами и т.д. В такой игре игрок не сможет заметить паттернов, если не будет ходить по пятам за одним мобом и наблюдать, чем он занимается. Если вспомнить игры типа GTA - там пешеходы хотят по строгим маршрутам, но ты этого не заметишь, если просто пройдёшься по улице. Ты заметишь это только если будешь следить за одним конкретным пешеходом - в какой-то момент поймёшь, что он бессмысленно ходит по кругу. Следовательно, в такой игре вообще не важно, каким образом будут генерироваться решения ботов - детерминировано или нет. Но и в такой игре лучше, чтобы поведение было детерминировано. Допустим, ты послал бота за выпивкой, бот ушёл из твоего поля зрения, ты сохранил игру, снова загрузил её - и бот пропал, то есть не вернулся с выпивкой. Может быть, он решил пойти в театр или на работу, но про выпивку он уже забыл, ибо его поведение оказалось сгенерировано с нуля.

Итого - в обоих случаях необходимо детерминированное поведение ботов, связанное с зерном карты или, если точнее, с неким общим потоком симуляции игры, который мы сохраняем целиком, а не по частям. Я даже представить не могу ситуацию, где бот должен выбирать новое поведение после загрузки старого сейва...
1249 721437
Тааак. Я правильно понимаю, что смешивать ецс и стандартный подход - норм?
1250 721438
>>721282
Единственное, в чём я согласен с автором статьи - это то, что плохо использовать генератор чисел, который используется какими-то плагинами и ядром движка. Если удалить такой плагин или обновить его версию, это повлияет на генерацию игрового контента. Если обновить ядро движка, это тоже повлияет на генерацию контента игры. Такого быть не должно, игра должна быть абстрагирована от стороннего ПО, тем более если это симулятор, а не "аркада". Но, если кто-то делает такую игру-симуляцию, он наверняка позаботится о создании собственного генератора чисел, а встроенный нужен только для быстрых тестов там, где не важна детерминированность игры.
1251 721439
>>721393

>состояние анимации


Если анимация покадровая, просто выбирай кадр по значению переменной, в чём проблема?
1252 721449
>>698843 (OP)
Аноны, подскажите пожалуйста литературы (?) по клиент серверным приколам в юнити. Читал обзорные штуки и понимаю на базовом уровне, пытался изучать mlapi, но потом узнал что есть и llapi и hlapi и что то приуныл, я думал будет технология уровня сокетов в дотнете, а тут что то довольно немало. Подскажите пожалуйста как это все изучать?
1253 721477
>>721449

>пытался изучать mlapi, но потом узнал что есть и llapi и hlapi и что то приуныл


Так вроде не надо всё сразу учить. Я бы на твоём месте начал сразу работать над проектом и уже по ситуации изучать то, что нужно для решения конкретных задач. А вообще для юнити какие-то фреймворки готовые были...
TEMP2.jpg46 Кб, 631x401
1254 721648
>>721263
Я уже понят, что там отдельная сущность для теней. Просто может кто-то уже сталкивался с этим?

И ещё вопрос - я добавляю к объекту дополнительные трианглы (трава) геометрическим шейдером, но они пропадают, когда исходный объект выходит за пределы видимости. Вернее, когда из камеры пропадает специальный box видимости. Как его расширить?
1255 721705
>>721477
Так low\mid\high-level api это и есть фреймворки, я просто не могу понять, какие из них и как вместе юзать. Чтобы знать что применять для решения конкретных задач нужно немного о самих фреймворках иметь представление.
1256 721717
Я пытаюсь двигать риджит бади к объекту, но проблема в том, что когда он приходит к точке, то начинает дергаться туда и обратно, даже если я ставлю условие.

Vector3 dir = ((Vector2)destination - (Vector2)transform.position);
dir = Vector3.Normalize(dir);
if(Vector2.Distance((Vector2)destination,(Vector2)transform.position) > 1f)
{
rb.velocity = dir * 5f;
}
1257 721748
>>721435

>1. Большинство игр - аркады, а не симуляторы.


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

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

к слову о gta. в red dead redeption ботам случайно генерируют довольно интересную модель поведения. если будешь за ним ходить, то он сходит на работу, потом пробухает деньги в выходные, ночью пойдёт в свой(!) дом спать и тд. но это уже офтопик который думаю тебе интересно будет ресёрчнуть самому
image.png34 Кб, 801x199
1258 721802
лол. пока я не замечал юнити научилось добавлять контекстное меню в элементы массивов для инспектора. чтобы вот можно было нажать на него и удалить, или сделать дубликат. только у меня до этого было куда более функциональное контекстное меню и оно теперь не вызывается! ну спасибо. не подскажете куда залезть чтобы оно не вызывалось?
1259 721814
Чому бамп лимит такой огромный? читать тонны текста приятного мало. сделайте 500, будьте людьми
1260 721819
>>721814
а вдруг в этом тексте есть ответ на чей-то вопрос?
1261 721881
>>721705

>low\mid\high-level api


>Чтобы знать что применять для решения конкретных задач


Ну чисто по названию понятно, что low-level - это когда тебе нужно иголкой в Ethernet-кабель тыкать, типа ассемблер, high-level - это когда тебе достаточно пропукать html-страничку из сети к себе в игру, всё остальное тебя вообще не парит, как будто ты на питоне пишешь, а mid-level - это где-то посередине. Вообще ничего не знаю про эти API, но я бы начал с high-level, потренировался запросы пропукивать, а на низкоуровневое переходил только если нужно какой-то оптимизированный велосипед запилить, которого в высокоуровневый не завезли. Вообще, изучать инструмент в отрыве от практики - бесполезная трата времени, нужно делать какие-то практические проекты, на практике осваивать применение каких-либо технологий. А то если только читать и ничего не пробовать своими руками, так и останешься теоретиком без практических навыков и понимания, что нужно делать на практике.
1262 721893
У меня character controller в такой ситуации (см. скрин) либо останавливается, либо с подергиванием все же идет вперед. Как я понял, коллайдеры столкнулись таким образом, что для игрока это и правда препятствие. Можно как то сделать что-то типа скольжения? На стенах, полу и косяке навешен mesh коллайдер. Чела двигаю с помощью CharacterController.Move
1263 721905
>>721893
Отбой, разобрался
Desktop 2021.01.18 - 00.09.37.08.mp4559 Кб, mp4,
640x360, 0:11
1264 721906
Ох уж эта юнити физика... Проблема еще была, что почему то персонаж подпрыгивал в косяке. Эта проблема оказывается решается установкой Min Move Distance = 0 (у меня было 0.001, дефолтное значение ) или Skin width = 30% от радиуса контролера (было 0.0001, тоже дефолт)
изображение.png429 Кб, 445x372
1265 721907
>>721893
>>721905
В следующий раз описывай, как именно ты разобрался.
1266 721908
>>721906
RTFM, там написано, какие значения рекомендованы, и они отличаются от дефолтных (лол).
Безымянный.png18 Кб, 646x337
1267 721909
>>721717
У тебя что-то вроде пикрила происходит, я прав?

У тебя неправильное условие завершения. Правильным будет так:
1. Считаем дистанцию от объекта до точки назначения;
2. Если дистанция меньше одного шага (5f), смещаем объект на один шаг к точке, возвращаемся к п.1;
3. Если дистанция больше одного шага, смещаем объект к точке назначения и/или прекращаем передвигать.

А вообще вангую, что ты пилишь какой-то велосипед, и для твоей задачи нужно юзать встроенные функции.
1268 721910
>>721907
В том, что застревал, у меня там колайдер от стены на милиметр торчал, то есть, реально было препятствие
Безымянный.png9 Кб, 557x281
1269 721911
>>721717
>>721909
А, я перепутал. Короче, у тебя происходит вот это:
1. Из точки А1 определяешь вектор направления в О;
2. Из точки А1 прыгаешь на 5 единиц в точку А2;
3. Расстояние от А2 до О больше 1 (около 2);
4. Из точки А2 определяешь вектор направления в О;
5. Прыгаешь из А2 в А1, т.е. снова на 5 единиц;
6. От А1 до О расстояние по-прежнему больше 1;
7. ???
8. Замкнутый цикл!

Я с таким тоже сталкивался, но не на юнити. Не знаю, как это корректнее всего решить на юнити.
1270 721913
>>721908
Да, в мануле я прочитал и решил попробовать. Но, непонятно, почему у меня произошла проблема с застреванием с подпрыгиванием, если из коллайдеров у меня был только plane в качестве пола, и один дверной косяк с кастомным mesh коллайдером (пикрил).
У коллайдеров идеально ровные поверхности коллайдеров. Без дыр, ям, трещин, выпуклостей. Почему персонаж начал скакать, как Ромка-попрыгун, и почему помогло уменьшение MinMoveDsiance и Skin Width я так и не понял.
1271 721914
>>721748

>симуляторов не существует?


В симуляторах важна детерминированность событий. В аркадах на (не)детерминированность плевать.

>если ты загружаешь игру и видишь одну и ту же картину, то это не игра, а интерактивный фильм


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

Будет крайне нелогично, если игра ВДРУГ решит после загрузки сохранения удалить этого монстра, развернуть его в рандомном направлении или сделать ещё что-нибудь рандомное. Если она это делает и ты несколько раз загрузишь одно сохранение, ты заметишь, что монстр каждый раз выбирает рандомную стратегию поведения, ломая саму концепцию "сохранение состояния мира". Первая вещь, которую ты должен после этого сделать - создать issue с заголовком вроде "баг: поведение монстров не сохраняется". Или написать на почту разработчику. Или, если ты агрошкольник, написать гневный отзыв в стиме "эта игра даже не умеет сохранять себя!!1" - что угодно, лишь бы показать, что игра багнута. Авось разраб исправит это недоразумение.

>то что там автор пишет отсебятину это, мне кажется, нужно игнорировать


Автор бьёт тревогу о совершенно очевидных вещах. Если мы обращаемся к какому-то объекту, который мы не создавали - очевидно, он используется не только нами, и его состояние может меняться без нашего ведома. Если мы хотим контролировать состояние этого объекта, мы должны создать его сами. А он выдумывает какие-то абстрактные проблемы и предлагает якобы универсальное решение всех вымышленных им проблем, дезориентируя новичков и вызывая испанский стыд у тех, кто в этом что-то понимает. Вообще не вижу смысла в его статье.
1271 721914
>>721748

>симуляторов не существует?


В симуляторах важна детерминированность событий. В аркадах на (не)детерминированность плевать.

>если ты загружаешь игру и видишь одну и ту же картину, то это не игра, а интерактивный фильм


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

Будет крайне нелогично, если игра ВДРУГ решит после загрузки сохранения удалить этого монстра, развернуть его в рандомном направлении или сделать ещё что-нибудь рандомное. Если она это делает и ты несколько раз загрузишь одно сохранение, ты заметишь, что монстр каждый раз выбирает рандомную стратегию поведения, ломая саму концепцию "сохранение состояния мира". Первая вещь, которую ты должен после этого сделать - создать issue с заголовком вроде "баг: поведение монстров не сохраняется". Или написать на почту разработчику. Или, если ты агрошкольник, написать гневный отзыв в стиме "эта игра даже не умеет сохранять себя!!1" - что угодно, лишь бы показать, что игра багнута. Авось разраб исправит это недоразумение.

>то что там автор пишет отсебятину это, мне кажется, нужно игнорировать


Автор бьёт тревогу о совершенно очевидных вещах. Если мы обращаемся к какому-то объекту, который мы не создавали - очевидно, он используется не только нами, и его состояние может меняться без нашего ведома. Если мы хотим контролировать состояние этого объекта, мы должны создать его сами. А он выдумывает какие-то абстрактные проблемы и предлагает якобы универсальное решение всех вымышленных им проблем, дезориентируя новичков и вызывая испанский стыд у тех, кто в этом что-то понимает. Вообще не вижу смысла в его статье.
1272 721917
>>721802
а да. чуть не забыл. отвечаю на свой вопрос:

if (Event.current.type == EventType.ContextClick) {
//вызвать собственное контекстное меню
Event.current.Use();
}
Безымянный.png12 Кб, 504x250
1273 721920
>>721913

>Почему персонаж начал скакать


По-моему он не подскакивает, а пытается заехать/подняться на какое-то препятствие...

>один дверной косяк с кастомным mesh коллайдером (пикрил)


Зачем тебе коллайдер порога в дверном проёме? Может, на нём персонаж и подскакивал.

>почему помогло уменьшение MinMoveDsiance и Skin Width я так и не понял


>Skin width


>Two colliders can penetrate each other as deep as their Skin Width. Larger Skin Widths reduce jitter. Low Skin Width can cause the character to get stuck. A good setting is to make this value 10% of the Radius.


>Min Move Distance


>If the character tries to move below the indicated value, it will not move at all. This can be used to reduce jitter. In most situations this value should be left at 0.


Судя по в всему, ты столкнулся как раз с этими jitter и stuck, дрожанием и застреванием.

Skin Width по-моему должен работать как на пикриле, но я не уверен. Проблема в том, что Character Controller не использует полноценную симуляцию физики, поэтому и может "застревать" в объектах. Вроде читал рекомендацию использовать Rigid Body вместо Character Controller, если нужно реалистичное взаимодействие персонажа с окружающими объектами...
1274 721967
>>721911

>Я с таким тоже сталкивался, но не на юнити. Не знаю, как это корректнее всего решить на юнити.



Спасибо за ответ. Я пока решил так, что если расстояние меньше 0,2f, то transform.position = destination, работает, но пришлось пожертвовать плавность, введя маленький прыжок.

А без этого у меня вектор движения скакал то в плюс, то в минус. Объекты был то дальше, то ближе, но никак не останавливался на точке назначения.
1275 721999
>>721967

>transform.position = destination


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

transform.position = Vector3.MoveTowards(transform.position, destinaton, speed * Time.deltaTime);

https://docs.unity3d.com/ScriptReference/Vector3.MoveTowards.html

беда этого подхода в том что если у тебя есть вейпоинты, то на каждой точке движение будет не таким равномерным как тебе бы хотелось
1276 722006
>>721999

>беда этого подхода в



Я хотел двигать через RigidBody и Velocity, потому что так, насколько я знаю, не будет проблем, когда объект упирается в стенку, а если использовать transform.position, то объект будет дергаться возле стенки.
image.png22 Кб, 830x259
1277 722011
Джвач, не могу понять в чём проблема, в эдиторе код работает нормально через юнити ремоут и если инпут через мышку
Но на андроиде всегда возвращает False, даже когда рейкаст по факту должен попадать куда надо
1278 722041
>>721893
Сharacter controller это и есть kinematic rigidbody внутри, можно rigidbody убрать.
1279 722058
>>722011
не знаю поему возвращается false, но есть несколько косяков в твоём коде:

1. если хочешь сравнивать по тегу то тебе нужно не
hit.collider.gameObject.tag == "GroundBlock"
а
hit.collider.gameObject.CompareTag("GroundBlock")

2. лучше проверку по тегу убрать нахер и сделать проверку по компоненту

if (hit.collider.gameObject.TryGetComponent(out GroundBlockControl groundBlock) {
coords = (Vector2) groundBlock.coords;
}
1280 722068
>>698843 (OP)
Сап, помогите советом, как соединить визуальную новеллу и пиксельную рпг, тип андетейла, в Юнити. Планирую Пиксельную бродилку с линейным сюжетом, выборами в диалогах и анимированными (если допру как, и играбельными) вставками. Есть ток пару проблем - не ебу как 1) сделать возможность выборов в игре с последствиями (вроде как то с переменными связано) (нужно чтобы выборы сделанные при первом прохождении влияли на последующие), 2) Как бл@н сделать формат изображения (камеры) 4/3 вместо 16/9, в ютабе говорят лишь про подстраивание экрана под монитор. Может скрипы или еще чё-нить дадите, советы там.
1281 722070
>>722068
лол а почему спрашиваешь в треде юнити? когда это вопросы из области геймдизайна? интерфейс то нынешний в юнити легко же под разные разрешения подстраивать.

>>722011
а нахуй нуллабл структами пользуешься? че бы по старинке не bool MyFunction(input, out Vector2 resultIfTrue)
1282 722085
>>722006

>RigidBody и Velocity, потому что так, насколько я знаю, не будет проблем, когда объект упирается в стенку


Да, он должен по идее начинать скользить вдоль стенки. Но если тебе нужно движение по местности со стенками, тогда лучше сразу определиться с каким-либо способом обнаружения стенок для перестроения маршрута вокруг них. Например, рейкастом проверять наличие препятствия и сворачивать с траектории, боковым рейкастом проверяя, не закончилась ли стенка. Или строить клеточную карту и использовать A-star или что там ещё используют для поиска маршрута. В общем, если ты знаешь, что объект может упираться в стенки на пути к цели - ты должен это как-то обрабатывать, а не оставлять решение на физический движок (который вообще нифига не детерминирован и может выкинуть любую хрень, особенно после обновления движка).
1283 722086
>>722068

>сделать возможность выборов в игре с последствиями (вроде как то с переменными связано)


Если ты даже такое не понимаешь, то ты вообще нулевый программист. Подучи программирование перед разработкой игр.
Вкратце - да, можно через переменные. Условно у тебя есть:
- хранилище переменных выбора пользователя (для доступа из разных участков кода и сохранения состояния игры)
- в этом хранилище есть переменная выбор1
- ситуация, которая изменяет значение хранилище.выбор1
- ситуация, на которую значение хранилище.выбор1 влияет
- проверка в коде if (хранилище.выбор1 == 0} { не меняем ситуацию } else { меняем ситуацию }
Ну как-то так, в самом простейшем случае.
Да, к юнити это отношения не имеет, это имеет отношение к программированию в целом.

>нужно чтобы выборы сделанные при первом прохождении влияли на последующие


Тогда ты должен сохранять состояние "хранилища" в отдельном файле, грузить его по нажатию "новая игра".

>Как бл@н сделать формат изображения (камеры) 4/3 вместо 16/9


RTFM, например, https://docs.unity3d.com/2020.2/Documentation/Manual/class-Camera.html
А вообще, зачем тебе 4:3? На современных ультравайд мониторах твоя игра будет выглядеть как унылое говно.
Лучше тогда затачивай игру на работу в маленьком окошке, типа 800x600 пикселей, так будет проще для всех.
1284 722088
>>722041
Не помню, но вроде без rigidbody raycast игнорится
1285 722089
>>722088
ноуп. не игнорится. у юнити много забавных багов с физоном, но для рэйкастов нужен только любой сорт коллайдера.
1286 722092
>>722089
>>722088
сорт коллайдера + ригидбади
в character cotnroller есть и то и другое
1287 722114
Нужно ли использовать Sprite Atlas, если я уже загрузил один большой SpriteSheet и нарезал его через Sprite Editor? Это получится одно и то же?
1288 722137
Вопрос такой, как запилить инверсию движений мыши в определенный момент игры?
1289 722189
>>722137
Орбитальная камера? Или прямо курсор в обратном направлении от центра экрана двигать?
Если камера - просто умножай на -1 одну из осей там, где ты эту камеру крутишь.
Если курсор - если курсор системный, то не получится/будет сложно это сделать.
Если курсор в виде управляемого спрайта, а системный скрыт - аналогично камере.
1290 722192
Годится ли такой способ плавного увеличения какого то значения?:
Код в update:
obj.val = Math.Lerp(obj.val, newVal, Time.deltaTime * 2).
Вроде по такому способу obj.val никогда не достигнет newVal. И длится будет не две секунды , а больше (или меньше, хз)
1291 722195
Математики, нужна ваша помощь. Допустим число 367 это 0% а 1567 это 100%. Как узнать, какой тогда процент составляет число 1243? Мне бы формулу, или название математической функции в Юнити, если таковая имеется.
1292 722196
>>722195
А все. Нашел https://docs.unity3d.com/ScriptReference/Mathf.InverseLerp.html это мне подходит даже больше чем проценты
1293 722197
вопрос. есть где почитать про перфоманс в самом эдиторе? много всякого говна работает в сбилженных проектах быстрей чем в эдиторе. но иногда надо писать код для самого эдитора и вот тут то приходится городить всякий пиздец.
image.png5 Кб, 300x86
1295 722210
Что сейчас актуальнее: арм7 или арм64?
Может ли арм64 в режиме совместимости запускать арм7
Какиие калки тыкать?
1297 722236
Скажите, есть ли готовая функция, чтобы реализоваться такое:
Значение x надо поменять с 1 до 5 за 2 секунды. Однако, если x уже равен 3, то остается 1 секунда, чтобы достичь 5. Чтобы скорость была постоянной
1298 722238
>>722236
зачем тебе готовая функция для арифметики 5го класса?

float x_per_second = (5 - 1) / 2;

private void Update()
{
x += x_per_second * Time.deltaTime;

//ну и тут значение можешь клемпнуть чтоб оно не выходило за нужные значения:

x = Mathf.Clamp(x, 1, 5);

}
1299 722241
>>722238
Спасибо, сохранил
image.png23 Кб, 432x400
1300 722257
Не жестко ли вот так в каждом кадре присваивать параметры?
1301 722262
>>722257
не жестко
1302 722263
>>722257
жестко
1303 722297
>>722257
Нет. Жёстко создавать динамические переменные.
1304 722319
>>722297

>Жёстко создавать динамические переменные.


Можно немного об этом? Я нуб и мне все интересно.
1305 722321
>>722319
upd точнее, интересно, какое это имеет отношение к тому коду на скрине
1306 722329
>>722321
Ну если в апдейте создавать переменные будет чаще вызываться gc, что будет давать фризы.
1307 722382
>>722329
вот про это читал статью трёхгодичную и оказывается это откровенное и безобразное враньё. компилятор с таким справляется более чем хорошо

http://blog.collectivemass.com/2018/04/performance-myth-busters-variable-allocation/
1308 722404
>>722189
Можешь, пожалуйста, расписать подробнее? Просто я не для себя спрашиваю, пилим с товарищем игру и он не знает как инверсию мыши сделать. Сам я вообще в кодерстве не шарю.
Суть такова:
В определенный момент включается мини-игра: на экране появляется картинка и на ней рандомно выскакивают спрайты, на которые надо нажимать. Стандартный курсор меняется на спрайт и надо на время этой мини-игры инвертировать мышь. По завершении мини-игры (кончилось время) мышь должна опять стандартно работать.

Если можно - подробно начиная со смены стандартного курсора на спрайт и заканчивая обратной сменой.
1309 722405
>>722382
Смотря для какого девайса. На пеке это будет незаметно, а вот на мобиле легко, если у тебя много таких мест.
1310 722449
>>722404
ебать инверсию не может сделать. дельту мыши по нужной оси отрицательной сделать не может лол. ктож поверит что твой друг тупой такой. пускай он сюда приходит и картинками объясняет свои проблемы. у тебя явно с этим проблемы.
1311 722544
>>722449
Ты раздел с /b/ перепутал, видимо. Пиздуй туда лолируй.
1312 722545
>>722210

>Что сейчас актуальнее


А какая разница? Делаешь два apk, заливаешь в гугл. Гугл сам устанавливает клиенту тот apk, который совместим с его устройством. Если зальёшь только одну версию - люди будут находить твоё приложение, но им будет отображаться "это приложение не совместимо, бла-бла-бла, идите нахрен". Если не будешь заливать в гугл, просто выкладываешь два apk с пометками "это для такой-то платформы, это для такой-то", так обычно на 4PDA делают.
1313 722547
>>722297

>динамические переменные


>>722329

>создавать переменные будет чаще вызываться gc


Так динамические структуры (экземпляры классов, например) или просто переменные?

Динамические структуры ищут и выделяют свободный участок в куче, а "просто" переменные должны храниться на стеке. Использование стека позволяет сбросить все переменные, созданные внутри функции, просто сместив указатель стека на нужное число ячеек после завершения функции. А вот динамическая структура в куче будет храниться до тех пор, пока кто-нибудь не вызовет её деструктор (если говнокодер потерял указатель/забыл вызывать деструктор - это сделает сборщик мусора).

Правда, это всё в отрыве от языка, я не знаю, как это устроено в C#. Но судя по туториалам - не рекомендуется создавать экземпляры объектов, а вот переменные - сколько угодно, т.е. как я и говорю, затратно только выделять память в куче, а место на стеке функция в любом случае занимает.
image.png156 Кб, 1087x751
1314 722550
>>722544
есть адекватные проблемы которые требуют какого-то базиса знаний, а есть всякая хуйня мелочная. над этой проблемой можно только посмеяться в том виде в котором она была обьяснена.
1315 722556
>>722404

>Можешь, пожалуйста, расписать подробнее?


Лучше визуально покажу, а то вдруг словами не поймёшь.

>пилим с товарищем игру и он не знает как инверсию мыши сделать


У меня для тебя плохие новости... Удачи приятно провести время.
1316 722567
>>722545
Понял, спс
Screenshot 2021-01-20 at 07.05.53.png226 Кб, 1754x1486
1317 722569
>>722405
вот, мужик, специально для тебя сделал профилирование на андроиде 4х-летней давности. никакого мусора локальные переменные не создают. есть разница между тем что незаметно и тем что ничего нет
1318 722571
>>722569

>локальные переменные


Что ты подразумеваешь под "локальными переменными"? Переменные простых типов int, float, bool? А попробуй теперь создавать в цикле какие-нибудь спрайты. Ссылка на спрайт будет внутри локальной переменной и потеряется после выхода из функции, но место под спрайт будет выделяться в куче. Если ссылку потерять, т.е. не высвободить память кучи или не передать ссылку в другое место - да, сборщик мусора посчитает эту сущность мусором и удалит при первой возможности.

Я думаю, вы просто не сошлись в понятиях.
1319 722572
>>722382

>оказывается это откровенное и безобразное враньё


Там чувак тестил только Vector3, тот хранит в себе только три float - x, y, z. Почему бы не протестировать на более сложных "переменных"?
1320 722573
>>722571
>>722572
там есть ссылка на код. скачайте, протестируйте, выложите результаты

>>722405
вот этот хрен сказал что пример из статьи на мобильных устройствах будет работать иначе. я доказал что он не прав и что мусор генерироваться не будет
202008121338281.jpg150 Кб, 1024x576
1321 722574
Сап двач, подскажите нубяре как реализовать сохранение новелки на Юнити в любой момент и многослотовость? Сначала подумал префабами это делать, но тогда надо индексировать каждый фон и что самое главное каждую реплику, что превратится в какой-то пиздец.
Гугл так же ответов не дал на тему новелл.

Алсо, пилю всë это дело на fungus, но у него сохранения погано реализованы. Думаю даже мб в ренпай на время перекатиться раз такая хуйня.
1322 722576
>>722574
да что у людей за проблемы то. то мышку инверсировать не могут, то сохранить своё добро.
какие нахуй префабы? ты что сохранять то собрался?
1323 722578
>>722576
Сохранять собрался текущее расположение в диалогов системе, в том числе фон на заднем фоне, спрайт говорящего персонажа в текущий момент и все в этом ключе.
1324 722579
>>722578
Именно систему сохранения для юзера.
P6.png702 Кб, 1680x1010
1325 722581
>>722578
а нахуя тебе всё сохранять если эту информацию должна содержать сама сцена? как ты там сцены собрался сохранять твое дело. я бы сохранял в скриптабл обжектах и пользовался юнити для организации процесса.
собери всё че те надо для воссоздания сцены, сохрани в ФАЙЛИК. а когда придет время ты такой читаешь файлик и у тебя уже всё что надо там есть чтобы воссоздать предыдущее состояние!
1326 722590
>>722581
помню во времена моей юности работали над проектом (не на юнити) и там чуваки чтоб сильно мозгами не шевелить делали на хард просто дамп оперативы. занимало тонну времени и места и программисты говорили: "да ладно, потом сделаем как надо"
P25.png1,7 Мб, 1678x875
1327 722591
>>722590
лол. ну, работало же наверняка! сейчас вот у всех ссд стоят, даже лучше работать будет!
1328 722592
>>722574
>>722578
Ты упоролся.

Новелла:
1. [анон1]: смотрите, я сделал новеллу! [пик: скриншот новеллы]
2. [анон2]: это говно, переделывай [пик: тёмыч]
3. [анон3]: ха-ха, я такое за день делал [пик: мэдскиллз из пейнта]
4. [анон4]: сюжет вялый, я не возбудился [пик: вялый огурец]
5. [анон5]: а мне понравилось [пик: me gusta]
6. [анон2]: говноед! [пик: кот смотрит с отвращением]
7. [анон1]: неужели никому не понравилось? [пик: грустная аниметян]

Сейв.txt:
4

Что движок делает во время загрузки:
- открывает сейв.тхт;
- считывает число N (у нас 4);
- открывает N-ю страницу новеллы (4-ю);
- отображает на экране страницу (у нас будет [анон4]: сюжет вялый, я не возбудился [пик: вялый огурец]).

Зачем что-то усложнять? Поколение раздутого ПО с пелёнок учится раздувать ПО...
1329 722593
>>722590
Как они потом грузили-то? Или это было во времена DOS, 640 КБ и реального режима?

>>722591
Готов пожертвовать 32+ ГБ SSD на один сейв? Ах, ну да, это всего лишь треть от объёма сохраняющейся игры...
1330 722595
>>722581
- Как написать хелло ворлд?
- Тащемта вопросов нет Берёшь и пишешь через обращение к консоли.

>>722592
Спасибо, это уже более внятный ответ. Я так и хотел делать изначально, но по этому принципу есть следующие проблемы:
- Ну загрузишь и считаешь ты реплику номер 4, а отрисовывать фон, который должон быть в этой сцене + музыка и ранее появившиеся спрайты ты как собрался?
- Если через сцены делать и сейвпоинтами, как писал анон из предыдущего ответа то это будет работать, ты сможешь сохраняться в любой момент но загружаться только с определённой сцены, но не реплики. Например в твоём случае я бы сохранился на 4 реплики, но при загрузке начал бы с 1.
1331 722596
>>722595
Ещё кстати удачи не запутаться в индексах, если будет много ветвления.
P16.png797 Кб, 1680x1010
1332 722597
>>722595
кекс у тебя каждый твой вопрос имеет в себе ответ. резиновую уточку на стол поставь

>а отрисовывать фон, который должон быть в этой сцене + музыка и ранее появившиеся спрайты ты как собрался?


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

>>722596
если у тебя есть ветвления то сохраняй помимо номера сцены номер ветки лол. будет у тебя не одно число а два.
1333 722599
>>722593

>Как они потом грузили-то?



честно говоря понятия не имею, как-то грузили. я только-только начинал прогать и моя работа была тестировать. даже что за игра уже вспомнить не могу, на сколько мне известно она потонула. приблизительно 2004-2005й год. надо было на 4х-ногом роботе-пауке по лесам ходить и расстреливать разных мобов. основной фишкой было то что юзали ik и ноги он ставил как надо
1334 722629
>>722569
Вот, мужик, тебе мужицкий ответ
1335 722630
>>722629
дык ты списки новые создаёшь в апдейте, понятное дело будет мусор, он и не в апдейте будет. изначально там человек спрашивал плохо ли присваивать переменные в апдейте, что довольно странный вопрос, потом речь зашла о том что создавать их условно дорого. я скинул пример где чел ссылается на уже существующие данные генерируя при этом на него ссылки и рассказывает что мусора при этом никакого нет. я скинул подтверждение этому факту
1336 722631
Привет, анончики, недавно пересек планку в 100к зеленых и в связи с этим такой вопросик возник: как юнитеки узнают о прибыльности игры, если у меня нет компании и, исходя из этого, капитализации? А монетизация через гугл и донаты. Не хочется делиться заработанным потом с нахлебниками.
1337 722633
>>722630
Я создаю переменные, не важно списки или нет. В общем я думаю мы поняли друг друга и тому чуваку тоже теперь понятно, что можно делать, а что нужно отслеживать.
1338 722696
>>722581
>>722597
Это шейдерграф? Как тебе работать с ним? Многие плюются от него. Вот встала необходимость писать шейдеры, и сейчас ищу инструмент. Кодом, шейдерграфом или сторонним ассетом (Amplify ). Подскажи, каким путем лучше, если шаришь
1339 722702
Анон, подскажи, я миддл джавист, хочу как сайдпроджект поделать игру, может и перекатиться в гейдев, но суть не в этом.
Шарп вроде похож на жаву, хочу подготовить почву, смотрю в чем различия между языками, мне интересно, на сколько глубокого погружения в кодинг требует юнити? Стоит для этого сначала поснашать учебники по шарпу или можно уже прыгать?
1340 722708
>>722702

>можно уже прыгать?


Можно. Для начала хватит и школьных знаний по программированию.
1341 722713
привет всем.
делаю игру по вот этому туториалу:
https://noobtuts.com/unity/2d-pong-game
и столкнулся с проблемой. в туториале есть шаг когда надо написать скрипт, описывающий движение ракеток. проблема в том что при редактировании скрипта в visual studio те методы и объекты, которые указаны в уроке как будто не видны в visual studio при этом в начале скрипта прописано using UnityEngine;
при попытке написать код как он выглядит в уроке и запустить проект в юнити с таким скриптом приводит к ошибке компилятора.
где я проебался?
1342 722721
>>722713
так, кажется отбой.
уже нашел решение. надо было просто выбрать vs как внешний редактор кода в настройках юнити.
Снимок экрана 2021-01-22 в 01.03.11.png155 Кб, 580x1464
1343 722921
ПАМАГИТЕ
1344 722926
Добавил немного живости:
Куки на фонарь.
Плавное перемещение луча фонаря.
Луч фонаря теперь немного дрожит, но, не как у алкаша, а плавно так. Это заметно если не двигаться.
Ранее позиция и вращение для фонаря напрямую брались у камеры, так что не было видно теней. Все было каким-то 2D-шным. Сдвинул вниз и немного влево, примерно в то место, где обычно люди и держат фонарь.
Тени появились, но они были полностью черные. То, что находилось в тени, не было видимым. Поэтому добавил несколько источников света вокруг персонажа, которые включаются с фонарем.
Также фонарь теперь с фокусировкой - его rotation направлен именно в ту точку, куда смотрит камера.
Дрожание при беге добавил. Сразу немного драйва и шухера добавилось.
1345 722928
>>722926
Если выключить тень - то вообще не понятно что он снизу, но это мне так кажется, вообще молодец.
обосрался от первого появления черного мужика
1346 723141
Анон, посоветуй книгу для вката в математику не ради жидовки, честно. Я просто понимаю, что я нихуя не могу без неё сделать и хочу не просто копировать с гугла, а что-то допереть сам. Или может там хороший курс\канал на ютубе.
1347 723170
https://learn.unity.com/tutorial/lesson-4-1-watch-where-you-re-going
На седьмом этапе я написал код как в видео, но шар не хочет двигаться. Говорит nullreferenceexception в самой последней строке.
https://pastebin.com/PPvaWSBD
1348 723178
>>723141

>книгу для вката в математику


Не нужна, только зря время потеряешь
1349 723390
Тут в треде вообще помогают?
1350 723432
>>723390
Давай помогу, в чем вопрос?
1351 723434
>>722926
Я бы хедбоб открутил немного, а то больно трясет
1352 723504
>>722595

>отрисовывать фон, который должон быть в этой сцене + музыка и ранее появившиеся спрайты


Тогда можно сделать так:
- если новелла кинетическая (без развилок):
- - считываем номер страницы X;
- - начинаем со страницы 1 и до X "мысленно пролистываем", т.е. проходим по массиву страниц со всей информацией;
- - таким образом определяем, какой должен быть фон и какая фоновая музыка должна играть;
- - всё это запускаем и отображаем.
- второй вариант:
- - как в предыдущем, но не от 1 до X, а от X в обратном порядке до тех пор, пока не найдём всю нужную информацию.
- третий вариант:
- - каждая страница имеет ссылку на бекграунд и музыку, и на мне нужно искать, что нужно переключить.
- если новелла с развилками:
- - в сейв кроме страницы сохраняем все сделанные игроком выборы;
- - используем первый или второй метод с учётом развилок.
- или:
- - в сейве по-прежнему храним развилки, загружаем их (на всякий случай, вдруг понадобится);
- - но следуя третьему варианту, нам достаточно считать страницу со всей необходимой информацией.

>загружаться только с определённой сцены, но не реплики


Имхо, в текстовых/текстографических играх одна сцена = одна страница с текстом и картинкой.
Либо, нужно хранить два числа - номер сцены и номер реплики.

А вообще ты изобретаешь колесо и используешь неподходящий инструмент. Нужны только новеллы - бери ренпи.
1353 723511
>>722631

>как юнитеки узнают о прибыльности


А как налоговая узнаёт о том, что ты не плотиш нологи?
Так и тут. На тебе лежит ответственность уведомить о наступлении оговоренных в договоре условий и выполнять обязательства договора, а если сознательно молчишь и нарушаешь - то когда они узнают, тебе будет а-та-та, и вряд ли это тебе понравится.
1354 723513
Подскажите, как лучше писать поля классов:

>public float playerSpeed = 2.0f;


или

>[SerializeField]


>float playerSpeed = 2.0f;


Я слышал, что [SerializeField] позволяет оставить поле класса приватным, но при этом отобразить в редакторе сцен. А public не рекомендуют объявлять там, где не нужны собственно публичные поля. Меня просто [SerializeField] чисто визуально бесит, бросается в глаза и занимает лишнюю строчку, и я привык что есть только public/published/protected/private (Delphi/FPC).

>>723390
Просто тред старый и о нём знают лишь избранные, кто умеет пользоваться каталогом доски.
1355 723574
>>723513
А что тебе мешает написать
[SerializeField] float playerSpeed = 2.0f;
?

Я лично всегда сериалайз использую, если нужно в инспекторе что-то настраивать\дебажить, но в целом если проект небольшой, то можно и паблики юзать
но лучше нет
1356 723583
Установил Bolt, какие подводные он теперь будет во всех проектах или только в том, в который я его ставил? Просто процесс установки и настройки больно уж долгий, не хочется в каждый новый проектик ставить его "с нуля"...
1357 723584
>>723574

>А что тебе мешает написать


Я пробовал, так оно ещё хуже выглядит. У этой метки могут быть параметры (Range(), например), она будет ещё длиннее становиться.
изображение.png19 Кб, 279x332
1358 723598
>>723583

>Установил Bolt


Ещё вопрос: вот эти "ассеты" болта не попадут в билд? Это же документация на сам болт. Как юнити определяет, какие "ассеты" должны попасть в билд, а какие нет? Нужно ли вручную выпиливать такие лишние файлы?
image.png558 Кб, 1157x672
1359 723609
Пацаны, такую башку покрутить не получится? Хотел сделать типа анимации оглядывания, но изменения rotation в редакторе не дает никакого эффекта, поэтому программно ее еще не изменял.
Это я бесплатный ассет юзаю, 3d проекта модели не имеется
изображение.png1 Кб, 176x23
1360 723611
>>723609
У этой модели кости есть? Посмотри, нет ли костей в пикриле. Крутить нужно кости, а не меш.
1361 723617
>>723513
Как альтернатива можешь писать:
[SerializeField] private float m_playerSpeed = 2.0f; в одну строку, но вообще рекомендуется использовать private SerializeField только для тех, которые ты будешь через инспектор настраивать. А вот я больше 5 лет использовал паблики.
Вообще вся это еботня нужна для читаемости и предсказуемости кода, если ты 1 работаешь то клади хуй и делай как ТЕБЕ удобно.

Ах.. >>723513 ровно тоже самое советует

>>723584
Ты про несколько аттрибутов?
Сортируй код, пиши сначала переменные с аттрибутами, а после них уже без, такой разделенный код нормально читается глазом
1362 723618
>>723617

>m_


Что этот префикс значит?
1363 723620
>>723618
М от слова МЕМБЕР, майкрософты и юнитеки часто используют такую аннотацию для переменных.

https://en.wikipedia.org/wiki/Hungarian_notation
1364 723621
>>723620
Ненавижу цыган
1365 723650
>>723598
То, что используется в игре - попадет в билд, доккументы, демо сцены, неюзаные спрайты - не попдут
1366 723651
>>723609
Можно
Но проще будет в mixamo анимацию idle для зомби взять, или анимацию оглядывания
1367 723688
>>723617

>рекомендуется использовать private SerializeField только для тех, которые ты будешь через инспектор настраивать


Так а я о чём? Это же самая полезная фича юнити (как и любого аналогичного движка) - ты пишешь скрипт, выставляешь наружу какие-то свойства, затем накидываешь один скрипт на несколько разных объектов и выставляешь им разные свойства через редактор сцен. С другими инструментами пришлось бы писать отдельный файлик с настройками и, если это велосипед, загружать его вручную, или давать каждому классу метод "loadConfig()" и всё в таком духе. А тут эта фича из коробки. Только синтаксис как-то не очень выглядит... Ну, я не разбираюсь в шарпе, возможно такие [директивы] - это норма.

>делай как ТЕБЕ удобно


Это понятно, просто не хотелось бы словить потом какие-то проблемы с производительностью или типа того.
1368 723689
>>701992
Инкскейп может создавать файлы шрифтов. Так что придется обводитьв Инкскейп
Безымянный.png39 Кб, 554x399
1369 723690
>>723650
Понятно. Хотя не совсем, если я считываю ассет (допустим, txt) из кода - это считается за "используется в игре"?

Заметил вчера проблему, но источник проблемы обнаружил только что. Почему окошко Variables загружает одно ядро процессора на 100% (при том на 100% системными вызовами) и на 60% 3D-рендерер видеокарты? Если это окошко закрыть или переключиться на соседнюю вкладку - нагрузка падает до почти 0%. Сцена пустая. Вообще, окошко Variables - это инструмент Bolt'а, или встроенный? Я просто не видел его раньше, Bolt поставил только вчера. Вроде штука полезная, но с такой нагрузкой юзать не хочу.
1370 723692
>>723689

>Инкскейп может создавать файлы шрифтов


Через какой-то плагин? Никогда не видел в нём такой функции.

мимопроходил
1371 723705
>>723690

>окошко Variables загружает одно ядро процессора на 100%


Окна Graph и Gragh Inspector тоже грузят ядро процессора на 100%. Походу это проблема конкретно Bolt. Может можно как-то оптимизировать? Или я что-то неправильно сделал? Работать с юнити это не мешает, лагов нет, но меня напрягает, что что-то впустую гоняет процессор почти на пределе. Наверняка там просто нет фиксированной частоты отрисовки и окна рисуются максимальное число кадров в секунду или что-то в этом роде...
mA8DGz1Kce.gif5,5 Мб, 627x512
1372 723735
>>723651
Прикольно. целая куча бесплатных анимаций
1373 723759
>>723735
Лучше б какой-нибудь психологический хоррор замутил, чем негров в тёмных комнатах прятать.
1374 723792
Интересный всё-таки Bolt. Хотя многого нехватает, например:
- не смог найти inc()/dec() (или ++/--), прибавить единичку сложно;
- многим блокам хочется ввести значение в поле, но они просят блок;
- поиск по блокам довольно медленный, списки блоков не кэшируются.
Иногда щупаю Automate для Android, там визуальный кодинг получше.
add.png27 Кб, 494x294
1375 723797
>>723792

>многим блокам хочется ввести значение в поле, но они просят блок


Вот это больше всего смущает.

...бла-бла-бла...

...сейчас проверил - оказывается поле ввода у Add есть, но оно скрывается, если есть связь.
А у блока типа Equal не может быть поля, т.к. он просит ссылку на объект (зелёная точка).

Короч чёт я поторопился с выводами, спать пора...
1376 723802
>>722921

>П М Г ТЕ


Получилось пофиксить? Может, у тебя оперативной памяти на компе мало (кэш шрифтов повредился)?
1377 723816
>>723735
Ой-вей, монстр потерялся.
1378 723830
>>723802
16 должно хватать. Пару раз такая хрень была.
1379 723877
Сап, убрал превьюшку юнити перед запуском игры и залил в плеймаркет, будут ли какие либо последствия? Больше 100 скачиваний в месяц не будет, за игру скорее всего даже копейку не получу
1380 723891
Как в этом ваше юнити запилить анимацю например ходьбы, только не в блядском аниматоре????
1381 723904
>>723891
Держи, можно и в юнити.
https://docs.unity3d.com/Manual/AnimationEditorGuide.html
Но ходьбу с помощью этого довольно сложно будет сделать
1382 723971
>>723877
Эта привилегия доступна только для тех, кто пользуется платной версией, бесплатная (до 100к зелёных в год) показывает заставОчку. Хз, вряд-ли при таких числах скачиваний у тебя проблемы будут, если появятся значительные числа могут на тебя что-то вроде страйка кинуть, так что лучше не балуйся
1383 723980
>>723877
Я ломаю, у меня 1к загрузок в день и 3к прибыли. За плюс платить не собираюсь.
1384 724118
хэлп!
Где я тут проебался?
Эх, хотелось бы пойти легким путем, но похоже придется засесть за изучении анимации, хотя я хочу только один персонаж надо по простому анимировать
1385 724119
>>724118
Отбой, эта модель кривая была видимо. Скачал другую, проделал все то же самое - работает.
Это я решил покачать модели без встроенных анимаций, но с готовым аватаром, и поучиться назначять им сторонние анимации
1386 724175
>>711523
Юнити работает на .net framework?
1388 724228
>>724175
На чём бы она ни работала под виндой, в кроссплатформенном варианте будет Mono, альтернатив вроде нет.
1389 724269
>>724228
IL2CPP альтернатива, не весь функционал шарпов поддержиает, например в рефлексию не умеет
1390 724874
Когда тред перекатывать будете?
1391 725024
>>724269
Зато декомпилить сильно сложнее, а рекфексия в геймдеве не нужна
1392 725157
>>724269
Умеет уже. Инфа 100%.
1393 725284
Здравствуйте. Я совсем новичек во всем этом. Подскажите пожалуйста куда копать в моем вопросе. А именно:

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

Например чтобы голова поворачивалась куда-то, и мне не приходилось делать кучу спрайтов на всю модельку, а только на голову.
Тоесть в ситуации когда например герой прыгает, а его голова повернута в какую-то сторону. Я же заебусь рисовать спрайты под прыжок с каждым углом поворотом головы, а потом под условный бег, или приседание.
Как это проще реализовать?

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

Ебать пот какой-то, подскажите.

Кста, че вы свой тред не перекатываете, еле нашел его.
1394 725298
>>725284
Короче забейте, я понял что анимировать персонажа в изометрии это хуевая идея. Теперь встал вопрос как поместить 3д персонажа в изометрический мир
1395 725439
кто-нибудь долбится в UI Toolkit? мне нужно генерировать список и если в старом ui для этого нужно было делать префаб, то в то в новом я не понимаю как указать шаблон из которого элементы этого списка буду генерироваться. нужна помощь
1396 725444
>>725439
UI Toolkit это последняя дефолтная версия юая в юнити?
Если да - абсолютно точно так же, создаешь префаб и делаешь transform.setParent(yourOwner);
Если хочешь указать размер или позицию делаешь так:
(transform as RectTransform).deltaSize или (transform as RectTransform).anchorPosition

>>725298
У камеры сделай ортографический прожектор и выставь правильно углы
image.png9 Кб, 407x161
1397 725457
Сап, харкач. Это тот анон, что заёбывал вас сейвами в новелке в этом треде парой десятков постами назад. Я почти допилил весь механ, но осталось одно дело, с которым я на удивление ебусь слишком долго.

Имеется:
- UI Префаб.
- В этом префаба UI панелька.
- На этой панельке text.
- В зависимости от сценария текст на панельке меняется и появляется в точке курсора при наведении на определённую область.

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

И ещё. Пытаюсь рамку красивее сделать по той же схеме, добавив чёрные края, чтобы и они менялись в зависимости от размеров серой панельки (которая в свою очередь меняется от размеров текста внутри).
Но че-то получается какая-то ебала и либо черная панелька застилает серую, либо серая панелька застилает чёрную. И в том и в ином случае пропадают края. Реализаю это кстати через content size и layout group.
1398 725466
>>725444
нет это не последняя дефолтная версия юая в юнити. это то что у них давно в разработке на замену старого ui и с недавних пор можно запускать в рантайме. никаких, кроме родительского, gameobject там нет. по факту это flexbox css
image.png5 Кб, 145x153
1399 725488
Господа, вопрос уровня б, но пощадите и поясните дегенерату-ньюфагу за эту хуйню. Юнити 2019.4 лтс, если что.
Вот на пикреле у меня настройки графики чистого проекта. Ультры выставлены в дефолт, но когда я жму плеймод - у меня автоматом выставляются минималки, что бы я не делал. Это так задумано?
Пытался гуглить и нашёл только такой же вопрос на вопрос-ответе юнити, но без ответа.
1400 725526
Как сделать так, чтобы число, выводимое в UI разделялось автоматически точками?
Типа не
100000
А
100.000

Гугл не помог. /gd/ратья выручайте.

И да, желательно чтоб с любым числом это делалось корректно, так как число будет возрастать от 0 до миллиона.
1401 725527
забыл про тред юнити.

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

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

кодом проще. в начале сложно, много непонятных магических слов, какая-то неочевидная хуйня кругом, нет нормальной подсветки синтаксиса, документация как какой-то пазл разбросанный по всему интернету и всё такое. но лучше пользоваться им. к тому-же у тебя появится могущество использовать вычислительные шейдоры.
1402 725528
>>725526
uiText.text = "{0:F4}" + val;

val - переменная с нужным тебе числом, F4 - 4 точки после запятой, F3 - три, ну ты понял
1403 725529
>>725526
тебя это интересует чтоли?
https://docs.microsoft.com/ru-ru/dotnet/standard/base-types/standard-numeric-format-strings
попробуй что-то вроде string.Format("{0:n}", 123456789.1234)
1404 725711
есть какой нибудь быстрый курс по unity c#?
1405 725752
А чем в таком методе обусловлено использование параметра nameState? Это просто для удобства?

public enum MyState
{
None, Dyldo, BlackCock, Stop
}
public MyState _State;

public void SetSexState(MyState nameState)
{
switch (_State)
{
case MyState.Dyldo:
print("Im lonely");
break;
case MyState.BlackCock:
print("Your cock very cool");
break;
case MyState.Stop:
print("Stop");
break;
default:
print("default");
break;
}
}
1406 725753
>>725752
этот параметр не используется в функции и обусловливается пиздоглазием того кто его написал.
1407 725758
>>725753
А если сделать вот так, какая практическая польза?
public void SetSexState(MyState nameState)
{
switch (nameState)
{
.......
}
}
1408 725759
>>725758
Когда public MyState _State; не используется.
1409 725763
>>725759

>Когда public MyState _State; не используется


В параметре функции не используется, но используется как аргумент при её вызове.
1496162929646.jpg221 Кб, 1081x1504
1410 725774
Вопрос на миллиард долларов кто ответит у того игра выйдет в топ магазина

Какую настройку камеры юзать- с галочкой Physical Camera или без?
Какая вообще разница? Влияет ли это на что-то?

Всем заранее спасибо, чего кстати не перекатываетесь?
1411 725787
>>725774
ээ. на какой из твоих вопросов документация не отвечает?
https://docs.unity3d.com/Manual/PhysicalCameras.html
1412 725788
>>725787

>This is useful for importing camera information from 3D modeling applications that also mimic real-world cameras


Что это всё значит? Мне её в играх использовать или нет?
1413 725789
>>725788
если тебе нужны фичи перечисленные ниже то да. если нет то нет.
1414 725791
>>725789
Я вообще почему спрашиваю- есть мнение, что использование именно физической камеры помогает сохранять на всех девайсах одинаковые аспект экрана, т.е. на всех устройствах будет одинаковая ширина изображения.
1415 725799
>>725791
а хуй знает. у меня нет ответа на этот вопрос. всегда можно сказать "у нас только такое разрешение" и ограничить пространство камеры добавив черные полосы если это прямо совсем суперважно. способов контролировать аспект экрана много и без этого. если надо посмотреть оба варианта то пиши с расчетом что будут использоваться оба. можно потом даже в настройки добавить.
1416 725829
У вас было такое, что простую задачу (или просто не шибко сложную), не получается решить? Лезут какие-то странные, неадекватные и тяжелые решения, и вроде как-то подсознательно чувствуешь, что есть решение легче, а это какая-то хуйня. А потом спустя пару дней вуаля рожаешь неплохое решение и переписываешь то говно.
Хотя наверное это только со мной, нубом.
Что это было, мозг устал? Захавал много сладкого и мысли стали тягучими и тупыми?
U - RVO9.webm10,3 Мб, webm,
1680x1050, 0:11
1417 725841
>>725829
лол да обычное дело. чё ты. каждый день такая хуйня если что-то интересное делаю. ближе к вечеру проще перестать думать и переключится на какие-то тривиальные мелкие задачи. коменты там написать, код причесать который ещё не скоро будешь переписывать. некоторые задачи требуют длительной медитации на проблему. я например некоторые сложные задачи требующие творческого подхода с хитрой математикой решаю по многу дней. в течении которых я открываю пэйнт и делаю доску с картинками на которой сам себе объясняю проблему. а когда устаю себе объяснять, то переключаюсь на другие задачи.

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

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

хотя иногда достаточно сменить ненадолго обстановку. мне помогает иногда сесть на краешке ванны, начать окачивать себе ноги из душа тепленькой водой. отвлекает, расслабляет, заставляет вместо монитора как предмета медитации использовать мысли в своей голове.
image.png192 Кб, 1015x685
1418 725994
утомительное юнити. написать редактор который повторяет функционал стандартного редактора коллайдеров это было уже интересной задачей. но написать чтобы оно ещё скейлилось так-же как коллайдеры это было уже куда более утомительной задачей. три дня. три дня медитации на ебучие трансформации одной хуйни в другую. господи, кто придумал эту хуйню.
0270bbdc7d9f1edd77087ef9d68686ac539d797914dadbeb4e8a39c92bc[...].jpg83 Кб, 907x707
1419 726012
>>725841
Я вот кстати еще пол года назад с тобой переписывался, ты как пилишь патфаиндинг хитрый так и продолжаешь это делать? Или это старые записи?
Чем вообще занимаешься, если не секрет? Работаешь где-то или фрилансишь?
1420 726064
>>726012
пол года назад как раз по всяким личным причинам я перестал делать всякую активность и теперь сравнительно недавно вот обратно к этому вернулся.
у меня сейчас несколько параллельных проектов, но пассфайндинг наверно единственное что буду показывать. у меня накопилась стопка всяких там интересных пожеланий и идей которые следует реализовать в нём. до этого я таки перелопатил и сделал оптимизон триангуляции и перевёл координаты во время генерации на цельночисельные чтобы ошибки точности float меня больше не доебывали и вообще всячески облагородил проект. теперь вот занялся теми проблемами которые усложняют его применение в реальных проектах с множеством людей. например сделал чтобы ссылка на "зону" везде передавалась как скриптабл обжект, чтобы ничего не зависело от какого-то центрального файлика с зонами который их описывает. сделал во время генерации хранилку множества наборов маркеров, чтобы можно было добавлять во время генерации места с одинаковыми зонами, но разными свойствами. теперь например управлять навмешем через объект может всё что его меняет, а не только специальные зоны. сделал более универсальным код который накладывает зоны по карте и сделал специальный компонент который делает то-же самое для любого обьекта. так как некоторые используют свою процедурную хуйню а нормально на неё накладывать зоны нельзя.

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

надо ещё 3 крупные фичи сделать да наверно останутся только какие-то косметические вещи из того что надо.

ну а видео старое, да. так и не закончил пока работу над избеганием групп. избегание групп есть, но над ним ещё дальше надо работать. сейчас вяло фрилансю, но стараюсь особо не брать какой-то работы. у меня осталась некоторая финансовая подушка, лучше своей хуйней займусь.
1420 726064
>>726012
пол года назад как раз по всяким личным причинам я перестал делать всякую активность и теперь сравнительно недавно вот обратно к этому вернулся.
у меня сейчас несколько параллельных проектов, но пассфайндинг наверно единственное что буду показывать. у меня накопилась стопка всяких там интересных пожеланий и идей которые следует реализовать в нём. до этого я таки перелопатил и сделал оптимизон триангуляции и перевёл координаты во время генерации на цельночисельные чтобы ошибки точности float меня больше не доебывали и вообще всячески облагородил проект. теперь вот занялся теми проблемами которые усложняют его применение в реальных проектах с множеством людей. например сделал чтобы ссылка на "зону" везде передавалась как скриптабл обжект, чтобы ничего не зависело от какого-то центрального файлика с зонами который их описывает. сделал во время генерации хранилку множества наборов маркеров, чтобы можно было добавлять во время генерации места с одинаковыми зонами, но разными свойствами. теперь например управлять навмешем через объект может всё что его меняет, а не только специальные зоны. сделал более универсальным код который накладывает зоны по карте и сделал специальный компонент который делает то-же самое для любого обьекта. так как некоторые используют свою процедурную хуйню а нормально на неё накладывать зоны нельзя.

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

надо ещё 3 крупные фичи сделать да наверно останутся только какие-то косметические вещи из того что надо.

ну а видео старое, да. так и не закончил пока работу над избеганием групп. избегание групп есть, но над ним ещё дальше надо работать. сейчас вяло фрилансю, но стараюсь особо не брать какой-то работы. у меня осталась некоторая финансовая подушка, лучше своей хуйней займусь.
1421 726096
Перекат пилите.
1422 726118
>>726096
пили
1423 726133
>>726096
тут так не принято
1424 726393
>>726064
Я знаю, что уже спрашивали это десяток раз тебя, но нахуя это всё нужно?
Ты хочешь юнити не для игр использовать, а для каких-то программ специальных? Хочешь ассет продавать потом? Или хочешь в резюме указать это и потом устроиться куда-нибудь в условный гугл?
1425 726526
Ребят привет, начал проходить курс по программированию на юнити. Тот который закреплен в шапке. Кто из местных его пробовал, какого оно?Стоит потраченного времени? Если не стоит тратить время, можете посоветовать что нибудь на ваш взгляд более полезное(книги,ютуб, другие бесплатные курсы?)

За ранее спасибо дорогие анонимы))
1426 726537
>>726393
Вполне возможно, что анон для себя это пилит ну и для резюме
По себе знаю, что если только работать - деградируешь потихоньку, поэтому стоит постоянно какой-то сайд проект иметь, за которым время убиваешь.

>>726526
На Udemy есть много хороших курсов только англоязычные, русские все скипай нахуй
Мне хороший старт дал вот этот
https://www.udemy.com/course/unitycourse2/

Была база других языков, поэтому после этого курса + пары своих проектов спокойно устроился джуном. Но вообще можешь почекать другие курсы от тех же ребят.
+ рекомендую Введение в ООП почитать
https://newobj.ru/oop/index.php

На юдеми постоянно скидка на курсы, поэтому, если ее сейчас нет - можешь просто подождать.
Или спиратить с торрента, если не жалко места диске
1427 726538
>>726537
Спасибо огромное)) как затравочка подойдёт курс от юнити или скорее время потрачу. И что нибудь слышал про книгу Джереми Гибсона Бонда чё то там unity и c# от идеи до реализации?
1428 726540
>>726537
И то что ты посоветовал на юдеми. Там ведущий норм по инглишу или индусский/европейский?
1429 726541
>>726540
Про книгу слышал, но не читал, ничего тебе сказать по ее поводу не могу. В любом случае время зря не потратишь, если прочитаешь.
На юдеми для всех курсов сразу доступна вводная часть, можешь запустить и сам решить стоит ли брать.
1430 726542
>>726541
Спасибки)) Ты похоже спонсор моих красных глаз))
1431 726544
Вот было бы круто, если бы UI элементы можно было бы пилить, как например используя vue.js+css, кто в теме.. Чтобы была реактивность и все такое
1432 726545
>>726544
Я не в теме, но разве на этой комбе уже нельзя игру запилить?
1433 727320
Короче извиняюсь сразу за тупой вопрос, совсем не умею в программирование, планировал что этим будет заниматься другой человек, который пока не может. Смотрел тутор на Ютубе по управлению. Скачал модельку как там, сделал аниматор и написал скрипт на поворот персонажа в нужную сторону, как в видео. Все бы ничего, но персонаж вращается вокруг не той оси. Мне кажется что дело не в скрипте, и эту ось нужно ещё где-то выбрать, но никак не могу понять где.
1434 727339
Аноны, реквестирую книги или курсы, которые помогут писать и строить красивую архитектуру игры. Устал говнокодить.
1435 727357
>>727320
все пофиксил уже
1436 727407
>>727339

>+ рекомендую Введение в ООП почитать https://newobj.ru/oop/index.php

1437 727409
>>727407
Я в целом понимаю, что такое ООП, знаю основные принципы, некоторые паттерны. Вопрос скорее в том, как красиво все это использовать в юнити с ecs, чтоб все не превращалось в спагетти.
1438 727445
дрочу баланс игры и возникла проблема. в общем я сделал scriptable object с параметрами типа фейдаутов некоторых элементов, скорости вращения камеры (она вращается по заданным углам), фризтайма и подобной мишурой. ну и сделал и нормально, а потом смотрю что у меня разные компоненты к scriptableobject ассет обращаются и понимаю что если я вдруг захочу сделать пяток конфигов и быстро их свапать, то мне придётся искать все компонент которые на него ссылаются и руками заменять. отсюда вопрос: на сколько это дурная затея сделать scriptableobject-обёртку? по сути в нём абсолютно ничего не будет кроме ссылки на другой scriptableobject, а уже на эту обёртку будут ссылаться компоненты. собственно из бонусов это я быстро могу заменять конфиги не ища где на них ссылаются, а из минусов получается какая-то колбаса в духе:

[SerializedField] private ConfigSO _config;

и дальше в коде где-нибудь обращение к переменным будет выглядеть так:

_config.configVariant.variable

есть какие-нибудь решения более элегантные или это нормальная абстракция?
1439 727446
Х А Л П
Мне унити нужен модельки потестить. Давно на старой версии бы стандартный контроллер от первого лица. Кинул на сцену и в хуй не дуешь. А чё сейчас? Я чёт ваще нихуя не понял. Они его выпилили не предоставив альтернативы? Они ебанутые? Или чё там вместо него?
1440 727447
>>727446
его и раньше не было, это часть их стандартного ассета

https://assetstore.unity.com/packages/essentials/asset-packs/standard-assets-for-unity-2018-4-32351
1441 727448
>>727447
Ну в том плане, что он поддерживался, а сейчас он не работает нихуя.
1442 727449
>>727448
поставь 18й юнити и тести, какие проблемы то?
1443 727450
>>727449
Пиз дос
Пошла жара, обмазываться кучей версий.
Так а нахуя они это сделали? Ну тип. В чём звмысел? Убрать такую основополагающую вещь и нихуя не дать взамен. Я когда увидел "для 2018" думал, мол, ну ща для 2020 найду. Пиздец.
1444 727466
>>727450
абсолютно ненужная хуета это во первых, а во вторых это не для версии 2018, а от версии 18, так что может всё ещё работать. в любом случае там 4 файла всего и поправить их и закинуть себе на гитхаб с этим и щенок справится, а если не справится, то на гитхабе или просто в гугле решений больше чем у тебя пальцев
1445 727469
>>698843 (OP)
Какие же хуёвые скрипты в книге Разработка игр на Unity 2018 за 24 часа. Больше половины работают через жопу
1446 727519
Посоветуйте игру, откуда можно стыбзить идею UI. Я хочу повторить похожее, прям от элементарных вещей, до чего-то сложного, на новой системе UI в Unity. Какие игры вас мотивировали больше всего? Прям хардкор, не обязательно красивое что-то. Просто хочу закрыть все возможности UI в одном проекте.
1447 727520
>>727519
честно говоря новая значительно удобней того что было, но у меня каждые полтора дня что-то в ней ломается, сыпятся хреновы ворненги, загружается в сейфмоуд и тд. моё предположение что всё будет ещё несколько раз переделываться, хотя проект я один уже поздамутил
1448 727525
>>727520

>поздамутил


>По запросу поздамутить ничего не найдено.

1449 727526
>>727520
Аа, подзамутил..
Ну я надеюсь они особо много менять не будуть, либо тупо багфиксы
1450 727531
>>727525
>>727526

>поздамутил


это когда не на продажу, а просто собрал проект с простым функционалом который реагирует на ui и на который ui реагирует тоже. bindings там и прочее
1451 727533
>>727531
Мне тоже не для работы, я хочу для портфеля собрать проект, где будет пиздатенькая менюшка, какая-нибудь сложная система типа крафта, и настройки, со всякими свестоперделками. Но у меня нет идей, откуда это можно спиздить, а сам я не дизайнер, чтобы придумать.
1452 727615
>>727547
что же мы тут без тебя будем делать?
толсто
1453 727632
двощи на помощь! первый раз долблюсь в ragdoll, подключил всё окей, когда отключаю аниматор – модель шлёпается на пол как нужно. теперь я кастую из камеры луч и когда он попадает в нужный коллайдер, то мне нужно отключать этот аниматор на родительском объекте, а на Rigidbody коллайдера, в который я попал, делать AddForce. внимание вопрос: я собираюсь делать проверку на наличие компонента у родителя, ну, например, NiggerController. Rigidbody, понятное дело, не знает об этом компоненте и, как следствие, такая штука у меня отменяется:

if (hit.rigidbody.tryToGetComponent(out NiggerController niggerController)) {
// жмур спёкся
}

как мне проверять что я пульнул именно в ниггера, а не в человека? мне что на каждый Rigidbody вешать компонент DefinitelyNigger с ссылкой на родительский NiggerController?

if (hit.rigidbody.tryToGetComponent(out DefinitelyNigger nigger) {
nigger.niggerController.dieMotherfuckerDie();
}
1454 727749
>>727445
да.
>>727632

>как мне проверять что я пульнул именно в ниггера, а не в человека?


Теги? Лееры?
Еще можно через скрипты проверять, но я вообще не понял, чего ты там насобирал у себя, поэтому если хочешь именно через скрипты свои делать что-то, то сам разбирайся, тебе виднее.
Мне обычно решение мутных вещей таких только через пару дней приходит, просто продолжаешь работу и через некоторое время придумываешь, как это решить.
1455 727750
>>727749
Еще добавлю:

Если уж пишешь
[SerializedField] private ConfigSO _config;
То пиши лучше
[SerializedField] private ConfigSO _config = null;
Тогда не будет спамить варнинги в консоль
1456 727776
>>727749
проверка по тегам и слоям это проверка по строчным что само по себе неверно. честно говоря вообще не знаю зачем существуют теги, а слои только для того чтоб разделить физику нужны

>>727750

>[SerializedField] private ConfigSO _config = null;


= default обычно пишу чтоб ворнингов не было
Desktop 2021.02.14 - 19.41.17.06.mp41,5 Мб, mp4,
1280x720, 0:37
1457 727820
Как подружить анимацию с navmeshagent? Я скачал анимацию ходьбы, но там скорость переменная. Если я поставлю свою скорость в navmeshagent.speed, то персонаж будет скользить.
Немного погуглив, нашел решение, что надо установить apple root motion = true и agent.updatePosition = false, чтобы перемещение лежало на анимации, но в этом случае персонаж у меня тупо не может правильный путь проложить, проходит сквозь препятствия, и идет не на ту точку, которую я указал..
Ох, чую, это на пару месяцев засяду... В документации по анимации и агентам вообще ни хрена не понятно. Точнее написано то подробно, про каждую галочку и чекбокс, но непонятно как?зачем?в каких случаях?смысл?
duWUCGHdMH.gif364 Кб, 555x366
1458 727823
А вот с apple root motion=false и agent.updatePosition = true, все четко. Я ьы это и использовал, но мне нужна переменная скорость, чтобы соответствовало анимации. В моем случае это анимация ходьбы, где зомбак прихрамывает, и при этом скорость ниже.
MGWSrSspF0.gif1,8 Мб, 910x414
1459 727845
>>727823
>>727820
Ух, неужели получилось. Нашел целую статью в мануле по этой проблеме.
Постоянно так, думаю: о, такая-то сложная тема, буду изучать с азов, и тут бац, нашел готовый код. И забиваешь. Работает жеж.
https://docs.unity3d.com/Manual/nav-CouplingAnimationAndNavigation.html
1460 727856
У всех drag n drop всегда нормально работает? У меня изредка возникают проблемы с отсутствием срабатывания события при завершении драга и соответственно вызова OnEndDrag. Пиздец, какой трудно уловимый, редкий и только случайно воспроизводимый баг. Сейчас вписал проверку в событии OnPointerEnter, если флаг isDragging у объекта выставлен, то запускаю тот же метод что и в OnEndDrag. Может такие костыли и сработают. Может кто подскажет, почему может баг подобный возникат, или костыль получше предложить?
1461 727871
У персонажа несколько состояний
(idle, walk, crawl, run) и я хочу реализовать, чтобы можно было перейти из любого состояние в другое. Я пока сделал, как на скринах, и это вполне себе работает.

Может есть вариант попроще?
1462 727915
>>727871
Можно вместо бул параметров сделать один float velocity и апдейтить через setfloat ("velocity", велосити твоего персонажа).
Состояния менять по нему, волк на 2, ран на 4 и тд

idle -> walk -> run можно запаковать в blendtree
и останется воще два стейта у тебя, типа grounded -> crawl
(кровл обязательно соединять с бегом/ходьбой? переход из лежа сразу в бег/прыжок должен выглядеть неплавно/крипово)
(
1463 727973
>>727915

>idle -> walk -> run


Поверхностно знаком с blendtree. Как я понял, он нужен для плавной смены схожих анимаций. Например, если я хочу с idle перейти на walk, я должен плавно изменить переменную с 0 до 0.5. А если сразу на run, то с 0 до 1.То есть, когда будет смена 0 до 1, также затронется и анимация walk, не так ли. А в моем случае это будет выглядеть странно, так как в анимации walk зомби идет с вытянутыми вперед руками, а бежит без них, по нормальному. Получается, мне в bleentree лучше оставить walk и run, а idle в отдельный state.
1464 727992
>>727973
Там скорость смены зависит от параметра, который ты ему обновляешь. Если велосити зомби резко перескочит с 0 до 1, он сразу бег включит.
1465 727998
>>727776

>честно говоря вообще не знаю зачем существуют теги


Ну например чтобы решать твою проблему.
Если ты действительно опытный прогер ты не писал бы тут такие вопросы. Если хочешь изобретать свой велосипед- пожалуйста, вариантов уйма.
Но если ты просто хочешь решить проблему и не усложнять, то используй теги.
1466 728002
>>727998

>Но если ты просто хочешь решить проблему и не усложнять, то используй теги.


Ты видимо плохо прочитал вопрос. Мне не просто нужно делать проверку, но и нужно получить доступ к компоненту родителя. Проверка по тегу это инструмент для тех кто вчера первый раз открыл Unity и не поймёт как и что там устроено. В идеале там нужна проверка по интерфейсу и уже взаимодействие с ним. Мой вопрос был не в том как определить в кого попал, а в том как лучше всего организовать передачу данных о коллизии родительскому классу после проверки. В моём варианте есть кэширование хотя бы, с тегами на каждой коллизии мне придётся помимо проверки по строчной переменной делать ещё и GetComponentInParent, и после этого делать nullcheck на этот компонент. Это не решение проблемы, а создания дополнительных и усложнение задачи
1467 728004
>>727856
Похоже в Юнити с OnEndDrag реально есть проблемы. Решил проблемы проверкой, нажата ли левая кнопка мыши при isDragging == true в функции Update. Если да, то сам вызываю метод из обработчика OnEndDrag.
keepgoing.mp42,9 Мб, mp4,
1280x720, 0:11
1468 728020
1469 728098
>>728002
Сделай на родительском компоненте скрипт, на нем ивенты, подпиши части тела на ивент, я хуй знает. Сделай интерфейсов себе разных.
Это же архитектурные проблемы, единственного верного решения не существует.

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


Лично мне кажется сделай как считаешь нужным, тем более ты сам уже не чайник, оставь там TODO и в будущем переделай если надо будет но скорее всего не надо будет и ты просто прокрастинируешь тут вместо того чтобы игру делать
1470 728140
1. где можно почитать про скейлинг интерфейса, чтобы не обосраться на разных разрешениях экрана?

2. и как подгружать только 1 сцену, а то у меня все загружаются

мимо 2 дня назад вкатился
1471 728190
>>728098

>но скорее всего не надо будет и ты просто прокрастинируешь тут вместо того чтобы игру делать


ну я сделал решение, написал сюда вопрос на случай если есть решение лучше и продолжил работу. залипать мне не шибко свойственно
1472 728226
Как-то можно перенести функционал создания меша по сплайну в игровой режим?
1473 728294
Как отучить себя постоянно переписывать код "в лучшую сторону" хотя он работает? Я ж никогда не доделаю игру
1474 728306
>>728140

>1


Я бы мог загуглить за тебя, но мне лень

>2


Уточни под чем ты понимаешь "загружается все"?
Все сцены? Список сцен? Объекты на сцене?

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

>>728226
Первая ссылка в гугле: https://catlikecoding.com/unity/tutorials/curves-and-splines/
1475 728310
>>728306

>Уточни под чем ты понимаешь "загружается все"?


Все сцены? Список сцен? Объекты на сцене?

загружается главное меню и первый уровень и скрипты из первого лвла работают в меню или проще в скриптах делать проверку на текущий уровень?
1476 728337
>>728294
Сколько бы ты ни переписывал код в лучшую сторону, в итоге в игру он может и не пойти
1477 728338
>>728310
Ух.. может не загружать первый уровень вместе с меню?
Еще возможно используешь DontDestroyOnLoad? Если да, то оно тебе точно нужно?
Если нужно, то через какой-нибудь синглтон выключай его.
1478 728363
Начал реализовывать паузу в игре используя timeScale = 0, и проблема оказалась в том, что хоть игра и стоит, обрабатываются все Input.GetKey, то есть, во время паузы игрок может ходить, прыгать и прочее. В итоге мне пришлось искать все места, где чел нажимает на кнопки и добавлять новую проверку
if (Input.GetKeyDown(JUMP) && !Game.Pause()) {

}
Потом узнал про input manager или типо того, где все нажатия должны обрабатываются в одном месте и передаются в нужные места. И проверку на Game.Pause() можно добавить только туда. Сейчас не знаю, то ли реализовать такое, опять переписав код, добавить интерфейс, то ли забить. Решил не реализовывать - теперь мучаюсь, что код говно, и чтобы было бы легче, если бы реализовал этот способ; решил сделать - становится жалко времени, ведь можно обойтись и без этого, ведь работает. Короче, с бедами в башкой как у меня в гамедев лучше не лезть
Ad1yihlkD1.gif79 Кб, 780x414
1479 728406
Што за
1480 728407
>>728406
Разобрался, это с камерой проблема была, в Clear Flags стояло значение Dont Clear
1481 728410
>>728406
Чем экран пишешь?
1482 728418
>>728363
Это норма, не парься, ты же не убийцу вов там делаешь?
В следующем проекте сможешь применить свои новые классные знания и сразу написать классный код!
1483 728468
Привет. Мб тупой вопрос, но можно ли как то сделать анимацию через скрипт. Пытаюсь для себя сделать Ball Sorting Puzzle. Но я не понимаю. Неужели нужно для каждого шарика из всех позиций сделать анимации во все позиции. То есть если у меня одна анимация передвигает объект на 1 вправо и на 1 вниз, а другая на 2 вправо и 1 вниз, неужели мне надо разные анимации для этого делать? Можно ли как то в скрипте?
hyQJLfLZqI.gif137 Кб, 722x530
1484 728476
Ого, круть, готовый package для многоязычности , https://docs.unity3d.com/Packages/com.unity.localization@0.10/manual/index.html, хорошо что нашел, а то уже хотел свой велосипед писать
1485 728477
>>728468
Только что понял, что я же могу юто через трансформ.транслэйт сделать вроде.
1486 728506
ЛЕГЕНДАРНЫЙ! ДОЛГОЖДАННЫЙ! ЕГО ЖДАЛИ И ОН НАКОНЕЦ ПРИШЁЛ! ПЕРЕКАТ!

https://2ch.hk/gd/res/728504.html (М)
https://2ch.hk/gd/res/728504.html (М)
1487 728780
Сап геймдевы
Начал читать книгу Юнити в действии, там начинают рассматривать проект Unity Car Example, который несовместим с новой версией. Подскажите похожий проект чтоб по нему учить, или более новую книгу что ли...
3123123123.png6 Кб, 339x363
1488 732067
Сап двач, почему объект не удаляется?
1489 732070
>>732067
Очки прибавляются, а объект сам не уничтожается
1490 732075
>>732067
>>732070
Разобрался
1491 734047
Сап. Как засунуть приложение, которое весит больше 400 мб в Гугл плей?
sage 1492 781528
test
Тред утонул или удален.
Это копия, сохраненная 4 марта 2022 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /gd/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски