Это копия, сохраненная 15 сентября 2023 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Прошлый тред: https://2ch.hk/gd/res/780319.html#795861 (М)
Официальный сайт: 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
Перекат делает после 1к постов, а там 700, рано
> Или же в Юнити есть какие то заебы с тем что изначально проект должен разрабатываться на другой версии?
this
Юнити лого отключается во время компиляции проекта в ехе. Раньше было актуально просто на пиратку в конце переносить проект компилить и выпускать. Есть еще геморой способ инжерить папку проекта, но это для шарящих и он слетает если логиниться в хабе.
Прокатит, но тебе же потом в любом случае придётся игру обновлять. Будешь ещё раз покупать?
У них единственно ограничение на бесплатную версию пикрелейтед. Можешь использовать кряк, который убирает лого, а если игра взлетит, то купишь лицензию.
Уточнение. Всмысле где то в инете лежит отдельный кряк который ставится поверх официальной Юнити? Или взломанная версия в целом лежит? Я думал Юнити перестали крякать после выхода Юнити хаба
Либо добавляешь также в ручную на фон картинки, или же в самой юньке переносишь.
Писать скрипт для случайной генерации или генерации по точкам это оверкилл.
Если уж совсем заёбисто сделай шаблоны и их мешай.
>Всмысле где то в инете лежит отдельный кряк который ставится поверх официальной Юнити?
Да, я такое видел. Даже не столько кряк был, а инструкция, как пропатчить свой exe или exe юнити, чтобы отключить лого. Погугли. У них же нет никакой защиты от отключения лого в твоём билде, там достаточно одну правку внести.
Может сделать несколько слоёв с тайлами и слегка их сдвинуть относительно друг друга? Будет не так "плиточно"
Лол, очевидно что это можно сделать правкой пары байт. Ассетотаскателю не понять, конечно.
Да, да пчел, ты уже обмяк со своими "Да, я такое видел". Небось погугли и ничего не нашёл, да пиздаболик?
Тоже и про твои байты, маняфантазии. Как я и написал, способ есть, но таким животным как ты писать его нет смысла.
Проорал с дауна
Не удивлюсь если ты отключение сплешскрина покупал,
5 сек в гугле
https://gist.github.com/iwanPlays/2df23769dd3693165697872712b39fd2
И что ты за не рабочий кал 4 летней давности кинул? Тебе еще раз тупому объяснить что это дерьмо не работает?
Мог бы вообще с гугла первые 10 ссылок кинуть сказав смотри вон сколько всего!
Тупая обезьяна, нету в паблике простого способа, иди нахуй.
Итак - есть условная валюта, количество которой у игрока увеличивается на x раз в y секунд. Как это реализовать? Чекать, когда игрок выходит из игры, и при повторном заходе смотреть время, считать количество секунд, которое прошло, и тд? Можно ли как-то сделать этот процесс фоновым чтобы приложение засирало юзеру телефон ради накопления валюты, да?
Мимо для тренировки делаю кликер, а туторы смотреть не хочется, хочу сам сделать, благо функционал не то чтобы слишком богатый нужен
Сразу совет - Старайся ничего, никогда не держать в апдейте кроме прям нужных механик которые по другому никак.
Для тебя идеально подойдёт корутина к примеру которая раз в 0.5 или 1сек чекает. Но самое правильно это когда при изменение значения один раз вызывалась там функция которая обновляет твой юи.
Не сработает, функция будет пахать только во время запуска приложения жеж
я думаю в правильную сторону, что нужно чекать время на устройстве пользователя и уже от этого отталкиваться?
>Пользователь может переставить время
Пользователю неудобно оставлять время в будущем - рано или поздно он вернёт время в норму. Тогда просто зачисляешь ему отрицательную сумму и пусть он ждёт 2030 года или начинает игру с самого начала, лол. Ну а если твой кликер можно пройти за несколько минут, просто перематывая время на год вперёд, то грош цена такому кликеру, от него никакого интереса. Кликер вообще не должен вызывать желания перемотать время, кликер должен вызывать желание зайти в него через какое-то время. К тому же бОльшая часть аудитории кликеров не догадается даже до перемотки времени, это же мобильная платформа, там умных взрослых людей мало. А на ПК в разы эффективнее использовать автокликер, за одну ночь нагенерится больше монеток, чем можно сделать перемоткой времени на годы вперёд, я так делал. Собственно кликеры делают ставку на то, что кликами зарабатывать валюту эффективнее всего, но это очень быстро наскучивает и игрок предпочитает подождать, чем играть в такую скучную игру. Автокликер тут решает. Кстати, упёртый игрок может и мобильную игру на эмуляторе запустить и автокликером насиловать, тут никакая защита не поможет.
>Надо тянуть с сервера.
А если нет сети/сервер сдох/временно не отвечает?
Отпишись ИТТ если получится купить. Я слышал, что местами виртуальные карты не очень жалуют.
Юнити в действии есть третье издание так та
private void Start()
{
if (PlayerPrefs.HasKey("logout_date"))
{
TimeSpan ts = DateTime.Now - DateTime.Parse(PlayerPrefs.GetString("logoutDate"));
vsegoGovna += ts.TotalSeconds;
}
}
*/
private void OnApplicationQuit()
{
PlayerPrefs.SetString("logout_date", DateTime.Now.ToString());
}
Юнити в действии есть третье издание так та
Сам перевёл и напечатал?
Последняя офиц. книга вышла в 2021 гот от издательства Питер.
> Пацаны читайти юнити в действии второе издание но оно старое говно, поэтому частично потеряло актуальность.
Лол кек чебурек парни не беспокойтесь, есть третье издание от 22 года, можно дернуть пдфку и кайфовать
> Нет нахуй третье издание нп напечатали на русском!!!!!!! Ты че пидар!!!! На русском не напечатали книгу!!!!!!!!!
У меня один вопрос - ты че ебанутый? Какое нахуй русское издание от питера вася? У тебя и юнити поди на русском???? Ппхапхапапахапха. Я реально в шокислав с этого человека. Вроде как хотел помочь, ну подсказать, а тут такой перфоманс лол. Чел, ты может не в курсе, но в среднем люди могут в английский прикинь и даже те, у кого он посредственный, сознательно страдают, потому что понимают безальтернативность его изучения для тоц сферы деятельности, которой мы тут планируем заниматься.
В общем гайз, я если что дернул с интернета третье издание в формате для электронных книг, конвертнул в пдфку и читаю. Не благодарите за информацию.
>У тебя и юнити поди на русском????
Англичанин куев, ту хоть книгу открывал? Хоть в электронном виде?
Там переведено всё на русский кроме самого интерфейса юнити и основных определений типа transform или rotate, чтобы такие ебланы как ты с минимальными навыками обучения смогли осилить юнити.
>Чел, ты может не в курсе, но в среднем люди могут в английский
Так пиздуй на 4chan и общайся со своими среднестатистическими людьми. Здесь то ты чего забыл?
Чем больше я здесь сижу тем сильнее убеждаюсь, что в треде от силы 2-3 анона шарят остальные как ты залётные мимокроки.
>так пиздуй на 4chan и общайся со своими среднестатистическими людьми. Здесь то ты чего забыл?
в чем причинно-следственная связь в данном случае? почему надо идти на 4chan?
>Чем больше я здесь сижу тем сильнее убеждаюсь, что в треде от силы 2-3 анона шарят остальные как ты залётные мимокроки.
из чего этот вывод следует и к чему он вообще? Ты мне ставишь в вину то, что я не читал книгу на русском и теперь я не шарю? я правильно понял? не шарю как выглядит книга на русском? серьезно?
>Англичанин куев, ту хоть книгу открывал? Хоть в электронном виде?
Зачем мне открывать книгу на русском, если я читаю ее на английском? Я в чем виноват в данном случае?
Ты серьезно не понимаешь, что я довел до сведения читающих информацию о том, что есть следующее издание книги и все!!!! А ты зачем-то высрал вот этот вот кал
>Сам перевёл и напечатал?
Ты из весенних шизиков или что? Ты же ебнутый, серьезно. Бля, дружок, просто извинись, ок?
>извинись
Причино следственные связи поломаны у тебя, а извиняться мне?
Охуенная логика. С такой логикой тебе не то что в кодинге на уроках информатики тяжко будет. Крепись.
Ладно-ладно. Все все все. Ты прав. Парни, извиняюсь перед всеми!! Юнити в действии ( Unity in action) 3е издание не существует!!!! Извинити что ввел в заблуждение!
Перед женщинами тоже извиняюсь.
Извиняюсь за предыдущие извинения.
В юнити же все равно какие блоки по размеру и соотношению сторон? Для теста начал пробовать делать площадью 3 на 3 метра. разной высоты: пол 2м стена3м потолок2м
>какие тонкости и подводные камни
Смотря какие стоки, если ассет стор, то подводных и гемора выше крыше, помимо того чтобы выйти на минимальный доход надо пол-годика год часто выкладывать. Это было до спецухи офк, сейчас х2-х3 гемора будет.
Ну мне финансовые сложности не пугают, я ради творчества в большей степени. Есть ли курсы гайды по тому какие нужны блоки и ченить такое, а то я в юнити 0 и учить не собираюсь только моделить под нее пока?
сделал анимацию заново, все заработало, отбой
Не до конца уверен, как это все реализовано конкретно в юнити, но если брать разные модульные наборы в анриле, то там модульные наборы от двух авторов нифига между собой могут не стыковаться. И приходится подгонять скейлом до нужного. Дверные проемы от одного автора могут не совпадать с дверями от другого.
Проще всего в таком случае скачать 3-4 разных популярных модульных набора и выверить размеры дверей, окон, квадраты стен/потолков/полов. Посмотреть как именно сделаны лестницы и перилы и как они изменяются при скейлах, чтобы могло стыковаться с твоими. Выписать себе данные размеры и по ним клепать, те которые тебе больше всего покажутся адекватными из выбранных, ну и чтобы они хорошо с сеткой в самом юнити скейлились.
Всякие отдельные меш объекты вроде мусорок, автоматов, столов и стульев, уже пофигу, плюс минус по шаблону персонажа и по настоящим размерам метража прикидывай и ок.
Ещё сразу уточняй для себя вопрос как именно в каждом 3д объекте задается точка пивота. В анрильчике допустим принято чтобы она была слева внизу на объекте для ротации и именно с такой точкой надо экспортировать.
sliderName.Transform.width = X
sliderName.RectTransform.Width = X
sliderName.GetComponent<RectTransform>().width = X
Ничего не работает. Гугл тоже молчит.
Ты опиши точно что ты хочешь, нихрена не понятно.
Если fillAmout, то он от 0f до 1f идёт, и чтобы правильно его заполнять значениями нужно делить или умножать итоговое чтобы оно было в рамках от 0f до 1f. К примеру макс 1000 хп, а у персонажа 200, делим 200/1000 и получаем 0.2f.
Если ты про физический размер то это в компоненте RectTransform, он может меняться через sizeDelta. К примеру нужно 200 в ширину и 50 в высоту, присваивается новый вектор (200f,50f) - GetComponent<RectTransform>().sizeDelta = new Vector2(200f,50f).
Также ты можешь поменять его через Scale, там используется вектор 3(1f,1f,1f).
>Если ты про физический размер то это в компоненте RectTransform, он может меняться через sizeDelta. К примеру нужно 200 в ширину и 50 в высоту, присваивается новый вектор (200f,50f) - GetComponent<RectTransform>().sizeDelta = new Vector2(200f,50f).
Воооо. Спасибо, анон. Я именно про это и спрашивал. Хз откуда я должен был про это знать. В документации по слайдерам и геткомпоненту такого не было. В гугле только 1 ссыль нечто похожее, но без sizeDelta и тем более без вектора.
>Также ты можешь поменять его через Scale, там используется вектор 3(1f,1f,1f).
Ну до этого я сам допер, но мне нужно было именно ширину увеличивать и только вправо (это полоска хп должна быть).
Чтобы ты понимал, максимально похожее на то что мне нужно было в гугле:
> healthRect.GetComponent<RectTransform> ().SetInsetAndSizeFromParentEdge(RectTransform.Edge.Left, 0, sliderSize);
> sliderSize += Time.deltaTime;
Я чуть блять голову себе не сломал пока пытался это осознать. Короч еще раз спасибо, анон.
>это полоска хп должна быть
Зачем ты меняешь слайдер для этого?
Ты либо пользуйся самим свойством у слайдера fill, либо же делай картинку и переставляй у неё свойство на fill и уже её заливай так-же от 0f до 1f.
В пустом проекте Unity 3D добавил InputField, он появлился на Canvas. С помощью Add Component добавил Content size Fitter (Script) к InputField. После запуска с помощью Play ввод текста не менят размер InputField. Но если выключить и включить Content size Fitter (Script), то размер меняется. Где и что нужно добавить, чтобы автоматичеки менялся размер в запущенной программе?
Спасибо! Успел свой вариант реализовать, чуть иначе и подлиннее, но тоже работает, оттестировал
Это сложно объяснить так. Типа фил у меня отвечает за заполнение в % (то есть 1 до 100 в скрипте), а сама длина слайдера должна быть абсолютной в конкретных числах (если макс. хп у перса увеличивается).
Получилось вот так. А раньше все индикаторы всегда были одного размера, менялся только их fill.
Вот если я ставлю просто поинт лайт в центре комнаты - получается хуйня, в центре очень ярко, по углам темно. Если дополнить эмбиентом и дирекшиналом - получается получше, но а если мне надо, чтобы были комнаты в которых полностью темно и не должно быть никакого эмбиента, то как быть? Может можно как-то регионы на которые действует эмбмент и дирекшионал настроить?
Самый лучший вариант это на ютубе посмотреть пару туториалов со светом, там оооочень много нюансов. Из главного это желаемое качество и параметры видюхи для запекания. Также на свет влияет настройки в качестве продежкта, по дефолту низкие-среднии пидорасят тень сильно. Ну и по стандарту, чем хочешь графонистее тем мощнее должна быть пекарня юзера. В конец обычно совмещают запекание на всей статике, и немного динамик света сверху.
динамическое освещение для чего? Это дорого для карты, то, что по углам темно, ты, видимо, ни лайтпроб, ни рефлекш проб не расставил?
поэлементная генерация - всегда плохая идея. Ты можешь генерить секторами, а т.к. запекание света происходит в текстуры, то никаких сложностей потом с настройкой не возникнет, главное отдельную сцену иметь для всех этих настроек. Без запекания никак, да, иначе свет будет неправильный на любых видюхах без рейтрейсинга, а это, как понимаешь, не высокий охват устройств, вряд ли ты ААА проект создаешь.
Уже давно придумали всё за нас. Если копался в редакторах разных игр, то должен помнить что обычно уровни состоят из стыков разных небольших кусков, из которых они и собираются, вот их и запекают. Продумай свою архитектуру так чтобы это можно было реализовать, либо забей на свет и не парься о нём.
Я разбирают вот эту статью https://habr.com/ru/post/484176/
Мне не понятно зачем там аж три скрипта, почему нельзя например в одном скрипте все сделать. Там пояснили про пару методов, которые в принципе понятны, но остальное почти не тронуто, а мне вообще не понятно что там за строки в Character.
https://assetstore.unity.com/packages/tools/network/bluetooth-le-for-ios-tvos-and-android-26661?aid=1011l5f3d&pubref=graphql&utm_campaign=unity_affiliate&utm_medium=affiliate&utm_source=partnerize-linkmaker
Есть внутриигровой магазин с апгрейдами. Апгрейдов несколько, повышение уровня повышает цену агрейда. Пробовал хранить это всё в PlayerPrefs, но возникла проблема: агрейдов много, и для всех них по сути работает один скрипт, но поскольку все сохраняется c одним key, значение цены везде будет одинаковое. Само собой, мне такого не надо, показатели должны быть разными.
Можно было бы просто тотально дублировать этот бедный скрипт, везде добавить условную циферку в ключу, чтобы всё сохранялось нормально и работало, но если я захочу переписать скрипт - мне придется редактировать КАЖДЫЙ скрипт у кучи кнопок в магазине. Причем все эти скрипты будут отличаться только в одной строчке (key для PlayerPrefs). Какой есть способ, чтобы не городить кучу файлов с практически одинаковым кодо?
Отбой, внезапно придумал.
Кому надо будет: создаем private string dvachCost, сериализуем его и меняем в интерфейсе юнити для каждой кнопки по отдельности.
Соответственно сохранем с ключом dvachCost.
>>797385
стандартное решение, но не так тупо, как он реализовал, что приходится руками каждую кнопку заполнять. Тут либо отдельный компонент с приватным сериализуемым полем, свойством для чтения и методом для записи, либо СО, что удобнее в будущем для изменения на поддерживаемом проекте. Потом городишь расширение редактора для авто-генерации этих ключей, и, если волнуешься за безопасность, прикручиваешь любой криптошифратор, заморочка на сутки, если впервые реализовывать, зато потом никакого гемора
>Но на бесплатной версии при запуске игры будет появляться короткий стартовый ролик "Made with Unity", а также ваши доходы ограничены 100 000 долларов в год.
А как они проверяют, кто сколько зарабатывает?
никак, за наличием и соблюдений всех лицензий следят гос.службы, а не поставщик лицензии
Они не следят. Но это однажды может всплыть и с тебя спросят, если ты будешь жить в цивилизованной стране. Поэтому лучше не быть жлобом и приобрести лицензию. Unity Plus стоит 400$ за год. Если ты заработал больше 100к, то оплатить не проблема.
Блядь, это крайне бесполезная книга, повелся на FAQ полгода назад, зря 1,5к выбросил, любой тутор по юнити от школьника на ютубе конструктивнее и полезнее будет. Если вкатываться, то уж лучше с "Изучаем C# через разработку игр на Unity", либо уж сразу на утубе изучать CodeMonkey, Brackeys, Infallible Code и прочих нормальных пацанов
Да я для общего развития
>CodeMonkey
говнодел
>Brackeys
средний уровень и закрылся
>Infallible Code
Вроде норм пацан
https://www.eruditor.io/file/3669424/
дергай отсюда епуб. онлайн конвертеров в пдф жопой жуй.
>Если ты заработал больше 100к
Ну, если бы я зарабатывал больше 100к в год, то я сам бы купил на несколько лет вперед. Мне кажется, что столько зарабатывают только передовые разработчики АААААААА-игр
Зависит от игры же. В играх от суперселл вообще рекламы нет, например. А некоторые только на рекламе живут.
Понятно. Вообще, я хотел бы сделать что-то в стиле fran bow, теперь подбираю движок для изучения. Думаю, на unity остановлюсь.
> Думаю, на unity остановлюсь
Хороший выбор. На мобилки планируешь делать? Если да, посмотри игру That Level Again. Игру сделал местный анон. Он добавил подсказки, которые можно смотреть за рекламу и таким образом можно зарабатывать.
на трекере есть большие паки разных ассетов, и так-же есть такая штука о которой не упоминают, но ты можешь использовать и ассеты от других движков, по типу моделей/графики/эффектов и звуков.
Глянул - он уже успел несколько частей сделать, молодчик. Игра выстрелила, судя по всему. Интересно только, сколько он вкладывал в пиар.
Но очень хочется, чтобы была сортировка спрайтов с этим материалом по Sorting Layer и Order in Layer(это не очень обязательно), но самое главное, хотелось бы, чтобы можно было накладывать цвет в рендерере, как в обычным материале спрайта. Готов закинуть на пиво или побольше.
Короче еще раз: Нужен шейдер с которым можно принимать свет и тени на спрайт, который можно сортировать как обычный спрайт-материал и самое главное которому можно настраивать свет
>>797642
Бля, я сам походу разобрался, сам не понял как но вроде немного разобрался. https://pastebin.com/NPyKW8Ly если кому надо, но это полная хуйня, я сам почти не понял что сделал.
Придется себе пиво покупать
С меня нихуя 20% с первого миллиона.
Основная сложность гиперказуалок в раскрутке. Любой даун может эту хуйню сделать. Другой вопрос как ты собираешься органику в неё заводить.
Да вопрос не в деньгах, мне важнее сам процесс. Количество скачиваний не имеет значения.
Просто приятнее делать что то более - менее осмысленное, заодно персональный челенж.
Как насчёт падающего вниз шара, движение которого можно направлять, рисуя пальцем препятствия?
Посмотри старые флеш-игры. Там можно найти годноту и трансформировать её в уникальную гиперказуалку.
Есть нечто такое:
class Govno : ScriptableObject
{
[SerializeField]
private float amount;
private GameObject cached;
public GameObject Get()
{
if (cached == null) {создаем его}
return Instantiate(cached);
}
}
То есть мы задаем параметр, потом вызываем функцию Get и она возвращает нам созданный геймобжект в соответствии с параметром.
Но так как объекты абсолютно идентичные - хорошо бы его закешировать и делать Instantiate, что я и сделал. В случае если объект сложный(в плане времени создания - может я там меш генерировать буду большой) дохуя, то это прям необходимо будет.
И тут возникают 2 проблемы:
1. Объект cached который взят за основу создается на сцене. Можно сделать SetActive(false), но не хочется, чтобы бемполезные объекты захламляли сцену.
Можно ли создать какой-то временный префаб, который виртуально существует только в рантайме/внутри сцены и никак не виден?
Еще я могу впринцпе поменять интерфейс и сам порядок работы с этим Govnoм - сделать че-то типа Get(Vector3[] positions) и сразу в нем создать один и заинстантиейтить на остальные позиции, но мне именно интерксно можно ли обойтись без этого?
2. Нету оповещения об изменении параметра amount через инспектор. А оно нужно, если я буду это всё делать в редакторе, а не рантайме. Можно сделать поле lastAmount и делать проверку совпадает ли текущее значение с ним, и если нет то перегенерировать.
Вопрос - а можно ли без написания кастомного инспектора встроить какое-то оповещение об изменении параметра через инспектор?
Я могу кастомный инспектор написать, но опять же - интересно просто, можно ли по-хитрому это обойти?
Есть нечто такое:
class Govno : ScriptableObject
{
[SerializeField]
private float amount;
private GameObject cached;
public GameObject Get()
{
if (cached == null) {создаем его}
return Instantiate(cached);
}
}
То есть мы задаем параметр, потом вызываем функцию Get и она возвращает нам созданный геймобжект в соответствии с параметром.
Но так как объекты абсолютно идентичные - хорошо бы его закешировать и делать Instantiate, что я и сделал. В случае если объект сложный(в плане времени создания - может я там меш генерировать буду большой) дохуя, то это прям необходимо будет.
И тут возникают 2 проблемы:
1. Объект cached который взят за основу создается на сцене. Можно сделать SetActive(false), но не хочется, чтобы бемполезные объекты захламляли сцену.
Можно ли создать какой-то временный префаб, который виртуально существует только в рантайме/внутри сцены и никак не виден?
Еще я могу впринцпе поменять интерфейс и сам порядок работы с этим Govnoм - сделать че-то типа Get(Vector3[] positions) и сразу в нем создать один и заинстантиейтить на остальные позиции, но мне именно интерксно можно ли обойтись без этого?
2. Нету оповещения об изменении параметра amount через инспектор. А оно нужно, если я буду это всё делать в редакторе, а не рантайме. Можно сделать поле lastAmount и делать проверку совпадает ли текущее значение с ним, и если нет то перегенерировать.
Вопрос - а можно ли без написания кастомного инспектора встроить какое-то оповещение об изменении параметра через инспектор?
Я могу кастомный инспектор написать, но опять же - интересно просто, можно ли по-хитрому это обойти?
>Вопрос - а можно ли без написания кастомного инспектора встроить какое-то оповещение об изменении параметра через инспектор?
Можно заговнокодить так, чтобы скрипт работал в редакторе, и в апдейте проверять значение.
>Можно ли создать какой-то временный префаб, который виртуально существует только в рантайме/внутри сцены и никак не виден?
В чем разница с выключенным объектом? Тебе точно нужен монобехавиор объект? Можешь написать обычный класс сишарповский и создавать его.
> Можно заговнокодить так, чтобы скрипт работал в редакторе, и в апдейте проверять значение.
Эт да, но это конечно пиздец.
> В чем разница с выключенным объектом?
Ну типа иерархия сцены же захламляется, просто снизу будут висеть серые бесполезные объекты. В рантайме пох, а в эдиторе мне такое поведение не подходит.
>Тебе точно нужен монобехавиор объект? Можешь написать обычный класс сишарповский и создавать его.
Не, в данном случае мне надо именно создать полноценный геймобжект, а потом спавнить его клон на сцене по вызову метода.
Спасибо, замотивировал
>просто снизу будут висеть серые бесполезные объекты. В рантайме пох, а в эдиторе мне такое поведение не подходит
Не буду спрашивать зачем. Как насчет спавнить не просто на сцене, а в родительском объекте?
Создать объект для хлама и внутри него спавнить дочерние объекты.
>на бесплатной версии при запуске игры будет появляться короткий стартовый ролик "Made with Unity"
Есть какой-нибудь плагин чтобы этот ролик выключить насовсем?
мимо нюфаня
>> Объект cached который взят за основу создается на сцене.
ну так потому что ты его инстанцируешь, валера. Вообще, довольно странную хуйню ты задумал, почему не фабрика или прототип, зачем тут СО, если ты сериализуешь только количество. В курсе ли ты, что это в билде не будет работать? Если в курсе, то ты должен быть и в курсе того, как оверрайдить поля СО и монобехов.
>> Нету оповещения об изменении параметра amount через инспектор
Так сделай свойство для своего эмаунт и где он используется передавай значение на старте.
Вопросы какие-то ебанутые, как и подход, честно
Даже больше, добавляю ещё одну полностью пустую сцену, перезагружаю первую сцену - текстура становится светлее. Убираю пустую сцену - темнеет. Перезагружаю - опять светлеет.
RaycastHit hit;
float characterHeight = 1.8f;
Vector3 playerStartPoint = new Vector3(player.transform.position.x, characterHeight, player.transform.position.z);
Vector3 enemyStartPoint = new Vector3(transform.position.x, characterHeight, transform.position.z);
Debug.DrawLine(playerStartPoint, enemyStartPoint, Color.yellow);
UiA - это, по сути, обзорная экскурсия по движку для тех, кто его никогда не использовал. С этим книга справляется отлично.
Многие вещи оттуда пойдут для примитивного говна и туторов, но для нормального проекта некоторые практики даже вредны - из того что сейчас помню ни слова о порочности использования папки Resources и ни слова о LoadSceneMode.Additive, который, ващет, рекомендуемый режим смены сцен, чтобы не трахать GC лишний раз.
(player.transform.position.x, player.transform.position.y + characterHeight, player.transform.position.z)
ты вместо координаты передаешь скаляр, получаешь вектор, а не позицию
Спасибо, поменял, помогло
Код с книги перепечатывал. Плавающая gravity = -9.8f
void Update() {
float deltaX = Input.GetAxis("Horizontal") speed;
float deltaZ = Input.GetAxis("Vertical") speed;
Vector3 movement = new Vector3(deltaX, 0, deltaZ);
movement = Vector3.ClampMagnitude(movement, speed);
movement.y = gravity;
movement *= Time.deltaTime;
movement = transform.TransformDirect
}
анимировал в блендере, если че
RootMotion
Не, не работает. При чекауте пишет Invalid Issuer, please contact your bank.
Похоже, что пока способа нет.
А, да. Ты прав. Не заметил приписки о том, что вертикальный MouseLook надо к камере прикрепить.
Спасибо.
Ну может потому что это гораздо более удобный и логичный способ работать с элементами игры, который ещё и позволяет одновременно работать в команде с меньшими проблемами?
Имеет смысл, но готовься к трудностям по передаче состояния объектам из одной сцены в другую. Короче удваиваю реквест.
Ну если архитектуру вокруг этого строить, мне кажется наоборот красивее и лаконичнее процесс будет
Пока нашел только один толковый гайд
https://medium.com/c-sharp-progarmming/using-a-multi-scene-workflow-in-unity-c-2ae9a6dc6096
Давно так делаю. По архитектуре у меня так: 1 сцена это связыватель ссылок и в ней же все важные инициализации и данные. 2 сцена это весь ui, или же поделенный еще между несколькими сценами. И последняя 3 сцена это сама игра или её часть, опять же поделенная между сценами.
Удобно то что имея 1 сцену+юи, легко перезагружается едро игры т.е 3 сцена, не трахая всё вокруг с обнулением или повторной инициализацией.
Из минусов разве что для себя это связывание ссылок через год обьект.
не вижу в этом ничего удобного, да и я не видел относительно успешных игр, чтобы там такое практиковалось
>UiA - это, по сути, обзорная экскурсия по движку для тех, кто его никогда не использовал.
Там на первой странице написано, что она для программистов которые хотят освоить юнити, всем остальным непопути.
>И при чём тут это? Ты вообще понял о чём речь?
>Архитектура проекта.
>Используешь паттерн синглтон
>Вместо
>ссылочного паттерна
Чел... хз о чём ты, но иди выпей таблеточки.
>связывание ссылок через год обьект
Можешь подробнее про это рассказать, или скинуть полезные статьи примеры реализации?
EnemyManager enemyManager;
public void Awake()
{
enemyManager = GetComponentInParent<EnemyManager>();
}
public void FixedUpdate()
{
if (enemyManager.currentTarget != null)
{
Debug.Log("Hello World!");
}
Что я делаю не так?
Проверяй места в коде где идёт передача ссылок или получение компонента, где-то нул либо неверное условие. Вставь везде дебаг строки для пущей наглядности процесса.
Ну как вариант, можно сериалазйзфилд создать в В2 и линкануть ручкками туда объект с энеми менеджером.
Смущает, но изначально я мыслил, что все Parent объекты в сцене, это дочерние объекты Sample Scene. Это не сработало, я поискал другой вариант: EnemyManager enemyManager = gameObject.GetComponent<EnemyManager>(). Это тоже не сработало. Пока не нашел дургих
Обкакунькался, не в в2 а в хелс.
Пробовал, не работает. Объект со скриптом EnemyManager висит на Health, HealthBar его должен видеть, но не реагирует
Пилю смесь RTS и TD в 2D. Из Ассетов пока только A*Pathfinding бесплатная версия. Стоит ли пиратить платную? Может, кто-то здесь пользовался.
Как лучше сделать обнаружение персонажами друг друга? Сейчас я использую Circle collider с флагом isTrigger, но если будут стены\непросматриваемые объекты, то выйдет не очень хорошо...
Есть персонажи, которые должны драться между собой. Есть два вида атаки - дальняя и ближняя. По идее, сначала персонажи вступают в дальний бой, затем, когда снаряды кончаются, начинается ближний. Однако, пока мой говнокод выдает только то, что при дальнем бою персонаж выпускает снаряды слишком быстро. Попытки использовать InvokeRepeating и проверки с Time.time не увенчались успехом. Куда копать? Напишите хотя-бы слово по которому это гуглить.
В ближнем бою персонажи машут своими "дубинами". Как чекать попадание?. Сейчас я использую активируемый во время анимации атаки BoxCollider, но это выглядит довольно топорно + неясно как при смене оружия менять и коллайдер. Если это будет к примеру копье, то получится ли сделать так, чтобы коллайдер (который будет на наконечнике) двигался во время анимации вслед за копьем?
А у тебя как сделано было? переменная типа гаме манагер в которую ты кидаешь объект с этим скриптом?
Ага.
В HealthBar.скрипте указывал public EnemyManager enemyManager и кидал на него префаб со скриптом EnemyManager
Ммм. я анус на это поставить не готов, но в памяти есть какая то хуйня максимально расплывчатая)))))))) что там надо кастить gameobject as enemymanager, чета типа такого.
>Как лучше сделать обнаружение персонажами друг друга?
Лучами если важна видимость, или коллайдерами если пофиг.
Дополнительно можешь просто цели ввести флаг тумана войны, и если он активен, то юнит просто делает вид что не видит цель, но в списке она содержится и проверяется на этот флаг пока не покинет радиус обнаружения.
>дальняя и ближняя
Для дальней вводишь юниту переменную инт с кол-во снарядов, и при проверки если их 0, то только ближний.
Для кд атаки просто используй таймер в апдейте или корутину, опять же к примеру с кд 0.5, или 1 сек.
>Как чекать попадание?
Я бы реализовал через модуль цели. Юнит определяется что за цель, расстояние, перед атакой чекает жива ли цель, достаёт ли до неё радиусом, и далее если всё ок проигруется атака и наносится урон. Юнит получает цель из своей функции поиска либо же из внешнего менеджера. Если нужно, то чекаешь каждую сек обновление и поиск цели.
хорошо что не ставил, хуйню сказал, без кастинга должно работать.
Теперь я тебя не понял, не знаю в чем разница. Просто взял из иерархии префаб, на котором висит скрипт, кинул в паблик другого скрипта.
По итогу я сделал что хотел, не совсем уверен как, но сделал. В EnemyManager у меня есть public HealthBar healthBar, в этом скрипте я вызываю по методу из HealthBar, когда персонаж жив и мертв:
private void FixedUpdate()
{
if (!isDead)
{
healthBar.TurnOnHealthBar();
HandleStateMachine();
}
else
{
healthBar.TurnOffHealthBar();
}
}
В самом HealthBar скрипте тоже есть public EnemyManager enemyManager, нужный, чтобы получать инфу по таргету и bool переменной состояния:
public void TurnOnHealthBar()
{
if (enemyManager.currentTarget != null)
{
slider.gameObject.SetActive(true);
Debug.Log("Hello World!");
}
}
public void TurnOffHealthBar()
{
if (enemyManager.isDead)
{
Debug.Log("Bye World!");
slider.gameObject.SetActive(false);
}
}
На префабе с EnemyManager висит UI с HealthBar и на UI HelthBar висит префаб с EnemyManager. По итогу работает как должно: враг меня замечает, включается хелсбар противника на экране. Враг умирает, хелсбар пропадает. В принципе, это верх моих знаний, другого способа не знаю
Теперь я тебя не понял, не знаю в чем разница. Просто взял из иерархии префаб, на котором висит скрипт, кинул в паблик другого скрипта.
По итогу я сделал что хотел, не совсем уверен как, но сделал. В EnemyManager у меня есть public HealthBar healthBar, в этом скрипте я вызываю по методу из HealthBar, когда персонаж жив и мертв:
private void FixedUpdate()
{
if (!isDead)
{
healthBar.TurnOnHealthBar();
HandleStateMachine();
}
else
{
healthBar.TurnOffHealthBar();
}
}
В самом HealthBar скрипте тоже есть public EnemyManager enemyManager, нужный, чтобы получать инфу по таргету и bool переменной состояния:
public void TurnOnHealthBar()
{
if (enemyManager.currentTarget != null)
{
slider.gameObject.SetActive(true);
Debug.Log("Hello World!");
}
}
public void TurnOffHealthBar()
{
if (enemyManager.isDead)
{
Debug.Log("Bye World!");
slider.gameObject.SetActive(false);
}
}
На префабе с EnemyManager висит UI с HealthBar и на UI HelthBar висит префаб с EnemyManager. По итогу работает как должно: враг меня замечает, включается хелсбар противника на экране. Враг умирает, хелсбар пропадает. В принципе, это верх моих знаний, другого способа не знаю
Unity’s Prefab system allows you to create, configure, and store a GameObject
complete with all its components, property values, and child GameObjects as a reusable Asset. The Prefab Asset acts as a template from which you can create new Prefab instances in the Scene
.
префаб это ассет, на сцене его инстанс
как-то так
>Понял, но на ассеты я ведь не могу добавить компоненты, в особенности скрипт. То есть я могу просто ссылаться на ассет в скриптах для разных нужд?
Почему префаб же можно изменять, добавляй что хочешь. Но вот, если ты ссылаешся на префаб, то я не очень понимаю что ты из него можешь достать, возможно ничего. В юнити ин экшен, например, есть такая конструкция, что ты создаешь переменную, линкуешь в нее префаб, потом делаешь instaniate этот префаб as геймобжект, и только потом тащишь с него компоненты. У меня честно не дошли еще руки почитать мануал на это счет, но сдается мне, кастили там не просто так.
>Пилю смесь RTS и TD в 2D. Из Ассетов пока только APathfinding бесплатная версия. Стоит ли пиратить платную? Может, кто-то здесь пользовался.
Я пользовался. Хотел вот тоже спросить у кого-нибудь. Судя по списку фич платной версии, это не очень того стоит.
Плюс, у этой хуйни лицензия креейтив коммонс — ты должен будешь указать автора алгоритма у себя в игре, а потом ещё спросить у него, хочет ли он, чтобы его код был в твоей игре.
Пришёл сюда спросить, а каким патфайндингом тут пользуются для 2д тейлов? В юнити нет дефолтной фичи, APathfinding имеет анальную лицензию, а другие MIT, но стрёмно как-то пользоваться всё равно.
Может кто посоветует чего? Неужели переводить игру в 3д и использовать навмеш?
Документация пакетов (unity packages) находится на отдельном подсайте, а EventSystems - это отдельный пакет.
> APathfinding имеет анальную лицензию
ТЕБЕ ДЕБИЛУ ЕБАНОМУ НЕ ДОЛЖНО БЫТЬ ПОХУЙ? ТЫ РАЗВЕ АААА ИГРУ ПИЛИШЬ? ПОВЕРЬ СУКА ЕБАНАЯ, ПРОСТО ДЕЛАЙ ИГРУ И НЕ ПАРЬСЯ
Понял, спасибо.
Вроде ок все.
Кто нибудь сталкивался с ошибкой в пакет менеджере "you seem to be offline" не дающим скачать любые ассеты кроме родных что в папке на диске?
Главное в аккаунт логинится, юнька обновляется, всё ок скачивается, но этот менеджер залупается. Причем по прямой ссылки с гита качает, либо же с диска.
Не пойму это наши сломали блоками сеть, или из вне такая херь? Раньше никогда такого не замечал.
Временное решение подрубаться через мобильный интернет, походу провайдер что-то где-то блочит, залупа канешна. И главное не понятно почему именно только этот узкий кусок, а не что-то глобальное.
Иди нахуй, козёл.
двачую. Была похожая хуйня - провайдер блокал Unity.com. Через неделю само пофиксилось.
11-кун
https://www.youtube.com/watch?v=SDfEytEjb5o[РАСКРЫТЬ]
мб это подойдет тебе.
Что касаемо боя - пили машину состояний, для привязке к повторению можно использовать корутины
Для детекта попадания - нужно подумать как ты хочешь реализовать боёвку. Если твоя дубина может бить сплешем, то надо именно смотреть попадания через колайдеры(например), если хочешь, чтоб 1 юнит атаковал только 1 юнит, то тут надо сделать таргеты и без всяких колайдеров атаку.
11-кун
Так анимация просто проигрывается, а сам объект в пространстве не двигается. Для движения нужен скрипт отдельный.
Ору+кричу, значит ебался с этой ебалой аж до перестановки винды, всё никак.
Сегодня эта хрень работает как и обычно до этого годами. Пиздец.
Нет, есть анимации, которые с включенным RootMotion двигают модель в пространстве, но у меня же она просто дергалась, а не двигалась. Видимо это на этапе анимирования закладывается, что модель движется по координатам, а не в вакууме, ну и игровые движки это считывают
Игровая анимация всегда происходит на месте, исключения составляют лишь особые действия или кат сцены.
Анимация движение персонажа не входит в это исключение и всегда происходит строго на месте.
Либо я тебя не понимаю, либо ты меня не понимаешь. Вот видео, которое изначально ввело меня в ступор, почему персонаж идет вперед без определения ему скорости движения или запекания навмеша: https://youtu.be/eKUkFAz5pUc?t=334 (с таймером на 5:34, смотреть все не обязательно. На 5:34 он прописывает смену фазы анимаций и персонаж движется. Других скриптов на движение нет во всей серии уроков)
После того как мне тут же, на дваче рассказали про RootMotion я загугли че это и нашел такой видос: https://www.youtube.com/watch?v=Xl_5roq4UlI
Весь смотреть тоже не надо, там показано, что без скрипта на движение можно двигать персонажа в лицевую сторону просто через RootMotion. Обрати внимание, что на этом сраном Mixamo есть пункт In place, который и указывает анимации как ей двигатсья: в пространстве или на месте.
Если это не заранее вшитое в анимацию движения, объясни, пожалуйста, что это и как это сделать в блендере.
Нет, ничего не вшивается в анимацию. Возьми блендер и запиши 60 кадров как куб двигается в разные стороны, потом импортни в юньку, и поймёшь. Для наглядности можешь его перемещать во время анимации, и увидишь что центр всегда будет один и тот же.
Как движутся в пространстве зомби и тянка на двух видосаъ, если нет скрипта на движение?
Пчел ну хотяб подтянул матчасть. Знаешь же что в юнити есть xyz, и анимация к ним никак не относится, это просто как гифка которая проигруется на месте.
эм, ну как бы вася здесь ты, если анимация задана со смещением координат, то и аниматор может её поддерживать при включенном Root Motion, достаточно только в него потом передавать значение переменных, отвечающих за проигрывание анимации, без привязки к трансформу или риджидбоди
Посмотри видео блядина, что ты хуйню несешь то про свои гифки и анимации. Ты можешь глазами зрячими увидеть, что нет либо строки задающей движение персонажу, как в первом видео, либо нет вообще скрипта на движение, как во втором. Что ты блядь несешь, нахуй
>Root Motion
При чём тут рут мошион? Он вообще относится к анимации и её лупам, и никак к разговору.
>анимация задана со смещением координат
Я же писал про кубы, ты можешь какую хочшеь анимацию сделать, но у неё будет конец и перед в другую, либо луп. Как думаешь почему это физически не возможно передвигать объекты с помощью анимации?
>>798835
>видео
Блядина тебе и объясняю, мало ли что ты видишь в видео, ты блядь проект не видишь весь, и что там натыкано на объектах. Я же тебе объясняю как работает ебучая юнити, и там нету никакой магии как движение объектов с помощью анимаций, и такое нигде не применяется.
Челы я понимаю вам охота попиздеть, но вы посмотрев пару видосиков про юньку на ютубе не туда лезете, у меня многолетний стаж работы в ней.
>ты блядь проект не видишь весь, и что там натыкано на объектах.
Весь проект чего блядь и каких нахуй объектов? Весь проект юнити? Всех объектов, которые используются в проекте? Тот сука сымый проект, который растянут уже на 16 выпусков, я не вижу что в нем натыкано? В том сука проекте, который создавался с голой арены, в нем я не вижу что находится? На тех сука самых объектах, которые снимаются на ОБС, я не вижу что на них находится? Я не вижу все скрипты, которые рассасывались 15 выпусков, которые висят на объектах? Их я блядь не вижу?
Многолетний страж, ты смотрел видео, мразота? Как сука движутся модели в пространстве без прописанного в скриптах движения, ты можешь ответить на этот вопрос? Поделись опытом многолетняя робота
>Он вообще относится к анимации и её лупам
ясно, иди нахуй
>>798837
Ты уже, видимо сам разобрался, нужно в аниматор добавить float (если хочешь скорость контролировать, или в деревья лево-право мешать), либо булевую, если просто проигрывать или нет, а в condition нужной анимации поставить зависимость от этой переменной. В скрипте при инпуте передавать в аниматор SetFloat или SetBool и все будет работать на рут моушн. Твоя анимация In place, так что да, работать так не будет
Вроде тупить перестал, но тут я добрался до системы частиц и не могу даже правильно на английском загуглить.
Есть такая проблема, делаю костер текстурку 2Dшную нарисовал в ФШ экспортировал в пнг и закинул. Пытался сделать материал от particalSystem, но там вобще розовая текстура и нихуя не меняется, как бы не старался.
В чем проблема: создал от основного шейдера материал, кинул на него текстуру и кинул в Render партикал систем. Там появляются артефакты в виде рамок/фона. Спрайт определил в 2д текстуру рендер частиц от билборда. Как фиксить? Нихуя не понимаю и подобрать слова для гугла не могу
P.S. возможно мне надо создать развертку в максе с наложенной текстурой??
В твоём случаи проще всего будет загуглить пару видосиков на ютубе и посмотреть что там тыкают, пару часов времени, но 100% результат.
Открываешь любой гайд на ютубе по партикулам который не старше +-1-2 месяца и делаешь по нему. От и до. Там обычно все ньюансы показываются в том числе и прозрачность. Новее всего будет по шейдеру, и там на самом деле не сложно. Потрать пару часиков, зато выхлоп будет стократный.
https://learn.unity.com/tutorial/get-started-with-audio?pathwayId=61a65568edbc2a00206076dd&missionId=61a615eaedbc2a03fbc84c03#
Оф курс от юнитеков по спецэффектам, в частности системе частиц. Только что прошёл, весьма годно. судя по всему ты проебался чутка со спрайтом, тут тебе надо разбираться отдельно, но черного фона быть не должно. В курсе предлагается скачать проект, там есть готовые спрайты, можешь посмотреть чем они отличаются от твоих.
>В чем проблема: создал от основного шейдера материал, кинул на него текстуру и кинул в Render партикал систем.
А лол, ну так ты шейдера материала не для партиклей выбрал. Тебе нужно поменять на particle/unlit. Пикрил. А курсики от юнитеков то окупаются!
https://learn.unity.com/mission/creative-core-vfx?pathwayId=61a65568edbc2a00206076dd
Ссылку не ту скинул кстати
Упростим задачу, вот есть некоторый объект, расположенный на 2д плоскости, и некая стрелка, которая должна показывать на этот объект. Всё в 2д.
Надо как с этими Квартерионами задавать вращение стрелки, что бы она показывала на объект. Уже всё перепробовал, Vector.Angle, Quaternion.FromToRotation, Quaternion.LookRotation и т.д и т.п, всё не работает, или я им неправильные параметры задаю.
Я могу сам сделать без квартерионов, используя тангенсы, но там получаются условия, которые бы хотелось избежать.
Наверно решение простое то..
Чето ты с жопы начал делать. У тебя 2D, нахуя ты вектор3 юзаешь?
У тебя есть 2 объекта, бери координаты у куба XY и рассчитывай поворот по Z у стрелки и все.
transform.LookAt(pise4ka.transform) ???
Спасибо.
пиздец, насколько эта хуйня практична в принципе??? Я даже не особо понял че ты хочешь, разьяснись!!!
Луль))) вообще не ебу. верхнюю часть по идее можно вообще убрать.
Карочи. у меня есть префаб одной игровой плиточки, который при инстантиейте подсасывает из массива число и отображает его сверху плиточки, если 0, то не создается нихуя. Я процикливаю массив и таким образом создаю игровое поле.
Проблема в том, что я пока не придумал как мне задать условия победы и именно поэтому я не перемешиваю стартовый массив, в котором числа тупо по возрастанию, а создаю другой, в который закидываю значения из первого и перемешиваю. Чтобы возможно потом задать каким-то образом условия победы через какие-то манипуляции с массивами. Как будет на самом деле я вообще не ебу, я только сегодня начал чета делать и оно в таком виде потому что ну хоть какая-то нить.
Ну вот придумал кстати, каждая плиточка будет чекать через рейкастинг соседние плиточки и проверять номерочек. Верхний/нижний +- 4, боковые на +-1, когда у всех плиточек сработает тогда вин. Балдеж. завтра напрограммироваю.
Так не легче сделать так:
У нас есть массив XY, где X строка а Y столбец и ячейки xy_ab, где ab это рандомное значение места необходимого. Прокидываешь xy_ab эксклюзивные значения, условие победы: у всех ячеек xy_ab, xy==ab. Ну по крайней мере я бы так делал, плюс считать удобнее по горизонтали y+-, лево право x+-.
Отбой, проблема была в этом
Три месяца пердолился с юнити, проходил курсики, рассказывал им кулстори, че делал, что выучил. Похуй, молчали.
На четвертый месяц пожаловался на то что юнити крашит винду при билде иногда, и тут пошли советы А НАХУЯ ТЫ НА ЭТОМ ГОВНЕ ДЕЛАЕШЬ ВОТ ЕСТЬ ЖЕ АНРИЛ
Пиздец, вот что за хуйня?
За то ты игру делаешь, а не двигаешь стул и на тени дрочишь.
Ну звучит разумно и координаты можно все жестко прошить и значения привязать.
Так по итогу кто еблан? Ты потому что не умеешь с людьми общаться или твои друзья потому что не могут поддержать друга?
Да они поддерживают в целом, просто советы по выбору движка пошли сильно поздно, когда я уже инвестировался в него временем нормально так.
В общем решил я сделать так. Есть один одномерный массив из 16 ячеек. Перемешиваю, инстанцирую плиточки с рандомом номеров. Когда я буду двигать плиточку, то номер этой плиточки будет свапаться в массиве с 0, обзначающим пустую клетку игрового поля. В итоге условием победы будет, что при проциклевании массива значение в ячейке совпадает с индексом ячейки+1 и все. т.е. А метод движения плиточек будет через рейтресинг работать, тупо чекнул 4 вектора, где нет колизии поехал на нормализованный вектор, т.к. сторона плиточки равна 1.
Есть ли какие-то нюансы у сглаживания? В документации ссылаются на постпроцессинг.
Я просто повесил на фон два спрайта и на них эти шейдеры, и на телефоне оно в районе 30 фпс выдаёт. Как только отключаю фон - сразу всё норм. Но сцена по сути пустая, может поэтмоу я не знаю - может звёзды эти там тоже в 60 фпс еле крутятся, а мне такой не подходит.
На компе - что с фоном что без рендеринг 0.9 мс стабильно, поэтому не знаю даже как тут пытаться выловить в чем проблема.
>Но сцена по сути пустая и насколько тяжелы звёзды я не знаю - может они там тоже в 60 фпс еле крутятся, а мне такое не подходит.
быстрофикс
>Как только отключаю фон - сразу всё норм.
>как тут пытаться выловить в чем проблема.
Вроде очевидно, нет? С частицами у меня все хуево, могу лишь сказать очевидное: где то создается нагрузка, которая жрет фпс. Возможно большое разрешение текстуры и из-за их кол-ва частиц.
А вобще, пиши более внятно очень сложно понять что куда ты кинул
Как в таком случае мне задавать тип снаряда конкретному оружию?
То есть сейчас я просто делаю префаб снаряда, делаю префаб оружия, и в префаб оружия даю ссылку на снаряд, и он каждый выстрел его инстантиэйтит. Если я сделаю пул, то такое уже не пройдет.
Я конечно могу сделать просто текстовое поле и глобальный пул менеджер, который по строке будет давать нужный пул из словаря например, хотелось бы более нормальное решение.
Не понял что ты хочешь. Проверять какая сцена загрузилась? Вставить между двумя сценами еще одну для своей логики? Вызывать одну функцию которая будет смотреть что тебе надо и потом запускать в нужном порядке?
>>799778
Самый лучший метод это не инстансить а держать в памяти пулю, или её группу, и просто включать выключать. Хранить снаряд можешь ссылкой при инициализации сцены, один раз в начале подгрузка, потом просто ссылка.
>Не понял что ты хочешь. Проверять какая сцена загрузилась? Вставить между двумя сценами еще одну для своей логики? Вызывать одну функцию которая будет смотреть что тебе надо и потом запускать в нужном порядке?
не. у меня геймменеджер, который донтдестройонлоад. В нем есть код, который должен сработать один раз при загрузке сцены. Когда была одна сцена, то код просто лежал в Start и было норм. Но теперь у меня две сцены и код должен отработать во второй. Соответственно моя идея в том, чтоб Update в менеджере чекал имя сцены и на нужном имени уже запускался код. конкретно в этом решении мне не нравится, что оно в апдейте. Поэтому интересуюсь насколько оно норм вообще в таком виде.
>В самой сцене игры создай проверку
можешь немного раскрыть?
>В самой сцене игры создай проверку
Я мог тебя неверно понять, НО, в глобальном синглтоне я всегда храню просто некие ДАННЫЕ, а вот что с ними делать решается уже на месте.
Понял/принял.
В чём проблема при старте сцены там обьект сам стучится в нужную функцию на твоём менеджере?
Помойму ты не то делаешь совсем.
я делаю все то и оно у меня работает как надо, меня интересовало насколько такое решение вообще ок, может есть какие-то методы полезные в работе со сценами, котоырые я не нашел и с помощью которых можно было бы сделать по другому.
>>799790
вот тут мое решение. мне не нравится, что оно в апдейте, хотелось бы, чтобы проверка была только один раз, сразу после загрузки сцены, а не каждый кадр.
Карочи забей, мне сейчас по сути важно сделать законченную программу с тем функционалом, который я запланировал. Остальное дрочь.
В общем это дельное было замечание, переделываю. По итогам мой код жидко пукнул и обосрался на кнопке рестарта игры из-за особенностей загрузки сцен.
>вот тут мое решение. мне не нравится, что оно в апдейте
Так в апдейте никогда ничего не должно быть кроме функционала который по сути не может работать в другом месте, по типу перемещения и т.д. Есть даже такой дедовский способ что люди пользуются корутиной с тиком 0.1/0.2сек по аналогии с апдейтом для своих нужд, но думаю это не твой кейс.
Конечно нет. Корутина по своей сути аналогия апдейта, но её плюс в том что юзается она лишь когда надо, и с меньшей нагрузкой, а не всю игру или до того как в ручную скрипт отключишь.
unitask
У меня есть враг(много врагов) и надо сделать ему анимацию смерти(просто цвет плавно меняется до прозрачного).
Я могу просто в скрипте сделать переменную timeToDestroy, и соответственно как только враг умирает - отключать коллайдер и компоненты логики, и в апдейте начать уменьшать timeToDestroy и интерполировать цвет, после чего уничтожать объект.
Но ведь то же самое можно сделать и аниматором...
Так ошибка то в чем? Он говорит, что у меня нет ссылки на объект, но ведь ссылка есть.
Лол. Спасибо!
Я был в супер плохом настроении, у меня течная собака с утра весь пол зашкварила, и не выспался((
>>799845
>Так в апдейте никогда ничего не должно быть кроме функционала который по сути не может работать в другом месте, по типу перемещения и т.д. Есть даже такой дедовский способ что люди пользуются корутиной с тиком 0.1/0.2сек по аналогии с апдейтом для своих нужд, но думаю это не твой кейс.
трекаю твоей кейс на пике. чи да чи ни? каждый ход игрока запускает юнитиэвент с проверкой условий победы и стопает таймер, который считает время с начала игры.
Зачем тебе чекать условия в корутине которая точно так-же работает как апдейт, если ты можешь чекать условие по прошествии действия к примеру? К примеру игрок сделал ход - Проверка условия победы/поражения.
Если нужна проверка на время то да, такое только в апдейте.
>К примеру игрок сделал ход - Проверка условия победы/поражения.
у меня так и сделано. Через юнити евент. А корутин отдельно вообще. но в случае победы метод, который срабатывает по евенту останавливает корутин и соответсвенно я получаю время потраченное на победу.
>Я был в супер плохом настроении, у меня течная собака с утра весь пол зашкварила, и не выспался((
Да понятное дело, однако представь, все бы тут кошмарили друг друга проебом в референсе, ладно тебе повезло за 20 мин ответели, мне иногда днями не отвечают, я думаю гуглом бы ты в два раза быстрей нашел ответ
Раз такая пляска, что не посылают в гугол, как сделать, чтоб при столкновении колайдеров оружия игрока и объекта шла анимашка реалистичная типо он назад сдал, партиклсистем уж сам пришью
Какие подводные камни/в чем я не прав?
Прост везде вижу, даже в примерах от самих юнити, которые в юнитихабе можно скачать, всякую хуйню типа EnemyController или PlayerController с миллионом каких-то разных полей(совершенно разных - и ссылка на систему частиц, и скорость, и количество хп - всё в одном), каких-то зависимостей зависимостей. Соответственно чтобы нового немного другого врага сделать - нужно делать новый компонент или модифицировать этот.
А если делать так, как я сделал - то просто сразу в редакторе еще один маленький компонент накинул, в нужный триггер что надо дописал - и вот новый вид противников готов.
Сап юнитач, не могу вкурить нажатие циферок на клавиатуре.
Короче любое нажатие буковку могу привязать к дейсвию, но как только пытаюсь использовать клавиатуру 1, 2, 3, для смены типа оружия юнити никак не реагирует. Где я обосрался?
if (Input.GetKey (KeyCode.Keypad7))
{
//действие
}
yне работает.
Если у тебя всё работает как надо и удобно, то никаких подводных. Проблемы велосипедов обычно начинаются и приумножаются когда растёт игра и усложняется её структура. И далее в дело идут либо еще велосипеды, либо полное переделывание внутренностей.
>>800165
GetKey обрабатывается каждый кадр, используй Input.GetKeyDown("Space" либо через KeyCode.Space) он срабатывает один раз при нажатии.
Keypad7 Это клавиши на нумпаде с включённым нумлоком обычно. Для обычных используй KeyCode.Alpha1,2,3,4 и т.п.
>Для обычных используй KeyCode.Alpha1,2,3,4 и т.п.
Тонну нефти тебе, я не знал о таком нюансе, а на ютубе вообще не то.
кто-то может пояснить за пиратство ассетов? Что мне будет, если я спирачу пару ассетов и буду продавать такой проект? Это вообще как-то смогут спалить?
Да это чекается, но очень редко, и в основном по заявлению владельца. На глаз никто не будет смотреть.
Проблемы начнутся когда ты оформишься в сервисе где будешь получать деньги, т.к там ты указываешь все свои данные, и когда спалят будет несколько дальнейших вариантов событий, от обычного бана и всё, до заявления.
На досуге решил почитать на лурке статьи по индусо/школо/быдло коду. Интересно стало, как на юнити выглядит быдлокод. Со шкильным понятно, там скорее всего циклы, файнды, и геты в апдейте. Просто решил проанализировать и сразу убрать хуевые привычки, если найду
Там больше будет комбо быдлокод + не правильная архитектура. По коду будут везде паблик поля, миллионы переменных без массивов/списков/диктов, возможно вся логика игры в одном скрипте, куча всего в апдейте. По архитектуре будет куча объектов без четкой иерархии, не будет префабов или скрипов, куча динамик света, использование скриптов на объектах где всё будет в апдейте на каждом, назначение зависимостей в ручную путем перетаскивания в гуи, вся игра в одной сцене, большое кол-во скачанного из асс стора из-за чего вес папки проекта может достигать и сотки гб.
Кто знает чем дубликат от копии отличается?
Ты про кнтр+с и кнтр+д объектов? Глобально ничем. По памяти могу сказать лишь что было пару моментов когда сам эдитор юнити багал и обычное копирование ломало объект, и пришлось дублём множить, но это исключение.
> паблик поля
Вот кстати, я понимаю что при играх с онлайном, даже локальным требуется соблюдать приватность переменных, но вот если это сингл, думаю проблема не критичная.
> возможно вся логика игры в одном скрипте
Ну это пиздец, как вобще можно кодить более 200-400 строк
> вся игра в одной сцене
Вот кстати, пока еще не доходил, пилю архитектуру, но как условно в 3д опенворлде пилить многосценовость? Я что то слышал, про то что слепить сцену и резать ее, и потом при приближении подгружать и выгружать
> Вот кстати, я понимаю что при играх с онлайном, даже локальным требуется соблюдать приватность переменных, но вот если это сингл, думаю проблема не критичная.
Чееееел...
Приватные/публичные поля никак не защищают данные.
Это чисто архитектурное решение, которое на что-то влияет только в ИДЕ.
Вот представь - ты написал класс Health, все заебись. Прошло несколько месяцев и тут ты решил сделать нового противника, который хилится раз в секунду - пишешь такой:
Health health = GetComponent<Health>();
Потом где-то в корутине или апдейте пишешь
health.currentHealth += 30
Казалось бы все норм.
Запускаешь игру - и видишь как текущее хп у противника стало больле максимального.
Поэтому чтобы такой хуйни не было ты делаешь currentHelath приватным, и делаешь метод
public void AddHealth(float value)
{
currentHealth+= value;
if (currentHealth > maxHealth) currentHealth = maxHealth;
}
И все - в следующий раз когда ты напишешь health. - тебе в подсказках вылезет метод AddHealth, а есди попытаешься использовать currentHealth - вылезет ошибка.
Да, этот пример простой, а представь более сложный пример, где внутри класса должна поддерживаться какая-то особая связь между его полями, и изменяя одно, должны меняться и другие, или евенты вызываться, или делаться проверка недопустимых значений.
Держаться все это в голове для каждого класса нереально.
Ну и отдельно надо выделить когда ты меняешь реализацию, удаляешь какие-то переменные - и все зависимые классы сразу ломаются, и надо все переделывать. А с приватными полями пох, один метод переписать, условно.
Видимо я вобще очень странно пишу код. Просто для каждого раздела объектов пишу другие скрипты. Я вкурсе за ООП, но мне кажется такой подход более логичный, но по крайней мере с такими ошибками я не сталкивался. Я студяга, который изучал чистый C 2 года назад, так что стало интересно, тк на шарпе начал кодить пол года назад. Ну я ознакомился с основными подводными камнями на юнити и у меня столько скриптов и никаких проблем не ловил.
Мб я заблуждась или живу на фарте, но я присошаюсь
Лол так это просто написание удобных методов, я могу их вместе с паблик полями иметь. Тут скрывать поля имеет смысл если ты работаешь не один и боишься что джуны-долбоёбы начнут напрямую менять их не разобравшись с классом.
> но вот если это сингл
Опять же не критична пока у тебя маленькая игра на пару десятков скриптов и запутаться не возможно, но как только она разрастётся во что-то большее сам же будешь тратить дополнительное время на попытку понять что-куда относится, это как правила ТБ написанные кровью, понимают лишь те кто проходил.
>Ну это пиздец, как вобще можно кодить более 200-400 строк
Удивлю но в скрипте может быть и пару тысяч кода, не всегда есть возможность разбить кусок логики на кучу мелких, тем самым породив за пару тысяч скриптов в сумме.
> но как условно в 3д опенворлде пилить многосценовость?
По аналогии с лодом работает, игрок видит/не видит, находится ли в области и идёт подгрузка сцена, при не надобности выгрузка, относится этот метод не только к большим сценам, но так-же например к высоко полигональным, как в RE в каждая комната может подгружаться отдельно.
Да проблема решилась, надо было просто выбрать медиэйшн как один из способов монетизации и всё заработало.
Кстати гугл плей там не собирается девелоперов пидорить? Без впна даже в консоль не пускает. Только покупку запретили пока что?
Неа, это у тебя провайдер блочит, у меня всё ок работает, только иногда что-то отваливается на время.
Да, заработало и без впна, ростелеком зондами жонглирует. Впрочем стартовый взнос всё равно не оплатить пока что, карты блочатся.
Ток решил вкатиться в очередной раз и тут такие подарки от юнити. Неужели придётся в говнот идти?
>>800350
Проверь есть ли место на диске, запущен ли хаб от админа, есть ли право записи на диск, соответствует ли мин.требованиям пс.
Для универсального решения удали хаб и юнити, в ручную почисть апп дату, и прог файл с прог дата, потом пройдись клинером, перезагрузи пс и установи хаб сначало.
Свой напиши по аналогии, там не сложно и синямашина не нужна, а вот с фёрд пёрсоном где камера вокруг да еще и с коллайдером, там придётся сексом хорошо позаниматься.
Ок, так и сделаю наверное
Вопрос такой, нужно прикрутить к игре локер игрового процесса, типа, в сутки можно играть только 30 минут, обычная привязка к времени устройства, по истечению 30 минут появляется алярм и игра вынуждает выйти. Как это реализовать?
Сериализуй время в файлик.
Спасибо за ответ. Игр тебе.
хз, я ничего такого не заметил. начинал курить юнити с 19ой, сейчас пишу первую прогу на 21. в 20й последней версии кстати багнутый аниматор, не работают связи.
Я короч плюнул на новую инпут систему, работаю в старой, не хочу отвлекаться, буду делать с тем что уже знаю.
новая это инпутсистемс, которая ставится отдельным пакетом через менеджер чтоли?
>А в чём преимущества если не сложно пояснить?
Очень универсальный менеджер инпута с более удобной глобальной настройкой, маст хэв если собираешься делать управления для разных девайсов. Для обычно анона можно спокойно и без него обходится ванильными инпутами в апдейте, почти ничего не потеряет.
Понятно, я сейчас делаю прототип, или даже пруф оф концепт, отложу знакомство с этой радостью до момента когда подойду к конечной версии игры и задумаюсь о какой-либо платформе кроме винды.
>>800651
Главное преимущество там совсем не в удобстве сегрегации по девайсам хотя и весомое и даже не в простой настройке через сам эдитор, а в охуеть какой гибкости на уровне кода если работать.
Вот так выглядит мой инпут контроллер последние 3 проекта ни на строчку не меняясь:
internal sealed class InputService : IInputService
{
private readonly InputControls _controls;
public InputService() => _controls = new InputControls();
public void AddOrRemoveHeroListener(InputControls.IHeroActions listener)
{
_controls.Hero.SetCallbacks(listener);
if (listener != null)
_controls.Hero.Enable();
else
_controls.Hero.Disable();
}
public void AddOrRemoveHUDListener(InputControls.IHUDActions listener)
{
_controls.HUD.SetCallbacks(listener);
if (listener != null)
_controls.HUD.Enable();
else
_controls.HUD.Disable();
}
}
Таким образом я легко и просто контролирую передачу управления той или иной системе, без каких-либо проверок или стейт-машин
>>800651
Главное преимущество там совсем не в удобстве сегрегации по девайсам хотя и весомое и даже не в простой настройке через сам эдитор, а в охуеть какой гибкости на уровне кода если работать.
Вот так выглядит мой инпут контроллер последние 3 проекта ни на строчку не меняясь:
internal sealed class InputService : IInputService
{
private readonly InputControls _controls;
public InputService() => _controls = new InputControls();
public void AddOrRemoveHeroListener(InputControls.IHeroActions listener)
{
_controls.Hero.SetCallbacks(listener);
if (listener != null)
_controls.Hero.Enable();
else
_controls.Hero.Disable();
}
public void AddOrRemoveHUDListener(InputControls.IHUDActions listener)
{
_controls.HUD.SetCallbacks(listener);
if (listener != null)
_controls.HUD.Enable();
else
_controls.HUD.Disable();
}
}
Таким образом я легко и просто контролирую передачу управления той или иной системе, без каких-либо проверок или стейт-машин
>есть подозрение, что эта хуйня продолжает работать после завершения работы и плодится после вызова
Есть Debug.Log(), чтобы проверить
>как это фиксить
Единственное что могу предположить, из-за того что asyncOp.isDone постоянно == false, он его и крутит
Попробуй CancellationToken юзать где-нибудь в OnDestroy.
Я создал анимационный клип на объект (это типа экземпляр оружия), положил его как компонент Animation, поставил в свойстве Legacy. Потом прибиндил скриптом проигрывание этой анимации на нажатие кнопки. Так вот, система взятия этого "оружия" "персонажем" состоит в том, что в момент взятия скрипт включает у него компонент ParentConstraint и отключает кинематику, гравити и может что-то там еще.
Так вот, анимация проигрывается только на объектах, которые лежат свободно, а взятый в руку игнорит анимацию. Это можно как-то пофиксить?
Я только пару вечеров в Упити, сорян если вопрос очень тупой.
Ну, да. Мне пока интересно было бы на голом скрипте сделать. С аниматором надо трахаться чтоб понять как там че устроено. А скрипт я просто закрепил на GameObjecte и могу пинать в любой момент. Но он почему-то пинается у всех инстансов этого "оружия" в сцене (так и задумано на время дебага, планировалось что потом я буду точечно пинать анимацию у того, что в руках), кроме того, который привязан к персу через ParentConstraint.
Может, конечно, надо было делать так, что оружие в момент взятия становится "потомком" чисто по иерархии персонажа, но мне показалось красиво что в дереве все статично, а объект просто сам по себе через Constraint следует за персом.
>С аниматором надо трахаться чтоб понять как там че устроено.
На самом деле нет, потрать 10 мин чтоб разобраться, потом будешь на легке использовать.
Вкратце суть: Ставишь на объект аниматор, создаешь клип, заходишь в клип и клацаешь запись, далее делаешь любые действия с любыми объектами, не забывая менять ползунок на шкале анимации, и в конце стоп. И в итоге ты можешь реализовать что угодно воспроизведением одного клипа.
Уделяйте время чистоте кода, посоны.
Буду пробовать. Просто не совсем понял зачем нужна прокладка в виде аниматора, который вроде как нужен для связи кучи анимаций и стейтов между собой, по возможности с минимум кода, для проигрывания единственной анимации по тупому прожатию кнопки. Ну и вообще я просто хотел побольше покодить и поменьше торчать в визуале, джаст фор релакс.
Спасибо анон. за ответы.
По идее ты можешь это всё через код делать
https://docs.unity3d.com/ScriptReference/Animations.AnimatorController.html
Видимо проблему я сразу вычленил.
>Ну, да. Мне пока интересно было бы на голом скрипте сделать
Зачем будучи нуфагом изобретать велосипед? Аниматор - бест инструмент юнити, наверное. Тем более, вместо того чтобы тратить время еще и на прописывание анимации в коде, ты можешь просто 1 строкой пингануть в аниматор необходимую переменную.
>С аниматором надо трахаться чтоб понять как там че устроено.
10 минутного гайда на трубе хватает, для понимания основного функционала (опущу работу с масками и тд, хотя сам еще в это не сильно погружался)
>Может, конечно, надо было делать так, что оружие в момент взятия становится "потомком" чисто по иерархии персонажа
Да. Самая простая реализация анимации оружия, что в скелете персонажа у нужной кости создаешь пустой ГО и суешь его туда, и он в след за анимацией персонажа двигается.
Падажди ты делал анимацию оружия???
Я его понимаю тащемта, потому что ГУИ аниматора это просто прокладка для кода, некоторым людям проще с кодом работать чем таскать эти ебучие иконки.
>некоторым людям проще с кодом работать чем таскать эти ебучие иконки.
Ну допустим хочется кода, ради кода. Но тут возникают уже заебы в архитектуре и тд, если аниматор для объекта занимает один слот, условно, то реализация через код сулит не только кучей ненужных файлов, но и возможными ошибками и артефактами. Я не думаю что написать скрипт анимации имеет больший КПД, чем перенести 1 анимацию в аниматор, добавить в аниматоре 1 переменную, и провести одну стрелочку. Я думаю даже, это более дебильный подход, просто из-за распыления сил на придумывание велосипедов. Я еще могу понять, когда скила на реализацию не хватает как анимаировать и приходиться обращаться к миксамо, или моделить и обращаться к ассетам, но создавать самому проблемы которые могут обернуться пиздецовыми рисками с архитектурой, я считаю ну таким. И такая штука показательная на самом деле, если тебе сложно 10 минут посмотреть на ютюбе разбор аниматора, то вряд ли ты что то сделаешь, каким бы ты не был ахуенным кодером, имхо
>Для программиста причём этот ебучий аниматор может быть тупо неудобным. Потому что тебе надо вылезать из своей ИДЕшки, залезать в унити
А нахуя лезть в инди? С таким рвением можно перейти на плюсы и читсяк с подключением ебучего опенГЛ'а, и кодить сколько душе угодно.
При разработке у меня сразу включенны Unity, 3dsMax, vc, blender(для анимаций, потому что в максе хуета, а маю не хочу трогать), photojop и ничего, меня это не раздражает, а наоборот я разгружаю голову меня софт по мере проблем. А тут разобраться в однокнопочной ГУИ, которая предлагает решение, вызывает проблемы...
>>800795
Пчел, если тебе удобнее работать с ГУИ, то работай в ГУИ, я просто чутка умею в программинг и вижу что контроллер это просто стейт машина, где вместо кода у тебя иконки, которые надо двигать, у кого есть понимание как это работает на уровне кода и мужество работать с API, который юнити предоставляют как раз для таких случаев, то им во многих случаях будет удобнее работать через код. Я сам скоро начну пердолинг с анимациями и заранее предвижу что тоже не буду пользоваться ГУИшкой, а буду ебашить всё через код.
> я просто чутка умею в программинг
Я тоже и что? Ты мне объясни смысл пердолинга с кодом? Те ты предлагаешь создавать анимацию для всех объектов, как чел выше, засирать проект кодом, когда ты можешь просто привязать трансфер оружия к анимации ГГ? В чем логика?
> у кого есть понимание как это работает на уровне кода и мужество работать с API, который юнити предоставляют как раз для таких случаев
Каких случаев? Что экстроорднароного в геймплее ты придумал для анимаций, что приходиться все это пилить, путем засирания проекта скрптами?
Такой подход при разработке, полностью игнорирует принципы ООП. Да гуи, но это не визуальное программирование, там ты можешь отслеживать в реал тайме переход анимации, чего в IDE не можешь, плюс ты можешь отслеживать поведение анимация, а не тратить кучу времени на то, где же ошибка, когда анимация хуево работает. Опять же в 1 аниматор ты можешь засунуть дохулион анимаций для префаба, а для кодинга, ты лишь увеличиваешь архитектуру игры и вскоре запутаешься
>Падажди ты делал анимацию оружия???
Ну да. На данный момент там вообще нет никакого 3D персонажа, есть дефолтный FPS контроллер, я хотел сделать чтоб можно было подобрать запиленный быстро в 3D редакторе меч. Ну на сам меч я натянул анимацию удара. Хотел ее активировать, пока меч привязан к "руке" через Constraint.
Олсо, пока писал понял что это все бред с точки зрения архитектуры, и нужно "руке" создавать анимацию, а меч лепить к ней статично. Тогда не будет например такого затыка, как разные стили удара для разных потенциальных персонажей. Да и вообще с точки зрения правильной композиции это верно будет.
>>800792
>>800793
Именно так, я прост по работе погроммист (не гейдев, правда), и мне тупо нравится этот род деятельности. По крайней мере, иногда.
>>800795
>перейти на плюсы и читсяк с подключением ебучего опенГЛ'а, и кодить сколько душе угодно
Прикол в том, чтоб видеть как все получается, какой-то визуал, и не через неделю, а быстро. И еще в том, что там будет дохрена всякой еба-математике, а дрочить API скриптов юньки сорт оф отдыха.
Олсо, всем спасибо за ответы. Пока все понятно
Гц
Ах ты пидорас ты тоже рубильню с мечами делаешь я смотрю, расскажи че в конечном итоге хочешь сделать?
>Олсо, пока писал понял что это все бред с точки зрения архитектуры, и нужно "руке" создавать анимацию
This
>Прикол в том, чтоб видеть как все получается, какой-то визуал, и не через неделю, а быстро. И еще в том, что там будет дохрена всякой еба-математике, а дрочить API скриптов юньки сорт оф отдыха.
Собственно я выше и расписал, как правильнее будет это все. Сам в шараге сдавал OpenGL и матерился на это говно, я привел его к таким аргументам по типу "Хочу делать игру но хочу только кодить", потому что с таким же успехом можно делать текстовые рпг в .bat файле
А так, базовые вещи аниматора просты, если углубляться то да, ебли немного есть, но она аргументированна. Из самых пока для меня сложных вещей, является FX система и ели ели я как то справляюсь, так что удачи в изучении юни
Да ничего. У меня вообще толком нет идей. Просто создал террайн, замазал его текстурой, накидал какого-то средневекового говна чтоб был хоть какой-то сеттинг, разложил эти мечи и топоры, да поставил перса. Плюс наскриптовал что можно оружие брать в руки и бросать, да еще при наведении на него "прицела" появляется плашка с его названием. Это и вся "игра" лол. Я просто юньку суммарно пару дней учу, и то начал 3 года назад, вот только реанимировал проект. и так ничего не знал, а сейчас и то забыл. Правда, бустанул программирование за эти годы на 5000% примерно. Уже снес кучу кринжа из скриптов. Из-за того что я нихуя не знаю, никакого сюжета нет, просто хочу замутить какие-то гейм механики, типа махания, фикса коллизий от ударов, какие-то HP у каких-то бочек которые будут списываться от урона. Короче, голую технику надо сначала запилить.
>>800810
Уже сделал через махание псевдорукой, и этот "меч" теперь нормально к ней липнет по прежней схеме, через констрайнт. Спасибо за наводки и мотивейшен, анон.
Сап юнитач, подскажите, как можно обнулять ссылку на объёкт не удаляя его?
У меня есть боты которые ищут врагов, они находят и убивают их, но проблема в том что я не хочу чтобы их трупы сразу удалялись, поэтому у меня просто проигрывается анимация смерти валяется гора трупов. Но мои боты не перестают атаковать трупы, так как их объекты по прежнему не Null, пробовал насильно объявлять каждого врага мёртвым и присваивал ему значение NULL не помогло.
Я ещё помнил, что можно удалять как то все скрипты с объекта, но забыл конструкцию, может кто знает чего делать?
сортировка по render queue выглядит нормально только с одного ракурса, а cutout выглядит ужасно.
Самое просто - добавь скрипт с одной булевой переменной на всех врагов, при спавне тру, а как только они умирают фалсе. И проверку при нахождении если фалсе, то игнор.
Я придумал более изящное решение, просто после смерти тег врага меняется на тег мертвеца. Всего одна строка.
Так он тебе прямо и пишет, нет доступа. Для теста выруби антивирус и брэнду винды, если запустится значит в них косяк, если нет, придётся копаться.
Не работает. Хоть включен, хоть выключен. Может попробовать более раннюю версию? У меня винда 7
Хз, я хоть немного шарю в c#, а unity script вообще не шарю, но нужно будет чекнуть. Он удобнее c#?
Да это шутка была, зачем тебе такая древняя версия? Попробуй 2020 LTS или 2019 LTS на крайний случай.
Да я рофлю, братик. Не знаю чем помочь.
Может дело в том, что unity hub не коннектится к серваку? У меня в нем нет инфы о моем профиле, только sign in есть
Хз, есть конечно небольшой шанс что провайдер блочит соединение или сама юнька, но судя по ошибки больше похоже что у тебя лажа с блоком внутри.
Спасибо, попробую завтра скачать
с хуя ли бот должен знать сколько у цели осталось хп?
>>800937
обычно делается так:
1) метод поиска цели включает в себя условие если цель не мертва (по сути, можно и тег оставить, но теги - зло)
2) как только бот получает цель, то подписывается на его эвент смерти
3) при получении уведомления запускается метод поиска цели, всё
Делаю, говноигру, в которой по нажатию на кнопки запускаются нарезанные видосы.
Сначала я использовал 1 Video Player, которому кормил clip-ы, и думал что проблема в долгой подготовке видео к показу. Но теперь я использую Video Player на каждый отрезок.
Отрезки запускаются так.
говно-код <<
switch (Stage)
{
case("L-P"):
Stop();
VPlayer[5].gameObject.SetActive(true);
VPlayer[5].Play();
Stage = "Wait";
break;
case("Wait"):
break;
}
говно-код >>
Притом через "Play On Aweke" результат такой же.
Деактивировать их, потому что если они просто на паузе то они занимают Render Texture своим последним кадром. (Звук при этом идет от работающего отрезка) Функция отключающия отрезки
говно-код <<
private void Stop()
{
foreach (var player in VPlayer)
{
player.gameObject.SetActive(false);
}
}
говно-код >>
Этот код пробовал в засунуть в Update, FixedUpdate, LateUpdate и на собственный Action при нажатии на кнопки, результат везде тот же.
Так и не смог понять почему поведение "собраной" игры отличается от поведения в редакторе, в режиме "Play" Может что-то не то в настройках самого проекта...
Делаю, говноигру, в которой по нажатию на кнопки запускаются нарезанные видосы.
Сначала я использовал 1 Video Player, которому кормил clip-ы, и думал что проблема в долгой подготовке видео к показу. Но теперь я использую Video Player на каждый отрезок.
Отрезки запускаются так.
говно-код <<
switch (Stage)
{
case("L-P"):
Stop();
VPlayer[5].gameObject.SetActive(true);
VPlayer[5].Play();
Stage = "Wait";
break;
case("Wait"):
break;
}
говно-код >>
Притом через "Play On Aweke" результат такой же.
Деактивировать их, потому что если они просто на паузе то они занимают Render Texture своим последним кадром. (Звук при этом идет от работающего отрезка) Функция отключающия отрезки
говно-код <<
private void Stop()
{
foreach (var player in VPlayer)
{
player.gameObject.SetActive(false);
}
}
говно-код >>
Этот код пробовал в засунуть в Update, FixedUpdate, LateUpdate и на собственный Action при нажатии на кнопки, результат везде тот же.
Так и не смог понять почему поведение "собраной" игры отличается от поведения в редакторе, в режиме "Play" Может что-то не то в настройках самого проекта...
Видео из редактора, там отрезки на экране запускаются без проблем, как только была нажата кнопка.
Видео из готовой сборки, тут видео запускается только когда курсор уходит за окно приложения.
Делаю обычную анимацию покадровую в Фш допустим.
1) можно ли как-то оптимизировать процесс перевода обычной покадровой анимации в спрайтшит, чтобы вручную не разводить все на одном слое.
2) как сделать чтобы пивот поинты ставились как на оригинальном спрайте, а не в середине каждого спрайта?
Если ставить вручную то все равно ровно не выходит, и анимация получается дерганая
Эта тема не такая простая как кажется, лично делал подобное, для плавного перехода использовал такой костыль - Аниматор с маской и разные слои Объектов-Текстур, иначе выходило не то что хотел. Связано это с работой материала и рендера.
1) вопрос скорее к художникам, но вообще все анимации в проект спрайтшитами всегда и поступают, это самый оптимальный вариант
2) в 2д у тебя вообще не должно таких вопросов возникать, создаешь пустой ГО, суёшь в него пустой ГО (View) со спрай-рендерором и аниматором и приподнимаешь на сколько тебе нужно, но если хочется подрочиться, то заходишь в Sprite Editor и на главной вкладке переносишь Custom Pivot куда тебе удобно, вообще пошарься по всем его вкладкам, там много разных приколов есть, которые облегчают создание префаба
спасибо, сейчас попробую
>заходишь в Sprite Editor и на главной вкладке переносишь Custom Pivot куда тебе удобно
Так и делал, но одинаково точно во всех спрайтах сложно попасть, поэтому они дергаются потом
OnMouse события вызываются в зависимости от удаления объекта коллайдера от камеры по Z-координате. Для некоторых объектов нужно соблюдать конкретный порядок - если A и B перекрываются, то вызывается A, если B и C - то вызывается C и т. д.
Вопрос: как это аккуратнее сделать? Создать три пустых-объекта-слоя на разных координатах Z в иерархии и добавлять объекты с коллайдерами туда? Как быть уверенным, что какой-то скрипт случайно не изменит координату Z?
Я знаю, что тут это безполезно спрашивать, но вдруг
Вводные
Собрал игру для WebGL на унити
На вмваре развернул WinServ2016 IIS и закинул туда всё содержимое папки, куда собиралась игра
При попытке запустить эту игру удалённо через бровзер получаю такое сообщение.
> Создать три пустых-объекта-слоя на разных координатах Z в иерархии и добавлять объекты с коллайдерами туда?
Это удобный и понятный способ
> Как быть уверенным, что какой-то скрипт случайно не изменит координату Z?
Если ты будешь менять только привязку к слою где бы то ни было, то эта координата меняться вне координат слоёв не будет вообще
А консолька че говорит? Алсо чё не юзаешь юнитивский паблишер, он за тебя всё делает и хостит бесплатно.
>Если ты будешь менять только привязку к слою где бы то ни было, то эта координата меняться вне координат слоёв не будет вообще
Объекты нужно перемещать по уровню, по осям X и Y. Никто не мешает передать в Transform.position что угодно. Можно, конечно, принудительно в Update сбрасывать Z на 0, но где гарантия, что событие отработает после того, как координата сбросится.
> Алсо чё не юзаешь юнитивский паблишер
Потому что не знаю как сделать, подозреваю, что в настройках надо что-то включать
За инструкцию благодарен, но мне бы без подключения куда-то через аккаунт, конкретно через свой веб сервер. Если это слишком сложно или невозможно, то ладно.
Ну если так, то тебе надо разбираться хули у тебя в unityLoader.js ошибка. Я так понимаю это сгенерированный юнити код, очевидный вариант попробовать перебилдить и посмотреть будет ли работать.
Посмотри чё там в нетворке приходит от сервера, запость сюда.
Повозился вобщем, нашёл как решают подобное, не у всех получается. Пишут, что не понимает сервер расширение, решение я нашёл, там надо добавить в web.config немного кода, но по итогу тоже самое.
Ты что-то не понял, какое условие?
Кратко задача звучит так: надо заставить объекты сохранять свой жизненный цикл фиксированную координату по Z, заданную в редакторе. У первой группы всегда 0, у второй 1, у третьей 2, у четвёртой 3 и т. д. И чтобы нельзя было это поломать, перемещая их, случайно передав изменение позиции по Z.
Стоит по умолчанию. Я не сжимаю после сборки проет и так его кидаю в папку одноимённую на сервере. Так что тут ещё вопрос в том, что наверное его надо в zip запаковать, но это неточно.
Что я понял, так это то, что сервер не понимает что это такое и у него не получается это запустить, а как запускать не прописано в самом проекте. Или сам унити неполный и создаёт что-то не так.
На второй картинке решение на офф сайте, не заработало, скорее всего потому что надо туда ещё что-то своё дописывать, я не дописывал.
Тогда только проверять у группы эту координату и поправлять
Сервер не отдаёт файлы .unityweb, пропиши для них такое же правило, как и для .data и .wasm.
Уже нашёл рещение проблемы, когда напрямую вбил в поисковике настройку под IIS
Пример работы, второе как, ну и пример того как настроен web.config, я его пока не стал удалять.
Проверил, без web.config работает.
Теней нету, звук есть, графон странный, ну да ладно, веб же.
Теперь можно подобный сервер настроить на старом ФХ 8320 с 32ГБ рам.
Сегодня я снова стал сторонником венды, потому что на линухе вроде бы все отключили репо, а 2016 сервак взлетел на вмваре без проблем, да и жрёт 800 МБ оперативы чистый.
Вобщем вдруг кому понадобится такое.
По стандарту. Выйти из юнити и хаба. Удалить все пакеджи из либрари проекта, перезагрузить комп. Зайти в проект снова. Если не поможет, то удалить юнити, перезагрузить, установить заного.
https://unityassetcollection.com/
но придётся пробиваться сквозь анальные обменники файлов
куда класть в иерархии и как лучше обозвать вот такие файлы как на пике?
мимо обучаюсь методом тыка
Пытаюсь сделать остановку через "OnTriggerEnter2D",
пробовал также "OnTriggerStay2D",ничего не получается.
..деалю по урокам https://www.youtube.com/watch?v=9Wl7RCCJHCs&list=PLhX5NuimgyAvFiORegSqqS7XhAh1oFN4b&index=1&t=0s
но там нет остановки и вот самому сделать не выходит(
во-первых, инкапсуляция, братан, с чего бот должен считать, что 0 хп - это смерть игрока, вдруг у него баф на второе дыхание, когда хп уходит в ноль и сразу хилится, в то время когда бот уже будет бежать в другую сторону. Во-вторых, отсутствие гибкости, если вдруг тебе захочется поменять условие окончания боя, то придется переписывать всех ботов (если у тебя несколько видов), в то время как эвент можно просто инвокать в разных местах. В-третьих, это в принципе подход конченый, когда объекту нужно лезть в данные другого, ибо потом каждую фичу, будь то дроп лута или дрожание камеры нужно прикручивать к этому условию (хп < 0), в итоге не код, а спагетти
>>801209
а, ну и представь ситуацию, когда два бота выбрали одну цель, и пока первый убивает её, второй только к ней бежит, получается, что ему нужно добежать и только тогда (перед ударом) проверить, не мертва ли цель, эвент бы ещё в процессе бы перезапустил поиск цели. В общем, залупа твой способ
Тебе нужна обычная пауза.
Челик, на старте учат State Machine, тебе нужно её сделать.
Что это? Это обычное перечисление типа
enum GameState
{
PLAY
STOP
DEFEAT
}
И тд
Далее, Update или где колизия, ты используешь switch
Как продвигали?
Я вот просто закинул в стор + создал тред на форуме, и в первый день была 1 покупка, во второй 3, а дальше как-то все затихло, хочу вот теперь видос для реддита сделать.
Где еще можно как-то не сильно навязчиво прорекламить?
хуй знает, но судя по всему это пиздец как надо очко рвать, на скрине у пчелика только один ассет, который имеет хоть какую-то популярность и звёзды
Я пробовал купить через сервис-помогайку в покупке, где вводили чешскую карту - нихуя у меня не получилось.
Плюнул на всё и свалил на Анрил, там хоть киви работает, пусть рикителло сам свою багованную поебень жрёт.
>Я пробовал купить
Невиданное холопство, пытаться дать денег вору, ограбившему тебя.
А он не берёт!
спасибо, того что мне нужно было там нет, придется свой костыль пилить
Записал несколько небольших видео о том что получается:
https://www.youtube.com/watch?v=ieTWenxnhvU
Куда делся cinemachine confiner? Юзаю Unity 2021.3.2f1 и cinemachine 2.8.4
Ну он перебирает все компоненты и чекает их тип.
Поэтому кэшируй в эвейке или старте или ленивую инициализацию ебош.
А если остановить корутину2, что случится с корутиной1?
Нет. Ничего.
Кряков нет теперь?
Как отключить лого в новой юнити?
Он вроде как есть. Аналогия блюпринтов из анрила, но лично даже не пробывал.
Оно не красивое.
В данном исполнении плитки перемещаются мгновенно, так что нет. Но если поменять на плавное перемещение, то будет некрасиво, пока едет первая плитка, можно будет запулить вторую, которая поедет на место старой. Но я буду обязательно переделывать код, т.к. первая программа в жизни, сам понимаешь, и там будет с анимацией движения и чтоб плитки не двигались когда не надо..
Пропустил плюс, думал как по старинке только прошка есть, но тем не менее 40 в месяц или 400 в год, это помимо гемора оплаты из рф с переплатами не вариант. Так что моё предложение намного вкуснее.
Я имею в виду, если нажать на 12, можно ли сдвинуть сразу весь столбец? Не важно, мгновенно или плавно.
Этож сколько пиццы будет на 50 бакинских? А забыл упомянуть, курс 150рубасов бакс если нет пэйпала.
нет. у меня доска хранится в массиве. из чисел от 0 до 15. При нажатии плитка проверяет +-4 и +-1 индексы в массиве, и если там число 0, то двигается на его место.
точнее даже не так, я при нажатии из индекса плитки вычитаю индекс пустой клетки и беру модуль этого числа и если он равен 1 или 4, то уже пошло поехало.
Ну в общем, я тебе обратную связь дал, как юзабилити улучшить. Если интересная задача, можешь реализовать.
Ааа, понял идею. Спасибо.
Хочу подобрать себе движок (ассет) с наиболее "реалистичным" разъебом тачек, собираюсь делать игру в духе flatout, кармы, дестр дерби.
До этого имел дело по работе лишь с RCC 3.0
Советую тебе юнити, лол.
Так, ну во-первых тебя залупная реализация синглтона(не надо так делать) - я весь код не вижу, но так навскидку могу предположить, что где-то ты что-то напутал, может вторую сцену грузишь с еще одним геймконтроллером, который меняет инстанс на себя, а там соответственно как раз нули и есть.
А во-вторых покажи что именно у тебя по кнопке выход из игры висит и в каком порядке оно коллится.
А, ну и конечно Destroy(this) это ты явно ошибся - я так понимаю ты хотел Destroy(instance)?
Потому что сразу уюпосле этого у тебя идет instance=this, т.е. если ты этот объект уничтожил то он станет инстансом...
public void Quit()
{
GameController.instance.Save();
#if UNITY_EDITOR
UnityEditor.EditorApplication.isPlaying = false;
#else
Application.Quit();
#endif
}
>залупная реализация синглтона(не надо так делать)
а как правильнее, есть пример? взял так сказать че нашел.
>>801629
если сделать Destroy(instance) то уничтожится старый инстанс со старыми данными и создастся новый нулевый. гейм контроллер в сцене один и если ему в апдейт метод засунуть дебаг, то он дает нормальный результат.
Так, где-то ты прав, еще раз чекнул и при смене сцены у меня 2 геймконтроллера. вроде один был. карочи понял. спасибо. щас потыкаю.
> если сделать Destroy(instance) то уничтожится старый инстанс со старыми данными и создастся новый нулевый. гейм контроллер в сцене один и если ему в апдейт метод засунуть дебаг, то он дает нормальный результат.
А потом ниже все равно делается instance = this
Т.е. вот у тебя есть в сцене GameController, все норм.
Потом где-то появляется еще один(либо сразу стоял на сцене, либо загружается с другой сценой) - тогда он самоуничтожается с помощью Destroy(this) и все равно меняет ссылку на себя в строке instance = this, т.е старый инстанс всегда перезписывается.
> а как правильнее, есть пример? взял так сказать че нашел.
Ну тут смотря как у тебя всё на сцены поделено. У тебя 1 сцена для игры и 1 на главное меню или как?
Лучше вообще для подобных задач синглтоны не юзать, но если хочешь с синглтоном, то просто не наследуй им MonoBehaviour, соответственно и на сцену ставить его не нужно будет.
Проинициализируешь его с помощью
public static readonly GameController instance = new GameController();
Всем привет! У кого есть такой ассет? https://assetstore.unity.com/packages/tools/particles-effects/skinned-decals-133483
Если не затруднит, скиньте ссылочку, с меня тоже какой-нибудь ништячок или совет.
>А потом ниже все равно делается instance = this
Ну я типа - объект удален, дальше код не обработается. А теперь вспомнил, что код обработает последний кадр. жидко пукнул и обмяк.
>Ну тут смотря как у тебя всё на сцены поделено.
две сцены. главное меню и сцена с игровым полем.
>то просто не наследуй им MonoBehaviour
ага.
спасибо. щас переделаю
Один и тот же угол можно представить кватернионами по-разному.
Поэтому когда ты делаешь transform.localEuler - оно может тебе ваще не те углы вернуть. Поэтому оно тебе возвращает говно, и ты из говна интерполируешь в таргетангл, поэтому его по пути перекручивает.
Чтобы это пофиксить заведи поле в котором будешь хранить локальные углы эйлера, и работац с ними, дальше в апдецте их уже в trnaform.localEuler присваивай. Т.е. главное чтобы ты НЕ получал углы эйлера из трансформа.
Ещё можешь кватернионами заебошить что тебе надо, по идее надо сделать кватернион для направления вперед, и на него домножать трансформ...
Братик, спасибо, помог. Люблю, целую.
Нехер здесь за политику втирать.
Сап гдач, сможешь пояснить за вывод в консоль?
Короче есть массив, делаю его перебор в цикле и пытаюсь это вывести в консоль как на чистом С#
public int[] codArr = { 0, 1, 0, 1 };
for (int i = 0; i < codArr.Length; i++)
{
Debug.Log(codArr + "_");;
}
Вот только в отличие от методов Console.Write и Console.WriteLine эта падла просто выводит в консоль 2а сообщения 0 и 1
Где я наебался?
Сап гдач, сможешь пояснить за вывод в консоль?
Короче есть массив, делаю его перебор в цикле и пытаюсь это вывести в консоль как на чистом С#
public int[] codArr = { 0, 1, 0, 1 };
for (int i = 0; i < codArr.Length; i++)
{
Debug.Log(codArr + "_");;
}
Вот только в отличие от методов Console.Write и Console.WriteLine эта падла просто выводит в консоль 2а сообщения 0 и 1
Где я наебался?
Все прекрасно выводится. Единственное, может у тебя в инспекторе необновился массив, например ты раньше делал его из двух элементов.
1 - писал про i в квадратных скобках, но видимо это не проеб, а борда в курсив его превращает
>2 проеб - колапс в консоли выключи
Да, в этом была проблема.
И если уж на то пошло есть в юнити метод чтобы подобные значения выводились в ОДНУ строку? У меня несколько массивов которые нужно проверить и построчно сложно отлавливать элементы.
>есть в юнити метод чтобы подобные значения выводились в ОДНУ строку
Гугли, я хз. Из быстрых костыльных решений:
string str;
for (int i = 0; i < codArr.Length; i++)
{
str = str + codArr(i) + "_"; // тут скобки квадратные у i должны быть
}
Debug.Log(str);
Да спасибо. Это работает. Потом может сделаю отдельный класc по типу Console.
Фух пиздос целых 2а дня потратил на скрипт, взлома кодовых замков, аля отмычки, как в скайриме.
Ебался с этими корутинами в старте и вводом информации игроком через стрелки, но всё таки получилось.
В консольке конечно всё проще было.
Красава.
Хочу сделать свою специфичную хуйню для инверсивной кинематики!
huh. кажется я нашел ответ раньше чем ожидал найти его. сделают же.
https://docs.unity3d.com/ScriptReference/DrawGizmo.html
интересно что ещё такого можно сделать
Нахуй тебе она? Темная тема давно есть в бесплатной
за отсутствие заставки ролика накажут (да и игрокам уже давно похуй, а брезгливые додики и по имени папки поймут что игра на юнити)
Да.
через обычный linq
list.Aggregate("", (sum, next) => sum + "_" + next);
ну или для красоты убрать поддчеркивание первое
list.Aggregate("", (sum, next) => sum+ "_" + next, merged => sum.Length > 1 ? sum.SubString(1) : sum);
по сути тот же for цикл но записанный одной строчкой
каждый монобехавиор должен быть единственным классом в файле с соответствующим названием. в остальном ограничений нет тоже касается компонентов дотс, но не будем о страшном
воопше тут в основе совершенно неправильно реализованная компонентная система, суть которой в разбиении одной большой сущности на как можно больше количество отдельных фрагментов что бы потом можно было собирать из этих фрагментов что угодно в любых комбинациях. т.е. возвращаясь к примеру с хп.
есть хп. есть силовой щит. есть армор который уменьшает урон. есть триггер который срабатывает по истечени хп и пополняет полоску Н раз. все это можно сделать одним компонентом и каждый раз накидывать полный список всех параметров даже если у цели их нет и крутить их логику на пустых значениях. а можно сделать кучу отдельных и добавлять только те что нужно. или накидывать/удалять их в процессе меняя свойства на лету.
ну это теория. на практике делай как тебе удобно. тем более как ужо упомянуто это реализовано через го и мб очень и очень не так как должно было быть в теории. правильно оно реализовано в дотс, но не будем о страшном
на самом деле на мой взляд в юнити просто систему компонентов юзают через жопу. у меня например по итогу в каких-то велосипедных проектах монобихейворы нужны только чтобы API вызывать. один хуй большая часть проекта это какая-то внутренняя шелуха вроде инвентаря, генератора, манагера, которая никак не проявляется как геймобжект.
нахуй там дробить что-то ещё вроде хп/щита, пердеть триггерами. реально это нужно только если по максимуму всю эту хуйню с префабами используешь.
>2 недели соло разработки
Это какой-то прикол юнитибомжей, что вам приходится вообще тратить какое-то время на то, что доступно анрилогосподам из коробки?
да и в чём мы не правы? приходится всё делать самому или воровать
Какая игра, я блять 2 недели базовые движения с анимациями настраивал. Вот только ща приступлю к геймплейным механикам.
>>802279
У анрила из коробки есть контроллер от 1 лица с анимированным гуманоидом, который кивает башкой вверх и вниз в зависимости от инпута камеры? Просто у Юнити есть контроллер от 1 лица с капсулой и от 3 лица с гуманоидом, но скрестить их вместе и заставить башку крутится при помощи рига у меня ушло две недели. Вообще я с самого начала вката в юнити оборачиваюсь на анрил и гадаю не обосрался ли я с выбором.
> не обосрался ли я с выбором
не обосрался, гайдов больше, ассетов которые можно спиздить больше + из игр в моно можно пиздить код
Ну вот чего-чего, а гайдов и ассетов реально много. Пока ни разу не подводили.
>У анрила из коробки есть контроллер от 1 лица с анимированным гуманоидом, который кивает башкой вверх и вниз в зависимости от инпута камеры?
нету
мимо уечник
Зачем? Если проще каталог кинуть в закладки и одним кликом чекать всё?
Если угораешь по подсветке, юзай Visual Code, там дополнения на любой вкус.
>Ведь нигде же не прописано
Прежде чем такое писать можешь просто подекомпилить либы собранной игры.
очень просто, калпилятор вствляет в аналы твоей игры диванонящие идентификаторы я так предполагаю
возможно даже вся эта хуйня работает в UnityCrashHandler, который всегда запускается в фоне и вот он то 100% отсылает данные компуктера при краше
Сап юнитач. Поясни за корутины.
Обычная операция как выстрел с задержкой, как делается через корутины или инвоки?
Ранее я всегда использовал таймер в апдейте и мне не очень нравится это, но это просто и удобно.
Пытаюсь сделать правильно то с помощью корутины, то с помощью инвокарепит, но не работает. Просто не срабатывает. Как вы обычно делаете задержки перед выстрелом?
Делаешь корутину и запускаешь его при выстреле. Только не делай платиновую ошибку юнитача и не хуярь запуск корутины в апдейте без условия хотя бы, а лучше стейт машину наебни. Помни что апдейт запускается каждый ёбаный кадр. У нас тут уже были любители запустить корутину в цикле внутри апдейта, а потом спрашивать хули Юнити крашиться.
Вот сейчас не совсем понял. Корутину нельзя засовывать в апдейд?
То что цикл в апдейт нельзя засовывать это я знаю, так получается можно вместо апдейта для выстрела просто юзать корутину?
>Корутину нельзя засовывать в апдейд?
Можно, но осторожно, чтобы она не запускалась каждый кадр.
>можно вместо апдейта для выстрела просто юзать корутину?
Тоже можно если подписать её на событие, в данном случае выстрел.
Игру делаю для телефона, когда делаю отладку замечаю что тени слишком жёсткие, видны лесенки.
Как-то можно пофиксить или тут только переходом на URP всё чинится? Вроде все настройки что мог подкрутить - уже подкрутил
Только URP, или HDRP если любишь хоркор. Даже юники в своих туториалах советуют с юрп работать.
>>802439
>Только URP
Двачую этого юнитидева. Раньше было вообще лучше не юзать не то, не другое. Сейчас URP уже по умолчанию рабочая штука которая должна стоять.
>HDRP
Можешь в принципе юзать если готов ебаться с оптимизацией, и шейдерами, оно то рабочее, но кпд от ебли ну очень сомнительный.
Ванильный билд уже не актуально юзать вообще не в каких кейсах. Ну разве что за исключением совсем уникальных и без графических.
Да там есть вся системная, служебная инфа о пользователе, редакторе, плагинах и всём что использовалось при компилирование проекта в ехе. Для обычного мимо крока расшифровать не получится из не знания хеша кодировки от юиков, но для них это не проблема. Если интересна тема изучи реверс инжеринг юнити игр, там смежная тема по хакингу.
Подписка оформляется минимум на год.
Да, можно. Вот только я не пойму, тебе Юнити нравится достаточно чтобы выпускать на нём игры, но ты готов платить деньги чтобы скрыть что ты им пользуешься, лол?
он наверное думает, что заставка слишком кринжовая не презентабельная, я тоже раньше так думал и хотел скрыть, но стало настолько похуй что мне похуй
928x644, 0:23
лол ну если ты медленноват и в день уделял этому мало времени и это твой первый самостоятельный опыт этой хуйни то да, ты в пределах того что можно ожидать от новичка.
>>802279
где-то здесь должна быть шутка про лапшу в анриле.
>>802291
а чего ты вообще с ригом возится стал то? нахуячи бы чтобы у тебя кубик крутился вместо башки на капсуле и нормас, для прототипа сойдёт.
> Я просто тупой или
Ты просто ленивая жопа.
Дай угадаю как ты это делал:
"так, надо что-нибудь делать... ой, а что там в ютубчике показывают? Не, надо игру же делать... тогда посмотрю в ютубчике ролики про юнити... Надо бы еще сходить пожрать, посрать... Что-то спать захотелось..."
1680x1050, 0:31
разворачивать деревья и ебатся с индексами боль. надо теперь подумать как написать его так чтобы можно было прочитать.
как бы перестать писать велосипеды и начать делать игры
>а чего ты вообще с ригом возится стал то?
Он мне понадобится для дяльнейших механик, поэтому мне надо было его освоить, а во-вторых потенциально он может весьма реалистично двигать всё тело при повороте.
>Юнити отменит бизнес в России
Вообще без разницы, тупо включаешь впн и работаешь дальше. Даже если представить сюрреалистичный сценарий что удалять или заморозят все аккаунты где ру указан, то тупо с вэпэнэ регаешься заного, всё.
ну собственно они типа уже.
ресурсы с рунета недоступны. оплата с рубанков не проходит. остается выпыэны
>оплата с рубанков не проходит
Что за шизофреническое желание отдать деньги вору, который тебя ограбил? Пиратил, пирачу и буду пиратить.
Юнитач, помоги разобраться.
Кароче есть выстрелы, без автоатаки, игрок стреляет только тогда когда мышкой наводит на врага, но это вроде рудемент РТС когда ты направляешь солдата на врага, юнит сам цепляется и дальше без участия игрока.
Не плюнуть ли на это решение и не разрешить стрелять игроку вообще по всем кто движется?
>Пиратил, пирачу и буду пиратить.
Ты не забывай что есть те кто игры делает, да еще и издаёт их. Для тебя безыгорного конечно ничего не поменялось.
да не в смысле нахуй ты вообще с всовывания персонажа начал. я к тому что ты пытаешься понять как работает сразу много инструментов. когда ты конч так делать не следует.
>>802507
хочу процедурную анимацию для процедурных животных. у меня есть один другой забавный проект где я сделал прямой аналог блендфилда из меканима, только блендит он то что я ему скажу, а не анимации.
>>802510
я в курсе, я даже скачал почитал его. мне не понравилось как он решает некоторые задачи и он не подходит для того что я хочу. он для работы с обычными анимациями выглядит чем-то хорошим, но для процедурных нет некоторого критического функционала и допиливать я его не буду.
>>802591
может и диздок написать за тебя?
>может и диздок написать за тебя?
Может ты пойдёшь нахуй?
Я как раз и начал сомневаться в правильности этого решения, когда перенёс его из диздока в игру.
Кстати на помойку отправились и двойные щелчки вместе с автоатакой.
1680x1050, 0:38
ну так если у тебя диздок большой и что-то дальше строится на логике отсутствия/наличия автоатаки/автоприцеливания/автоебания то хули, делай как в диздоке. плохой план лучше чем никакой.
а если у тебя диздок как у меня нарисован на салфетке то хули, какая нахуй разница, сделай оба варианта и посмотри какой веселей. отнимет максимум вечер, а решения сделать поможет.
хули, озвучу за тебя твои мысли.
>да не в смысле нахуй ты вообще с всовывания персонажа начал. я к тому что ты пытаешься понять как работает сразу много инструментов. когда ты конч так делать не следует.
Какие много инструментов? Я из интсрументов только попользовался animation rigging и посыпал это всё простеньким кодом, чтобы зафурычило.
ноуп. опенворолд про путешествие на телеге с ослом.
>>802651
плюс импортёр моделек, плюс разбирательство как устроены кости в юнити, плюс судя по сомнительным четырёхмесячным курсам погромист из тебя так себе, плюс разбирательство как манипулировать ротациями. я могу много чего в список добавить.
вообще нахуй ты animation rigging для гуманойдных персонажей то выбрал? у аниматора вполне хорошая инверсивная кинематика для гуманойдов и кручение башкой там делается не за 20 минут, а за 2.
https://docs.unity3d.com/ScriptReference/Animator.SetLookAtPosition.html
>плюс импортёр моделек, плюс разбирательство как устроены кости в юнити, плюс судя по сомнительным четырёхмесячным курсам погромист из тебя так себе, плюс разбирательство как манипулировать ротациями. я могу много чего в список добавить.
Охуеть, а игра что ли просто усилием воли создаётся или че? Типа нихуя не изучая просто тужишься пока из ануса не полезет код с игрой? Ты описываешь базовые инструменты, я хз как ты представляешь чтобы я обошёл такие необходимые вещи типа манипуляций трансформа и хуякс и сделал прототип.
да нет, бестолковый, я к тому что ты подошел к проблеме не дробя её. вместо этого ты 2 недели думал что пытался решить её, а на самом деле решал всё что не решил до этого одновременно.
подвигал бы кубики, сделал змейку, разобрался бы как там устроены кватернионы, векторы, подтянул геометрию если забыл со школьной программы, почитал документацию у интересующих тебя инструментов, разобрался в стандартных инструментах, вместо того чтобы тянуть ещё из package manager и так далее.
так то ты мог не крутить трансформ, а вон одной строчкой сказать персонажу "смотри сюда".
Аноны кто сталкивался с такой проблемой. Скачал туторы по юнити с оф сайта, худо бедно установил, но когда запускаю камера просто без остановки крутится вокруг персонажа, при том это в Лего туторе и FPS туторе, на картинге такого нет. Из личного опыта знаю что такое бывает если не назначил таргет для камеры, но здесь всё назначено. Пробовал код смотреть, но там какая то лажа. Может кто сможет чего подсказать?
???
ремейк жаб что-ли не менее бессмысленный долгострой?
хули, прототип у меня есть, выглядит заебись, решил вот улучшить то что видишь чаще чем всё остальное - осла. а заодно добавить всяких других животных.
>>802682
не ну если дашь весь код почитать, то почитаю, может чего увижу. ну а лучше весь проект.
так то крутится можно от чего угодно начиная от обосрамса с инпутом, заканчивая тем что ты забыл риджидбади локнуть оси вращения и оно просто по инерции крутится.
>да нет, бестолковый, я к тому что ты подошел к проблеме не дробя её. вместо этого ты 2 недели думал что пытался решить её, а на самом деле решал всё что не решил до этого одновременно.
Процеируешь чтоле? Ты мою проблему то хоть знаешь? Именно потому что я её раздробил, я и начал с башки.
>подвигал бы кубики, сделал змейку, разобрался бы как там устроены кватернионы, векторы, подтянул геометрию если забыл со школьной программы, почитал документацию у интересующих тебя инструментов, разобрался в стандартных инструментах, вместо того чтобы тянуть ещё из package manager и так далее.
Это входило в те 4 месяца курсиков, помимо прочих базовых инструментов. И ты сам себе противоречишь, сперва затираешь что я проблему не раздробил, а потом предлагаешь пердолиться со змейками вместо того чтобы игру делать, причём сразу после моей тирады о том что надо знать базовые инструменты.
>так то ты мог не крутить трансформ, а вон одной строчкой сказать персонажу "смотри сюда".
А смотреть куда? На таргет? А таргет за счёт чего двигается?
1680x1050, 0:33
>Процеируешь чтоле? Ты мою проблему то хоть знаешь? Именно потому что я её раздробил, я и начал с башки.
да, я знаю твою проблему. твоя проблема в том что ты 4 месяца какую-то хуйню поглощал, а потом две недели пытался головой покрутить.
>Это входило в те 4 месяца курсиков, помимо прочих базовых инструментов.
я сомневаюсь, иначе я не вижу ни одной разумной причины почему ты в animation rigging полез. из чего я делаю вывод о том что ты просто инструменты не знаешь.
>а потом предлагаешь пердолиться со змейками вместо того чтобы игру делать
ну а какой твой план то? ебатся с каждой проблемой одновременно чтобы потом решать такие мелочи по две недели? либо у тебя курсы были полной парашей, либо ты тупой. я всё-же предположу что курсы были парашей и ты решил вместо курсов просто начать ебошить. но в итоге делаешь это сразу переходя к чему-то к чему ты никак не подготовлен. мой тебе совет: умерь пыл. уменьши количество инструментов с которыми ты взаимодействуешь.
>А смотреть куда? На таргет? А таргет за счёт чего двигается?
сделай кватернион и крути его, а потом делай форвард вектор из башки помноженный на этот кватернион. получишь вектор который начинается в башке, который крутится на указанную ротацию и начинаясь из башки ты гарантированно крутишь башку на нужный тебе угол.
а пользуясь аниматором ты в добавок получишь изкаробки более мягкое вращение, тогда будет крутится не только башка, а ещё пара костей ниже. и более няшные наклоны, так как тогда персонаж там немного пригибается, а не пытается сломать шею.
ну например перемножай вектор указывающий направление и радиус полусферы на кватернион ротации объекта относительно центра сферы. я бы сделал именно так.
ну или просто нормализуй направление до объекта (сделай его равным единице) и перемножь на радиус сферы, тогда обьект гарантированно будет в пределах радиуса сферы. и укажи направление полусферы другим вектором и сравнивай углы до объекта и направления сферы. если он >90 то перемещай объект обратно чтобы он не вылезал за полусферу.
лучше область применения укажи, может ещё чего скажу.
Я наверное неправильно выразился, полусферы как геймобъекта у меня нет и не будет, мне нужно чтобы обьект двигался так будто по периметру полусферы, а когда доходил до края, то застывал.
мой ответ по прежнему полностью соответствует запросу. полусферу описывает вектор, у тебя из вариантов либо толкать объект в сторону полусферы, либо крутить точку на границе и ограничивать её ротацию.
или тебе ответ картинками объяснить?
https://store.steampowered.com/app/633030/2/1/
лол проснулся, начал писать, рисовать, понял что я быстрей просто код напишу минут за 10-15, чем нарисую картинку и объясню как оно должно работать.
на ссылку на экзампл https://mega.nz/file/YxUxDS4Y#1fbck7ZKyaYolXo3YZCmuJ_P3SybwTob091hn_rT1mc внутри то что на видео и код с картинки.
вообще я сильно не задумывался, наверняка с кватернионами оно может прыгать от границы к границе. второй способ попроще, но без отслеживания ротации нельзя бегать как жук
но лучше просто бы рассказал что оно должно делать. если объект изначально является частью полусферы то нахуй такие трудности? просто не двигай его за пределы полусферы изначально.
Перекат >>802780 (OP)
Перекат >>802780 (OP)
Перекат >>802780 (OP)
Перекат >>802780 (OP)
Перекат >>802780 (OP)
Перекат >>802780 (OP)
Перекат >>802780 (OP)
Перекат >>802780 (OP)
Перекат >>802780 (OP)
Перекат >>802780 (OP)
Спасибо за пример, это не совсем то что надо, но возможно это двинет меня в нужном направлении. Мне пока плохо понятно что ты там сделал из-за недостатка знаний API, но всё потихоньку. Еще раз спасибо.
ну разбирайся, хули. я бы не сказал что здесь какое-то API используется хитро, то-же самое можно сделать в любом другом 3д двигле.
в первом магия ротаций, ротации можно складывать (в юнити это делается перемножением) и если ротация выходит за полусферу то я просто толкаю её обратно на угол который она ушла от полусферы. то как ты крутишь изначально объект роли не играет, там в начале можно и forward/right оси любой другой хуйни использовать. просто тут это оси шарика который крутишь. можно и просто transform.forward/right написать, тогда относительно осей сферы будет крутится и это более интуитивно.
если ещё не забыл что такое скалярное произведение и векторное произведение то никаких вопросов вроде не должно остаться.
во втором случае просто если сфера ушла за границы полусферы то толкается на границу полусферы, а потом на дистанцию сферы.
но хули, просто лучше скажи что ты хочешь сделать то. скорей всего тебе не нужна ни магия ротаций, ни запихивание объекта в полусферу, а просто две локальные переменные которые вектор двигают в своих пределах, или ещё какая хуйня.
Наверное мою задачу можно упростить еще сильнее. Короче вот есть центр этой сферы, мну нужно чтобы вот эта вот точка двигалась вокруг него, но не прям вокруг, а чтобы движение ограничивалось полусферой. Ну типа как чтобы их невидимая палка соединяла.
Хочу пока как хобби для себя заняться кое чем на юнити, если эт важн в данном контексте.
Может быть эти курсы даже не как полезная по сути, но как мотивирующая хуйня хорошо работает? А то зная себя я всё растяну до максимума без каких-либо поинтов по целям.
Если тебе как хобби, то нахуй тебе курсы не нужны. Учись гуглить, если прям совсем не лезет на старте - на торрентах найди курсы и бесплатно просмотри
Это так? То есть по факту игрушка будет генерить 3д и дополнительно грузить процессор/карту?
Можно же на пхп написать в принципе?
Или лучше c# ?
Пользователи среды для разработчиков видеоигр Unity Hub столкнулись с вирусом, который распространяется вместе с официальным обновлением утилиты, сообщают специалисты по информационной безопасности из компании Snyk. Проникая на устройство, вредонос начинает уничтожать или портить хранящиеся на жестком диске файлы. Примечательно, что вирус срабатывает только на устройствах, которые подключены к интернету из России или из Белоруссии.
«Хотя атака продиктована в том числе и протестными настроениями, она выдвигает на первый план более серьезную проблему – уязвимость цепочек поставок в ПО. Транзитивные зависимости в вашем коде могут иметь огромное влияние на вашу безопасность», – написали специалисты Snyk.
можно что-то полезное вынести, но он слишком токсичный уебок
по факту его говностудия ничего выдающегося не произвела, а он сам чсв-хуй и игфоцыган
У меня отбивал охоту учиться. Типа если ты не пишешь "правильный" код, то ты ничего не имеешь права выпускать. Хотя, по факту, для своего проекта лишь бы работало. Наезжал на Коде Манкей, который зарабатывал на своих играл десятки тысяч и получил от Юнити награду за образовательный контент.
Кстати, сам он как-то не смог пройти тестовое на Джуна в какую-то крутую компанию Российскую. Об этом есть ролик.
1) Как удобнее реализовать 2д туман, такой чтобы чем дальше от игрока, тем сильнее сгущался. На ум приходит наложить на камеру картинку тумана прозрачную в середине, и не прозрачную по краям. Но как-то вроде убого звучит.
2) Как удобнее реализовать систему видимости как на гифке, в игре NOX, учитывая что это 2д (вроде как). Как-то через рейкаст наверное?
С другом загорелись идеей сделать пошаговую роллевую игру, он неплохо рисует, есть музыкант, мне просто нравится небольшие истории писать и интересно попробовать себя в геймдеве.
Технарских навыков из нашей микрокоманды никто не имеет, мы не разбираемся в движках, программировании etc.
Денег, как обычно, нихуя нет, все на голом энтузиазме.
Может тут найдется кодер, который захочет влезть в нашу тему и, если не принять участие в проекте, то хотя бы просветить с чего лучше начинать. Сейчас составляем дизайн-документ, но, как видится, без грамотного кодера всё это вилами по воде.
Чтобы создать игру, нужно работать фуллтайм не меньше 2-3 месяцев. Это самые скромные подсчеты. Может, даже твой друг художник не готов потратить такое количество времени.
Он инициатор всей этой идеи, а меня просто позвал поучаствовать.
Мы в принципе никуда не торопимся, делаем в свободное время, отчасти, чтобы получить опыт в сфере, которая нам интересна.
>>818205
Да, нам уже один знакомый кодер сказал, что это огромный объем работы, но он представляет себе, что мы делаем новый Pillars of Eternity, но мы хотим небольшой по масштабам проект сделать с упором в реиграбельность. Как это сделать по хитрому может подсказать только кодер
Готов стать вашим геймдизайнером и лидером, пиши контактики
Алсо, возьму насебя раскрутку и монетизацию
Бабки пополам - мне 50% и вам с другом 50%.
Но рогалик делать не будем, нахуй он нужон, рагалик ваш.
Будем делать порноквест с минииграми типо 3 в ряд.
Выиграл в миниигру - довел девку до оргазму. И у каждой девки будут свои игры. В конце типо девка-босс, садистка-бдсмщица.
Это копия, сохраненная 15 сентября 2023 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.