Главная Юзердоски Каталог Трекер NSFW Настройки

Gamedev

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 529 113 128
Unity 3D #19 Аноним 21/05/22 Суб 19:17:15 802780 1
maxresdefault.jpg 37Кб, 1280x720
1280x720
Добро пожаловать в тред 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 802785 2
Sandy.webm 37789Кб, 1680x1050, 00:00:45
1680x1050
вот это да! перекаты не на 1к+ посте!
Аноним 22/05/22 Вск 09:55:28 802837 3
image.png 117Кб, 794x800
794x800
SphereGrid.webm 825Кб, 1680x1050, 00:00:21
1680x1050
>>802812 →
пчел, твою задачу можно упрощать сколько угодно, но пока ты не воспользуешься своей головой ты не решишь её. у тебя 9 классов образования то уже есть, надеюсь? не забыл ещё что такое синусы, косинусы?

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

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

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

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

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

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

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

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

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

Я хочу найти вектор, у которого минимальная дистанция до стартового, и возвращать его. Я
Аноним 25/05/22 Срд 09:40:45 803221 35
image.png 135Кб, 539x447
539x447
>>803218
Альтернативный вариант создать хэш-таблицу с вектором и дистанцей и остортировать её по дистанциям. Но по-моему это оверкилл? Я просто хотел пройтись циклом по списку, и сохранять отсылку на вектор с минимальной дистанцией.
Аноним 25/05/22 Срд 09:41:13 803222 36
>>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 803223 37
>>803222
Да, у меня там изначально трансформы, спасибо.
Аноним 25/05/22 Срд 09:48:42 803224 38
>>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 803225 39
>>803224
>(position -i.position).SqrMagnitude
Вопрос: зачем в квадрат возводить?
Аноним 25/05/22 Срд 09:58:11 803226 40
>>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 803227 41
>>803225
ибо не возводить в квадрат а не брать корень.
формула расстояния sqrt((a.x - b.x)^2 + (a.y - b.y)^2 + (a.z - b.z)^2)
Аноним 25/05/22 Срд 14:37:32 803256 42
>>803227
>формула расстояния sqrt((a.x - b.x)^2 + (a.y - b.y)^2 + (a.z - b.z)^2)
Так вот зачем Ирина Ивановна нам эту хуйню на геометрии преподавала, сука тупая, могла бы и сказал что в разработке игор пригодится
Аноним 25/05/22 Срд 15:47:57 803268 43
Стикер 175Кб, 500x500
500x500
лол, сейчас смотрел видео с конференции по геймдеву. фраза "первое что вбивают в голову - считать квадрат расстояния, а не само расстояние, так как корень очень затратная операция"
Аноним 25/05/22 Срд 19:12:40 803289 44
Аноним 25/05/22 Срд 23:08:22 803321 45
>>803224
>sqrDist = (position -i.position).SqrMagnitude
На это ругается
> cannot assign method group to anonymous type property
Как фиксить? Уже дохуя чего перепробовал.
Аноним 26/05/22 Чтв 05:53:23 803335 46
>>803321
очевидно SqrMagnitude()
написал же, не помню точно, проверь хотя это вроде было свойство?
Аноним 26/05/22 Чтв 07:02:51 803336 47
Не бейте, лучше обоссыте.

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

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

Теперь сижу пержу почему выдаёт флоат значение, расчехлил дебаггер, и пока не вкуриваю, но вернусь к вопросу только вечером. Спасибо.
Аноним 26/05/22 Чтв 08:58:46 803342 50
>>803341
Select формирует последовательность значений анонимного типа трансформ/расстояние
Min берет из данной последовательности минимальное значение по указанному параметру(расстоянию)
от него ты уже берешь свойство.
Аноним 26/05/22 Чтв 09:14:00 803343 51
>>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 803344 52
>>803343
>min?.transform
Вопрос тут это что? Проверка что значение ненулевое?
Аноним 26/05/22 Чтв 09:19:09 803345 53
>>803344
да. это уже что бы совсем чистый код, иначе если пустой список выдаст нре(в линкью запросе тоже, так как нету ?)
Аноним 26/05/22 Чтв 09:21:07 803346 54
Аноним 26/05/22 Чтв 12:46:02 803353 55
image.png 276Кб, 1338x788
1338x788
Здарова, Кармаки. Так вот вопрос, пикрил на 2021 лтс это старый болт или уже обновлённый? Я просто помню, что они хотели его допилить после того, как купили автора.
Аноним 26/05/22 Чтв 13:25:19 803357 56
Стикер 383Кб, 500x500
500x500
>>803353
я слишком стар для этого вашего визуального окнодроча. хотя смог вдуплить шейдеры только благодаря ему
Аноним 26/05/22 Чтв 13:47:46 803360 57
>>803268
> лол, сейчас смотрел видео с конференции по геймдеву.
Gamedevguild?
Аноним 26/05/22 Чтв 14:04:24 803362 58
Аноним 26/05/22 Чтв 15:33:12 803371 59
блядь. экс зло. злое зло

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

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

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

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

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

>>803441
Ну с тулистом ок, а пройтись 1 раз по списку даже йоба-алгоритму по нахождению минимума всё равно придётся, так что про форич не в тему.
Аноним 26/05/22 Чтв 21:22:05 803444 70
>>803441
> >тут же юзает Linq
Если без тулиста, то ваще поебать же, там нечему много памяти аллоцировать и ебать гц, а сама скорость выполнения вряд станет даже малейшей проблемой на практике.
Аноним 26/05/22 Чтв 21:33:12 803448 71
>>803444
Я тут прогуглил, может он к тому что форич менее оптимизонный чем обычный фор. Тогда можно упороться и вмесо листа массив юзать еще.
Аноним 26/05/22 Чтв 21:37:12 803449 72
>>803441
>>тут же юзает foreach с листом
Уже 100000 лет как пофиксили
Аноним 26/05/22 Чтв 22:13:23 803454 73
1653592403117.jpg 62Кб, 810x267
810x267
>>803448
Там тот же массив внутри, при проходе проц также в кеш подгрузит следующие элементы по идее, ну это если у нас не референсные типы само собой.
Аноним 26/05/22 Чтв 22:18:00 803456 74
>>803454
Массив то массив, но судя по всему если я задам больше 4 элементов, то он начнёт затратный алгоритм ресайза.
Аноним 26/05/22 Чтв 22:24:37 803458 75
>>803456
Есть же конструктор, который сразу принимает вместимость
Аноним 26/05/22 Чтв 22:32:03 803459 76
>>803458
Ну тогда да, но я явно так не делаю
Аноним 27/05/22 Птн 00:14:02 803481 77
>>803442
В курсе что лист отличается от массива и фор с листом работает в 2 раза медленнее чем фор с массивом?
Аноним 27/05/22 Птн 08:15:31 803502 78
Стикер 447Кб, 500x500
500x500
>>803481
и воопше на асемблере писать надо! а лучше сразу машинными кодами, что бы экономить на времени компиляции
Аноним 27/05/22 Птн 08:19:37 803503 79
>>803481
> фор с листом работает
> фор с массивом
for работает с индексом типа int
Аноним 27/05/22 Птн 09:54:34 803510 80
1J3cDMfx.jpg 117Кб, 1421x751
1421x751
>>803503
>>803481
>>803441
Может вместо пердежа в воздух потестить попробуете?
Аноним 27/05/22 Птн 10:26:24 803512 81
>>803510
Нихуя, каким образом массив проебал листу, если лист это массив по сути?
Аноним 27/05/22 Птн 11:09:50 803516 82
>>803510
Ты что тестируешь, скорость создания объекта листа? Ты аутист совсем?
Аноним 27/05/22 Птн 12:00:59 803519 83
Скриншот 27-05-[...].png 84Кб, 1209x861
1209x861
>>803516
ебать тупнул, ещё и думаю, хули так долго то. Но теперь чёт не то, походу
Аноним 27/05/22 Птн 12:25:46 803524 84
>>803519
а, ну да, не заполнил лист же
Аноним 27/05/22 Птн 12:32:29 803525 85
Скриншот 27-05-[...].png 80Кб, 1066x906
1066x906
>>803524
держите
Скорее всего, такая хуйня, потому что в foreach для листа IL разворачивает диспоуз после цикла
Аноним 27/05/22 Птн 13:33:56 803529 86
Стоило юнитидаунам выйти за границы таскания ассетов мышкой, так сразу вылезла тотальная некомпетентность по простейшим вопросам устройства ЯП, никто не знает что как работает, еще игры пытаются с таким багажом "знаний" делать, чтоб потом везде рассказывали какой же юнити тормозной двиг.
Аноним 27/05/22 Птн 15:07:12 803544 87
image.png 308Кб, 1068x601
1068x601
>>803529
Я выбрал Юнити именно потому что у него репутация движка, который позволяет не самым сильным программистам типа меня криво, косо, через жопу, но реализовать, пускай и лагающую, но игру, которая даже может выстрелить за счёт уникального геймплея. В чём я не прав?
Аноним 27/05/22 Птн 16:22:28 803553 88
>>803544
во всём прав и не ебёт, что думают с++петухи со своими указателями на указатели указывающие на void
Аноним 27/05/22 Птн 16:31:56 803556 89
>>803544
>В чём я не прав?
Уникального геймплея не существует.
Аноним 27/05/22 Птн 16:58:26 803560 90
>>803556
Пока ты так думаешь - никогда не сможешь его сделать.
Аноним 27/05/22 Птн 17:44:00 803564 91
>>803556
лол, довн, геймплей - это совокупность механик, таким образом почти любая игра уникальна геймлеем
Аноним 27/05/22 Птн 18:43:09 803574 92
>>803564
Уникальных механик не существует, также не существует уникальной совокупности механик.
Аноним 27/05/22 Птн 19:13:37 803578 93
>>803525
Что то хуйня, что это, стоимость по производительности примерно равна 0. Сделай теперь больше элементов и какие-нибудь реалистичные операции над каждым элементом, чтобы не тупа проход был.
Ну или я сам сделаю как освобожусь нах.
Аноним 27/05/22 Птн 19:32:49 803583 94
>>803574
>Уникальных механик не существует, также не существует уникальной совокупности механик.
Долбоёб? Когда впервые появился тот же Портал у него что ли не уникальная механика порталов была?
Аноним 27/05/22 Птн 19:50:10 803586 95
>>803583
Бля, да он наверное из тех, кто говорит "все сюжеты были написаны ещё в античности"
Аноним 27/05/22 Птн 21:54:10 803615 96
>>803583
>уникальная механика порталов
Я в эти порталы еще в 2000 году лазил чтоб хилки у акары закупать, ебать ты дура пориджевая.
Аноним 27/05/22 Птн 22:08:16 803618 97
>>803615
Хуесос ты всерьез не различаешь портал который тупо локацию меняет с порталом, который буквально имитирует неевклидовое пространство?
Аноним 27/05/22 Птн 22:29:16 803620 98
11.mp4 602Кб, 960x720, 00:00:03
960x720
>>803618
>имитирует неевклидовое пространство
Сымитировал тебе на лицо.
Аноним 27/05/22 Птн 23:15:04 803622 99
image.png 775Кб, 1200x628
1200x628
>>803620
Фактически та же смена локации, не более. И за 8 лет от выхода кваки 3 до выхода портала никто так и не понял всего потенциала этой идеи.
Аноним 27/05/22 Птн 23:34:26 803625 100
>>803622
>Фактически та же смена локации, не более
А в портале что? Кроме своей жопы еще можно куб протолкнуть? Смена локации куба, гениальная механика, новое слово в жанре.
Аноним 28/05/22 Суб 00:03:21 803627 101
>>803625
Ну не толсти. Эта механика оказалась настолько плодородной, породила кучу способов применения и множество головоломок, что хватило на 2 серии и несколько фанатских дополнений.
Аноним 28/05/22 Суб 01:03:25 803631 102
>>803627
Вроде уникальность обсуждали, а не количество серий и дополнений. Давай количество серий кал оф дути подсчитаем, или атсасина. Видимо их механика оказалась гораздо плодороднее тухлых порталов.
Аноним 28/05/22 Суб 12:51:22 803704 103
9a0bSXG3.jpg 64Кб, 1118x256
1118x256
>>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 803705 104
>>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 803708 105
>>803704
Может лучше игры делать начнешь?
Аноним 28/05/22 Суб 13:44:19 803712 106
>>803708
так уже, просто самому стало интересно, насколько леоесц, который я чаще всего использую для логики, оправдано юзается с форычем
Аноним 28/05/22 Суб 18:35:42 803740 107
>>803712
Скажем так - глубоко похер пока сложность этой операции О(1). будет иметь смысл если у тебя глубина вложения циклов уходит к земному ядру. Если уж совсем хочешь упоротся в производительность и заодно остаться на екс - переходи на дотс. Они как раз большой апдейт запилили, почти релиз кандидат. И дело не в апдейте а в базовой заточке на многопоточность и низкоуровневую оптимизацию.
Аноним 28/05/22 Суб 19:07:40 803744 108
>>803740
>глубина вложения циклов
Простое правило - если тебе требуется больше двух, то ты скорее всего хуйню делаешь, и даже с двумя хорошенько подумай и полистай существующие алгоритмы, потому что есть шанс того что ты сейчас захуяришь квадратичный алгоритм, когда уже давно придумали логарифмичный для тех же целей.
Аноним 28/05/22 Суб 19:10:29 803745 109
>>803744
Ну я приблизительно это и имел в виду.
Аноним 29/05/22 Вск 06:27:10 803799 110
>>803740
а что в дотс поменяли, кстати? там екс чтоли на финишную прямую выходит? или более полезные хуйни? не трогал их год
Аноним 29/05/22 Вск 06:39:26 803800 111
>>803799
> там екс чтоли на финишную прямую выходит?
+ убрали зоопарк базовых систем и джобов. оставили только базовые IJobEntity и SystemBase которые могут все, что могли старые по отдельности
+ добавили "вариадик апдейт" системы, которым можно выставить время апдейта напрямую или до окончания джобов. ну т.е. туда можно загонять долгоиграющие асинхронные задачи.
+ расширили поддержку редактора. галочка "конверт ту энтити" вместо соответвующего мб, лучшая поддержка префабов, интерфейс где можно смотреть и менять энтити как го в рантайме, дебаг систем с отключением и пофреймовым выполнением, профайлер под дотс и прочая по мелочи.
- убрали анимации и звук до версии 0.51 (эта 0.50)
Аноним 29/05/22 Вск 06:42:36 803801 112
>>803800
зы. на отквоченное так и не ответил, за 0.51 уже планируется как релиз кандидат.
Аноним 29/05/22 Вск 17:58:42 803883 113
>>803800
спасибо за пересказ. хуёво что не добавили до сих пор анимации и звук, конечно. вот про префабы интересно стало, надо будет глянуть. я раньше своей хуйни городил в скриптабл обжектах для того чтобы связывать префабы и ентити, но теперь оно видимо само как-то умеет это делать?

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

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

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

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

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

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

Ну и что очень важно - в шарпе куча новых удобных фишек, с которыми писать код просто кайф, язык длч людей короче
Аноним 04/06/22 Суб 16:44:24 804760 181
image 1Кб, 184x26
184x26
Почему эта залупа не работает в функции? Мне нужно чтобы скрипт хоть на сколько-то остановился, а нихуя не работает. Я дебил или разрабы юнити дебилы?
Аноним 04/06/22 Суб 17:19:01 804768 182
image.png 154Кб, 1287x477
1287x477
Редактор NPC. Не готов пока.
Аноним 04/06/22 Суб 17:20:25 804769 183
>>804768
Найс, ты же надеюсь инстансишь все дубли и массивы повторяющихся объектов, а не кнтр+с и кнтр+в?
Аноним 04/06/22 Суб 17:30:55 804775 184
Аноним 04/06/22 Суб 17:30:58 804776 185
>>804768
прон рогалик делоешь?
Аноним 04/06/22 Суб 17:31:19 804777 186
>>804769
Что-то да, что-то нет. В идеале редактор должен сканировать папку с ассетами и добавлять различные элементы спрайта персонажа автоматически. Чтобы потом безболезненно добавлять новые элементы, аксессуары и тп.
Аноним 04/06/22 Суб 17:32:03 804778 187
Аноним 04/06/22 Суб 17:32:09 804779 188
Какие вы знаете мастхев ассеты для полноценной разработки? Например я слышал, что Bakery запекает свет, отражения и прочее, гораздо лучше встроенной в юнити запечки. Какие еще посоветуете?
Аноним 04/06/22 Суб 17:45:28 804782 189
Аноним 04/06/22 Суб 18:16:09 804785 190
image 43Кб, 388x510
388x510
Аноним 04/06/22 Суб 19:22:25 804800 191
>>802780 (OP)
UnityScript же не поддерживается вроде, не?
Аноним 04/06/22 Суб 19:25:15 804802 192
>>804800
Нет, уже какое-то время.
Аноним 04/06/22 Суб 19:26:08 804804 193
>>804800
Лет 5 как не поддерживается.
Аноним 04/06/22 Суб 19:32:30 804807 194
>>803046
я юнити никогда в жизни не открывал, но может там просто сравнивается направление и координаты аквалангиста, и если они соотносятся (струя попадает) то у аквалангиста просто переменная увеличивается и графон ему очки покрашивает?
Аноним 04/06/22 Суб 19:37:29 804810 195
Юнити норм для визуальных новелл? Или лучше что попроще юзать?
И можно ли в нем генерить фоны для экономии на художнике?
Вон, написано что SpeedTree позволяет создавать ландшафты (я так понимюа 3Дшные).
Такой ландшафт - это по сути трехмерный фон?
Аноним 04/06/22 Суб 20:19:29 804825 196
Посоны, такой вопрос: работаю в unity 2022 хочу вять курс по шейдерам - как не обосраться и выбрать нужный? Как я понимаю, есть отличия от того, что было в 2019
Аноним 04/06/22 Суб 20:21:31 804826 197
>>804810
Смотря что у тебя в новелле будет, но я бы взял rpg maker(в основном на нем делают) или gamemaker(хотя, наверное, нет разница с юнити).
Проще всего на первом будет. Если цель - тупо визуальная новелла, мне кажется, нет смысл юнити брать
Аноним 04/06/22 Суб 20:24:05 804827 198
>>804807
Ну можешь скрипт на это сделать. Проще всего - просветить луч из камеры в курсор(или мочу) и треггирить коллижн
Аноним 04/06/22 Суб 20:24:26 804828 199
Аноним 04/06/22 Суб 20:26:24 804829 200
>>804825
>Как я понимаю, есть отличия от того, что было в 2019
В самих шейдерах отличий нет, возможно есть разница в инструментах типа редактора шейдеров. Тебе надо учить сами шейдеры, их будешь делать ты а не редактор.
Аноним 04/06/22 Суб 20:33:10 804832 201
>>804829
Спасибо. У меня была такая проблема: в 19 (старше, не помню) студии написал мелкий шейдер. Но когда пытался перенести его в 21, то ничего норм не работало, ибо как-то по-другому юнити начала работать с шейдерами.
Что это значит? Может быть такое, что начал использоваться другой(высокоуровневый) язык, который все равно компилится синтаксис, на котором работают шейдеры? (по какоу коррктному названию гуглить?)
Аноним 04/06/22 Суб 20:39:43 804834 202
>>804832
Ну возможно ты в 2022 создавал проект не на стандартном рендере как в 2019, а в URP или HDRP, там действительно разница есть. У стандартного (Built in) рендера давно ничего не менялось.
Аноним 04/06/22 Суб 20:40:50 804835 203
>>804834
Спасибо!
Есть смысл отдельно в HDRP вникать или нужно после того, как просто с шейдерами понятнее станет?
Аноним 04/06/22 Суб 20:44:58 804838 204
>>804835
> HDRP

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

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

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

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

старый гуй делается чисто кодом, но сейчас эти описания только в тулзах редактора используется вроде бы.
Аноним 06/06/22 Пнд 12:49:04 805072 225
Нубский вопрос.
Как мне получить список всех активных (галочка в свойствах) объектов определенного типа на сцене?
Аноним 06/06/22 Пнд 12:51:27 805073 226
>>805066
> В юнити потребуется ещё больше, но это и есть цена управляемости каждого элемента ui.
Нахуя?? Там всё визуально настраивается без кода
Аноним 06/06/22 Пнд 13:11:56 805074 227
>>805072
Определенного типа? FindObjectsOfType<Тип>().Where(obj => obj.activeSelf).ToArray()
Аноним 06/06/22 Пнд 15:19:46 805095 228
Хочу чтобы противник ударял игрока когда подходит к нему достаточно близко, но делать каждый кадр в Update проверку на расстояние стрёмно, есть способ лучше?
Аноним 06/06/22 Пнд 15:26:04 805096 229
>>805095
> но делать каждый кадр в Update проверку на расстояние стрёмно
Делай проверку в FixedUpdate. Ничего стрёмного в этом нет. Тем более в юнити уже давно добавили методы проверки, которые не выделяют память.
Аноним 06/06/22 Пнд 15:44:19 805097 230
>>805072
>>805074
FindObjectsOfType<T>() возвращает только активные объекты, в которых T так же активно. Этой одной функцией можно обойтись.
Аноним 06/06/22 Пнд 15:52:26 805098 231
image.png 566Кб, 544x640
544x640
>>805007
Вот из за таких уёбков и получается пикрил.
Аноним 06/06/22 Пнд 15:57:50 805100 232
>>805097
public static Object[] FindObjectsOfType(Type type, bool includeInactive) ?
Аноним 06/06/22 Пнд 16:46:02 805108 233
1607872732loope[...].mp4 739Кб, 640x360, 00:00:10
640x360
>>805098
Так то в киберпанке нормально работали с полигонами.
Аноним 06/06/22 Пнд 17:12:11 805113 234
изображение.png 875Кб, 1590x400
1590x400
изображение.png 721Кб, 800x500
800x500
>>805098
От этого кислотно контрастного дизайна ассоциации с пикрил наружной рекламой.
Солидарность славянских дизайнеров?
Аноним 06/06/22 Пнд 20:23:46 805136 235
Как можно реализовать постепенное изменение материала 3д объекта? Например есть белый куб, необходимо чтобы он снизу вверх постепенно становился оранжевым, может как-то через маску можно изменять материал объекта?
Аноним 06/06/22 Пнд 20:33:23 805138 236
>>805136
Самое простое и быстрое это vfx. Чуть сложнее это своим шейдером.
Аноним 06/06/22 Пнд 20:48:59 805140 237
>>805136
Пиши шейдер. Если текстурная развертка у куба подходит можно нацепить на куб второй материал с прозрачной текстурой оранжевого цвета и двигать ее оффсетом (это васянский способ), но у стандартного куда развертка не подходящая.
Аноним 07/06/22 Втр 07:54:42 805201 238
07/06/22 Втр 09:26:38 805235 239
>>805201
а на рабсийском языке есть кунтент? очень надо
Аноним 07/06/22 Втр 10:13:46 805239 240
>>805235
Субтитры -> перевести -> русский
Аноним 07/06/22 Втр 10:36:25 805241 241
>>805235
Яндекс браузер поставь, даун тупой, там голосовой перевод встроен
07/06/22 Втр 10:43:57 805242 242
>>805239
>>805241
долбаёбы ебучие, зачем мне машинный недоперевод?
Аноним 07/06/22 Втр 11:36:19 805247 243
>>805242
Затем, что ты настолько тупой, что не можешь выучить простейший язык который даже пендосы со средним IQ в 40 поголовно знают
Аноним 07/06/22 Втр 12:17:57 805253 244
>>805235
честно хз, быстрый гуглеж выдал статью на хабре как сделать подсветку выделенного объекта(вроде неплохая) и несколько видео
Аноним 07/06/22 Втр 12:30:35 805258 245
emojisky.com-68[...].png 455Кб, 799x451
799x451
Аноним 07/06/22 Втр 17:01:51 805328 246
suka1.PNG 75Кб, 1053x465
1053x465
2022-06-07 16-5[...].mp4 5660Кб, 1920x1080, 00:00:26
1920x1080
Спиздил с интернета вот такой вот шейдер графчик, работает практически как надо но при вращении нижняя часть также двигается, как можно пофиксить шейдер граф чтобы такого не происходило и даже при вращении нижняя часть не двигалась?
Аноним 07/06/22 Втр 18:31:57 805339 247
>>805328
не скажу что бы понил, но судя по всему для параметра, который отвечает за наложение надо брать мировые координаты.
там есть варианты с текстурными(привязаные к uv), локальными(к отдельному мешу) и мировые(не зависимые) тут походу взяты локальные что бы моделька закрашивалась от ног до головы не смотря на то как повернута.
Аноним 08/06/22 Срд 01:57:54 805565 248
1.png 922Кб, 1261x775
1261x775
22.png 931Кб, 1255x773
1255x773
Анонессы, подскажите, пожалуйста, почему у меня навмеш движется отдельно от префаба? Навмеш находится на пустом дочернем объекте внутри префаба. Если это из-за дочерки, как связать дочерку с родителем, разве они не связаны, если дочка внутри префаба?
Аноним 08/06/22 Срд 02:57:45 805569 249
>>805100
Там оно по дефолту false
Аноним 08/06/22 Срд 04:02:34 805573 250
image.png 6Кб, 260x96
260x96
спасиб дядь гейб, выпустил блядь игру
осторожнее с прон играми, это пиздец
Аноним 08/06/22 Срд 04:07:40 805574 251
>>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 805628 252
>>805573
>>805574
Попробуй на других платформах, может они не такие мракобесы
Аноним 08/06/22 Срд 08:35:43 805630 253
>>805573
>>805574
Это что же за порно в школе ты там выложить хотел?
Аноним 08/06/22 Срд 20:00:21 805788 254
>>805328
если я тебя правильно понял, то ты просто убери сабстракт и передавай из позиции в сплит сразу, но тогда будет диапазон от -1 до 1, где 0 - это середина объекта

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

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

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

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

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

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

В блендере
Аноним 11/06/22 Суб 01:34:14 806317 287
>>806312
Так сделай в 3д максе что тебе надо и текстуры там запеки.
Аноним 11/06/22 Суб 10:48:50 806332 288
>>806315
>>806317
Т.е. штатно, такая элементарщина, не решается??
Получается там совсем 3д нет, а если мне нужно буквально пиксель подтянуть, то нужно будет в сторонние пакеты лезть и всё заново пересохранять каждый раз, иначе всё текстуры по пизде пойдут в юнитях.
Аноним 11/06/22 Суб 12:24:40 806339 289
>>806332
анрил энжин 5 скачай, может там 3д есть.
Аноним 11/06/22 Суб 12:35:48 806342 290
>>806312
>Как вы вообще тогда на прямоугольник равномерную кладку кирпичей делаете?
Текстура должна быть seamless и тогда нормас всё натягивается. Погугли как их делать.
Аноним 11/06/22 Суб 12:44:12 806344 291
when you forget[...].png 91Кб, 500x375
500x375
>>805998
>>806005
Понял в чём моя проблема была. Суть в том что поворачивал шарик я при помощи мышки, а координаты от мышки брал только X и Y, а ось вокруг которой крутится шарик задаётся координатой Z, а так как она всегда была равна нулю, то и хули я удивлялся что при повороте куба шар продолжал наяривать вокруг той же оси.
Аноним 11/06/22 Суб 13:38:24 806350 292
Почему я могу обратиться к 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 806351 293
>>806350
Компонент текста и текстмешпро это абсолютно разные тексты, не совместимые. Повесь в интерфейсе текстмешовский текст и его уже можно засунуть в поле TextMeshProUGUI, "обычный" текст ты туда не засунешь.
Аноним 11/06/22 Суб 14:10:31 806356 294
>>806350
Есть два компонента текста, вот их и спользуй.
У легаси текста это Text.text="Твой текст";
У текстмешпро это TextMeshProUGUI.text="Твой текст";
Аноним 11/06/22 Суб 15:31:21 806408 295
>>806351
>>806356
Сработало только так
[Header("Ammo")]
public TMPro.TextMeshProUGUI ammoInMag;
public TMPro.TextMeshProUGUI reservedAmmo;
Аноним 11/06/22 Суб 15:54:20 806415 296
image.png 1048Кб, 800x946
800x946
А зачем вы разрабатываете свою игру?

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

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


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

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

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

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

Потому что 0.78 это косинус по определению, а синус квадрат + косинус квадрат =1
Аноним 12/06/22 Вск 10:28:55 806666 321
>>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 806672 322
>>806666
йододефицитный...
Аноним 12/06/22 Вск 10:44:27 806674 323
>>806672
>код, который сравнивает количество недостающих патронов в магазине, с количеством оставшихся в кармане и если последних меньше прибавлять к магазину это меньшее число и не будет у тебя минусов

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Аноним 17/06/22 Птн 08:04:55 807741 416
Аноним 17/06/22 Птн 08:05:19 807742 417
и2.png 61Кб, 2025x328
2025x328
и1.png 1385Кб, 1463x776
1463x776
Опять у меня проблема, двач. Опять, патроны. узнали? согласны?

[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 807743 418
>>807742
с другой стороны ошибка говорит, что проблема с 17 строке кода, хз че там не так
Аноним 17/06/22 Птн 08:09:28 807744 419
>>807743
17 строка это if (Input.GetKeyDown("e") && player.canInteract == true)

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

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

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

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

>А че не так с player?canInteract == true
скорее всего он ратует за player?canInteract == true
Аноним 17/06/22 Птн 09:33:59 807757 427
>>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 807760 428
>>807754
if (player != null && player.canInteract && Input.GetKeyDown("e")) работает, с этой стороны не подумал. Спасибо.

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

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

int a;

var b = a switch {
0 => "Ноль",
< 0 => "Отрицательное",
(> 0) && (< 10) => "Цифра",
< 100 => "Две цифры",
_ => "МНОГА!"
};
Аноним 17/06/22 Птн 12:52:28 807838 432
>>807764
Хоть это и не UniRX, но реально соей пахнуло
Аноним 17/06/22 Птн 13:36:44 807919 433
image.png 31Кб, 897x252
897x252
Ну и в чём я не прав с таким подходом?
Аноним 17/06/22 Птн 13:56:00 807936 434
>>807919
Переименовал QuitButton в ExitButton и сижу имаджинирую твоё ебало.
Аноним 17/06/22 Птн 13:58:10 807941 435
image.png 17Кб, 587x61
587x61
>>807919
Что это за конструкции уровня фламинго? Год не кодил, там разве не нужно вставить просто название функции?
Аноним 17/06/22 Птн 14:01:24 807943 436
Аноним 17/06/22 Птн 14:06:56 807946 437
Аноним 17/06/22 Птн 14:08:59 807948 438
>>807946
понял тебя, только зачем мне менять названия у объектов в иерархии?
Аноним 17/06/22 Птн 14:11:48 807953 439
>>807948
Еще все переменные хардкодом забей, зачем тебе их менять?
Аноним 17/06/22 Птн 14:13:55 807954 440
>>807953
ну не знаю как ты, а я бывало проябывал ссылки, когда забыл сохранить и ловил краш или просто редактор не сохранял
Аноним 17/06/22 Птн 14:15:38 807956 441
>>807954
>или просто редактор не сохранял
Давай только сказки не рассказывай. Тебе бы за вот это >>807919 на любой работе ебало бы сломали.
Аноним 17/06/22 Птн 15:08:01 807980 442
>>807919
1)Подписываешь странно, достаочно имя метода
2) лучше serialized field вместо поиска объекта по имени
Аноним 17/06/22 Птн 16:20:35 808001 443
>>807919
зачем делать это в рантайме?

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

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

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

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

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

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

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

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

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

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

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

>>808268

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

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


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

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

Зачем тебе события изменения количества патронов, например, если в компоненте hud можно просто проверять изменились патроны или нет?
Аноним 18/06/22 Суб 22:05:11 808315 477
>>808305
Новый блокбастер от создателя "как сделать так, чтобы круг всегда поворачивался ебалом к кубу".
Аноним 18/06/22 Суб 22:57:29 808318 478
>>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 808319 479
>>808314
> Эти гении идиотизма кстати додумались в новой системе ввода сделать ввод событиями. Я так и не смотрел эту новую систему.
Я смотрел, она норм, но я под телефоны пилю, поэтому мне она не нужна.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В третьих когда запускаю, в игре вообще нехрена нет, не проигрывает
Аноним 23/06/22 Чтв 15:52:06 809173 524
>>809169
В первых двух проблемах разобрался вроде как, а с третьей пока еще нет
Аноним 23/06/22 Чтв 16:13:24 809175 525
>>809169
>>809173
все, впрнципе все понятно, вроде разобрался
Аноним 23/06/22 Чтв 22:35:15 809261 526
>>809169
Как ты такую охуенную траву сделал?
Аноним 24/06/22 Птн 10:40:48 809331 527
Аноним 24/06/22 Птн 13:05:16 809359 528
>>807594
А разве оно не считается при каждом ударе?
Аноним 08/04/23 Суб 13:59:09 874854 529
>>802866
Через MasterServer Toolkit, например.
Ответить в тред Ответить в тред

Check this out!

Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов