Сохранен 529
https://2ch.hk/gd/res/802780.html
24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Unity 3D #19

 Аноним 21/05/22 Суб 19:17:15 #1 №802780 
maxresdefault.jpg
Добро пожаловать в тред Unity - лучшего 3D и 2D игрового движка современности!

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

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

На Unity сделано много замечательных игр - Valheim, Genshin Impact, Subnautica, Albion Online, Endless Space, Beat Saber, Boneworks, 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 - это начать делать игру и по мере разработки гуглить непонятные моменты.

Для людей абсолютно не знакомых с движком и программированием на C# есть 3и основные книги:

1. Разработка игр на Unity 2018 за 24 часа Майка Гейга
(Знакомство с движком, изучение редактора, создание 4х простых игр практически без кода, отличное пособие для полных новичков).
2. Изучаем C# через разработку игр на Unity. 5-е издание Харрисон Ферроне
(Пошаговое освоение всех базовых знаний по программированию на языке С# в редакторе юнити, создание одной игры стрелялки от первого лица, написание искусственного интеллекта врага, книга переведена не совсем корректно и порой встречаются не просто опечатки, а серьёзные неточности перевода.)
3. Unity в действии. Мультиплатформенная разработка на C#. 2-е межд. издание Хокинг Джозеф
(Правильное построение архитектуры кода для сложных проектов, углублённое изучение программированию на C#, создание 4х полноценных игр на движке, обязательно нужно скачать код проектов, так как в книге он местами уже устарел.)

Шапка: https://www.writeurl.com/publish/qzgktisltkskaitem6aa
Аноним 21/05/22 Суб 19:25:50 #2 №802785 
Sandy.webm
вот это да! перекаты не на 1к+ посте!
Аноним 22/05/22 Вск 09:55:28 #3 №802837 
image.png
SphereGrid.webm
>>802812 →
пчел, твою задачу можно упрощать сколько угодно, но пока ты не воспользуешься своей головой ты не решишь её. у тебя 9 классов образования то уже есть, надеюсь? не забыл ещё что такое синусы, косинусы?

например навскидку можно сделать так. натянуть квадратную координатную сетку на полусферу ололо. чтобы такое написать не надо быть умным, достаточно не быть тупым.
https://mega.nz/file/48l3EbrL#1ftsSfIyVRrakMl05AKoZJoBMUWiZCnX7KLtiy7tgpw

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

а вообще просто открой и почитай
https://en.wikipedia.org/wiki/Spherical_coordinate_system
Аноним 22/05/22 Вск 10:28:25 #4 №802839 
image.png
>>802837
после кружечки кофе.
а хотя лол я и сам конч. нахуй все эти лерпы, что за хуйню я понаписал. пускай инпут от -1 до 1 лучше будет. так красивей и понятней.
Аноним 22/05/22 Вск 13:25:55 #5 №802860 
0909.jpg
Приветствую всех. Есть тут кто понимающий в онлайне ? запустил Fishnet. два проекта в разных окнах. Отлично подключается, но как этот пример запустить на двух отдельных компьютерах? никто не подскажет куда искать , что ковырять и гуглить ?
Аноним 22/05/22 Вск 13:50:59 #6 №802865 
>>802837
>пчел, твою задачу можно упрощать сколько угодно, но пока ты не воспользуешься своей головой ты не решишь её. у тебя 9 классов образования то уже есть, надеюсь? не забыл ещё что такое синусы, косинусы?
А токсичным уебаном быть обязательно? Не все пердолятся с Юнити также долго как ты, это не повод раздувать такое ЧСВ.
Аноним 22/05/22 Вск 13:55:53 #7 №802866 
Аноны, нужна помощь.
Есть платформа, которая должна отталкивать игрока под углом перпендикулярным платформе, то есть, если платформа под углом 45 градусов, то и игрок будет отталкиваться под этим же углом.

Не подскажете куда копать, чтобы понять как это реализовать?
Аноним 22/05/22 Вск 14:30:52 #8 №802871 
>>802860
Поищи на сцене интернет менеджер у него будет настройка с ip, компы также должны быть в одной локальной сети или хост иметь белый ip.
По гайду посмотри официальное от самого фишера. Либо к примеру юнитиковское по интернет обджектам, по сути всё работает +- одинаково.
Аноним 22/05/22 Вск 14:49:28 #9 №802877 
>>802860
>>802871
благодарю. Вообще идея отдать сервер одному из игроков. Мне тут подсказывают, что нужно сделать переадресацию портов, NAT Traversal или использовать серверы ретрансляции, что звучит логично, но довольно комплексно
Аноним 22/05/22 Вск 14:53:32 #10 №802878 
>>802877
Есть разные подходы и решения, в том числе бесплатные. Но прежде чем лезть в сетевую игру лучше как минимум посмотреть и разобраться в туторах, и прочитать доки. Лично для себя я сделал сервер арендованный на хостинге, клиенты подключаются, чекаются, у каждого клиента создаётся статик мир, и идёт дальнейшая игра.
Аноним 22/05/22 Вск 15:32:33 #11 №802888 
>>802878
Благодарю, так понял с наскока вообще не получится никак))
Аноним 22/05/22 Вск 18:01:13 #12 №802917 
c43.jpg
>>802865
обязательно. токсичность к месту - способ коммуникации. я плавно перешёл от мистических ротаций к тригонометрии которую ололо в школе проходят и она не требует опыта геймдева.
и да, разумеется у меня есть ответы не требующие тригонометрии, но давая их я буду ещё токсичней.

>>802866
лол а как ты узнаешь о наличии платформы то. уж наверняка физоном? физон в юнити возвращает НОРМАЛЬ. это то что тебя интересует.
https://docs.unity3d.com/ScriptReference/RaycastHit-normal.html
Аноним 22/05/22 Вск 23:41:35 #13 №802951 
ммсм.PNG
Использую частицы в игре (струю из частиц), у частицы в скрипте количество наносимого урона и функция коллизии с врагом. При столкновении с врагом у него отнимается ХП.

Проблема в том, что при разном ФПС враг убивается с разной скоростью. Есть идеи как работать с частицами "фреймонезависимо" ? Пробовал FixedUpdate и ParticleSystem.Simulate, не помогает.
Аноним 23/05/22 Пнд 00:35:19 #14 №802953 
>>802951
Может реализовать механику урона по другому?
Аноним 23/05/22 Пнд 06:47:54 #15 №802968 
>>802951
>Использую частицы в игре (струю из частиц), у частицы в скрипте количество наносимого урона и функция коллизии с врагом.
Ты там каждую частицу триггрешь на урон? Совсем не умный?
Вот представь если у тебя огонь состоит из 1000 частиц при коллизии с противником одновременно может сработать от десятка до сотни частиц и в апдейте возникнут сотни сообщений о попадании, как думаешь фпс в таком намного понизится или не изменится?
Делай один триггер с огнём и не выпендривайся.
Аноним 23/05/22 Пнд 09:35:32 #16 №802971 
>>802866
несколько путей, либо ты имеешь подписку во вьюшке игрока OnCollisionStay и в нужный кадр получаешь нормаль коллизии, либо юзаешь систему с SphereCastNonAlloc, с ограничениями по маске, которая запускается по триггеру, находит нужный RaycastHit и берет его нормаль. Второй способ предпочтительнее, так как не аллоцирует
Аноним 23/05/22 Пнд 11:34:28 #17 №802974 
image.png
image.png
Почему так?
Аноним 23/05/22 Пнд 12:53:31 #18 №802980 
>>802974
Что так?
Аноним 23/05/22 Пнд 14:40:16 #19 №802987 
>>802980
криво
Аноним 23/05/22 Пнд 15:20:11 #20 №802990 
>>802987
Циферки пробовал вбивать в координаты или на глаз делал?
Аноним 23/05/22 Пнд 16:01:56 #21 №802993 
>>802990
ты ебанат чтоли? они равно удалены друг от друга, в игре уже хуйня какая-то
Аноним 23/05/22 Пнд 16:42:56 #22 №802997 
>>802993
По порядку.
Ты конвас выбрал?
Правильно привязал эти кнопки?
Разрешение я надеюсь ты выбрал фиксированное, а не как ёбанный даун со свободным разрешение пилишь UI элементы?!
Аноним 23/05/22 Пнд 17:22:30 #23 №803001 
image.png
>>802997
на канвасе вот такие настройки, мэтч убавил в 0 и всё пофиксилось, пиздец просто
Аноним 23/05/22 Пнд 23:08:35 #24 №803040 
bs1.mp4
bs2.mp4
>>802968
Согласен, способ очень плохой.

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

А как это сделать лучше? Может пускать какую-то кривую из рейкаста или ещё что-то? Хотелось бы конечно чтобы партикли были чисто визуальным эффектом
Аноним 24/05/22 Втр 03:08:10 #25 №803046 
BulletManager.webm
>>803040
вот это видео. пускать струю желтой жидкости в водолазов пока она не залепит им глаза!!!

лол ну а как ещё кроме как пускания рэйкаста. если хочешь чтобы он был кривой просто пусти несколько подряд. ничего не мешает тебе пустить рэйкаст на небольшую длину, запомнить где он закончился и пустить оттуда следующий в цепочке плюс гравитация.
Аноним 24/05/22 Втр 20:34:17 #26 №803133 
1440881562001.png
Юнитач, придай мне сил!
Аноним 24/05/22 Втр 22:10:08 #27 №803152 
image.png
jajebe.jpg
Блять, где он там флоат увидел? Я даже в переменную Vector3 вывел чтобы убедиться что я не проёбываюсь с типом аргумента.
Аноним 25/05/22 Срд 00:31:30 #28 №803182 
>>803152
Distance возвращает float.
Аноним 25/05/22 Срд 07:59:09 #29 №803203 
image.png
>>803182
>>803187
Блять, так вот на что эта проститутка жаловалась, а пишет про первый аргумент почему-то. Всё-таки статика зло. Спасибо.
Аноним 25/05/22 Срд 08:56:59 #30 №803210 
>>803203
ну то, аргумент единственный никак не мешает быть ему первым...
Аноним 25/05/22 Срд 09:04:53 #31 №803212 
>>803210
Ответь еще на вопросик, а то чёт гугл хуйню выдаёт. Я не хочу создавать новый вектор, а просто засунуть отсылку к уже существующему вектору в перменную, как это сделать?
Аноним 25/05/22 Срд 09:29:06 #32 №803216 
>>803212
> Ответь еще на вопросик, а то чёт гугл хуйню выдаёт. Я не хочу создавать новый вектор, а просто засунуть отсылку к уже существующему вектору в перменную, как это сделать?
Покажи код, куда ты это хочешь сделать.
Аноним 25/05/22 Срд 09:30:46 #33 №803217 
>>803212
да собственно никак. структуру можно передать по ссылке в метод через ref кейворд и пожалуй все. если тебе понадобилась ссылка на структуру, то что-то ты таки делаешь не так.
Аноним 25/05/22 Срд 09:31:18 #34 №803218 
>>803216
Да вот туда же >>803152

Я хочу найти вектор, у которого минимальная дистанция до стартового, и возвращать его. Я
Аноним 25/05/22 Срд 09:40:45 #35 №803221 
image.png
>>803218
Альтернативный вариант создать хэш-таблицу с вектором и дистанцей и остортировать её по дистанциям. Но по-моему это оверкилл? Я просто хотел пройтись циклом по списку, и сохранять отсылку на вектор с минимальной дистанцией.
Аноним 25/05/22 Срд 09:41:13 #36 №803222 
>>803218
не парсо. "создание" структуры и работа с ней быстрее чем создания объекта и разыменование указателей.

List<Vector3> positions = ...;

positions.Select(i => new { pos = i, sqrDist = i.SqrMagnitude }).Min(i => i.sqrDist).pos;

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

если у тебя там трансформ(ну т.е. задача найти ближайший объект по их позиции) а не просто вектор то делай список трансформов
Аноним 25/05/22 Срд 09:43:55 #37 №803223 
>>803222
Да, у меня там изначально трансформы, спасибо.
Аноним 25/05/22 Срд 09:48:42 #38 №803224 
>>803223
чуть проебался да

var position = transform.position;
var transforms = new List<Transform>();

var closest = Select(i => new { transform = i, sqrDist = (position -i.position).SqrMagnitude }).Min(i => i.sqrDist).pos;

если нужен список для дальнейшего использования вместо Min сделай ToList() (а то и Sort(i => i.sqrDist).ToList() - тогда первый будет ближайшим)

зы. linq - страшная штука, главное не увлекаться
Аноним 25/05/22 Срд 09:57:07 #39 №803225 
>>803224
>(position -i.position).SqrMagnitude
Вопрос: зачем в квадрат возводить?
Аноним 25/05/22 Срд 09:58:11 #40 №803226 
>>803224
>SqrMagnitude
>If you only need to compare magnitudes of some vectors, you can compare squared magnitudes of them using sqrMagnitude (computing squared magnitudes is faster).
Всё, нашёл в документации сам
Аноним 25/05/22 Срд 10:13:14 #41 №803227 
>>803225
ибо не возводить в квадрат а не брать корень.
формула расстояния sqrt((a.x - b.x)^2 + (a.y - b.y)^2 + (a.z - b.z)^2)
Аноним 25/05/22 Срд 14:37:32 #42 №803256 
>>803227
>формула расстояния sqrt((a.x - b.x)^2 + (a.y - b.y)^2 + (a.z - b.z)^2)
Так вот зачем Ирина Ивановна нам эту хуйню на геометрии преподавала, сука тупая, могла бы и сказал что в разработке игор пригодится
Аноним 25/05/22 Срд 15:47:57 #43 №803268 
лол, сейчас смотрел видео с конференции по геймдеву. фраза "первое что вбивают в голову - считать квадрат расстояния, а не само расстояние, так как корень очень затратная операция"
Аноним 25/05/22 Срд 19:12:40 #44 №803289 
>>803268

всё так
Аноним 25/05/22 Срд 23:08:22 #45 №803321 
>>803224
>sqrDist = (position -i.position).SqrMagnitude
На это ругается
> cannot assign method group to anonymous type property
Как фиксить? Уже дохуя чего перепробовал.
Аноним 26/05/22 Чтв 05:53:23 #46 №803335 
>>803321
очевидно SqrMagnitude()
написал же, не помню точно, проверь хотя это вроде было свойство?
Аноним 26/05/22 Чтв 07:02:51 #47 №803336 
Не бейте, лучше обоссыте.

Хочу ебашить адовые видосы, можно ли это делать в юнити (насколько я понял, там всё через синемашину) и не будет ли это попыткой сожрать кактус? Или мне уебывать в другой софт? Допустим, что все нужные ассеты у меня есть, а я хочу из этого сделать "катсцену". Только катсцену, без самой игры.

На фотореализм строго похуй.
Аноним 26/05/22 Чтв 07:24:22 #48 №803338 
>>803336
>Хочу ебашить адовые видосы
-> Unreal Engine
Аноним 26/05/22 Чтв 08:52:00 #49 №803341 
>>803335
Це свойство. Захакал вот так. Это норм практика?
>Select(i => new { transform = i, sqrDist = Vector3.SqrMagnitude(position -i.position) }).Min(i => i.sqrDist).pos

Теперь сижу пержу почему выдаёт флоат значение, расчехлил дебаггер, и пока не вкуриваю, но вернусь к вопросу только вечером. Спасибо.
Аноним 26/05/22 Чтв 08:58:46 #50 №803342 
>>803341
Select формирует последовательность значений анонимного типа трансформ/расстояние
Min берет из данной последовательности минимальное значение по указанному параметру(расстоянию)
от него ты уже берешь свойство.
Аноним 26/05/22 Чтв 09:14:00 #51 №803343 
>>803342
по сути эта строчка синтаксический сахар для

private class _temp
{
public Transform transform { get; set; }
public float sqrDist { get; set; }
}

Transform FindMinDist(List<Transform> transforms, Vector3 postition)
{
_temp min = null;
foreach (var i in transforms)
{
// .Select
var next = new _temp {transform = i, sqrDist = Vector3.SqrMagnitude(postition - i.position)};
// .Min
if (min == null || next.sqrDist < min.sqrDist)
next = min;
}
//.transform
return min?.transform;
}

мы не пишем отдельную функцию для единственного действия и не заводим под него вспомогательный тип.
Аноним 26/05/22 Чтв 09:15:52 #52 №803344 
>>803343
>min?.transform
Вопрос тут это что? Проверка что значение ненулевое?
Аноним 26/05/22 Чтв 09:19:09 #53 №803345 
>>803344
да. это уже что бы совсем чистый код, иначе если пустой список выдаст нре(в линкью запросе тоже, так как нету ?)
Аноним 26/05/22 Чтв 09:21:07 #54 №803346 
>>803345
Понял, спасибо.
Аноним 26/05/22 Чтв 12:46:02 #55 №803353 
image.png
Здарова, Кармаки. Так вот вопрос, пикрил на 2021 лтс это старый болт или уже обновлённый? Я просто помню, что они хотели его допилить после того, как купили автора.
Аноним 26/05/22 Чтв 13:25:19 #56 №803357 
>>803353
я слишком стар для этого вашего визуального окнодроча. хотя смог вдуплить шейдеры только благодаря ему
Аноним 26/05/22 Чтв 13:47:46 #57 №803360 
>>803268
> лол, сейчас смотрел видео с конференции по геймдеву.
Gamedevguild?
Аноним 26/05/22 Чтв 14:04:24 #58 №803362 
>>803360
старое по экс, от разработчиков рейда
https://www.youtube.com/watch?v=4sDnBChfV0o
Аноним 26/05/22 Чтв 15:33:12 #59 №803371 
блядь. экс зло. злое зло

цель - двигать объект к точке

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

не бойтесь создавать "лишние" системы на каждый пук, говорили они, сначала в глазах рябит а потом приходит понимание что можно вклинится в любую точку между системами и добавить новый функционал не трогая старый.
Аноним 26/05/22 Чтв 18:19:07 #60 №803392 
>>803221
нахуй надо! ему же только минимальный нужен. пройтись по всем и просто перезаписывать самый короткий.

>>803152
тебе не обязательно мерять дистанцию. меряй квадратную дистанцию, не извлекай квадратный корень!
Аноним 26/05/22 Чтв 20:23:37 #61 №803423 
CvVfliOW8AAKtD.jpg
Сука ну вот чому я не бог программирования
Аноним 26/05/22 Чтв 20:48:15 #62 №803431 
image.png
jajebe.jpg
>>803342
Короче кому не насрать, я заебался искать почему то линк выражение мне выдавало хуйню и переписал в пикрил, и так как мне это всё нужно было чисто чтобы протестировать кое-что, я своего добился и иду дальше. В чём я не прав?
Аноним 26/05/22 Чтв 21:01:10 #63 №803435 
>>803431
Если всё устраивает то ок. Но в реальных проектах за такое уебут в лицо и обоссут.
Аноним 26/05/22 Чтв 21:07:55 #64 №803437 
>>803435
Да я индюк-одиночка, но конечно красиво кодить всё равно хочется, да.
Аноним 26/05/22 Чтв 21:10:36 #65 №803439 
>>803431
ну собсно обычный поиск минимума.

небольшой нюанс. не делай ToList() по таргетам. просто убери его - все будет работать так же, но не будет лишнего выделения памяти и итерации по списку. селект создает запрос но не выполняет его. т.е. прохода по списку не происходит. тулист его таки "выполняет". имеет смысл если ты этот отфильтрованный список потом используешь более одного раза, что бы не ходить по полному списку каждый раз.
Аноним 26/05/22 Чтв 21:13:53 #66 №803440 
>>803439
> селект
where конечно же
Аноним 26/05/22 Чтв 21:16:05 #67 №803441 
>>803431
>юзает SqrMagnitude ЧТОБ БЫСТРА БЫЛО ОПТИМИЗОН
>тут же юзает Linq
>тут же юзает foreach с листом
Ты долбоеб кстати.
Аноним 26/05/22 Чтв 21:18:25 #68 №803442 
>>803441
> не знает, что компилятор развернет foreach в тот же for
кстати сам
Аноним 26/05/22 Чтв 21:18:37 #69 №803443 
>>803439
Ок, понял, я чёт тупанул, хз зачем там тулист

>>803441
Ну с тулистом ок, а пройтись 1 раз по списку даже йоба-алгоритму по нахождению минимума всё равно придётся, так что про форич не в тему.
Аноним 26/05/22 Чтв 21:22:05 #70 №803444 
>>803441
> >тут же юзает Linq
Если без тулиста, то ваще поебать же, там нечему много памяти аллоцировать и ебать гц, а сама скорость выполнения вряд станет даже малейшей проблемой на практике.
Аноним 26/05/22 Чтв 21:33:12 #71 №803448 
>>803444
Я тут прогуглил, может он к тому что форич менее оптимизонный чем обычный фор. Тогда можно упороться и вмесо листа массив юзать еще.
Аноним 26/05/22 Чтв 21:37:12 #72 №803449 
>>803441
>>тут же юзает foreach с листом
Уже 100000 лет как пофиксили
Аноним 26/05/22 Чтв 22:13:23 #73 №803454 
1653592403117.jpg
>>803448
Там тот же массив внутри, при проходе проц также в кеш подгрузит следующие элементы по идее, ну это если у нас не референсные типы само собой.
Аноним 26/05/22 Чтв 22:18:00 #74 №803456 
>>803454
Массив то массив, но судя по всему если я задам больше 4 элементов, то он начнёт затратный алгоритм ресайза.
Аноним 26/05/22 Чтв 22:24:37 #75 №803458 
>>803456
Есть же конструктор, который сразу принимает вместимость
Аноним 26/05/22 Чтв 22:32:03 #76 №803459 
>>803458
Ну тогда да, но я явно так не делаю
Аноним 27/05/22 Птн 00:14:02 #77 №803481 
>>803442
В курсе что лист отличается от массива и фор с листом работает в 2 раза медленнее чем фор с массивом?
Аноним 27/05/22 Птн 08:15:31 #78 №803502 
>>803481
и воопше на асемблере писать надо! а лучше сразу машинными кодами, что бы экономить на времени компиляции
Аноним 27/05/22 Птн 08:19:37 #79 №803503 
>>803481
> фор с листом работает
> фор с массивом
for работает с индексом типа int
Аноним 27/05/22 Птн 09:54:34 #80 №803510 
1J3cDMfx.jpg
>>803503
>>803481
>>803441
Может вместо пердежа в воздух потестить попробуете?
Аноним 27/05/22 Птн 10:26:24 #81 №803512 
>>803510
Нихуя, каким образом массив проебал листу, если лист это массив по сути?
Аноним 27/05/22 Птн 11:09:50 #82 №803516 
>>803510
Ты что тестируешь, скорость создания объекта листа? Ты аутист совсем?
Аноним 27/05/22 Птн 12:00:59 #83 №803519 
Скриншот 27-05-2022 115921.png
>>803516
ебать тупнул, ещё и думаю, хули так долго то. Но теперь чёт не то, походу
Аноним 27/05/22 Птн 12:25:46 #84 №803524 
>>803519
а, ну да, не заполнил лист же
Аноним 27/05/22 Птн 12:32:29 #85 №803525 
Скриншот 27-05-2022 123123.png
>>803524
держите
Скорее всего, такая хуйня, потому что в foreach для листа IL разворачивает диспоуз после цикла
Аноним 27/05/22 Птн 13:33:56 #86 №803529 
Стоило юнитидаунам выйти за границы таскания ассетов мышкой, так сразу вылезла тотальная некомпетентность по простейшим вопросам устройства ЯП, никто не знает что как работает, еще игры пытаются с таким багажом "знаний" делать, чтоб потом везде рассказывали какой же юнити тормозной двиг.
Аноним 27/05/22 Птн 15:07:12 #87 №803544 
image.png
>>803529
Я выбрал Юнити именно потому что у него репутация движка, который позволяет не самым сильным программистам типа меня криво, косо, через жопу, но реализовать, пускай и лагающую, но игру, которая даже может выстрелить за счёт уникального геймплея. В чём я не прав?
Аноним 27/05/22 Птн 16:22:28 #88 №803553 
>>803544
во всём прав и не ебёт, что думают с++петухи со своими указателями на указатели указывающие на void
Аноним 27/05/22 Птн 16:31:56 #89 №803556 
>>803544
>В чём я не прав?
Уникального геймплея не существует.
Аноним 27/05/22 Птн 16:58:26 #90 №803560 
>>803556
Пока ты так думаешь - никогда не сможешь его сделать.
Аноним 27/05/22 Птн 17:44:00 #91 №803564 
>>803556
лол, довн, геймплей - это совокупность механик, таким образом почти любая игра уникальна геймлеем
Аноним 27/05/22 Птн 18:43:09 #92 №803574 
>>803564
Уникальных механик не существует, также не существует уникальной совокупности механик.
Аноним 27/05/22 Птн 19:13:37 #93 №803578 
>>803525
Что то хуйня, что это, стоимость по производительности примерно равна 0. Сделай теперь больше элементов и какие-нибудь реалистичные операции над каждым элементом, чтобы не тупа проход был.
Ну или я сам сделаю как освобожусь нах.
Аноним 27/05/22 Птн 19:32:49 #94 №803583 
>>803574
>Уникальных механик не существует, также не существует уникальной совокупности механик.
Долбоёб? Когда впервые появился тот же Портал у него что ли не уникальная механика порталов была?
Аноним 27/05/22 Птн 19:50:10 #95 №803586 
>>803583
Бля, да он наверное из тех, кто говорит "все сюжеты были написаны ещё в античности"
Аноним 27/05/22 Птн 21:54:10 #96 №803615 
>>803583
>уникальная механика порталов
Я в эти порталы еще в 2000 году лазил чтоб хилки у акары закупать, ебать ты дура пориджевая.
Аноним 27/05/22 Птн 22:08:16 #97 №803618 
>>803615
Хуесос ты всерьез не различаешь портал который тупо локацию меняет с порталом, который буквально имитирует неевклидовое пространство?
Аноним 27/05/22 Птн 22:29:16 #98 №803620 
11.mp4
>>803618
>имитирует неевклидовое пространство
Сымитировал тебе на лицо.
Аноним 27/05/22 Птн 23:15:04 #99 №803622 
image.png
>>803620
Фактически та же смена локации, не более. И за 8 лет от выхода кваки 3 до выхода портала никто так и не понял всего потенциала этой идеи.
Аноним 27/05/22 Птн 23:34:26 #100 №803625 
>>803622
>Фактически та же смена локации, не более
А в портале что? Кроме своей жопы еще можно куб протолкнуть? Смена локации куба, гениальная механика, новое слово в жанре.
Аноним 28/05/22 Суб 00:03:21 #101 №803627 
>>803625
Ну не толсти. Эта механика оказалась настолько плодородной, породила кучу способов применения и множество головоломок, что хватило на 2 серии и несколько фанатских дополнений.
Аноним 28/05/22 Суб 01:03:25 #102 №803631 
>>803627
Вроде уникальность обсуждали, а не количество серий и дополнений. Давай количество серий кал оф дути подсчитаем, или атсасина. Видимо их механика оказалась гораздо плодороднее тухлых порталов.
Аноним 28/05/22 Суб 12:51:22 #103 №803704 
9a0bSXG3.jpg
>>803578
сделал такое, но всё равно все эти тесты хуйня, потому что нужно рассматривать каждый отдельный случай (предполагается ли динамика, известны ли размеры заранее, будут использоваться ссылочные или значимые типы и т.д)

[Benchmark]
public void ListFor()
{
List<int> list = new List<int>(1000);
for (var index = 0; index < list.Capacity; index++)
{
list.Add(10);
list[index] += index;
}

int sum = 0;
foreach (var i in list)
{
sum += i;
}
Console.WriteLine(sum);
}

[Benchmark]
public void ArrayFor()
{
int[] array = new int[1000];
int sum = 0;
for (var index = 0; index < array.Length; index++)
{
array[index] = 10;
array[index] += index;
sum += array[index];
}

Console.WriteLine(sum);
}

[Benchmark]
public void ListForeach()
{
List<int> list = new List<int>(1000);
for (var index = 0; index < list.Capacity; index++)
{
list.Add(10);
list[index] += index;
}

int sum = 0;
foreach (var i in list)
{
sum += i;
}
Console.WriteLine(sum);
}

[Benchmark]
public void ArrayForeach()
{
int[] array = new int[1000];
for (var index = 0; index < array.Length; index++)
{
array[index] = 10;
array[index] += index;
}

int sum = 0;
foreach (var i in array)
{
sum += i;
}
Console.WriteLine(sum);
}
Аноним 28/05/22 Суб 12:54:51 #104 №803705 
>>803704
первый метод не тот скопировал

public void ListFor()
{
int sum = 0;
List<int> list = new List<int>(1000);
for (var index = 0; index < list.Capacity; index++)
{
list.Add(10);
list[index] += index;
sum += list[index];
}
Console.WriteLine(sum);
}
Аноним 28/05/22 Суб 13:09:04 #105 №803708 
>>803704
Может лучше игры делать начнешь?
Аноним 28/05/22 Суб 13:44:19 #106 №803712 
>>803708
так уже, просто самому стало интересно, насколько леоесц, который я чаще всего использую для логики, оправдано юзается с форычем
Аноним 28/05/22 Суб 18:35:42 #107 №803740 
>>803712
Скажем так - глубоко похер пока сложность этой операции О(1). будет иметь смысл если у тебя глубина вложения циклов уходит к земному ядру. Если уж совсем хочешь упоротся в производительность и заодно остаться на екс - переходи на дотс. Они как раз большой апдейт запилили, почти релиз кандидат. И дело не в апдейте а в базовой заточке на многопоточность и низкоуровневую оптимизацию.
Аноним 28/05/22 Суб 19:07:40 #108 №803744 
>>803740
>глубина вложения циклов
Простое правило - если тебе требуется больше двух, то ты скорее всего хуйню делаешь, и даже с двумя хорошенько подумай и полистай существующие алгоритмы, потому что есть шанс того что ты сейчас захуяришь квадратичный алгоритм, когда уже давно придумали логарифмичный для тех же целей.
Аноним 28/05/22 Суб 19:10:29 #109 №803745 
>>803744
Ну я приблизительно это и имел в виду.
Аноним 29/05/22 Вск 06:27:10 #110 №803799 
>>803740
а что в дотс поменяли, кстати? там екс чтоли на финишную прямую выходит? или более полезные хуйни? не трогал их год
Аноним 29/05/22 Вск 06:39:26 #111 №803800 
>>803799
> там екс чтоли на финишную прямую выходит?
+ убрали зоопарк базовых систем и джобов. оставили только базовые IJobEntity и SystemBase которые могут все, что могли старые по отдельности
+ добавили "вариадик апдейт" системы, которым можно выставить время апдейта напрямую или до окончания джобов. ну т.е. туда можно загонять долгоиграющие асинхронные задачи.
+ расширили поддержку редактора. галочка "конверт ту энтити" вместо соответвующего мб, лучшая поддержка префабов, интерфейс где можно смотреть и менять энтити как го в рантайме, дебаг систем с отключением и пофреймовым выполнением, профайлер под дотс и прочая по мелочи.
- убрали анимации и звук до версии 0.51 (эта 0.50)
Аноним 29/05/22 Вск 06:42:36 #112 №803801 
>>803800
зы. на отквоченное так и не ответил, за 0.51 уже планируется как релиз кандидат.
Аноним 29/05/22 Вск 17:58:42 #113 №803883 
>>803800
спасибо за пересказ. хуёво что не добавили до сих пор анимации и звук, конечно. вот про префабы интересно стало, надо будет глянуть. я раньше своей хуйни городил в скриптабл обжектах для того чтобы связывать префабы и ентити, но теперь оно видимо само как-то умеет это делать?

интересно не добавляли ли больше фич с DynamicBuffer и многопоточностью. мои предыдущие попытки сделать инвентарь на екс работающий в многопотоке превращались в какой-то пидец.
Аноним 29/05/22 Вск 19:05:19 #114 №803899 
>>803704
> предполагается ли динамика, известны ли размеры заранее, будут использоваться ссылочные или значимые типы и т.д
Поебать же вообще, во всех сценариях поведение абсолютно одинаковое будет, вся разница листа только в том, что это тот же массив с оберткой сверху и с подготовленными функциями для удобства, и в случае с фор ич дополнительнач аллокация под иенумератор(так ведь?), но эт хуйня. Как мы видим - оно всё ваще почти ничего не стоит.
Аноним 30/05/22 Пнд 08:17:26 #115 №803951 
>>803899
ну, да, функции для удобства, в том числе увеличение объёма при переполнении, с массивом придётся такое писать самому, плюс существуют IReadOnlyList, которые при доступе к чтению не дают так же и воздействовать на элементы, в отличие от обычного листа и массива, но на этапе рефакторинга проще подставить ридонлилист вместо листа, чем вместо массива
Аноним 30/05/22 Пнд 09:49:50 #116 №803957 
>>803951
> но на этапе рефакторинга проще подставить ридонлилист вместо листа, чем вместо массива
Не пон. Ридонли лист же нужен ток для инкапсуляции, и скорее всего ты изначально когда классв проектируешь - понимаешь к чему должен быть доступ извне, а к чему нет
Аноним 30/05/22 Пнд 11:26:33 #117 №803978 
>>803957
по опыту могу сказать, что есть те, кто с опытом 1+ года работы с c# не слышали про ридонли листы вообще и думают, что readonly List<> сам по себе обеспечивает безопасность листа, ну и, бывают разные случаи, не у всех есть опыт сразу что-то на этапе проектирования предусмотреть
Аноним 30/05/22 Пнд 18:07:51 #118 №804009 
33в.jpg
>>802780 (OP)
Сап юнитач посоветуй годный тутор по созданию, сттатичекского и динамического тумана войны?
Яндекс выдаёт или старые туторы со старыми версия юнити или такую дичь за которую личне мне было бы стыдно.
https://yandex.ru/search/?clid=2285101&text=Unity+fog+of+war&lr=39
Я смог сделать туман войны только для 2д и выглядит он не совсем.
Аноним 30/05/22 Пнд 19:01:11 #119 №804016 
Парни, если кому-то требуется саунддизайн или озвучка встроенная в Unity с помощью Wwise, дайте мне знать.
Аноним 30/05/22 Пнд 19:09:04 #120 №804018 
>>804016
А ты забесплатно работаешь?
Аноним 30/05/22 Пнд 19:28:05 #121 №804019 
>>804018
Работаю не забесплатно, но первые пару звуков могу сделать безвозмездно, чтобы у тебя сложилось понимание о том чего от меня ждать. Потом либо договариваемся либо желаем друг другу удачи и интересных проектов
Аноним 30/05/22 Пнд 20:13:09 #122 №804022 
>>804019
А портфолио есть чтобы я примерно прикинул что ты можешь не нагружая тебя почём зря?
Аноним 30/05/22 Пнд 21:29:07 #123 №804028 
image
image
Почему каждый раз при загрузки сцены юнити 2д у меня то пропадают текстуры, то появляются? Вот есть текстура земли, при загрузки текстура персонажа может зайти ЗА текстуры земли и его не видно, если несколько раз перезагрузить открывать другую сцену и переключатся на предыдущую то он может то появляться нормально, то снова проваливаться под землю. Может с камерой что-то не то?
Аноним 30/05/22 Пнд 21:49:52 #124 №804029 
>>804022
Да! Вот фрагмент портфолио, саунд редизайн катсцен из Dark Souls 3. https://www74.zippyshare.com/v/431YTOch/file.html

Опыт работы со звуком 7 лет, большую часть в музыкальной сфере, год в сфере кино и вот последний год в геймдеве
Аноним 30/05/22 Пнд 22:00:40 #125 №804030 
Аноны, помогите с шейдерами, пожалуйста. У меня есть clipping шейдер, как тут:
https://www.youtube.com/watch?v=GaNVrRRdqbY
Как мне растянуть текстуру, сверху, чтобы была как бы крышка, а то меш виден изнутри
Аноним 30/05/22 Пнд 22:08:03 #126 №804031 
T1vpwuCm.jpg
>>804028
потому что ты вася
Аноним 30/05/22 Пнд 22:12:01 #127 №804032 
>>804030
никак, юнити тебе не 3д редактор, чтобы уметь в полигоны, можешь попробовать юзать клипер с дополнительным объектом в виде своей "крышки"
Аноним 30/05/22 Пнд 22:17:49 #128 №804033 
>>804032
Ну есть же всякие геометрические шейдеры, они разве на такое не способны?
Аноним 30/05/22 Пнд 22:35:01 #129 №804034 
>>804031
Спасибо
Аноним 30/05/22 Пнд 22:39:14 #130 №804036 
>>804030
Еще погугли, когда-то давно юзал такой который сам залеплял дырки, название уже не помню.
Аноним 30/05/22 Пнд 22:44:19 #131 №804037 
>>804036
Понял, спасибо.
Аноним 30/05/22 Пнд 23:43:22 #132 №804040 
I aint clicking that shit nigga.jpg
>>804029
А на саундклауде есть чо? Качать страшно
Аноним 31/05/22 Втр 00:53:27 #133 №804043 
>>804040
ноуп, ну можешь на почту написать [email protected] и я тебе скину. но вообще там просто видосик, честно
Аноним 31/05/22 Втр 00:54:23 #134 №804044 
>>804040
на саундклауде кстати есть, но там просто музон, к геймдеву отношения не имеет
Аноним 31/05/22 Втр 00:59:51 #135 №804045 
>>804044
Ну кинь его
Аноним 31/05/22 Втр 01:38:20 #136 №804047 
>>804045
да там рэпчик.. soundcloud.com/katamayne/popular-tracks
Аноним 31/05/22 Втр 08:17:14 #137 №804055 
как пофиксить стандартный video player? эта хуйня дёргается на последнем кадре, хотя видео специально я подобрал, где последний кадр заканчивается ровно там же где и первый
Аноним 31/05/22 Втр 09:16:08 #138 №804059 
>>804055
По идее есть опция бесшовного переключения на заданную картинку после видео. Видел в других движках.
Аноним 31/05/22 Втр 09:58:21 #139 №804060 
image.png
чет я слегка увлекся... теперь еще с полдесятка систем для "очистки" после анимации...
Аноним 31/05/22 Втр 10:19:19 #140 №804063 
>>804060
Это что ты реализовал? Что за велосипед? Уверен что до тебя это уже не сделали более элегантно?
Аноним 31/05/22 Втр 11:03:50 #141 №804067 
bandicam 2022-05-31 10-59-48-170.webm
>>804063
спрайтовую анимацию на шейдерах в экс
Аноним 31/05/22 Втр 12:38:48 #142 №804071 
image.png
Всё?
Аноним 31/05/22 Втр 12:54:51 #143 №804072 
>>804071
да прибудет с тобой впн
Аноним 31/05/22 Втр 13:33:32 #144 №804074 
>>804072
А денги за игоры ты тоже по впн получать будешь?
Аноним 31/05/22 Втр 13:40:23 #145 №804075 
>>804074
Делай игры для души а не за деньги.
Аноним 31/05/22 Втр 13:58:38 #146 №804078 
>>804074
как же повезло, что гейбушка максимально сторонится политоты и продолжает выплачивать
Аноним 31/05/22 Втр 14:11:29 #147 №804079 
>>804078
> продолжает выплачивать
Жаль только вот, что покупать запретил.
Аноним 31/05/22 Втр 17:44:34 #148 №804090 
>>804079
Ниче он не запрещал
Аноним 31/05/22 Втр 21:43:48 #149 №804110 
1654022627808.png
>>804090
Ну, он лично не запрещал, да. Его заставили. От этого не легче.
Аноним 01/06/22 Срд 11:52:47 #150 №804157 
image.png
image.png
image.png
>>804009
Похоже не хватает градиента при переходе в туман
Аноним 01/06/22 Срд 13:44:07 #151 №804177 
image.png
Только-только начинаю вкатываться в Юнити, так что вопрос очень тупой.
У меня есть объект со скриптом. Если я переменную задаю в скрипте (допустим значение 1), а потом ее же в самом юнити в свойствах объекта (допустим значение 10), то в итоге используется значение 10. Это типа так и нужно? То что руками вбил в свойствах имеет бОльший приоритет? Я думал при запуске должно из скрипта подтягиваться.
Аноним 01/06/22 Срд 13:56:03 #152 №804179 
>>804177
это значение по-умолчанию. т.е. оно появляется когда ты только вешаешь скрипт на объект. на уже существующем сохраняются те что наменял в инспекторе.
Аноним 01/06/22 Срд 18:25:58 #153 №804203 
>>804158
В том что в него встроен нормальный язык программирования. Одного этого пункта достаточно чтоб даже не смотреть в сторону нереального кала.
Аноним 01/06/22 Срд 18:43:54 #154 №804204 
>>804203
Плохо разбираюсь что в шарпе, что в крестах, но чем кресты хуже?
Аноним 01/06/22 Срд 20:19:10 #155 №804208 
>>804204
как минимум не нужно дрочить указатели на указатели
Аноним 01/06/22 Срд 20:22:06 #156 №804209 
>>804208
В С++ уже лет 10 как не нужно дрочить указатели, если что.
Аноним 01/06/22 Срд 20:56:24 #157 №804216 
>>804209
Лапшетаскатели только рассказывают какие плюсы охуенные, но пользуются исключительно блюпринтами.
Аноним 01/06/22 Срд 21:05:36 #158 №804220 
a62.png
Наконец-то я вырвался из круга прохождения курсиков и вот уже месяц сижу над своим проектом. Понимаю что для многих это хуйня, но я находился в этом ёбаном лимбо ГОДАМИ, так и не приступая к своей игре. Я рад что я хотя бы просто начал.

Анон, если ты в таком же лимбо - просто возьми и начни. Ты охуеешь как бесполезны все эти курсы, если ты не делаешь шаблонное говно. Как только появляются нестандартные задачи сперва теряешься, но потом через упорство и гуглинг, просмтр документации и роликов находишь решение, меняешь его под себя и начинаешь по-настоящему знакомиться с движком. Охуенно, жаль что не начал раньше.
Аноним 01/06/22 Срд 22:02:04 #159 №804225 
>>804220
>и начинаешь по-настоящему
Не забудь подсчитать сколько раз будешь НАЧИНАТЬ прежде чем сделаешь законченную игру.
Аноним 01/06/22 Срд 22:29:02 #160 №804234 
>>804225
Да похуй, я рад что уже хотя бы ставлю сам себе задачи и решу их решения и набиваю опыт в юнитях. Я морально готов к тому что моё виденье окажется говном и я начну делать что-то другое. Но пока за месяц я только убеждался в том что оно верное и самое главное - исполнимое.
Аноним 02/06/22 Чтв 02:05:58 #161 №804282 
>>804247
йоуу.. забей. лучше усыпи малого. земля пухом пупсику
Аноним 02/06/22 Чтв 04:12:40 #162 №804285 
За визуал скриптинг - будущее? Или это отмычка для людей с непрограммистким уровнем мышления? Можно ли будет переманить туда человека, которые знает c# и паттерны на уровне бога?
Аноним 02/06/22 Чтв 04:29:02 #163 №804286 
>>804285
если это реально ускоряет разработку - то да, но я эту хуету даже не тестил, боюсь
Аноним 02/06/22 Чтв 07:43:55 #164 №804289 
>>804204
отличный язык. очень гибкий и многофункциональный. есть одна маленькая проблема за полвека развития он оброс таким диким количеством костылей, костылей к костылям и странных основанных на давно забытых концепциях решений что выучить и использовать его нормально весьма и весьма проблематично. т.е. вместо разработки 3/4 времени будет уходить на борьбу с синтаксисом, непонятными ошибками и попытками разобраться что нахуеверченно в трехэтажных шаблонах стандартных библиотек.

ах да и синтаксис. в виду того что все новые фичи громоздились сверху старательно сохраняя старые для совместимости, тест программы состоит процентов на 90 из знаков пунктуации, каждый под свою задачу. вот даже банальное взятие поля у классы может выглядить как var.field, var->field, var::field в самых простейших случаях. а если начинаться закапываться в указатели то все ухудшается все быстрее и быстрее
Аноним 02/06/22 Чтв 07:57:46 #165 №804290 
>>804285
>Можно ли будет переманить туда человека, которые знает c# и паттерны на уровне бога?
Нельзя, потому что это по сути то же программирование, которое уступает в плотности расположения информации коду, ибо часто то что можно описать одной-двумя строчками там требует йоба-конструкции на весь экран.

Наоборот это потенциальный инструмент для заманивания нюфаков в программирование.
Аноним 02/06/22 Чтв 07:59:44 #166 №804291 
>>804289
>вместо разработки 3/4 времени будет уходить на борьбу с синтаксисом, непонятными ошибками и попытками разобраться что нахуеверченно в трехэтажных шаблонах стандартных библиотек.
Это называется знакомство с языком, по первой так в любом языке будет. На за какой язык нельзя сесть и начать хуярить как на родном.
Аноним 02/06/22 Чтв 08:10:01 #167 №804293 
>>804291
ну да. проблемма в том что для крестов этот "период знакомства" затянется на годы, а за это время выйдет еще пара стандартов которые добавят еще костылей на изучение которых понадобится новый "период знакомства"
Аноним 02/06/22 Чтв 08:12:02 #168 №804295 
>>804293
Тебе же не нужно взять весь язык, а только весьма ограниченный набор для разработки твоей игры, узнавать новый будешь по мере появления надобности в новых фичах.
Аноним 02/06/22 Чтв 08:21:23 #169 №804296 
>>804295
в крестах? где столько способов выстрелить себе в ногу?
Аноним 02/06/22 Чтв 10:41:49 #170 №804305 
>>804285
>Или это отмычка для людей с непрограммистким уровнем мышления?
Таскание лапши отличается от написания кода ручками только визуально, ну и по времени - пока ВИЗУАЛЬНЫЙ ПРОГРАММИСТ ищет в списке нужные операции для вычисления выражения 2 + 2, обычный уже половину игры напишет.
Визуал скриптинг удобен когда нужна наглядность - например в редакторах шейдеров, правда из лапши обычно жуткое говно генерируется.
Аноним 02/06/22 Чтв 11:37:27 #171 №804309 
>>804305
Ну то, что нагенерилось и переписать не проблема. Для шейдеров удобна именно визуализация, ибо работаем с визуальной информацией. Можно посмотреть результат на каждом шагу сразу, без чего отладка шейдера довольно муторный процесс. С кодом же этот аргумент не работает.
Аноним 03/06/22 Птн 09:50:44 #172 №804432 
Делаю гоночки с разрушениями (~Flatout), для андроидов
Какой рендер использовать, URP или стандартный? Где лучше производительность?
Аноним 03/06/22 Птн 16:13:36 #173 №804514 
>>804432
urp ставь
Аноним 03/06/22 Птн 17:24:28 #174 №804543 
>>804514
Почему
Аноним 03/06/22 Птн 17:36:55 #175 №804546 
>>804543
Потому что он теперь стандартный, юнитеки сами советуют им пользоваться. Вообще если планируешь играться с шейдерами, то юрп тебе точно нужен будет.
Аноним 03/06/22 Птн 18:30:40 #176 №804558 
LTS выходят в третьем квартале всегда? То есть осенью?
Аноним 03/06/22 Птн 18:50:24 #177 №804567 
image2 (1).jpg
>>804558
>LTS выходят в третьем квартале всегда? То есть осенью?
Откуда такие данные?
Аноним 04/06/22 Суб 09:00:27 #178 №804679 
>>804546
Только вывезут ли слабые девайсы такое? Скажем, где без УРП 20 фпс, будет ли с УРП те же 20?
Аноним 04/06/22 Суб 09:30:44 #179 №804686 
>>804679
Учитывая что УРП тебе просто даёт более широкие настройки, ты всё еще сможешь сделать для более слабых девайсов настройки попроще.
Аноним 04/06/22 Суб 12:19:53 #180 №804709 
>>804216
>>804209
Да поебать на указатели, дженерики в крестах - это просто кошмар, если бы они были адекватные, то язык был бы юзабелен.

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

Ну и что очень важно - в шарпе куча новых удобных фишек, с которыми писать код просто кайф, язык длч людей короче
Аноним 04/06/22 Суб 16:44:24 #181 №804760 
image
Почему эта залупа не работает в функции? Мне нужно чтобы скрипт хоть на сколько-то остановился, а нихуя не работает. Я дебил или разрабы юнити дебилы?
Аноним 04/06/22 Суб 17:19:01 #182 №804768 
image.png
Редактор NPC. Не готов пока.
Аноним 04/06/22 Суб 17:20:25 #183 №804769 
>>804768
Найс, ты же надеюсь инстансишь все дубли и массивы повторяющихся объектов, а не кнтр+с и кнтр+в?
Аноним 04/06/22 Суб 17:30:55 #184 №804775 
>>804760
Тебе сюда https://docs.unity3d.com/Manual/Coroutines.html
Аноним 04/06/22 Суб 17:30:58 #185 №804776 
>>804768
прон рогалик делоешь?
Аноним 04/06/22 Суб 17:31:19 #186 №804777 
>>804769
Что-то да, что-то нет. В идеале редактор должен сканировать папку с ассетами и добавлять различные элементы спрайта персонажа автоматически. Чтобы потом безболезненно добавлять новые элементы, аксессуары и тп.
Аноним 04/06/22 Суб 17:32:03 #187 №804778 
>>804776
Ремейк вот этого:
https://f95zone.to/threads/school-game-v0-930a-sloths-command.48601/
Аноним 04/06/22 Суб 17:32:09 #188 №804779 
Какие вы знаете мастхев ассеты для полноценной разработки? Например я слышал, что Bakery запекает свет, отражения и прочее, гораздо лучше встроенной в юнити запечки. Какие еще посоветуете?
Аноним 04/06/22 Суб 17:45:28 #189 №804782 
>>804779
вроде вот ещё топовые
https://assetstore.unity.com/packages/tools/ai/a-pathfinding-project-pro-87744
https://assetstore.unity.com/packages/tools/utilities/easy-save-the-complete-save-data-serialization-system-768
https://assetstore.unity.com/packages/tools/particles-effects/highlight-plus-134149
Аноним 04/06/22 Суб 18:16:09 #190 №804785 
image
>>804775
Благо дарю
Аноним 04/06/22 Суб 19:22:25 #191 №804800 
>>802780 (OP)
UnityScript же не поддерживается вроде, не?
Аноним 04/06/22 Суб 19:25:15 #192 №804802 
>>804800
Нет, уже какое-то время.
Аноним 04/06/22 Суб 19:26:08 #193 №804804 
>>804800
Лет 5 как не поддерживается.
Аноним 04/06/22 Суб 19:32:30 #194 №804807 
>>803046
я юнити никогда в жизни не открывал, но может там просто сравнивается направление и координаты аквалангиста, и если они соотносятся (струя попадает) то у аквалангиста просто переменная увеличивается и графон ему очки покрашивает?
Аноним 04/06/22 Суб 19:37:29 #195 №804810 
Юнити норм для визуальных новелл? Или лучше что попроще юзать?
И можно ли в нем генерить фоны для экономии на художнике?
Вон, написано что SpeedTree позволяет создавать ландшафты (я так понимюа 3Дшные).
Такой ландшафт - это по сути трехмерный фон?
Аноним 04/06/22 Суб 20:19:29 #196 №804825 
Посоны, такой вопрос: работаю в unity 2022 хочу вять курс по шейдерам - как не обосраться и выбрать нужный? Как я понимаю, есть отличия от того, что было в 2019
Аноним 04/06/22 Суб 20:21:31 #197 №804826 
>>804810
Смотря что у тебя в новелле будет, но я бы взял rpg maker(в основном на нем делают) или gamemaker(хотя, наверное, нет разница с юнити).
Проще всего на первом будет. Если цель - тупо визуальная новелла, мне кажется, нет смысл юнити брать
Аноним 04/06/22 Суб 20:24:05 #198 №804827 
>>804807
Ну можешь скрипт на это сделать. Проще всего - просветить луч из камеры в курсор(или мочу) и треггирить коллижн
Аноним 04/06/22 Суб 20:24:26 #199 №804828 
>>804810
https://gamerant.com/best-visual-novels-renpy-engine/
Аноним 04/06/22 Суб 20:26:24 #200 №804829 
>>804825
>Как я понимаю, есть отличия от того, что было в 2019
В самих шейдерах отличий нет, возможно есть разница в инструментах типа редактора шейдеров. Тебе надо учить сами шейдеры, их будешь делать ты а не редактор.
Аноним 04/06/22 Суб 20:33:10 #201 №804832 
>>804829
Спасибо. У меня была такая проблема: в 19 (старше, не помню) студии написал мелкий шейдер. Но когда пытался перенести его в 21, то ничего норм не работало, ибо как-то по-другому юнити начала работать с шейдерами.
Что это значит? Может быть такое, что начал использоваться другой(высокоуровневый) язык, который все равно компилится синтаксис, на котором работают шейдеры? (по какоу коррктному названию гуглить?)
Аноним 04/06/22 Суб 20:39:43 #202 №804834 
>>804832
Ну возможно ты в 2022 создавал проект не на стандартном рендере как в 2019, а в URP или HDRP, там действительно разница есть. У стандартного (Built in) рендера давно ничего не менялось.
Аноним 04/06/22 Суб 20:40:50 #203 №804835 
>>804834
Спасибо!
Есть смысл отдельно в HDRP вникать или нужно после того, как просто с шейдерами понятнее станет?
Аноним 04/06/22 Суб 20:44:58 #204 №804838 
>>804835
> HDRP

нет, если ты не пилишь фотореализм (или близко к нему)
Аноним 04/06/22 Суб 20:47:46 #205 №804839 
>>804835
Лучше сначала на стандарном рендере подрочиться, он проще. В новых рендер пайплайнах свои приколы, туда опытные то не спешат перекатываться. Тебе как новичку надо для начала просто основы понять.
Можешь это покурить, тут с картинками
https://docs.unity3d.com/Manual/SL-SurfaceShaderExamples.html
https://docs.unity3d.com/Manual/SL-VertexFragmentShaderExamples.html
Аноним 04/06/22 Суб 20:49:47 #206 №804841 
>>804839
Спасибо большое!
Есть еще доступ к курсу https://www.udemy.com/course/unity-shaders/,
видимо, его буду тыкать
Аноним 04/06/22 Суб 20:56:41 #207 №804845 
>>804827
Так я ничего не делаю пока что, я ему написал>>803046
Аноним 04/06/22 Суб 22:32:14 #208 №804873 
>>804810
Если у тебя новела с уймой мини игр, то стоит подумать о юнити, если сорт читалки, то бери ренпи и не выпендривайся.
Аноним 05/06/22 Вск 01:01:51 #209 №804895 
>>804873
Но в ренпай можно же характеристик вести и предметы сохранять?
И отношения фракций еще. Короче, тупо переменные и массивы.
Аноним 05/06/22 Вск 10:28:43 #210 №804898 
>>804895
В доки доки играл? Там на чистом пайтоне всё что угодно закодить можно, вплоть до удаления файлов девочек из ревности другой девочки.
Аноним 05/06/22 Вск 10:41:04 #211 №804899 
>>804895
https://www.youtube.com/watch?v=11Y5Mv5aIUE
Аноним 05/06/22 Вск 13:51:57 #212 №804916 
>>802780 (OP)
История такая: я раньше работал только на game maker studio ну и тыкал pygame. Меня убедили, что это детсад и надо переходить на юнити. Вот сажусь сегодня, смотрю туториалы и меня всё больше накрывает волна непонимания. Почему, чтоб просто передвинуть объект я не могу написать "x+=1", а должен мучаться с transform? Что за монстр этот аниматор? Почему я не могу просто сказать, чтоб объект сменил свой спрайтлист на другой, а должен истыкать 100500 кнопочек и чекбоксов в этом аниматоре?
В конце концов, почему я просто не могу нарисовать кодом картинку на экране?
Это я тупой и так реально удобне или что? Или мне попадаются такие туториалы?
Аноним 05/06/22 Вск 14:16:25 #213 №804918 
>>804916
Хз как ты там "работал" на гамаке догадываюсь что ни одной игры не сделал, но если написать transform.Translate(1,0,0) это для тебя мучение, то тебе лучше заняться по жизни чем-то другим.
Аноним 05/06/22 Вск 15:02:33 #214 №804942 
>>804916
Юнити эт детсад, переходи на анрил
Аноним 05/06/22 Вск 17:34:25 #215 №804962 
>>804916
Везде трансформы не только на юнити, это норма.
Вообще полноценный движок тем и отличается, что можешь делать очень многое, но придётся и вникать доого.
Аноним 05/06/22 Вск 17:48:40 #216 №804966 
>>804756
> В крестах нет говнодженериков, в крестах охуенные компайл-тайм темплейты
А до компиляции я ебу какие методы в моем классе должны быть, чтобы оно работало?
Вот в шарпе все просто - сразу пишешь в дженерике какие интерфейсы класс должен реализовывать или подтипом чего должен быть и заебись! И в свою очередь, юзая чужой дженерик, сразу видишь, какие интерфейсы твой тип должен реализовывать.
> В шарпе поприятней апи, но не надо драматизировать.
Намного приятнее!
> Что за шизу ты пишешь? Какую документацию напишешь такая и будет.
Ну вот в том же стле ниче не прописано приходится в убогие онлайн доки лезть. Себе то понятно, что я что угодно могу написать.
> Охуеть, поставь современную иде для крестов, например vs code и у тебя будет то же самое.
Ага, только проблема со стилем именования, и опять же - некоторые вещи только в компайл тайме покажет.

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

Поэтому, ящитаю С++ оправдан только для развития уже имеющихся проектов на С++, либо там где без него никак(и то я не шарю что там со скалой, растом, и че там ещё с хорошей производительностю есть...), либо тогда, когда надо дохуя программистов набрать(потому что С++еров немало)
Аноним 05/06/22 Вск 19:41:26 #217 №804983 
>>804962
К трансформам то я привынуть могу, но вот действительно нет никакого метода нарисовать изображение кодом? Потому что даже сделать такую простую вещь, как отрисовать инвентарь для меня обернулось целым событием
Аноним 05/06/22 Вск 19:53:22 #218 №804985 
>>804916
> Почему, чтоб просто передвинуть объект я не могу написать "x+=1", а должен мучаться с transform
Разделение объекта на компоненты это более чем логично.
Там не только "x" есть но локальное х например, а еще ротация и скейл.
А ещё есть RectTransform и там другое.

> В конце концов, почему я просто не могу нарисовать кодом картинку на экране?
>>804983
> но вот действительно нет никакого метода нарисовать изображение кодом? Потому что даже сделать такую простую вещь, как отрисовать инвентарь для меня обернулось целым событием
Можешь, но рисовать картинки кодом - хуета идея почти всегда, тем более для инвентаря. Почему бы готовый ui не использовать, не повесить кнопки с картинками в лейаут какой-нибудь?
Аноним 05/06/22 Вск 20:18:20 #219 №804987 
>>804985
Я еще много чего не знаю, потоиу сужу только по тому, с чем столкнулся
Мне не нравится работать с UI по нескольким причинам:
1) куча телодвижений в интерфейсе движка. Приходится истыкать кучу кнопочек, вместо пары строк кода.
2) мне пока непонятно каким образом этот интерфейс можно будет динамически изменять. Хочется легко менять внешний вид интерфейса, количество столбцов на одной странице, их масштаб, расположение и т.д
3) становится сложно ориентироваться в интерфейсе движка из-за такого количества всякого хлама.
Аноним 05/06/22 Вск 20:38:40 #220 №804988 
>>804987
> 1) куча телодвижений в интерфейсе движка. Приходится истыкать кучу кнопочек, вместо пары строк кода.
Ну надо покопаться, изучить как оно работает, да
> 2) мне пока непонятно каким образом этот интерфейс можно будет динамически изменять. Хочется легко менять внешний вид интерфейса, количество столбцов на одной странице, их масштаб, расположение и т.д
Лейауты для этого сделаны. Растягиваешь лейаут - и он растягивает и перемещает все внутренние элементы
Аноним 05/06/22 Вск 20:49:33 #221 №804991 
>>804987
>Приходится истыкать кучу кнопочек, вместо пары строк кода.
Это какие ты UI парой строк кода писал, "hp: 100"? Так это hello world а не UI.
Аноним 05/06/22 Вск 22:52:36 #222 №805004 
Не совсем по теме юньки, но кто в курсах про инфу о требованиях к моделям? К примеру сколько должно быть у ящика точек/треугольников? На текущей сцене в сумме?
Примерное понимание есть на уровне: Вот щас фпс упало с 120 до 80 значит плохо. В курсе за кол-во материалов, статику и оклюжен.
Может кто знает где такую инфу нарыть? Как раз знакомому 3дшеру подкину. Понимаю что это больше относится к 3д моделированию, но работаю с ним в юньке.
Аноним 06/06/22 Пнд 12:24:49 #223 №805066 
>>804987
>xочется легко менять внешний вид интерфейса
>парой строк кода
Эм, даже в упрощённом синтаксисе ренпи у меня ушло на полноценный интерфейс 2к строк кода. В юнити потребуется ещё больше, но это и есть цена управляемости каждого элемента ui.
Уймы параметров разметок, трансформов, анимации, динамичные блоки, разнообразный функционал - всё это требует понимания и отражения в коде.
Аноним 06/06/22 Пнд 12:39:21 #224 №805070 
>>805066
новый гуй очень не удобен в плане кода. одни рект трансформы чего стоят.

старый гуй делается чисто кодом, но сейчас эти описания только в тулзах редактора используется вроде бы.
Аноним 06/06/22 Пнд 12:49:04 #225 №805072 
Нубский вопрос.
Как мне получить список всех активных (галочка в свойствах) объектов определенного типа на сцене?
Аноним 06/06/22 Пнд 12:51:27 #226 №805073 
>>805066
> В юнити потребуется ещё больше, но это и есть цена управляемости каждого элемента ui.
Нахуя?? Там всё визуально настраивается без кода
Аноним 06/06/22 Пнд 13:11:56 #227 №805074 
>>805072
Определенного типа? FindObjectsOfType<Тип>().Where(obj => obj.activeSelf).ToArray()
Аноним 06/06/22 Пнд 15:19:46 #228 №805095 
Хочу чтобы противник ударял игрока когда подходит к нему достаточно близко, но делать каждый кадр в Update проверку на расстояние стрёмно, есть способ лучше?
Аноним 06/06/22 Пнд 15:26:04 #229 №805096 
>>805095
> но делать каждый кадр в Update проверку на расстояние стрёмно
Делай проверку в FixedUpdate. Ничего стрёмного в этом нет. Тем более в юнити уже давно добавили методы проверки, которые не выделяют память.
Аноним 06/06/22 Пнд 15:44:19 #230 №805097 
>>805072
>>805074
FindObjectsOfType<T>() возвращает только активные объекты, в которых T так же активно. Этой одной функцией можно обойтись.
Аноним 06/06/22 Пнд 15:52:26 #231 №805098 
image.png
>>805007
Вот из за таких уёбков и получается пикрил.
Аноним 06/06/22 Пнд 15:57:50 #232 №805100 
>>805097
public static Object[] FindObjectsOfType(Type type, bool includeInactive) ?
Аноним 06/06/22 Пнд 16:46:02 #233 №805108 
1607872732looped1607872731 (1).mp4
>>805098
Так то в киберпанке нормально работали с полигонами.
Аноним 06/06/22 Пнд 17:12:11 #234 №805113 
изображение.png
изображение.png
>>805098
От этого кислотно контрастного дизайна ассоциации с пикрил наружной рекламой.
Солидарность славянских дизайнеров?
Аноним 06/06/22 Пнд 20:23:46 #235 №805136 
Как можно реализовать постепенное изменение материала 3д объекта? Например есть белый куб, необходимо чтобы он снизу вверх постепенно становился оранжевым, может как-то через маску можно изменять материал объекта?
Аноним 06/06/22 Пнд 20:33:23 #236 №805138 
>>805136
Самое простое и быстрое это vfx. Чуть сложнее это своим шейдером.
Аноним 06/06/22 Пнд 20:48:59 #237 №805140 
>>805136
Пиши шейдер. Если текстурная развертка у куба подходит можно нацепить на куб второй материал с прозрачной текстурой оранжевого цвета и двигать ее оффсетом (это васянский способ), но у стандартного куда развертка не подходящая.
Аноним 07/06/22 Втр 07:54:42 #238 №805201 
>>805136
делой шейдоры, они очень простые, главное вкотится

https://www.youtube.com/watch?v=auglNRLM944
sage[mailto:sage] Аноним 07/06/22 Втр 09:26:38 #239 №805235 
>>805201
а на рабсийском языке есть кунтент? очень надо
Аноним 07/06/22 Втр 10:13:46 #240 №805239 
>>805235
Субтитры -> перевести -> русский
Аноним 07/06/22 Втр 10:36:25 #241 №805241 
>>805235
Яндекс браузер поставь, даун тупой, там голосовой перевод встроен
sage[mailto:sage] Аноним 07/06/22 Втр 10:43:57 #242 №805242 
>>805239
>>805241
долбаёбы ебучие, зачем мне машинный недоперевод?
Аноним 07/06/22 Втр 11:36:19 #243 №805247 
>>805242
Затем, что ты настолько тупой, что не можешь выучить простейший язык который даже пендосы со средним IQ в 40 поголовно знают
Аноним 07/06/22 Втр 12:17:57 #244 №805253 
>>805235
честно хз, быстрый гуглеж выдал статью на хабре как сделать подсветку выделенного объекта(вроде неплохая) и несколько видео
Аноним 07/06/22 Втр 12:30:35 #245 №805258 
emojisky.com-6839154.png
>>805097
Аноним 07/06/22 Втр 17:01:51 #246 №805328 
suka1.PNG
2022-06-07 16-57-31.mp4
Спиздил с интернета вот такой вот шейдер графчик, работает практически как надо но при вращении нижняя часть также двигается, как можно пофиксить шейдер граф чтобы такого не происходило и даже при вращении нижняя часть не двигалась?
Аноним 07/06/22 Втр 18:31:57 #247 №805339 
>>805328
не скажу что бы понил, но судя по всему для параметра, который отвечает за наложение надо брать мировые координаты.
там есть варианты с текстурными(привязаные к uv), локальными(к отдельному мешу) и мировые(не зависимые) тут походу взяты локальные что бы моделька закрашивалась от ног до головы не смотря на то как повернута.
Аноним 08/06/22 Срд 01:57:54 #248 №805565 
1.png
22.png
Анонессы, подскажите, пожалуйста, почему у меня навмеш движется отдельно от префаба? Навмеш находится на пустом дочернем объекте внутри префаба. Если это из-за дочерки, как связать дочерку с родителем, разве они не связаны, если дочка внутри префаба?
Аноним 08/06/22 Срд 02:57:45 #249 №805569 
>>805100
Там оно по дефолту false
Аноним 08/06/22 Срд 04:02:34 #250 №805573 
image.png
спасиб дядь гейб, выпустил блядь игру
осторожнее с прон играми, это пиздец
Аноним 08/06/22 Срд 04:07:40 #251 №805574 
>>805573
Hello,

After review, we will not be able to ship your game on Steam. While we strive to ship most titles submitted to us, we found that this title features themes, imagery or descriptions that we won’t distribute.

Regardless of a developer's intentions with their product, we will not distribute content that appears, in our judgment, to depict sexual conduct involving a minor.

While every product submitted is unique, if your product features this representation -- even in a subtle way that could be defined as a "grey area" -- it will be rejected by Steam.

For instance, setting your game in a high-school but declaring your characters are of legal age would fall into that category and be banned.

This app has been banned and cannot be reused. Re-submissions of this app, even with modifications, will not be accepted.
Аноним 08/06/22 Срд 08:29:47 #252 №805628 
>>805573
>>805574
Попробуй на других платформах, может они не такие мракобесы
Аноним 08/06/22 Срд 08:35:43 #253 №805630 
>>805573
>>805574
Это что же за порно в школе ты там выложить хотел?
Аноним 08/06/22 Срд 20:00:21 #254 №805788 
>>805328
если я тебя правильно понял, то ты просто убери сабстракт и передавай из позиции в сплит сразу, но тогда будет диапазон от -1 до 1, где 0 - это середина объекта

>>805565
ригидбоди с галочкой кинематик добавь
Аноним 08/06/22 Срд 20:21:38 #255 №805791 
>>805573
Проследуй нахуй, одебилевший перверт
Аноним 08/06/22 Срд 20:48:47 #256 №805801 
>>805788
Да не, видимо, не в этом дело. Меня не положение префаба относительно земли волнует, а то, что префаб не движется вместе с навмешем, движется пустой дочерний объект префаба, на котором навмеш стоит
Аноним 08/06/22 Срд 20:49:15 #257 №805802 
33.png
>>805801
збыл скрин
Аноним 08/06/22 Срд 21:28:39 #258 №805812 
Есть какой-то хоткей или быстрый способ перехода в просмотр канваса? Надоело каждый раз отдалять камеру когда хочу редактировать интерфейс и обратно приблежать когда что-то делаю на сцене
Аноним 08/06/22 Срд 21:35:26 #259 №805813 
>>805812
На сцене нажми F, камера отъедет так чтоб было видно объект целиком. Это работает на любом объекте и на канвасе тоже.
Аноним 08/06/22 Срд 21:37:42 #260 №805814 
chase.png
enemysmangerstates.png
hierarchy.png
testscript.png
Я попытаюсь объяснить понятнее, насколько мне хватит мозгов. Скрипты управляющие навмешем есть на первых двух скринах, там много не связанного с навмешем, потому решил сделать скрином то, что к нему относится. Закомментированные строки пока что не используются, потому что пытаюсь переделать скрипт. Закомментировал, потому что скрипт предусматривает движение не от навмеша, а от рутмоушена, то есть от встроенного в анимацию движения, навмеш, как я понимаю, только помогает ориентироваться в пространстве, чтобы не идти в стену. У меня нет рутмоушена, я пытаюсь отдать управление префабом полностью на навмеш. На третьем скрине иерархия внутри префаба. Надеюсь вводная часть понятна.

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

EnemyManager enemyManager;
NavMeshAgent enemyNavMeshAgent;
Rigidbody rb;
[SerializeField] private Transform movingTo;

private void Awake()
{
rb = GetComponentInParent<Rigidbody>();
enemyManager = GetComponentInParent<EnemyManager>();
}

// Update is called once per frame
void Update()
{
enemyManager.enemyNavMeshAgent.destination = movingTo.position;
}

Так я пытаюсь передать управление на навмеш, тупо одна строка на движение, она работает на простом кубе, но не работает на моем префабе (4 скрин). Видимо что-то конфликтует с новым скриптом.

Я не прописывал этот код внутри срипта на первом скрине, потому что destination жалуется на enemyNavMeshAgent, якобы его нет внутри enemyManager. Он там есть, иначе бы не работало вообще ничего с самого начала. Когда новый скрипт добавил на объект с навмешем и обращался к нему, ошибок не возникало, но движется не префаб, а пустой объект. Если не понятно, попробую объяснить что-то еще раз
Аноним 09/06/22 Чтв 00:22:33 #261 №805831 
image.png
Походу придётся-таки разобраться как работают кватернионы, я думал пронесёт, но нихуя.
Аноним 09/06/22 Чтв 00:33:51 #262 №805832 
>>805831
Советую на ютабе посмотреть, на самом деле там очень просто понимается когда на примере показывается.
Аноним 09/06/22 Чтв 07:12:26 #263 №805838 
image.png
почему массив не отображается в инспекторе? даже в дебаг моде нихуя нет, с листом тоже самое
Аноним 09/06/22 Чтв 07:24:25 #264 №805839 
>>805838
поставь [Serialize] или как он там пишется аттрибут левелу
Аноним 09/06/22 Чтв 09:26:22 #265 №805849 
>>805801
rigidbody повесь на родителя, я не уверен, лень проверять, вообще странно ставить агента куда-то в чаилды, если это основной компонент сущности, но ригидбоди обозначает, что объект со всеми его вложениями - единый, поэтому должно работать
Аноним 09/06/22 Чтв 12:40:48 #266 №805870 
>>805849
Он на родителе. Попробую короче перенести навмеш туда же и переписать обращения к навмешу в скриптах
Аноним 09/06/22 Чтв 13:25:08 #267 №805875 
>>805831
Вчера на собесе сказал, что мне проще вектор на матрицу поворота-переноса-масштаба умножить или попросту вложить перемещаемый объект в пивот вращения и вращать пивот, а не через кватернион.
Аноним 09/06/22 Чтв 13:36:17 #268 №805876 
Rotatinggimbal-xyz.gif
>>805875
кватернионы воопше довольно ебанутая абстрактная хуйня, которую проблематично "понять". но значительно упрощает все расчеты вращений посему широко используется
Аноним 09/06/22 Чтв 14:44:13 #269 №805895 
>>805870
Что-то я нахуевертил, не понимаю даже что. Переставил навмеш на родителя закомментировал одну строку enemyNavMeshAgent.transform.localPosition = Vector3.zero, которая, как я понимаю, мешает навмешу улететь в ебеня, но сейчас она стала наоборот отправлять префаб в ебеня на координату 0.0.0. Отключил и моб ПОШЕЛ блядь. При том, что я даже не прописал еще за кем ему идти. Он просто пошел по навмешу, как ему положено, избегая препятствия, ища короткий маршрут. Потом я естественно прописал enemyManager.enemyNavMeshAgent.destination = movingTo.position и destination по-прежнему жаловался, что ему надо быть в скрипте на объекте с навмешем, это понятно. Не понятно почему моб идет, если нет скрипта на движение. Очень блядь странно, но работает
Аноним 09/06/22 Чтв 14:49:47 #270 №805896 
>>805895
А разве не должна .transform.localPosition = Vector3.zero за нулевую координату считать центр объекта, на котором находится?
Аноним 09/06/22 Чтв 20:33:19 #271 №805974 
>>805896
Т.е функция которая отправляет центр обьекта в центр обьекта - концептуально.
Аноним 09/06/22 Чтв 21:44:41 #272 №805998 
image.png
Сап юнитач. Есть один куб, вокруг него летает шарик, я задал вращение вот так:

clampedPositon = Vector3.ClampMagnitude((sharik.position + speed) - kubik.position, 3.0f);
sharik.position = kubik.position + clampedPositon;

Вращение идёт почти как надо, за исключением того что сейчас поворот куба никак не влияет на угол орбиты шарика, мне грубо говоря нужно чтобы центр круга, вокруг которого кружит шарик, всегда смотрел ровно в "ебало" кубу. Пикрил нарисовал как мог.
Аноним 09/06/22 Чтв 23:06:29 #273 №806004 
>>805998
Раз пять прочитал и у меня вопрос, ты сам-то читал че написал? Шарик вращается вокруг куба, нада шобы круг вокруг которого вращается шарик был ебалом к кубу. Пиздец. Тебе че надо то ебаный икебастос, чтобы орбита шара менялась в зависимости от углов наклона куба чтоли? Еще хуйню какую-то нарисовал.
Аноним 09/06/22 Чтв 23:16:57 #274 №806005 
image.png
>>806004
>Тебе че надо то ебаный икебастос, чтобы орбита шара менялась в зависимости от углов наклона куба чтоли?
Да, вот та же схема вид сверху.
Аноним 09/06/22 Чтв 23:36:13 #275 №806006 
>>806005
Так получай направление куба и клампом со сглаживанием
поварачивай. Очень похоже по аналогии с синемашин камерой. Вскрой стандартный 3д контроллер от юников, там в коде глянь, уверен то что ты ищешь.
Аноним 09/06/22 Чтв 23:41:08 #276 №806008 
>>805974
Ну да. Если я хочу, например, прицепить один объект ровно в нулевую координату второго, а че?
Аноним 10/06/22 Птн 12:10:16 #277 №806184 
>>806008
фу, какая гадость
Аноним 10/06/22 Птн 13:10:21 #278 №806194 
.png
Подскажите как организовать механизмы переработки ресурсов, например как в печке из майнкрафта. Вот у нее есть 3 слота для предметов, 1 вход 1 под топливо и результат обработки, два слайдера на остаток топливо и прогресс обработки. Все это держится в UI, тупо на кнопках. Я понимаю как все это сделать при условии что эти самые печки будут всегда активны как геймобжект. Проблема появляется когда мне нужно допустим вырубить всю вкладку включая эти самые кнопки печей, и тогда сам процесс в печке не просчитывается. Как это все перетащить в пустой геймобжект который всегда активен я не понимаю. Поэтому мне нужен ваш совет.
Аноним 10/06/22 Птн 13:34:40 #279 №806203 
>>806194
Пчел что ты делаешь...
Это реализуется как и любой другой интерфейс: У тебя есть канвас с этим делом. Он включается когда активируешь предмет, и выключается когда заканчиваешь работу с предметом, всё.
Тебе без разницы какие предметы активны, где. У тебя Канвас(UI) отдельный компонент от гейм обжетков.
Так же за это всё дело отвечает какой нибудь менджер работы, куда поступает событие что вот игрок попытался использовать предмет, откроем ему UI. Сами же данные по предмету могут храниться как в нём же и тогда ссылка на него получается при взаимодействие, или же в пулле.

О О П
О
П
Аноним 10/06/22 Птн 13:44:19 #280 №806206 
>>806203
> Так же за это всё дело отвечает какой нибудь менджер работы, куда поступает событие что вот игрок попытался использовать предмет, откроем ему UI
У меня вся игра в UI, нет физических обьектов. Все в канвасе. Типа вкладку с печкой закрыл и все обьекты выключены, просчет работы в печке остановлен. Не понимаю как это все залинковать и вынести в невыключаемый обьект и потом присунуть обратно при открытии печки.
Аноним 10/06/22 Птн 14:09:39 #281 №806209 
>>806206
Еще раз, в чём проблема иметь отдельный канвас под печку, который будет не зависим от любых других объектов? Ты же в курсе ui и игра это не зависимые друг от друга вещи.
Просчёт и логика у тебя идёт в ядре игры, а не на элементах интерфейса.
Аноним 10/06/22 Птн 16:17:51 #282 №806242 
Анон только изучаю, вопрос тупой, вот у меня куб смаштабирован в прямоугольник, накинут на него материал, и материал так же смаштабирован! Криво тоесть, что надо нажать, чтобы материал накинулся равномерно?
Аноним 10/06/22 Птн 18:30:41 #283 №806267 
>>806242
У материала есть поля тайлинг и оффсет, их покрути.
Аноним 10/06/22 Птн 20:21:27 #284 №806285 
>>806006
Можешь объяснить логику как это работает? Я чёт с этими векторами запутался. Если можешь - с картинками.
Аноним 11/06/22 Суб 00:17:22 #285 №806312 
>>806267
А других вариантов нет? В 3д максе помню можно выбирать "тип" Накладывания текстуры, и один из них она просто кидается без привязки к скеллингу тела.
Как вы вообще тогда на прямоугольник равномерную кладку кирпичей делаете?
Аноним 11/06/22 Суб 01:16:02 #286 №806315 
>>806312
>Как вы вообще тогда на прямоугольник равномерную кладку кирпичей делаете?

В блендере
Аноним 11/06/22 Суб 01:34:14 #287 №806317 
>>806312
Так сделай в 3д максе что тебе надо и текстуры там запеки.
Аноним 11/06/22 Суб 10:48:50 #288 №806332 
>>806315
>>806317
Т.е. штатно, такая элементарщина, не решается??
Получается там совсем 3д нет, а если мне нужно буквально пиксель подтянуть, то нужно будет в сторонние пакеты лезть и всё заново пересохранять каждый раз, иначе всё текстуры по пизде пойдут в юнитях.
Аноним 11/06/22 Суб 12:24:40 #289 №806339 
>>806332
анрил энжин 5 скачай, может там 3д есть.
Аноним 11/06/22 Суб 12:35:48 #290 №806342 
>>806312
>Как вы вообще тогда на прямоугольник равномерную кладку кирпичей делаете?
Текстура должна быть seamless и тогда нормас всё натягивается. Погугли как их делать.
Аноним 11/06/22 Суб 12:44:12 #291 №806344 
when you forget youre retarded.png
>>805998
>>806005
Понял в чём моя проблема была. Суть в том что поворачивал шарик я при помощи мышки, а координаты от мышки брал только X и Y, а ось вокруг которой крутится шарик задаётся координатой Z, а так как она всегда была равна нулю, то и хули я удивлялся что при повороте куба шар продолжал наяривать вокруг той же оси.
Аноним 11/06/22 Суб 13:38:24 #292 №806350 
Почему я могу обратиться к public class Text — стандартный UI текста юнити, но не могу обратиться к public partial class TextMeshProUGUI — скачиваемый UI текст от юнити?

Работает:

public Text ammoInMag;
public Text reservedAmmo;

Не работает, пишет что нет референса к TextMeshProUGUI:

public TextMeshProUGUI ammoInMag;
public TextMeshProUGUI reservedAmmo;

Стандартный текст от юнити шакалится как шакал. Мне надо, чтобы скрипт сам циферки писал в две строки, патроны регулировал
Аноним 11/06/22 Суб 13:44:38 #293 №806351 
>>806350
Компонент текста и текстмешпро это абсолютно разные тексты, не совместимые. Повесь в интерфейсе текстмешовский текст и его уже можно засунуть в поле TextMeshProUGUI, "обычный" текст ты туда не засунешь.
Аноним 11/06/22 Суб 14:10:31 #294 №806356 
>>806350
Есть два компонента текста, вот их и спользуй.
У легаси текста это Text.text="Твой текст";
У текстмешпро это TextMeshProUGUI.text="Твой текст";
Аноним 11/06/22 Суб 15:31:21 #295 №806408 
>>806351
>>806356
Сработало только так
[Header("Ammo")]
public TMPro.TextMeshProUGUI ammoInMag;
public TMPro.TextMeshProUGUI reservedAmmo;
Аноним 11/06/22 Суб 15:54:20 #296 №806415 
image.png
А зачем вы разрабатываете свою игру?

Я подался в разработку в первую очередь потому что заебался ждать пока кто-то сделает что-то подобное - хочу проверить сложно ли это сделать и каково в это будет играть, потому что в голове это может казаться охуенным, но на деле быть калом. Естественно в тайне имею манямечты что игра продастся миллионами копий, но понимаю что такой исход маловероятен. А вы?
Аноним 11/06/22 Суб 16:49:24 #297 №806425 
>>806332
Не знаю>>806415
Я нищий и не хочу работать в техподдержке говна, люблю хорроры, очень не люблю многие теперешние хорроры. Считаю жанр истекает кровью и бьется в припадке, а спрос не падает. Ну а так как я в ужасах люблю упор на атмосферу, думаю лучше вернуть жанр в это направление, но не так, чтобы игрок симулировал ходьбу и смотрел сримеры.

Мое мнение, второй аутласт хорошо балансирует на атмосфере и геймплее, первый как ни странно чуть хуже, но вислблоуер топ по напряжению. Не помню как называлась игра, это было что-то типа браузерного флеша с графоном пс1. Там дядя с гамбургером ехал по лесу на велике куда-то и каждую новую петлю во времени, атмосфера становилась неприятнее в хорошем смысле, а звук так вообще жути нагонял. В бладборне мне очень понравился звук боссов, особенно Паарл — для меня его визги чересчур реальны, мне очень некомфортно от него. Поэтому звук в хорроре играет самую важную роль, визуалом можно пожертвовать, но не в писксель.


Chilla's Art делает хорошие атмосферные хорроры, не сильно геймплейные, как по мне, но на напряжении и саспенсе красиво играет. Развязки вялые, но мне нравятся. Я за агрессию и страх в хоррорах, не только за напряжение.

Бабки, бабки, сука, бабки. Само собой
Аноним 11/06/22 Суб 16:50:13 #298 №806426 
>>806425
>
>>806332
Не знаю

этого быть не должно было
Аноним 11/06/22 Суб 19:46:39 #299 №806477 
GeneratedTown - CharacterEditor - Windows, Mac, Linux - Uni[...].mp4
>>804768
Редактор кое-как заработал. Теперь нужно то же самое для одежды делать.
Художник пока деньги не просит, но надолго ли..
Аноним 11/06/22 Суб 22:44:53 #300 №806541 
>>806477
Просто ему нравится рисовать голеньких девочек :3
Аноним 12/06/22 Вск 00:06:56 #301 №806555 
image.png
Пацаны, напомните , как найти y-координату, если x известна (0>78), а радиус окружности - 1?
Аноним 12/06/22 Вск 01:08:37 #302 №806578 
>>806555
Рискну предположить что косинус(арксинус(0.78))
Аноним 12/06/22 Вск 01:10:24 #303 №806579 
>>806555
>>806578
Я тут учусь патроны считать, нахуй вы меня так унижаете своими формулами?!
Аноним 12/06/22 Вск 01:17:27 #304 №806582 
>>806555
y = r * sin( acos( x / r ) );

или
y = sqrt(r^2 - x^2);
Но тогда знак не определён.
Аноним 12/06/22 Вск 01:29:53 #305 №806586 
>>806582
Хотя он и в первом случае не определён. Для одного значения "x" на окружности может быть два значения "y" c разными знаками.
Аноним 12/06/22 Вск 05:29:06 #306 №806606 
Как вычесть экстра числа из нужного?

void Reload()
{
if (remainingAmmo >= 40)
{
ammoInMagazine = ammoInMagazine + 40;
remainingAmmo = remainingAmmo - ammoInMagazine;
}

else
{
ammoInMagazine = ammoInMagazine + remainingAmmo;
remainingAmmo = 0;
}

У меня 40 патронов в обойме, 120 с собой. Когда обойма пустеет, перезаряжаюсь и добавляю 40 патронов в обойму. Запас патронов уменьшается на 40, соответственно. Получается уже 40 и 80.

А если у меня 24 патрона в обойме, 120 с собой, я перезаряжаюсь, у меня выходит 64 патрона в обойме, 80 с собой. Само собой мне не надо, чтобы в обойме было больше 40 патронов, а к 24 добавилось лишь 16. Первым делом пришло на ум:

if (ammoInMagazine > 40)
ammoInMagazine = 40;

Но так лишние просто исчезают, а как дать шарпу понять, что у меня есть лишние цифры и мне их надо в другое место — хз. Или может есть что попроще для перезарядки?
Аноним 12/06/22 Вск 06:59:34 #307 №806613 
>>806606
Если лень с формулами думать, то сделай пару проверок
Аноним 12/06/22 Вск 07:00:10 #308 №806614 
>>806610
Если бы я знал, я бы спрашивал тут?
Аноним 12/06/22 Вск 07:53:55 #309 №806626 
>>806610
Ладно, твоя токсичность навела меня на мысль и я додумался таки

void Reload()
{
if (remainingAmmo >= 40 && ammoInMagazine == 0)
{
ammoInMagazine = ammoInMagazine + 40;
remainingAmmo = remainingAmmo - ammoInMagazine;
}

else if (remainingAmmo >= 40 && ammoInMagazine < 40)
{
int extras = 40 - ammoInMagazine;
ammoInMagazine = ammoInMagazine + extras;
remainingAmmo = remainingAmmo - extras;
}

else if (ammoInMagazine < 40 && remainingAmmo < 40 && remainingAmmo != 0)
{
int extras = ammoInMagazine - 40;
ammoInMagazine = ammoInMagazine - extras;
remainingAmmo = remainingAmmo + extras;

if (remainingAmmo <= 0)
remainingAmmo = 0;
}
}
Аноним 12/06/22 Вск 07:55:57 #310 №806628 
>>806627
Этой мой уровень, по-другому не умею еще
Аноним 12/06/22 Вск 08:13:18 #311 №806634 
>>806626
Какую-то залупу нагородил. У тебя половина условий дублируется. Нахуй тебе отдельный иф на ноль и не ноль патронов, если блок когда 40- остатки обоабатывает обе ситуации?
Аноним 12/06/22 Вск 08:18:03 #312 №806635 
>>806634
У меня появляется отрицательное число патронов и при перезарядке оно добавляет еще 40 патронов в обойму
Аноним 12/06/22 Вск 08:24:35 #313 №806637 
>>806635
Откуда у тебя появляется отрицательное число, если ты из максимального количество в обойме должен вычесть текущее, откуда у тебя там минус может быть лол, если текущее максимум равно максимальному?
Аноним 12/06/22 Вск 08:26:09 #314 №806638 
изображение.png
>>806637
Однако появляется. Сейчас нет
if (remainingAmmo <= 0)
remainingAmmo = 0;
Аноним 12/06/22 Вск 08:40:44 #315 №806642 
>>806638
Раз в год и палка стреляет.
Аноним 12/06/22 Вск 08:51:04 #316 №806644 
>>806638
Чел ты видимо не понял. У тебя про первый иф спрашиваю и следующий за ним елсе иф. Зачем тебе отдельныц иф для 0 патронов в обойме, если код добавить к лбойме разницу между максимальным значением и текущем обрабатввает оба результата?
Аноним 12/06/22 Вск 08:54:23 #317 №806647 
>>806638
Как ты собрался игры делать когда не можешь в голове прикинуть все нужные проверки логические для банальной перезарядки оружия?
Аноним 12/06/22 Вск 08:58:03 #318 №806649 
>>806638
Да и вообще, зарядить патроны в минус, а потом сделать вид что такого не было и вывести все в ноль это конечно не нормально.
Аноним 12/06/22 Вск 09:12:15 #319 №806651 
>>806638
Вместо этого должен быть код, который сравнивает количество недостающих патронов в магазине, с количеством оставшихся в кармане и если последних меньше прибавлять к магазину это меньшее число и не будет у тебя минусов, а код обработки отрицательных чисел твой немного обкакунькался
Аноним 12/06/22 Вск 10:16:17 #320 №806660 
>>806555
Корень из(1-0.78x0.78)

Потому что 0.78 это косинус по определению, а синус квадрат + косинус квадрат =1
Аноним 12/06/22 Вск 10:28:55 #321 №806666 
>>806651
Это оказалось тяжело, но я попытался упростить скрипт насколько мог:

void Reload()
{
if (ammoInMagazine < 40 && remainingAmmo >= 40)
{
int extras = 40 - ammoInMagazine;
ammoInMagazine = ammoInMagazine + extras;
remainingAmmo = remainingAmmo - extras;
}

else if (ammoInMagazine < 40 && remainingAmmo < 40)
{
int extras = 40 - ammoInMagazine;
if ((remainingAmmo - extras) > 0)
{
remainingAmmo = remainingAmmo - extras;
ammoInMagazine = ammoInMagazine + extras;

}

else
{
ammoInMagazine = ammoInMagazine + remainingAmmo;
remainingAmmo = remainingAmmo - (extras + (remainingAmmo - extras));
}
}
Аноним 12/06/22 Вск 10:37:49 #322 №806672 
>>806666
йододефицитный...
Аноним 12/06/22 Вск 10:44:27 #323 №806674 
>>806672
>код, который сравнивает количество недостающих патронов в магазине, с количеством оставшихся в кармане и если последних меньше прибавлять к магазину это меньшее число и не будет у тебя минусов

Все по канонам, че не так? Патроны в обойме и кармане сравниваются, разница вычитается из кармана в обойму, отрицалова больше нет, нулей нет
Аноним 12/06/22 Вск 11:18:00 #324 №806689 
Дожили, пориджи не могут написать алгоритм с простейшими арифметическими операциями...

void Reload()
{
if (_ammoInMagazine >= _magazineCapacity || _remainingAmmo <= 0) return;

int ammoTransfer = Math.Clamp(_magazineCapacity - _ammoInMagazine, 0, _remainingAmmo >= _magazineCapacity ? _magazineCapacity : _remainingAmmo);

_ammoInMagazine += ammoTransfer;
_remainingAmmo -= ammoTransfer;
}
Аноним 12/06/22 Вск 11:22:09 #325 №806692 
>>806666
Брат, братан, братишка.... У тебя 3 переменные. Максимальное количество патронов в магазине, текущее количество патронов в магазине, количество патронов в кармане. Из максимального количества в магазине вычитаешь текущее. Записываешь это число в новую переменную. Затем сравниваешь его с количеством патронов в кармане и если их хватает, то к патронам в магазине плюсуешь это число и вычитаешь из патронов в кармане. Если оно больше чем патронов в кармане, то эту переменная равна оставшимся в кармане, плюсыешь ее к патронам в магазине, а в кармане будет 0. Что ты там нахуевертил больше 40 меньше 40?
Аноним 12/06/22 Вск 12:25:01 #326 №806714 
>>806689
>Math.Clamp
Насколько эффективна эта операция? Просто если его иф-конструкция работает быстрее этой хрени это будет смешно.
Аноним 12/06/22 Вск 13:03:31 #327 №806727 
>>806714
Если это тонкота то моё почтение. Если ты просто дебил то попробую тебя заверить что по сравнению со всем остальным юнитиговном просирающимся каждый кадр какой-то сраный кламп в функции релоад если что-то и нагружет, то только твою мамашу проститутку дополнительной работой.
Аноним 12/06/22 Вск 13:40:05 #328 №806744 
>>806727
Я смотрю ты настоящий юнити-разработчик, щедро раскидываешь функции из библиотек словно хлебороб при посеве, ведь хули, тут одна функция ничего не сделает, там ничего не сделает, повторить N раз и игра лагает, ну и хуй с ней, не разбираться же в каждом таком вызове функции, пускай лагает, для юнити это норма.
Аноним 12/06/22 Вск 14:02:41 #329 №806749 
>>806744
Двачую этого >>806727 господина. Так и быть для тебя разжую. Бог дал тебе юнити и мозг самому затестить, но тебе лень. Ты можешь засунуть всю свою игру в апдейт и даже это не будет её просаживать.
Основные траблы которы жрут цп и гцп - Это графика и физика.
Твой говно код, если уж совсем не крутит какие то невообразимые создания и чеки массивов в апдейте просаживает общую кпд ну максимум на 5-10%, это прям макс.
Конечно если у тебя становится сотни объектов где у них в апдейтах что-то крутится, то да уже надо оптимизировать, но это уже другая история.
Аноним 12/06/22 Вск 14:13:55 #330 №806754 
>>806744
Я вижу ты настоящий долбоеб, если собрался оптимизировать процедуру которая будет вызываться в худшем случае раз в n секунд, и то если ты клон кримсонленда собрался делать. Кстати вызов Reload() сам по себе ТОРМОЗИТ, так что его надо инлайном делать.
Аноним 12/06/22 Вск 14:16:22 #331 №806755 
>>806749
>>806754
Ну да, ну да, а расчёт расстояния между векторами просят в квадрате вычислять просто так, ну делать нехуй долбоёбам просто.
Аноним 12/06/22 Вск 14:25:56 #332 №806759 
>>806755
Тебя никто ничего не просил и не попросит, так как ты ни один собес с такими познаниями не пройдешь. Вообще хочется представить ебало мамкиного оптимизатора который в юнити на шарпе вычисляет расстояния в квадрате ЧТОБ БЫСТРА БЫЛО. Наверное он в шейдерах тоже меняет клампы на ифы.
Аноним 12/06/22 Вск 14:37:23 #333 №806761 
>>806755
Нормально ты их попустил лол. По делу, так сказать.
Аноним 12/06/22 Вск 15:03:20 #334 №806771 
>>806759
Ты судя по всему еще ни один собес не прошёл если думаешь что там самое главное это знания, лол.
Аноним 12/06/22 Вск 15:09:01 #335 №806773 
>>806771
Это ты про собес в макдак? Туда устраиваться не собираюсь, давай советы вот этому >>806755 байтоебу.
Аноним 12/06/22 Вск 15:11:45 #336 №806776 
>>806773
Да ты никуда судя по всему не собираешься устраиваться. Джуном можно устроиться будучи практически нулевым, говорю с опыта.
Аноним 12/06/22 Вск 15:48:52 #337 №806783 
>>806689
>>806714

Ну ты выдал Math.Clamp, сам же видишь мои ифы, я не знаю че такое Math.Clamp даже. Учту, что оно есть, спасибо

Бля, че я как спать ухожу, сразу срачи начинаются
Аноним 12/06/22 Вск 19:00:45 #338 №806828 
yamero.jpg
Делай рассчёт патронов в квадрате, а лучше в кубе.
Аноним 12/06/22 Вск 21:10:40 #339 №806868 
43.png
>>802780 (OP)
Сейчас пошел второй месяц как я изучаю основы движка на примере различных Microgames, иду полностью по обучалке learn unity и как я понимаю, то там второй этап уже будет непосредственно завязан на кодинге C#? Как он там, толковый или же С# нужно будет отдельно на сторонних ресурсах дрочить, на learn unity огрызок будет? Как вообще оцениваете все эти Pathways на unity learn для полных самоучек? Возможно ли с них толково обучиться ремеслу геймдева или же то такое?
Аноним 12/06/22 Вск 21:30:58 #340 №806871 
>>806868
ты в интерфейсе редактора разобрался? если да то всё начинай делоть игру, появятся какие-то вопросы, то гуглишь на английском, всё
Аноним 12/06/22 Вск 21:47:20 #341 №806877 
>>806868
Я считаю что если не задерживаться и приходить по 2-3 миссии за неделю то вполне неплохой ознакомительный курс. Креатив кор скипать не советую, ибо там рассказывают про юрп, шейдеры, редактор шейдеров, анимации - лучше имхо всё это знать. Как пройдёшь прыгай в разработку своего проекта.
Аноним 12/06/22 Вск 21:51:18 #342 №806879 
>>806877
Та я так-то и не собираюсь ничего скипать, а хочу полностью со всем обучением ознакомиться, тут вопрос в другом - не проебую ли я в пустую время на обучение в learn unity, может для непосредственно работы в геймдеве в качестве разработчика unity все идут по какому-то другому пути или learn unity - это база?
Аноним 12/06/22 Вск 21:57:50 #343 №806880 
>>806879
Я довольно дохуя проходил курсов по юнити и pathways считаю очень неплохим для ознакомления, вот только он мог быть сильно короче имхо. Плюс видосы с трансами и неграми где они рассказывают какую-то хуйню про свой опыт я лично нашёл бесполезными.
Аноним 12/06/22 Вск 22:00:32 #344 №806881 
>>806880
Лол, я на подобных видосах, когда они начинают рассказывать свой "жил-был" агрессивно перематываю и только таким макаром эти видосы осиливаются.
Аноним 12/06/22 Вск 22:02:18 #345 №806882 
>>806881
Я в какой-то момент просто прекратил смотреть и нажимал кнопку "пройдено" не глядя.
Аноним 12/06/22 Вск 22:30:01 #346 №806886 
>вместо того чтоб делать игры смотрят видосики для дебилов
Ебала вкатывальщиков представили?
Аноним 12/06/22 Вск 22:37:12 #347 №806889 
>>806886
Там даётся неплохая база, чтобы ты просто знал куда в случае чего лезть и что гуглить. Сужает вопросы типа "как заставить объект светиться" до конкретного вопроса "как создать светящийся шейдер в юрп" и так далее.
Аноним 12/06/22 Вск 23:18:15 #348 №806904 
>>806889
>"как заставить объект светиться"
Правильный ответ: скачать ассет. Но хуй, теперь у нас есть 500 человек которые могут перетянуть лапшину из одного места в другое, но нет ни одного игродела.
Аноним 12/06/22 Вск 23:37:36 #349 №806905 
>>806904
>Правильный ответ: скачать ассет.
На каждый случай ассетов не наберётся. Если ты не делаешь совсем дженерик парашу то придётся учиться делать что-то самому.
Аноним 13/06/22 Пнд 01:36:23 #350 №806913 
image.png
wtf.mp4
Хочу крутануть объект по полуокружности.
В коде реализовал такое:
Координата "x" плавно меняется с 1 до -1.
Координата "z", рассчитывается по формуле, которую мне скинули пацаны выше: y = sqrt(r^2 - x^2). Радиус у меня 1.
Крутится, но почему-то ускоряется ближе к конце. Видео немного fps урезало, поэтому не очень заметно, наверное, но ускорение точно есть.
Есть что-то, что я упустил? Вроде ж все четенько, по формуле
Аноним 13/06/22 Пнд 01:43:09 #351 №806914 
Desktop 2022.06.13 - 01.41.11.07.mp4
Вот тут более наглядно. Видно (надеюсь), что когда шар подходит к y = 0, то он ускоряется, как будто рывком подкатывает
Аноним 13/06/22 Пнд 01:55:09 #352 №806915 
>>806913
Через синус и косинус координаты находи, двигай угол на дельтатайм. Ты нагородил говна которое тебе не нужно вообще.
Аноним 13/06/22 Пнд 02:11:06 #353 №806916 
image.png
>>806915
Написал формулу, которую скинул анон выше (>>806582 y = r * sin( acos( x / r ) );). Она работает, но так же почему то есть ускорение.
Хз, в общем
Аноним 13/06/22 Пнд 02:13:06 #354 №806917 
Ок, потом попробую менять угол, типа с 0 до 180.
Аноним 13/06/22 Пнд 02:23:31 #355 №806918 
image.png
image.png
Нашел готовый код, крутит охуенно, с постоянной скоростью, можно даже крутить по эллепсу. Эх, как же обидно, что я не дошел до этого своим умом
Аноним 13/06/22 Пнд 02:27:26 #356 №806919 
image.png
Упростил еще код, вот этот крутит по эллипсу из-за 0.5f вместо 1.
Аноним 13/06/22 Пнд 02:38:11 #357 №806920 
>>806916
>но так же почему то есть ускорение.
Потому что координата "x" у тебя зависит от времени линейно, а координата "z" – нелинейно.
Аноним 13/06/22 Пнд 11:42:32 #358 №806983 
>>806904
Лолблядь, так тут ещё дебил. Лучше бы реально хоть с БАЗОЙ ознакомился для начала прежде чем кукарекать на кого-то в треде, создатель хуев. Даже такой хуйни не знает.
Аноним 13/06/22 Пнд 11:51:09 #359 №806992 
>>806919
Используй Quaternion.AngleAxis()
Аноним 13/06/22 Пнд 14:22:57 #360 №807075 
Гипотетическая ситуация - я накачаю из интернета ворованных ассетов, которые продаются в Ассет сторе, сделаю с ними игру и релизну в стиме за деньги. Меня как-нибудь смогут раскрыть? Вообще, есть ли возможность проверить, используется в игре купленный ассет или ворованный?
Аноним 13/06/22 Пнд 14:37:05 #361 №807089 
>>807075
я точно не знаю, можно спалить или нет, но даже если и спалят то что дальше? разрабам ассетов делать нехуй, сидеть мониторить игры и из магазина не выкинут из-за этого
Аноним 13/06/22 Пнд 14:41:54 #362 №807092 
>>807089
>разрабам ассетов делать нехуй
Разрабы некоторых ассетов оперативно репортят ссылки на файлопомойки с их ворованными ассетами, так что тут не всё однозначно.

>>807075
>релизну в стиме за деньги
Со своих миллиардных прибылей сможешь выделить 20 баксов на покупку спижженых ассетов?
Аноним 13/06/22 Пнд 14:59:33 #363 №807095 
50.mp4
>>802780 (OP)
Я наверное тупой, но объясните, как заставить двигаться элементы на платформе как бы.
Как бы игрок имеет Rigidbody и платформа тоже, но почему она его не двигает?
Уже и материалы с фриквенси поделал, и всё такое, не понимаю
Аноним 13/06/22 Пнд 15:57:10 #364 №807107 
>>807092
> Со своих миллиардных прибылей сможешь выделить 20 баксов на покупку спижженых ассетов?
Да я не против, но с российских карт не оплатить. Можно купить через посредников, но у посредников то другие имена и карты, в чём тогда разница между ворованным ассетом с файлопомойки и купленным другим человеком из другой страны, который переслал мне этот ассет?
Аноним 13/06/22 Пнд 17:02:49 #365 №807127 
>>807107
просто скажи, что у друга диск брал
Аноним 13/06/22 Пнд 17:20:14 #366 №807133 
>>807107
>в чём тогда разница между ворованным ассетом с файлопомойки
Тем что ты сможешь доказать факт покупки лицухи. Тут спор ни о чём, у тебя игры то нет и неизвестно когда будет. Ассет он из РФ оплатить не может, а бабло со стима получать может.
Аноним 13/06/22 Пнд 17:24:41 #367 №807135 
Я сделал несколько вертексны и сюрфейсных шейдеров в обычном проекте юнити. Хочу добавить туда URP - как я понимаю, Cg работать не будет, тк используется HLSL.
Долго ли и сложно будет переписывать\править свои шейдеры?
Аноним 13/06/22 Пнд 17:39:40 #368 №807138 
>>807135
Недолго, различия больше визуальные по синтаксису (были одни названия функций/типов, стали другие), а по логике практически нет. Переписывал легаси имаге эффект на постпроцессинг, там тоже на HLSL надо перепиливать чтоб работало. Не сказать что было очень сложно.
Аноним 13/06/22 Пнд 22:25:04 #369 №807196 
>>807095
OnCollisionEnter - у игрока появляется родитель, платформа.
OnCollisionExit - у игрока пропадает родитель.
Аноним 13/06/22 Пнд 23:22:55 #370 №807200 
Аноны, подскажите, пожалуйста. У меня есть коробка патронов, которая на "Е" подбирается и добавляет патроны:

void OnTriggerEnter(Collider other)
player.canInteract = true;

void OnTriggerStay(Collider other)
{
if (Input.GetKeyDown("e"))
{
Interact();
}
}

void Interact()
{
Debug.Log("player has interacted with object");
shooting.remainingAmmo = shooting.remainingAmmo + 80;
Destroy(gameObject);
}

void OnTriggerExit(Collider other)
player.canInteract = false;

player - другой скрипт с булевой canInteract

В принципе, это вся часть кода, которая отвечает за подбор, другое опустил. Технически работает как должен, я жму "E" в зоне тригера, gameObject с патронами пропадет, в кармане +80 патронов. Но по какой-то причине, которую я не осознаю, нажатие "Е" не с первого раза, иной раз и не с десятого, удаляет коробку и дает патроны. Проверял булеву, она меняет true и false как нужно, задержек нет, ошибок с ней нет, а вот if (Input.GetKeyDown("e")) { Interact(); } видимо тупит. В чем может быть проблема?
Аноним 13/06/22 Пнд 23:46:04 #371 №807207 
>>807200
Хотя вроде бы я понял, дело все же в player.canInteract было. Я на входе и выходе из тригера поставил, но по сути булевая никак не влияет на Interact(), ее ведь нет в методе OnTriggerStay даже. Поменял на:

void OnTriggerEnter(Collider other)
player.canInteract = true;

void OnTriggerStay(Collider other)
{
if (Input.GetKeyDown("e") && player.canInteract == true)
{
Interact();
}
}

void Interact()
{
shooting.remainingAmmo = shooting.remainingAmmo + 80;
Destroy(gameObject);
player.canInteract = false;
}

void OnTriggerExit(Collider other)
player.canInteract = false;

По-моему нет больше задержек, но я не уверен
Аноним 13/06/22 Пнд 23:54:46 #372 №807208 
>>807207
Не, метод я, конечно, связал с булевой, но задержки не пропали
Аноним 14/06/22 Втр 01:59:15 #373 №807231 
>>807208
Вроде как OnTriggerStay и прочие Stay, а также FIxedUpdate вызывается через физический движок, а он по дефолту 25 раз в секунду отрабатывает а не все 60. То есть ты жмешь кнопку, а в этот момент OnTriggerStay был на кулдауне и нажатие не отработается. Нажатия кнопок надо чекать каждый кадр в методе Update.
Аноним 14/06/22 Втр 05:29:55 #374 №807238 
>>807207
если уж не можешь по другому, запускай шкуратину при входе, а не он тригер стэй
Аноним 14/06/22 Втр 15:03:49 #375 №807304 
Как вы в 3д задаете различные тайлы для поверхностей? Допустим, у меня есть плоскость - частично лес, частично земля, как ее добавить? Отдельный объект для кпждой текмтуры?
Аноним 14/06/22 Втр 15:28:51 #376 №807305 
>>807304
"классический" тайлмеп делается мешем из квадов и UV координатами тайла в атласе. звучит страшно, но делается элементарно
вот древнее видео что нагуглилось.
https://www.youtube.com/watch?v=haelMvLyqDQ

древнее - потому что сейчас юзают встроенный грид/тайлмеп который сделает все за тебя. но тут можно делать не плоские тайлмепы а если и повозится с шейдерами то можно и всякого интересного намутить
Аноним 14/06/22 Втр 16:10:35 #377 №807308 
>>807305
Спасибо!
Аноним 14/06/22 Втр 21:45:32 #378 №807357 
image.png
Не получается сделать наложение двух камер друг на друга. Вроде настроил, но они перекрывают друг друга и не работают вместе. Знает кто как исправить?
Аноним 14/06/22 Втр 22:03:57 #379 №807359 
>>807357
Простой способ через приоритет Depth с игрой со слоями.
Такой же простой через синемашину брэйн.
Аноним 14/06/22 Втр 22:34:21 #380 №807365 
Блжад, как траву то нормально сделать?
Аноним 14/06/22 Втр 22:52:54 #381 №807368 
>>807365
Ассет скачай.
Аноним 14/06/22 Втр 22:58:03 #382 №807369 
Вопрос: а если запустить какой-нибудь эмулятор геймпада, можно ли будет протестировать ввод с геймпада Xbox?
Аноним 14/06/22 Втр 23:08:18 #383 №807370 
>>807369
Показалось "эмулятор геймдева", хотел юнити посоветовать
Аноним 14/06/22 Втр 23:21:19 #384 №807371 
>>807365
Либо планкой с текстурой. 3д моделью. Шэйдером.
Планка изи. Модель жрать будет. Шэйдер лучшее, но надо писать.
Аноним 14/06/22 Втр 23:29:32 #385 №807375 
>>807369
Купить гейпад за 500р не?
Аноним 14/06/22 Втр 23:38:07 #386 №807376 
>>807371
Ну я сделал спрайт/текстуру, которая шатается туда - сюда шейдером, но все равно уебищно. Такое чувство, что просто не могу нарисовать норм траву. Деревья норм выглядят, трава - уебищно
Аноним 14/06/22 Втр 23:54:12 #387 №807381 
1) на чем проще всего без щапары делают low poly модели?
2) чтобы делать ландшаыт, горы и тп, нужны сторонние инструменты?
Аноним 15/06/22 Срд 00:00:06 #388 №807382 
>>807376
>не могу нарисовать норм траву
гугл -> grass png
Аноним 15/06/22 Срд 00:32:09 #389 №807385 
А правда, что для разработки шейдеров нужно не только хорошо разбираться в программировании и красиво рисовать, но и шарить в матане?
Аноним 15/06/22 Срд 00:32:53 #390 №807386 
>>807370
Это скорее про годот. Вроде игры разрабатываешь, но игр не выходит.
Аноним 15/06/22 Срд 00:33:26 #391 №807387 
>>807381
> чтобы делать ландшаыт, горы и тп, нужны сторонние инструменты?
Терреин же. Встроен в Юнити по дефолту.
Аноним 15/06/22 Срд 01:45:09 #392 №807391 
>>807375
> Купить гейпад за 500р не?
Не, денег нет. А если появляются то сразу уходят на лекарства
Аноним 15/06/22 Срд 04:39:02 #393 №807396 
>>807381
1. На том, что знаешь. Выучишь блендер, станет проще в блендере.
2. Можно в юнити сделать. Можно в блендере, если лоу поли ландшафт
Аноним 15/06/22 Срд 05:41:34 #394 №807397 
>>807396
> Можно в блендере, если лоу поли ландшафт

есть ассет кстати, вроде неплохой https://assetstore.unity.com/packages/tools/terrain/polaris-2021-low-poly-mesh-terrain-editor-196648
Аноним 15/06/22 Срд 07:05:40 #395 №807402 
>>807308
накатал вчера, но чет не захотело отправлятся.

добавлю технических подробностей для разьяснения.
рисовать все кучей отдельных объектов - ОЧЕНЬ ОЧЕНЬ ОЧЕНЬ плохая идея. современные видеокарты очень мощный инструмент для паралельных вычислений с тысячами "ядер". проблема в том что эти все ядра могут делать одновременно только одну задачу(очень упрощенно, но сойдет). т.е. условно говоря пока ты посылаешь на отрисовку один объект, тот же условный тайл, который квад, т.е. 4 вертекса, ты задействуешь 4 "ядра" для расчета вертексов, потом количество ядер соответствующее количеству пикселей объекта. остальные скучают. посему что отрисовка 1 большого сложного объекта что отрисовка 1 простенького маленького займет одинаковое время при прочих равных условиях(одинаковый материал), посему тыща(а это всего лишь тайлмап 100х100) отдельных объектов займет в тыщу раз больше времени чем одна цельная сложная карта. просто потому, что у тебя видеокарта все это время будет загружена на доли процента. это называется "draw call" - запрос на отрисовку. цель тут - максимально сократить количество этих самых запросов. современные движки стараются максимально это оптимизировать через инстансинг и обьединение мешей с одинаковым материалом. т.е. если в юнити стоит галочка у материала "инстантиэнт" то оно постарается максимально объединить все в один драукол, что обычно работает, но иногда не так как могло бы. ну и ессно требует отдельных расчетов.
Аноним 15/06/22 Срд 08:41:00 #396 №807408 
>>807385
Ну я вот щас начал разбираться. Для базовых вещей достаточной школьной программы. Для более сложных - нет, но я видел курс на udemy по математике для геймдева, там от векторов до квартенионов, думаю его пройти
Аноним 15/06/22 Срд 08:46:29 #397 №807409 
>>807402
Спасибо! В целом представлял про параллельные вычисления видяхи, но надо еще почитать
Аноним 15/06/22 Срд 09:57:52 #398 №807412 
>>807381
В блендере есть генераторы всяких камней, травы, деревьев и прочих однотипных объектов на геонодах. Как это работает можешь увидеть в куче видосов.
https://www.youtube.com/watch?v=5qBl0ocM0ik
Аноним 15/06/22 Срд 20:26:30 #399 №807494 
image.png
Пчелы, курсы всяких гейбоксов вообще годная вещь или денях своих не стоят, т.к. всё есть в интернетах?

Хочу пока как хобби для себя заняться кое чем на юнити, если эт важн в данном контексте.

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

написал в старый тред и сижу сутки ждут ответа, пиздец
Аноним 15/06/22 Срд 20:45:53 #400 №807495 
>>807494
>т.к. всё есть в интернетах
На самом сайте юнити всё есть.
Аноним 15/06/22 Срд 21:53:07 #401 №807499 
>>807494
Если не жалко денег, самоё лучше что есть по кпд это заплатить их пчелику который тебе пару вечеров будет рассказывать про юньку.
Далее по списку бесплатные курсы от юников.
Далее видео плейлисты аля делаем игру с нуля от известных челиков.
Ну и на дне как раз платные курсы, инфоцыгани и подобный шлак.
Аноним 16/06/22 Чтв 00:45:09 #402 №807508 
А я месяц назад решил прочитать весь мануал юнити от начала и до конца. Сейчас остановился на https://docs.unity3d.com/2020.3/Documentation/Manual/Layers.html.
В таком же духе читаю манул блендера.
Ни разу не пожалел. Много чего полезного. И хотя с юнити уже пару лет работаю, я только из ютубчика брал инфу, ну и сам иногда лазил в манул.
Аноним 16/06/22 Чтв 01:44:28 #403 №807510 
>>807508
Например?
Аноним 16/06/22 Чтв 12:08:45 #404 №807548 
>>807494
Мой опыт в разных областях показывает, что курсы как формат скорее не работают, чем работают.
Причина - всё слишком завязано на контекст. Поэтому с ходу возникает много проблем которые не описаны в курсах, но которые тем не менее легко гугляться.
Как итог ты можешь сэкономить время и деньги, гугля то что нужно в конкретный момент. Лучше вместо курсов прочитать внимательно документацию, это избавляет от множества шишек.
Аноним 16/06/22 Чтв 12:10:40 #405 №807550 
Мде. Ну да получается.
Аноним 16/06/22 Чтв 13:28:52 #406 №807577 
>>807548
Двачую, нужно на конкретных задачах подгугливать решения.
Я после универа подал на тестировщика с пометкой "хочу быть разрабом", мне сразу предложили тестовое задание на Юнити, я за 2 недели с гуглом-ютубом сделал (типа, отсюда взял управление, отсюда взял спам и поведение ботов, отсюда взял миникарту), меня взяли.
В итоге за год на 40 проектах со всеми возможными ситуациями столкнулся как с точки зрения фич и скриптов, так и с точки зрения плагинов аналитики-рекламы и оптимизации проекта (мсы, бачи, оперативка)
Аноним 16/06/22 Чтв 15:00:03 #407 №807594 
Аноны, в связи со скудными познаниями шарпа не могу понять, как сделать нормальную систему навыков, зависящую от статов. Есть два класса: stat и skill, у обоих есть поле со значением. Как нормально сделать так, чтобы значение skill обновлялось с изменением значения stat? Что-то вроде фоллачевской системы а-ля "Без оружия = 65 % + (1 % x (ЛВ+СЛ)/2)". Конструктор-то я написал, а вот обновление как? Писать доп. метод в skill и хуярить с ним эвент OnStatChange в Update у MonoBehaviour? Уже третий день пытаюсь эту хуйню нагуглить.
Аноним 16/06/22 Чтв 15:25:49 #408 №807602 
>>807594
Задача немного расплывчатая, но попробуй представить skill и stat просто как набор данных. Не класс, а структура данных без логики. И далее у тебя есть уже система/паттер стратегия в виде класса, который производит расчёты на основе текущих значений skill и stat. Если тебе нужно для интерфейса вывести новые значения, то просто вызываешь некий метод Refresh, который означает, что данные изменились.
Аноним 16/06/22 Чтв 15:34:33 #409 №807603 
>>807594
Так тут же всё ясно как божий день. Производишь перерасчёт формулы как только что-то меняется зависимое в ней.
Герой перераспределил навыки - Обновляй. Повесили дебаф - Обновляй и т.п. Надел предмет - Обновляй.
Аноним 16/06/22 Чтв 16:00:43 #410 №807606 
>>807603
Иф ю хомлес, джаст бай э хаус
Аноним 16/06/22 Чтв 17:00:20 #411 №807657 
>>807594
сделай ход конем.
https://pastebin.com/RxQbm7q6

храни "версию" статов и пересчитывай скилы когда версия не совпадает
Аноним 16/06/22 Чтв 19:02:30 #412 №807687 
>>807657
Чтото жуткий говно код, оверкилл со скритаблом и нумераторами для такой задачи которая решается одним скриптом на объекте.
Аноним 16/06/22 Чтв 20:52:51 #413 №807699 
>>807594
Класс character, в нем допустим филд dex класса stat и несколько филдов класса skill, зависимых от dex. В классе stat метод add в нем помимо увеличения самого стата прописать вызов метода recalculate из каждого зависимого от dex скилла. Я планировал делать так, но пока нет компа под рукой, чтобы проверить.
Аноним 17/06/22 Птн 07:01:00 #414 №807735 
>>807687
https://pastebin.com/xNYJ0jNz
что ты понимаешь в оверкиле...
Аноним 17/06/22 Птн 08:03:32 #415 №807740 
>>807594

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

[SerializeField] int ЛВ;
[SerializeField] int СЛ;

int допОчкиБезОружия; //прокачка навыка
public int Без оружия => 65 % + (1 % x (ЛВ+СЛ)/2) + допОчкиБезОружия;


Аноним 17/06/22 Птн 08:04:55 #416 №807741 
>>807735
https://pastebin.com/GwRsHdQL
финальный вариант. в шесть утра спат нада
Аноним 17/06/22 Птн 08:05:19 #417 №807742 
и2.png
и1.png
Опять у меня проблема, двач. Опять, патроны. узнали? согласны?

[Header("Ammo")]
public TMPro.TextMeshProUGUI patroshki;

void Update()
{
if (Input.GetKeyDown("e") && player.canInteract == true)
{
Interact();
}
}

virtual void OnTriggerEnter(Collider other)
{
if (player == null)
{
player = other.gameObject.GetComponent<PlayerMovement>();
shooting = other.gameObject.GetComponentInChildren<Shooting>();
}

if (player != null)
{
interactableImage.SetActive(true);
patroshki.gameObject.SetActive(true);
player.canInteract = true;
}
}

virtual void OnTriggerExit(Collider other)
{
if (player == null)
{
player = other.gameObject.GetComponent<PlayerMovement>();
shooting = other.gameObject.GetComponentInChildren<Shooting>();
}

if (player != null)
{
interactableImage.SetActive(false);
patroshki.gameObject.SetActive(false);
player.canInteract = false;
}
}

virtual void Interact()
{
shooting.remainingAmmo += 80;
Destroy(gameObject);
//player.canInteract = false;
}

В общем, когда я жму "Е" происходит интеракт с патронами, они плюсуются в карман. Проблема с ошибками, которые интеракт спамит в консоль, если "Е" нажата вне радиуса тригера коробки с патронами (см 1 скрин). Если игрок хотя бы раз окажется в зоне тригера коробки, эта самая коробка не будет спамить в консоль никогда, поэтому на скрине одна из ошибок меньше спамилась. Я так понял, что тригер коробки детектит скрипт PlayerMovement на игроке, получает свой референс и перестает срать в консоль, что тригеру не знает кому отдаться. Я правильно понял? Как это поправить, если мне надо на тригер ентер детектить скрипт игрока для интеракта?
Аноним 17/06/22 Птн 08:08:01 #418 №807743 
>>807742
с другой стороны ошибка говорит, что проблема с 17 строке кода, хз че там не так
Аноним 17/06/22 Птн 08:09:28 #419 №807744 
>>807743
17 строка это if (Input.GetKeyDown("e") && player.canInteract == true)

блядь какой же двачь уебанский форум с точки зрения переписки, ни редактуры сообщения, ни верстки нормальной, пиздец просто. Лишь в b срать удобно
Аноним 17/06/22 Птн 08:26:23 #420 №807746 
>>807741
>>807735
А вот это мне нравится, больше походил на реальную реализацию. Но оверкилл, да.
Аноним 17/06/22 Птн 08:56:14 #421 №807747 
>>807744
ну так тут нулом может быть только плаер, который нул потому что ты получаешь его в тригере. или получай его заранее(скрипт на чем висит?) или проверяй на нул
if (Input.GetKeyDown("e") && player?.canInteract)

ну и canInteract == true же. каждый раз когда кто-то так пишет умирает котенок
Аноним 17/06/22 Птн 09:11:47 #422 №807748 
инициализирую массив через скрипт, но при этом без [SerializeField] ловлю нал референс экспешн, почему так?
Аноним 17/06/22 Птн 09:16:16 #423 №807750 
>>807747
Так я вроде бы понял о чем ты. То есть пока у меня null в player, коробка не может достать true или false из canInteract, потому что не от куда доставать. Ок, встает на места. А как совместить player? и && тогда? Пишет, типа несовместимы операторы && и bool?.

А че не так с player?canInteract == true — так работает теперь, когда проверяю на null player. У меня же canInteract по умолчанию false, пока я не в тригере
Аноним 17/06/22 Птн 09:16:19 #424 №807751 
>>807748
покажи, а то чет телепатия барахлит сегодня
Аноним 17/06/22 Птн 09:24:58 #425 №807754 
>>807750
все время забываю что ?. возврашает нулабл бул, который иф не сьедает. а прописанная операция сравнения вызывает преобразование в простой бул.

> А че не так с player.canInteract == true
это мерзость
настолько, что в данном случае, когда надо приводить нулабл т.е. имеет смысл, я бы все равно написал
if(player != null && player.canInteract && input....)
суть в том что булы не нужно сравнивать с булевыми константами. это просто бессмыслено. потому что в результате ты получишь туже булеву константу. это как прибавлять 0 или умножать на 1.
Аноним 17/06/22 Птн 09:26:43 #426 №807755 
>>807750
а тебе нужно player хранить?
не проще проверять у коллайдера не навешен ли не его геймобджект скрипт Player?

>А че не так с player?canInteract == true
скорее всего он ратует за player?canInteract == true
Аноним 17/06/22 Птн 09:33:59 #427 №807757 
>>807754
> А как совместить player? и && тогда?

зы просто обычно использую ?. для проверки на цепочки нулов
типа вместо
if(a != null && a.b != null && a.b.c != null)
можно написать
if(a?.b?.c != null)
в теории можно использовать ?? оператор
if(player?.canInteract ?? false && ...)
но опять тут для наглядности лично я предпочитаю разбить на проверку плайера и кенинтеракт отдельно а ?? использовать больше для чего-то типа дефолтных значений при инициализации типа
public class foo
{
public int bar;
public foo(foo other) {bar = other?.bar ?? 0;}
}
Аноним 17/06/22 Птн 09:38:20 #428 №807760 
>>807754
if (player != null && player.canInteract && Input.GetKeyDown("e")) работает, с этой стороны не подумал. Спасибо.

>>807755
Да я не знаю нужно ли, я просто пользуюсь теми способами, которые знаю. Я знаю, что у меня булевая есть в другом скрипте и булевые можно проверять удобно в ифах. Так и вышло. Может потом и другие способы мне начнут больше нравится, пока использую что под рукой.

>>807757
Сразу так и не впитаю, сложные конструкции для меня
Аноним 17/06/22 Птн 09:40:11 #429 №807762 
>>807757
какая же хуета для пориджей, скоро наверное всякие свыч конструкции сократят до двух символов
Аноним 17/06/22 Птн 09:52:03 #430 №807763 
>>807762
Что вы как эти, в трай-кетч оберните всё и поехали
Аноним 17/06/22 Птн 09:55:29 #431 №807764 
>>807762
еще в 8й версий шарпа

int a;

var b = a switch {
0 => "Ноль",
< 0 => "Отрицательное",
(> 0) && (< 10) => "Цифра",
< 100 => "Две цифры",
_ => "МНОГА!"
};
Аноним 17/06/22 Птн 12:52:28 #432 №807838 
>>807764
Хоть это и не UniRX, но реально соей пахнуло
Аноним 17/06/22 Птн 13:36:44 #433 №807919 
image.png
Ну и в чём я не прав с таким подходом?
Аноним 17/06/22 Птн 13:56:00 #434 №807936 
>>807919
Переименовал QuitButton в ExitButton и сижу имаджинирую твоё ебало.
Аноним 17/06/22 Птн 13:58:10 #435 №807941 
image.png
>>807919
Что это за конструкции уровня фламинго? Год не кодил, там разве не нужно вставить просто название функции?
Аноним 17/06/22 Птн 14:01:24 #436 №807943 
>>807936
https://dictionary.cambridge.org/ru/%D1%81%D0%BB%D0%BE%D0%B2%D0%B0%D1%80%D1%8C/%D0%B0%D0%BD%D0%B3%D0%BB%D0%BE-%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9/quit
> Accepting to quit the current game closes this game and cancels the remaining commitments of the game.

пчел ты...
Аноним 17/06/22 Птн 14:06:56 #437 №807946 
>>807943
https://docs.microsoft.com/ru-ru/dotnet/api/system.nullreferenceexception
Аноним 17/06/22 Птн 14:08:59 #438 №807948 
>>807946
понял тебя, только зачем мне менять названия у объектов в иерархии?
Аноним 17/06/22 Птн 14:11:48 #439 №807953 
>>807948
Еще все переменные хардкодом забей, зачем тебе их менять?
Аноним 17/06/22 Птн 14:13:55 #440 №807954 
>>807953
ну не знаю как ты, а я бывало проябывал ссылки, когда забыл сохранить и ловил краш или просто редактор не сохранял
Аноним 17/06/22 Птн 14:15:38 #441 №807956 
>>807954
>или просто редактор не сохранял
Давай только сказки не рассказывай. Тебе бы за вот это >>807919 на любой работе ебало бы сломали.
Аноним 17/06/22 Птн 15:08:01 #442 №807980 
>>807919
1)Подписываешь странно, достаочно имя метода
2) лучше serialized field вместо поиска объекта по имени
Аноним 17/06/22 Птн 16:20:35 #443 №808001 
>>807919
зачем делать это в рантайме?

повесил скрипт на панельку с меню, назначил екшены с неё кнопками. всё.
Аноним 17/06/22 Птн 19:39:24 #444 №808064 
>>806749
> Основные траблы которы жрут цп и гцп - Это графика и физика.
Этот шарит, причем для ньюфагов уточню - графика в том числе жрёт и ресурсы цп, особенно если пренебрегать дефолтными советами по оптимизации.

И я даже больше скажу - современные компы такие мощные, что даже если ты по полной обосрёшься с физикой и графикой, они всё равно вытянут твой инди проект, поэтому лучше просто игру делать, чем тратить силы на +1% фпсов, да даже на +100% - поебать, если их приемлимоб

Но это на компе, а на мобилках это критично и надо всё настроить сразу адекватно.

>>806755
Смотря сколько тебе их надо каждый кадр. Я пока не видел, чтобы с этим проблема была.

Если так хочешь по-оптимизировать - ебош ецс, раскидывай всю логику по всем потокам. Это хотя бы даст реальный профит, по сравнению с ёбнутыми оптимизациями коллов функции. Да и вообще нахуй тогда си шарп и юнити нужны, надо на С++ ебошить!
Аноним 17/06/22 Птн 22:23:07 #445 №808103 
14234794617620.jpg
Пиздец, я уже полгода пердолюсь в юнити и чёт смотря на свой прогресс слёзы на глаза наворачиваются. С какого момента у вас появилось ощущение уверенности в работе с юнити? Я до сих пор во многих моментах как слепой котёнок.
Аноним 18/06/22 Суб 10:18:38 #446 №808169 
>>808001
MVCшники за такое стукают
Аноним 18/06/22 Суб 10:46:39 #447 №808176 
>>808169
Ты не формочки в студии шлепаешь, которая в конструкторе подправит код когда ты контролу меняшь имя. В юнити такого нет, там уже определено как надо делать - через поля. У объектов свой айдишник и если менять названия или иерархию объектов то ничего не проебется, а если ты пиздец какой умный и решил сэкономить место в окне инспектора юнити, то потом будешь с пробитой жопой бегать дебажить где у тебя там нуллреференс вылез.
Аноним 18/06/22 Суб 11:18:44 #448 №808181 
>>808103
>появилось ощущение уверенности в работе
Я тоже когда-то пытался в юнити, но потом осознал, что она мне не нужна. А с синим роботом появилось ощущение уверенности в работе очень быстро, рекомендую. Всё равно ты за полгода ничего существенного не сделал, правильно понимаю? Нечего терять, так что смело переходи на сторону добра. У нас есть сырки (на гитхабе, ммм).

wololo~
Аноним 18/06/22 Суб 11:36:22 #449 №808186 
>>808181
>Всё равно ты за полгода ничего существенного не сделал, правильно понимаю?
Да, но ты то со своим роботом за всю жизнь ничего существенного не сделаешь, так что я спокоен.
Аноним 18/06/22 Суб 12:37:16 #450 №808193 
>>808186
Обоснуй, чем Юнити лучше Годота в 2D
Аноним 18/06/22 Суб 12:44:50 #451 №808194 
image.png
Почему это говно не работает и объект никуда не двигается?
Аноним 18/06/22 Суб 12:56:45 #452 №808196 
>>808194
знаю, но не скажу. хехе
Аноним 18/06/22 Суб 12:59:53 #453 №808197 
423.png
>>808103
>С какого момента у вас появилось ощущение уверенности в работе с юнити
как начал делать свою первую игру на юнити, так и появилась
Аноним 18/06/22 Суб 13:14:17 #454 №808201 
>>808193
Ответ "всем" тебя не устроит, поэтому начну с простого: юнити лучше годота в производительности. В тред миллион раз кидали годотные пропуки в примитивных 2д играх, буковки проперживающиеся каждая в отдельном дравколе и другие прелести движка от хуана. 2д физику годота можно даже не упоминать.
Аноним 18/06/22 Суб 13:41:41 #455 №808209 
>>808194
Тоже увидел и не скажу. Кек.
Аноним 18/06/22 Суб 13:45:43 #456 №808212 
>>808196
>>808209
Уже сам разобрался.
Аноним 18/06/22 Суб 13:48:17 #457 №808213 
>>808212
Спрашивай еще, поможем
Аноним 18/06/22 Суб 14:21:06 #458 №808218 
>>808212
И в чем же была проблема?
Аноним 18/06/22 Суб 14:54:44 #459 №808220 
>>808218
У меня там оказывается слой исчез по которому должен был рэйкаст проходить.
Пока я это выяснил успел переписать всё вот так и заработало как надо.
Аноним 18/06/22 Суб 14:55:32 #460 №808221 
image.png
>>808220
пикча отвалилась
Аноним 18/06/22 Суб 15:24:21 #461 №808228 
Поясните положняк по нетворкингу, на сайте юнити Netcode, но написано что он в разработке, по нему реально материалы/туториалы найти или в какую-то другую сторону копать?
Аноним 18/06/22 Суб 16:30:14 #462 №808242 
>>808228
https://docs.microsoft.com/ru-ru/dotnet/api/system.net.sockets
Аноним 18/06/22 Суб 17:24:03 #463 №808250 
>>805095
Относительно логично было бы сделать противнику триггер для удара. И тогда через треггерентер+OnTriggerStay
Аноним 18/06/22 Суб 17:41:12 #464 №808261 
>>808242
Сколько велосипедом не придётся изобрести по шкале от 0 до 65536?
Аноним 18/06/22 Суб 17:42:14 #465 №808262 
>>808261
>велосипедов мне
самофикс
Аноним 18/06/22 Суб 17:46:15 #466 №808266 
А вы знаете, я только сейчас понял что интерфейс нужно обновлять в LateUpdate(), чтобы все компоненты успели обновиться. Иначе может быть задержка интерфейса в 1 кадр
Аноним 18/06/22 Суб 17:48:49 #467 №808268 
>>807200
Могут возникнуть проблемы, если несколько триггеров перекрывают друг-друга.
Ты можешь написать: shooting.remainingAmmo += 80;
Аноним 18/06/22 Суб 17:52:57 #468 №808269 
>>808268
Если проблема в этом, ну и вообще по-хорошему класс player сам должен проверять, находится ли он в триггере с каким-нибудь тегом interact
Аноним 18/06/22 Суб 18:37:34 #469 №808280 
>>807095
Извините, почему в юнити не завезли трение? У материалов же есть трение, но оно не влияет на соседние предметы.
Аноним 18/06/22 Суб 18:38:23 #470 №808281 
>>808266
И КАК Я САМ ДО ЭТОГО НЕ ДОДУМАЛСЯ
Аноним 18/06/22 Суб 19:11:33 #471 №808291 
>>808266
Ты че каждый кадр обновляешь???

Надо евентами обновлять интерфейс.
Аноним 18/06/22 Суб 19:45:42 #472 №808297 
>>808291
События плохо сочетаются с циклом обновления игры, когда надо что-то обновить или получить какие-то данные внутри апдейта.
События имеют смысл только для отношений нескольких к нескольким объектам. Например, когда у тебя 10 кнопок и чтобы не перебирать все 10 кнопок, лучше сделать событие нажатия кнопки. Когда отношения 1 к 1 типа игрока и HUD для него, то в событиях нет никакого смысла.
Аноним 18/06/22 Суб 19:59:39 #473 №808299 
>>808297
> плохо сочетаются с циклом обновления игры
Эт как? Что конкретно плохо?
> когда надо что-то обновить или получить какие-то данные внутри апдейта
Кидается событие, все подписчики получают его и обновляют данные.

> События имеют смысл только для отношений нескольких к нескольким объектам. Например, когда у тебя 10 кнопок и чтобы не перебирать все 10 кнопок, лучше сделать событие нажатия кнопки.
А если ты захочешь поменять реализацию того или другого? А если захочешь добавить кнопки добавить объекты?

>Когда отношения 1 к 1 типа игрока и HUD для него, то в событиях нет никакого смысла.
Есть - они убирают жёсткую зависимость, за счёт этого проще что-то менять и дебажить.
Что-то кинуло событие, что-то обработало, сама зависимость делается через какого-нибудь посредника, будь то условный ui manager или eventbus
Аноним 18/06/22 Суб 20:28:32 #474 №808303 
>>808269

> по-хорошему класс player сам должен проверять, находится ли он в триггере с каким-нибудь тегом interact

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

>>808268

> Ты можешь написать: shooting.remainingAmmo += 80;

Да, я щас так пишу, да и писал в принципе. В тот момент я затупил как обычно, написал не += / -= как должно быть, а наоборот видимо =+ / =-, поэтому результат был иной, и я переписал как точно должно работать, пусть не коротко.


Аноним 18/06/22 Суб 20:51:50 #475 №808305 
7a5f29bb-6418-4a63-b611-9598e63a8b81.png
>>808303
Попробовал изобразить про что я. Слева вид со стороны, справа вид от камеры игрока. Синим указаны предметы, которые игрок видит на экране, но они не взаимодействуют с ним, потому что не в квадрате интеракта. Оранжевым - предмет, с которым можно взаимодействовать, он в квадрате интеракта.
Аноним 18/06/22 Суб 22:00:42 #476 №808314 
>>808299
>Эт как? Что конкретно плохо?
Это как ввод сделан через опрос Input.GetButtonDown() потому что так удобнее внутри Update() проверять ввод
Эти гении идиотизма кстати додумались в новой системе ввода сделать ввод событиями. Я так и не смотрел эту новую систему.

>Кидается событие, все подписчики получают его и обновляют данные.
Получаешь данные, сохраняешь в переменную, чтобы внутри Update() потом их прочитать и обновить? Так лучше сразу эти данные дернуть откуда надо

Зачем тебе события изменения количества патронов, например, если в компоненте hud можно просто проверять изменились патроны или нет?
Аноним 18/06/22 Суб 22:05:11 #477 №808315 
>>808305
Новый блокбастер от создателя "как сделать так, чтобы круг всегда поворачивался ебалом к кубу".
Аноним 18/06/22 Суб 22:57:29 #478 №808318 
>>808305
var c = Camera.main;
if (Physics.Raycast(c.transform.position, c.transform.forward, out RaycastHit hit) && Input.GetKeyDown(KeyCode.E)) {
Debug.Log($"CHTOTO NASHEL {hit.collider.name}");
}
Аноним 18/06/22 Суб 23:05:20 #479 №808319 
>>808314
> Эти гении идиотизма кстати додумались в новой системе ввода сделать ввод событиями. Я так и не смотрел эту новую систему.
Я смотрел, она норм, но я под телефоны пилю, поэтому мне она не нужна.

> Получаешь данные, сохраняешь в переменную, чтобы внутри Update() потом их прочитать и обновить? Так лучше сразу эти данные дернуть откуда надо
Зачем в переменную?
Делаем подписку +=UpdateValue;

А сама эта функция и делает обновление
void UpdateValue(int value)
{
//обновляем нах
}
Не нужно никакие переменные для прошлого значения вводить, не нужно каждый кадр это прокручивать - а только по мере обновления все будет меняться.

> Зачем тебе события изменения количества патронов, например, если в компоненте hud можно просто проверять изменились патроны или нет?
Ну так а с другой стороны - зачем оно надо, если с событиями код намного понятнее?
Аноним 18/06/22 Суб 23:12:42 #480 №808321 
>>808319
>void UpdateValue(int value)
>{
>//обновляем нах
>}
Потому что это самый примитивный сценарий. Не всегда можно что-то просто взять и обновить из обработчика события
Аноним 18/06/22 Суб 23:20:52 #481 №808322 
>>808321
Поч??
Если ты делаешь в апдейте, то у тебя
if(oldValue != GetAmmoSomewhere())
{
//обновляем нах
}
А если в обработчике, то
void UpdateValue(int value)
{
//обновляем нах
}

Там где "обновляем нах" аналогичный код...
Аноним 18/06/22 Суб 23:27:10 #482 №808323 
>>808319
>если с событиями код намного понятнее?
Событие для одного подписчика. В этом нет смысла, только усложнение кода
Аноним 18/06/22 Суб 23:36:41 #483 №808324 
>>808322
Например когда я переключился в альтернативный режим стрельбы, я хочу показывать в этом элементе hud количество альтернативных патронов.
Такие вещи удобнее делать в Update() или в корутинах, если надо что-то динамическое и сложное с несколькими состояниями
Аноним 19/06/22 Вск 00:13:20 #484 №808326 
>>808324
> Например когда я переключился в альтернативный режим стрельбы, я хочу показывать в этом элементе hud количество альтернативных патронов.
Ебошится событие переключения оружия, контроллер интерфейса оружий ловит это событие, переключает интерфейс на нужный пресет в соответствии с типом этого оружия, одному текстовому элементу(или любому другому индикатору) пихает подписку на основной тип патронов, второму на альтернативный, и всё, больше абсолютно ничего не надо делать.

Как раз в в сложных ситуациях с событиями же в разы всё проще, не??? В апдейте с корутиными это ж ебануться можно будет всё отслеживать, где ты там что когда поменял и на что.
Аноним 19/06/22 Вск 03:49:21 #485 №808331 
>>808318
Бля, есть же рейкаст, точно. Думать проще не получается
Аноним 19/06/22 Вск 07:53:12 #486 №808337 
DvRyXz4WoAAT1RO.jpg
>>808326
>В апдейте с корутиными это ж ебануться можно будет всё отслеживать, где ты там что когда поменял и на что
if (player.alternativnoeOruzhie)
patrony.text = player.alternativnyePatrony;
else
patrony.text = player.patrony;

пишу 2 строчки кода и интерфейс готов, пока ты там 3-х этажную архитектуру имаджинируешь
Аноним 19/06/22 Вск 08:15:10 #487 №808339 
>>808337
Кстати это тот момент когда реально 2 строчки лучше.
Аноним 19/06/22 Вск 08:42:04 #488 №808340 
>>808337
>>808339
Можно в одну строку
patrony.text = player.alternativnoeOruzhie? player.alternativnyePatrony : player.patrony;
Аноним 19/06/22 Вск 11:17:44 #489 №808354 
>>808340
Можно вообще не писать количество, тебе же в реале ничего не пишут.
Аноним 19/06/22 Вск 16:54:04 #490 №808409 
Peperage1618974669524.jpg
ДА КАК СДЕЛАТЬ ЭТИ ЕБАНЫЕ КАРТОЧНЫЕ ЭФФЕКТЫ???
Аноним 19/06/22 Вск 16:58:15 #491 №808410 
Аноны, что лучше использовать для управления персонажа?
Rigidbody или Character Controller?
И почему?
Аноним 19/06/22 Вск 17:12:37 #492 №808412 
>>808410
Онли Character Controller. Rigidbody для управления забудь. Исключение можно составить лишь если твой персонаж это объект который управляется только силой по типу шара.
Аноним 19/06/22 Вск 17:39:46 #493 №808414 
>>808412
Не подскажешь хороший материал по Character Controller?
Аноним 19/06/22 Вск 17:42:50 #494 №808416 
>>808414
Какой тебе материал нужен? Как сделать персонажа? Так это либо смотришь мультики от самих юников, или же если не совсем глупый туториалы от ютуберов индусов. Есть конечно хард уровень почитать доки, но это опустим.
Аноним 19/06/22 Вск 17:47:51 #495 №808418 
>>808416
Благодарю.
Аноним 19/06/22 Вск 18:35:41 #496 №808433 
>>808409
Какие карточные эффекты? Как где?
Нормально сформулируй вопрос.
Аноним 19/06/22 Вск 18:38:37 #497 №808434 
>>808409
Как в покере? Изи.
>>>/cc/
Аноним 19/06/22 Вск 20:36:46 #498 №808477 
А если я пилю такую игру, которую не надо будет развивать дальше - стоит ли париться из-за кода, ну, типа, чтобы все было гибко, масштабируемо, расширяемо, solid, oop и т.п.?
Ну, то есть, выпустил - и все, пилю следующий проект, забыл про него.
То есть, код может быть лютым говном. Классы дёргают друг у друга публичные методы и переменные, логики переплетаются.
Но - код работает. По сути, это "архитектура для одного конкретного приложения. Я на листочке распишу, что где как работает, и реализую это.
Игрок собирает вещи, дохнет, ходит, стреляет? Пилю один класс, а там в update() код передвижения, и отлов нажатии для стрельбы и ходьбы. Вещи складывается в публичный List в его же классе. В этом же классе добавляем в UI иконки подобранных вашей
Враг ловит игрока? В Enemy.cs пишем патрулирующий код. Когда поймает - в его же классе (в Enemy.cs) пишу код, который тормозит игрока, показывает окно "вы сдохли", и там же в скрипте Enemy ловим нажатие - нажал ли игрок кнопку "попробовать ещё раз"
Есть дверь, которая открывается, если у игрока есть ключ? В OnTriggerEnter двери пишем проверку, если это игрок столкнулся (проверка по наличию скрипта Player.cs) потом в player.Inventory делаем поиск нужного ключа.
И т.д.
То есть, логика тупая и прямая - что-то надо? Берём и хуярим без задней мысли, не думая о расширяемости, красоте, правильности, ибо нахуй оно надо?

Судя по всему , к такому подходу придирки начинаются со слов: а если тебе надо будет добавить ххххх, а если ты захочешь xxxxx... Так вот , суть в том, что игра конечная, развиваться не будет. То есть, никакого сопровождения не требуется. Тут главное все заранее продумать, что игра должна делать и это и пилить.
Аноним 19/06/22 Вск 21:16:02 #499 №808492 
>>808477
Понятно
Аноним 19/06/22 Вск 22:20:16 #500 №808513 
d7d.png
>>808477
А что, можно как-то по другому делать?
Аноним 19/06/22 Вск 22:37:36 #501 №808517 
>>808477
Ну ты будешь делать другую игру, вспомнишь, что нужна функция уже есть в предыдущей игр. Захочешь взять, а там наговнокожено. Не разобраться и не скопировать, проще щаново слелать. В итоге тратишь время.
Аноним 19/06/22 Вск 22:44:16 #502 №808519 
Пилю 2д хоррор, там всякие пугалки при взаимодействии с объектами, типа прказывается окно, там появляется голова и экран немного трясется.
Все это сделано анимацией, но я хочу доьавит шейдеры ради эффектов.

Есть ли идеи, какие эфыекты можно повеситт? Есть ли примеры из игорянов где за счет графена складыается ощущение ирреальности? Может что-то времен пс1. Или мб шейдеры готовые какие. Или просто ощущения без конкретных примеров?
Аноним 20/06/22 Пнд 09:53:23 #503 №808557 
image.png
Только начинаю ковырять юнити. Сейчас разбираюсь с навигацией и ИИ. Подскажите, почему есть две вкладки и в каждой вкладке могут быть разные значения, например на скрине разная высота препятствия. Почему их две разных? Какая в итоге будет использоваться, та которая во вкладке Bake?
Аноним 20/06/22 Пнд 18:00:30 #504 №808679 
>>808477
Поверь если у тебя получится сделать рабочую игру с таким подходом уже всё будет окей, сможешь всем петухам которые кукарекают говорить что ты хотябы игру сделал в то время как они только кукарекают кодом.
От себя посоветую разве что выносить какие либо функции в другие скрипты чтобы самому было понятно, а в остальном похуй. Ну и если код где-то повторяется дважды, тоже выносить в отдельную функцию.
Аноним 20/06/22 Пнд 22:47:05 #505 №808764 
>>808477
> То есть, код может быть лютым говном. Классы дёргают друг у друга публичные методы и переменные, логики переплетаются.
> Но - код работает. По сути, это "архитектура для одного конкретного приложения. Я на листочке распишу, что где как работает, и реализую это.
Крайности это всегда хуйня, надо всего в меру. Большая часть принципов солид - вполне разумная, вне зависимости от того, что ты вообще делаешь и с какой целью, и практически не требует каких-либо особых трудозатрат(опять же - если их использовать в меру). Может не обязательно всё дробить на сотни интерфейсов, но хотя бы зоны ответственности классов надо как-то пытаться соблюдать, ты на листочке если продумывать будешь, то к солиду и адекватному ООП и придёшь скорее всего в плане проектирования классов.

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

Короче, не важно, отказываешься ли ты категорично от солида или нет, в конечном итоге ты и сам придёшь к нему(к самым важным его частям в рамках соло разработки)...
Аноним 21/06/22 Втр 09:20:31 #506 №808802 
>>808764
алсо не стоит забывать что в геймдеве кроме собственно ооп с инкапсуляцией вполне себе популярны и другие парадигмы. тот же экс, где хуй ложили на сокрытие данных и в теории любая система может читать и писать любые данные без ограничений
Аноним 21/06/22 Втр 13:26:44 #507 №808830 
юнитач, есть ли способ увязать два моноб вместе, если один из них вообще нельзя менять? чтобы исполнялись только вместе, но не порознь. я сейчас делаю так в апдейте моего моноб:
if (!script.enabled) return;
а дальше уже моя логика.
может есть лучше способ?
Аноним 21/06/22 Втр 13:47:13 #508 №808835 
>>808830
что бы обязательно висели на одном объекте?
атрибут
[RequireComponent(typeof( ... ))]
заодно при добавлении этого мб будет автоматом вешать на объект все требуемые.
Аноним 22/06/22 Срд 09:17:06 #509 №808945 
>>808557
Bake - это как ты запекаешь навмеш, обычно там самые минимальные значения по всем видам агентов, в агенте ты просто пресеты для навмешконтроллера создаешь, использоваться будет агент в итоге, но если ты запечешь для него невозможные данные, то работать не будет
Аноним 22/06/22 Срд 15:29:30 #510 №808993 
Если я хочу добавить ы игру доммки, в которые можно заходить, это надо в блендере делать или можно примитивами в юнити? Как флоу норм?
Аноним 22/06/22 Срд 17:23:00 #511 №809011 
>>808993
бля ебать
Аноним 22/06/22 Срд 17:26:30 #512 №809013 
>>809011
Не ну реально. Я делал примитивами и заебался(ну это лално, хуже то, что не все мог сделать). Теперь думаю, нужно ли в блендер вкатываться или какие инструменты бзать. До этого только 2д делал
Аноним 22/06/22 Срд 18:35:25 #513 №809030 
>>809013
Для начала нужно разобраться что такое UV, лайт и рефлекшн пробы, как настраивать тени, хотя бы поверхностно шейдеры, и пошарить настройку URP. Иначе всё твоё обучение в блендере превратится в говно, ибо делать 3D и экспортировать 3D - абсолютно разные вещи. По поводу домика, качай ассет ProBuilder, для начала этого более чем достаточно
Аноним 22/06/22 Срд 19:19:19 #514 №809042 
>>809030
Uv, сюрфейсные и вертиксные шейдеры я знаю. Лайтпробы не оч.
Про экспорт/импорт не знаю, но раз речь про uv, видимо нужно будет сопоставлять текстуру с сеткой
Аноним 22/06/22 Срд 19:22:30 #515 №809045 
Тень тоже в курсе в целом. И карты нормалей и метожы расчета отражения - ламберт, блин-фонг и тп
Аноним 22/06/22 Срд 20:10:02 #516 №809047 
изображение.png
>>802780 (OP)
Сап, костыляч.

Нужно создать объект из префаба которому будет задан размер\поворот.
Проще говоря что бы труп мишки был повернут в ту же сторону куда и мишка

Написал такой код , но в таком случае чому то создается два объекта повернутые в разные стороны.
Как это лучше реализовать?
Аноним 22/06/22 Срд 21:06:15 #517 №809053 
Решил наконец взяться за шейдеры. Насколько я понял, можно или ебашить в shaderGraph, или писать код. Поскольку у меня есть опыт в программмировании, хочется выбрать "писать код", и еще по причине, что проводятся ассоциации с лапшей в UE - либо ты пишешь скрипты сам, либо варишь километровую лапшу. В чем я не прав? Или лучше граф изучить?
Аноним 23/06/22 Чтв 05:40:10 #518 №809099 
>>809047
еблан?
Аноним 23/06/22 Чтв 07:41:00 #519 №809102 
>>809047
Зачем тебе коротинна?
Аноним 23/06/22 Чтв 07:41:52 #520 №809103 
>>809047
Привяжи лучше к концу анимации
Аноним 23/06/22 Чтв 07:45:08 #521 №809104 
>>809047
А ну так Instantinate новый экземпляр создает и возвращает, который ты нигде не сохраняешь, а потом задаешь трансформ префабу
Аноним 23/06/22 Чтв 08:34:12 #522 №809105 
>>809053
конкретно для шейдеров лапша лучше. ибо видно каждый шаг в риалтайме
Аноним 23/06/22 Чтв 15:14:36 #523 №809169 
image.png
image.png
image.png
image.png
Поясните про систему частиц.
Здорова, начал осваивать систему частиц. Хотел сделать в своей игре эффект листопада, сразу всплыло несколько проблем.

Во первых вид частицы, я во вкладке Shape выбрал спрайт листов, которые заранее нарисовал. От них система взяла видимо только цвет. Тоесть вылетают такие квадраты цветом отдаленно напоминающим листья эти.

Во вторых их вылетает мало. Тоесть вылетает много, но половина из них в холостую, тоесть без текстуры какой-то видимо.

В третьих когда запускаю, в игре вообще нехрена нет, не проигрывает
Аноним 23/06/22 Чтв 15:52:06 #524 №809173 
>>809169
В первых двух проблемах разобрался вроде как, а с третьей пока еще нет
Аноним 23/06/22 Чтв 16:13:24 #525 №809175 
>>809169
>>809173
все, впрнципе все понятно, вроде разобрался
Аноним 23/06/22 Чтв 22:35:15 #526 №809261 
>>809169
Как ты такую охуенную траву сделал?
Аноним 24/06/22 Птн 10:40:48 #527 №809331 
ПЕРЕКАТЫВАЙТЕСЬ, НЕХУЙ ВАС ИСКАТЬ НА ВТОРОЙ СТРАНИЦЕ https://2ch.hk/gd/res/809329.html
ПЕРЕКАТЫВАЙТЕСЬ, НЕХУЙ ВАС ИСКАТЬ НА ВТОРОЙ СТРАНИЦЕ https://2ch.hk/gd/res/809329.html
ПЕРЕКАТЫВАЙТЕСЬ, НЕХУЙ ВАС ИСКАТЬ НА ВТОРОЙ СТРАНИЦЕ https://2ch.hk/gd/res/809329.html
Аноним 24/06/22 Птн 13:05:16 #528 №809359 
>>807594
А разве оно не считается при каждом ударе?
Аноним 08/04/23 Суб 13:59:09 #529 №874854 
>>802866
Через MasterServer Toolkit, например.
comments powered by Disqus

Отзывы и предложения