Анон, как сделать нормальное быстрое перемещение в 2D платформере? Все, что находил в интернетах, на больших скоростях начинает дергаться странно. Через что вообще лучше писать бег персонажу: velocity, transform.position = Vector3.MoveTowards() или как? Вопрос нубовской, но все равно, может подскажете?
Суп юнитач, ебался кто-нибудь с этой волосней? Подводные камни?https://github.com/kennux/TressFXUnity
>>537482Спасибо, я вроде попробовал по гайдам оффициальным переделать еще раз, немного подровнял камеру и все стало лучше.
Попытался написать простой скрипт вращения камеры вокруг персонажа, понял, что у меня серьезный дефицит знаний в линале. Куда копать?
Вопрос по стиму, щас на аккаунте девелопера лежат 60$, факт того что выплаты происходят до 30 числа каждого месяца присутствует, только меня смущает пункт о том что стим удерживает определенную сумму(минимально до 100$) и пока она не наберется не отправляет бабки... так это или нет? Потому что явно моя игра не наберет сотку, мне нужны хотя бы эти 60, а как отключить удержание не совсем понятно... Написал в тех поддержку, но тут мне быстрее ответят надеюсь..
Есть смысл осваивать ецс и жоп систм чтоб не лагало? А то посмотрел у них прям такую сочную видюшку, где в рил тайме 100к юнитов воюют - прямо вау. Или для такого придется дополнительную магию учить?
>>537624Для этого придется начать по-другому воспринимать игру.Прямо сейчас разобраться есть смысл, если планируешь перекатиться, когда ецс будет продакшн реди.
Поясните за нынешние jointы в юнити, работал с ними давно, в 5.4 версии. Тогда разносторонний джоинт было проблемой сделать, если делать несколько спринг джоинтов на одно и тоже тело то дикая тряска возникала, а конфигурабль был расчитан только на колесо автомобиля. Джоинты мне нужны для рук манипуляторов.
Чому Transparency Sort Axis не работает в игре? Гифрелейтед. Проект пустой, вообще без скриптов. Custom Axis, 0,1,0 поставил.
>>537638Так ведь я в своей функции использую всякие GUI функции, и поэтому, если вот так без задней мысли вызвать эту функцию вне OnGUI, то появляется ошибка.
>>537639Ужасы какие-то. Функция срабатывает "неправильно" только при неактуальном контексте, т.е. онгуй тебе сайд-эффектит что-то? Почему это дурное влияние нельзя перекинуть в DoStuff, или BeforeDoStuff (из OnGUI дергать BeforeDoStuff, но не дергать DoStuff)?
Я правильно понимаю, что мне проще всего реализовать функцию однотипного движения обьекта по траектории туда-сюда через скрипт? Или лучше использовать что-то типа таймлайна или какой-то другой встроенной функции юнити?
Реквестирую минусы хранения всех данных в статическом классе.С плюсами понятно, простой доступ, не требуется каких-либо телодвижений при смене сцен, просто сериализовать и десериализовать.
>>537758>просто сериализовать и десериализовать.Разве так уж просто? Там же вроде с синглтоном ебаться надо.
>>537779Да, статический класс нельзя сериализовать в классическом смысле, я скорее имел в виду методы Save(string filename) и Load(string filename).Т.е. состояние игры (позиции мобов, время суток, хп, инвентарь и т.д.) хранится в статическом классе, содержимое которого управляется менеджерами. Монобехавиоры, которые представляют контент (моб на экране с анимацией и т.д.) могут хранить только данные о предтавлении контента, типа цвета текстуры, а данные о хп, позиции и т.д. брать из статического класса.Это позволит, теоретически, делать максимально "сухие", независимые от условий сцены, работающие в любых условиях.
Кто-нибудь может что-нибудь сказать про книгу "Unity в действии. Мультиплатформенная разработка на C#. 2-е межд. издание" ?Сейчас могу взять за полцены в связи с Чёрной Пятницей.Уроки в интернетах - это конечно хорошо, но в книге всё систематизировано и, вроде как, полностью освещается весь процесс разработки в деталях на 300 страниц.
Суп разбойники, моддирую чужую игру, изучаю линкью, посоветуйте лямбду суть такова: https://pastebin.com/FtGAn1Z3Есть два класса наследующие от одного, хочу выцепить их обоих в одном выражении, обратиться к компоненту и запихнуть этот компонент в массив или лист. Проблема в том что базовый класс с которого они наследуют запрещает обращение к геймобжекту, причем обращения у этих двоих разные поэтому сейчас мне приходится городить такое: собираю два массива из этих разных классов, выцепляю из них компонент, затем конкатинирую результаты из этих двух массивов в третий массив. Вот этот последний массив работает, но что-то мне подсказывает что это пиздец.Есть ли способ как-то их логически объединить? Я пробовал Where(x => (x is Cat || x is Dog) && x !=null), но как потом обращаться к catObject.gameObject если x as Cat и к dogObject.gameObject если x as Dog?
>>537797Сильно не вчитывался, унаследовать обоих от интерфейса с методом GetGameObject() не подойдет?Заодно можно будет их хранить одним списком как экземпляры интерфейса.
>>537808Не, не выйдет. Но оказывается в лямбы можно пихать if\else! Это просто охуенно, вместо трех массивов теперь один.https://pastebin.com/2f1jvDwL
Как мне использовать два шейдера на один объект? Допустим, моддер сможет вставить свою модельку здания со своими шейдерами, а как мне тогда сделать красный "YOU CAN'T BUILD THERE" призрак этого здания при постройке?>>537859SHOWMECOLLIDERSPRETTYPLEASEIWILLGIVEYOU10BUX()Пойдёт?
>>537873Сделай составной шейдер с юниформ-переменными, который будет в зависимости от твоих потребностей, накладывать эффекты на отрисовку объекта.
>>537873Чего это? Берешь меш от модельки моддера, меняешь материал на свой, показываешь. Если все становится норм меняешь материал назад и показываешь нормально.
>>537874Это мне придётся так делать в случае, если не получится шейдеры по очереди накладывать. Супершейдер со всем-всем-всем возможным функционалом - это явный перебор.Впрочем, чёрт знает. Насколько безопасно моддерам дозволять свои шейдеры писать?>>537875Это частный случай. В общем же задача наложить новый шейдер (например, аутлайн) сохранив старый (например, какая-нибудь петушиная раскраска).
>>537876>В общем же задача наложить новый шейдерМожет быть, новый материал? Собсно, можно добавить к мешу второй материал, или временно заменить первый. Если мешей несколько - нужен компонент, который на них ссылается (или ищет их при старте). И есть еще варик. Когда "здесь строить нельзя" не показывать ничего, или показывать картинку никак не связанную с конкретным зданием.
>>537876>Впрочем, чёрт знает. Насколько безопасно моддерам дозволять свои шейдеры писать?Дозволять он вздумал, лолка. Тебе что юнитеки сказали? Делаешь игру на юнити - исходи из того, что моддер с твоей игрушкой сделает все что захочет.
>>537360 (OP)Помню хотел прочитать про эту новую "модульную систему" Юнити и их суперкаомпактные игры, Да вот сука их ссылка на сайте выдавала ошибку 404.Объясните про компактность эту, чем там? че там такое то?
>>537958он то небось хочет в каких-то убогих менюшках тыкать какие-то параметры, накрайняк спагетти тягать в визуальном погромировании!
>>537934>Делаешь игру на юнити - исходи из того, что моддер с твоей игрушкой сделает все что захочет. Не дам делать, что захотят. Читаю только файлы строго определённого формата в строго определённый момент строго определённым образом, всё засендбокшено. >>537892Новый материал - это же замена, нет? Два материала разом не работают, но я не разбирался особо, как оно работает, может, ступил где-то. Как вариант ещё - сделать базовый шейдер, а потом анально обязать (через рефлекшоны) моддеров делать GrabPass с этого базового шейдера. Нужный функционал там будет 100% таким образом, но тогда проблемы с последовательностью наложения эффектов. Я хз, все варианты какой-то выбор между пиками и другими пиками.
>>537974Чтобы всегда можно было КЕНТ БИЛД ЗЕЭР через шейдер правильно сделать. Стандартизация, хуёмоё
>>537979Ограничить полет фантазии мододелов + потратить собственное время ради того, чтобы показать, кто тут разработчик, скорее. Хотя можно было просто написать рекомендацию в ридми.
>>537982>Ограничить полет фантазии мододеловДля полёта фантазии у них есть оставшаяся часть программы шейдера.
>>537982>>537985Да и вообще, не комильфо это написать "за вред нанесённый маскирующимися под модами программами ответственности не несу" и больше ничего не сделать. Все крупные конторы уязвимости патчат, даже если ответственности за вред этих уязвимостей не несут.
Посоны, посоветуйте как лучше это обыграть. Есть одна менюшка карты, по ней можно елозить мышкой, выделять всякую хуйню. Хочу как-то от курсора две перпендикулярные линии идущие до границы карты отрисовывать. Лезть через код и генерировать их рантайм или можно схитрить и повесить два дллиииииннюющих спрайта на курсор и просто скрывать их под границей?
>>538002Если хочешь генерировать без спрайтов, делаешь объект в уи, прицепляешь к нему рендерер, строишь вертексы как тебе надо, текстурку приделываешь вместе с шейдером, и отрисовываешь твои линии. Погугли про построение геометрических фигур из кода.
>>538012>>538019Блджад, почему никто не сказал что в UI есть маски?:---D Я уже было думал вспоминать математику, а тут такой царский подгон, сделал белую маску, подогнал ее под мою йоба-карту, под маску засунул два длиннющих спрайта и курсор, все работает. Не знаю уж как сильно это на производительность влиять будет, но вроде пекарню не плавит.
>>537972>Два материала разом не работаютРаботают. Подозреваю, что зависит от материалов. Но два материала на меш я накидывал - картинка на экране менялась (и менялась адекватно, без "не могу нарисовать").
>>538062Там разговор только об извлечении контента. Т.е. некто может выдрать модели и текстуры из игры... И что из этого следует? Что он может подменить сцену целиком?
>>538063Просто прими как данность, что с такими вещами как гармония(особенно если речь идет про один особенный форк гармонии), любой моддер может все что угодно с твоим ассембли творить, вплоть до подмены кода рантайм и полного изменения логики. Единственное лекарство - обфускация ассембли, да и то не гарант.
>>538072Я вообще не принципиальный - принять как данность могу много чего. Я не об этом. Я о моддинге. О нормальном. И есть пара вопросов:1. что за гармония?2. вытаскивание моделей из игры - хуй с ним, а нет ли какой тулзы которая позволяет делать модинг на юнити в общем случае?
>>538081>что за гармония?https://github.com/pardeike/Harmony/>2. вытаскивание моделей из игры - хуй с ним, а нет ли какой тулзы которая позволяет делать модинг на юнити в общем случае?Что ты подразумеваешь под моддингом? Допиливание нового функционала или просто добавление ассетов?
>>538082>Что ты подразумеваешь под моддингом?Есть игра (пущай будет "Тетрис 4000"). Есть диалоговое окно (внутри игры, или в сторонней программе - не суть) "Выберите какие моды следует добавить в игру Тетрис 4000". Отмечаешь в нем галочками нужные тебе моды: "Кубик ввиде кристала", "Копровидео на фоне", "Добавляем NPC" - и запускаем игру. Сорян за такой полет мысли. Это с точки зрения игрока. И как - с точки зрения моддера - такие моды писать? За ссылку спасибо, я завтра посмотрю, сегодня уже спать.
>>538061Хм, действительно. Только вот у меня цвет меняется, а прозрачность уже нет. Скорее всего обычный шейдер юнити альфу к единице приравнивает где-то. Надо поэкспериментировать
Перекатываюсь из другого треда с вопросом: если я хочу, чтобы васяны смогли модами заменить модельку главного героя, добавить новых монстров, оружие, вот это все, то проще будет это реализовать на юнити или гейммейкере?
Допустим, у меня есть геймобжект неправильной формы, и мне нужно узнать высоту точки на его поверхности по заданным Х и У. Например, мне нужно нарисовать над этим геймобжектом меш, который "лежит" на геймобжекте сверху, но ни одна высота геймобжекта не находится выше меша. Пока что я хочу взять верхний bounds геймобжекта и мысленно нарисовать плоскость чуть выше, из который буду кастовать лучи строго вниз с определённой периодичностью. Затем брать точки попаданий, прибавлять к ним чуть-чуть высоты, и строить из них меш. Очевидно, что с таким подходом в зависимости от сетки могут проскочить какие-то пики у геймобжекта. Ну, и ещё для этого обязательно нужен коллайдер. Есть решение похитрее?
>>538100У материала есть Rendering Mode (в самом верху материала, даже перед Albedo), в одном из них прозрачность будет. И будет она зависеть от metallic + smoothness. Плюс, два материала с разным Rendering Mode хз как себя поведут. Но тут я не особо соображаю, так что не хочу хуйню городить.
Вот я делаю диалоговое дерево через скриптабл объекты, как мне добавить некий массив действий для каждой реплики, который бы выполнялся когда реплика выбрана? Например, чтобы по реплике "покажи товары" у НПС открывался магазин. Как это реализовать? Пытался в скриптабл объект добавить UnityEvents, так там можно добавлять объекты только из префабов но не из сцены. Или, может, есть более лучший вариант как сделать диалоги с действиями?
Может кто подсказать из знатоков?Есть один прыжок в 2д, выглядит так:>rigidbody.AddForce(transform.up * jumpForce, ForceMode2D.Impulse);Хочу запилить даблджамп, написал, он прыгает два раза, все ок.НО!Такая фигня- когда падаю с большой высоты, хочу прыгнуть перед приземлением, и вот тут проблема, что игрок почти не подпрыгивает. Типа той силы, что дает прыжок не хватает. Как сделать, чтоб он всего прыгал по нормальному?Считать в этой формуле прыжка ускорение героя? Или как?
>>538291>if(rigidbody.velocity.y < -1f) { rigidbody.AddForce(new Vector2(0, jumpForce + Mathf.Abs(rigidbody.velocity.y)), ForceMode2D.Impulse);Ну как-то так, работает даже... вроде.Спасибо.
Я правильно понимаю, что чтобы сохранять и загружать состояние сцен, когда игрок возвращается в эту локацию, мне придется создавать сдоровенный класс статический? с полями, показывающие состояние каждого изменяющегося предмета? И каждый раз сериализовать этот класс при выходе и десериализовать при входе. И при этом ещё должен быть скрипт, который в старте смотрит состояние каждого предмета и совершает с ним определенные действия? Звучит все как-то криво и требует написания огромного количества однообразного кода, может я что-то упускаю?
>>538281>диалоговое дерево через скриптабл объекты, как мне добавить некий массив действий для каждой репликиЕбашь теги в реплики. При выводе на экран убирай теги, чтобы они не отображались. При этом, если тег найден при загрузке строки, добавляй действие. Например:> Покажи товары <Action>Trade</Action>Все экшоны у тебя должны быть из заданного тобой набора (торговать, наматывать кишки и т.п.), который твоей игровой логикой распознаётся и привязывает к строке диалога некоторое действие, таким образом строка диалога превращается как бы в кнопку.
>>538384Не обязательно. Вариантов много.Например, зачем тебе создавать класс, если ты можешь создать структуру? Она так же сериализуется, но при этом лежит не в куче, а в стеке. Что быстрее на полсекунды.Кроме того, зачем сериализовать в течение одной игровой сессии? Храни эту структуру в памяти. Но без фанатизма. Если структура будет мегабайт на 12 - это норм, а если 5 гигов - ты что-то делаешь не так. Вообще надо не структуру хранить, и не класс, а массив структур и переменных. А лучше не массив, а словарь.Логика токова: В памяти лежит массив. Все сцены могут читать и писать в него через универсальные функции. Когда сцена загружается, она читает этот массив и ищет в нём данные, относящиеся к самой себе. Если не находит - значит сцена грузится впервые и она оставляет все свои объекты и скрипты - как есть. Если же сцена находит данные о себе, значит она уже ранее загружалась, она читает эти данные и согласно им трансформирует себя, например, уничтожает часть дефолтных объектов, которые были перемещены с неё в прошлый раз. Открывает двери и сундуки, например. Устанавливает квестовым триггерам нужные состояния и т.п.В процессе интеракции игрока с объектами на сцене все они записывают свои изменения в этот наш глобальный массив-синглтон, так что при повторной загрузке сцены мы как раз и имеем информацию для вышеописанного трансформирования.Например: в сцене на столе стоит ваза с яблоками. Твоей логикой предусмотрено, что ты можешь взять яблоко, после чего триггер вазы переводится в состояние "пусто", а в инвентарь игрока добавляется запись "яблоко".При активации триггера происходят все графические дела, затем объект-ваза записывает в массив что-то вроде {"сцена1/ваза1" = "облутано"}, в инвентарь посылает команду additem("яблоко"), а инвентарь, как только в нём произошли изменения, у него сработало событие об изменении и он туда же в массив записал свой новый состав. Таким образом, сам персонаж игрока при своей загрузке использует этот синглтон для установки своего состояния, включая состав инвентаря.И тут мы обнаруживаем охуительную побочную возможность! Наш массив-словарь-синглтон - это уже готовый набор данных для выгрузки в файл сохранения игры! Мы задаём ему атрибут сериализации, при записи записываем его в файл, при загрузке наполняем его данными из файла и даём команду всем активным объектам в игре, включая сцены и павны - перечитать своё состояние.
>>537360 (OP)Аноны, молю вас о помощи!Столкнулся с ошибкой:There are inconsistent line endings in the 'Assets/Scripts/HealthHelper.cs' script. Some are Mac OS X (UNIX) and some are Windows. This might lead to incorrect line numbers in stacktraces and compiler errors. Many text editors can fix this using Convert Line Endings menu commands.Пытаюсь внести изменения в скрипт, как указано здесь: https://blog.theknightsofunity.com/customize-unity-script-templates/Вот только никаких плодов это не даёт, и я всё ещё не могу запустить игровой режим из-за ошибки, когда скрипты уже были пересохранены а движок перезапущен. Как это фиксить?
>>538403Это не ошибка, а предупреждение.У меня фиксится, когда открываю файл студией, она меняет окончания строк.
>>538425Пусть ошибкой это и не является, но игровой режим запустить из-за этого не выходит, что является проблемой
Как же заебали эти юнитовские микроапдейты. Какого хуя на каждый 0.0.x апдейт нужно скачивать ВЕСЬ движок заново, ВСЮ документацию и апи бандлы для билдов. По факту там изменений на пару мегабайт, почему нельзя скачать только то что изменилось, ну что за пиздец.
Профалйер ест по 100-200 мегоабайт в секунду при рисовании графиков с помощью Vectrosity. В чем может быть проблема?
Awake идет на всех обжектах, потом OnEnable тоже на всех обжектах, или ававэ на обжекте сразу триггерит ОнЭнаблэ?
>>538886Debug.Log сделать не судьба? Можно даже myId().toString() + (".Awake"/".OnEnable") + Time.deltaTime.toString() в сообщение засунуть и прогнать на 10к объектах.
>>538866>>>Профалйер ест по 100-200 мегоабайт в секунду при рисовании графиков с помощью Vectrosity. В чем может быть проблема?Расслабься, проблема в Юнити>>538104>Перекатываюсь из другого треда с вопросом: если я хочу, чтобы васяны смогли модами заменить модельку главного героя, добавить новых монстров, оружие, вот это все, то проще будет это реализовать на юнити или гейммейкере?Запили архитектуру с абстрактными фабриками абстрактных объектов, подключай объекты из модерских сборок.
Объясните кто нибудь, в чем разница этих двух синглтонов (если это так называется):"public static MoneyController Instance { get; private set; }"и private static MoneyController _internal;public static MoneyController Internal { get { return _internal; } }void Awake () { _internal = this;}
>>53901Почти ни в чем. Первый только не дописан и использует авто пропертиес (). А второй заточен под монобехавиор.
>>539014ничем. вообще ещё конечно же можно просто ебошить public static class MoyaHuinya{} и там вот будет другой интересный сорт синглтона. у которого конструктор может случиться в непредвиденных обстоятельствах.
>>539120Ну можешь например найти шрифт для текста подходящий к табло и просто гонять текст на канвасе
Начинаю делать мобильну игру с рилтайм мултиплеером. На фотоне пишу сам мультиплеер, но встал вопрос в игровом бэкенде, для управления пользователями и всей прочей хуйнёй. Какие есть хорошие решения?(плейфаб пробовал, не понравился)
Посоны, придумал такую йобу: делаю подкласс-менеджер, который будет создавать у себя подклассы, передавать им нужную для инициализации херню через метод принимающий эту херню в качестве аргумента, а затем подписываться на публичные экшоны в этих подклассах и передавать их дальше по цепочке.Ну то есть, эвент жахнул с компонента, его менеджер услышал, жахнул свой эвент, который услышал уже его мегаменеджер, который просто знает обо всех своих подопечных и вызывает на эвенте их методы передавая то что прилетело с эвентом по своей цепочке вниз как аргументы. То есть, два конечных компонента нихуя друг о друге не знают, они даже не знают что у них менеджер там есть какой-то, они просто жахают эвенты когда что-то случается.Охуенно придумал или хуйня переделывай?
>>539133Есть опенсорс решение пишу уже 3 года, проверил уже двумя играми, никак не дойду до этапа публикации, если готов возиться с почти полным отсутствием документации на текущий момент, то https://docs.anthillplatform.org/en/latest/#anthill-platformЕсли нтересно, оставь мыло, распишу в деталях. Клиент под юнити правда очень старый.
Это нормально, что Юнити сохраняет поле в Serializable классе между запусками редактора?То есть запускаю один раз, изменяю значение.Запускаю второй раз, изменяю значение.И вот во второй раз в логаю перед изменением я вижу значение от первого запуска.
>>537796Не оч, если честно, 300 страниц оч мало, подумоть не дают, заставляют листинги смотреть, не знаю как в интернете.
>>539328Ты где значение меняешь? В редакторе или в скрипте? Значения из редактора перезаписывают значения из скрипта, оно так и работает у них.
>>539345Меняю в скрипте. По факту там вообще должен быть пустой массив, но в нём уже один элемент.Я ожидал, что там будет пусто. Есть возможность как-то это изменить?
>>539367По-моему тег [HideInInspector] должен убирать из, собственно, инспектора поле. Значение из эдитора всегда будет перезаписывать значение из скрипта, в этом и смысл эдитора. Не нравится - либо скрывай поле, что не очень удобно, либо приделывай какой-нибудь Initialize() для скрипта и в нём задавай свой пустой массив, что тоже не очень удобно.Я вот лично выкрутился тем, что у меня всё-всё-всё на карте из внешнего текстовика создаётся в рилтайм. Нет объекта в эдиторе, не нужно поля менять :3
>>539377>По-моему тег [HideInInspector]Не помогло. Поле у меня и так приватное.>у меня всё-всё-всё на карте из внешнего текстовика создаётся в рилтаймУ меня тоже. Должно было.>>539379Serialized нужен для JsonUtilityЛадно, потыкаюсь ещё сам.
>>539382если хочешь менять приватные значения, но чтобы они ещё и сериализовались то вроде переключение инспектор в дебаг режим дает это
>>539419Глянь на uniRX>>539423Так SL не паттерн, а даже наоборот антипаттерн и все знающие бородачи его рекомендуют стороной обходить, не?
Какие туториалы посмотреть, чтобы вкатиться в 2д? Хочу делать всякие головоломки на андроид, но на ютубе только платформеры делают 2д.
>>539498Я ещё совсем начинающий. Для меня да. Потому что сложно ещё так абстрактно мыслить и использовать их решения для своей игры.
Такс, поясните дауну - есть 2 точки в 3хмерном пространстве, известны их координаты.Как между этими двумя точками с определенным шагом генерировать объекты?
>>539641Всё оказалось до банального просто.Взять все объекты по типу, перечислить их и сравнить по Camera.main.WorldToScreenPoint
Помогите нубу-ракалу, хочу запилить пошаговую НЁХ с довольно большими картами эдак максимум 300х300, было бы хорошо, если бы предполагалось только горизонтальное перемещение, но я хотел-бы чтобы перемещение было возможно по удаленности тайла от другого тайла, то-есть для поиска пути мне придется вешать на все тайлы коллайдер, чтобы чекать тайлы в определенной области, но это же нехорошо, что делать как реализовывать пошаговую стротегию?
>>539797https://www.google.ru/search?q=%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC+%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0+%D0%BA%D1%80%D0%B0%D1%82%D1%87%D0%B0%D0%B9%D1%88%D0%B5%D0%B3%D0%BE+%D0%BF%D1%83%D1%82%D0%B8https://www.google.ru/search?q=a+pathfindinghttps://www.google.ru/search?q=a+pathfinding+unity+examplehttps://forum.unity.com/threads/astar-path-finding-sample-150-lines-of-code.106892/
>>539800Раз уж ты в треде, подскажи, как мне сделать поиск пути по гексам с поддержкой этажей (один гекс может находиться над другим), прыжками в длину, то есть с возможностью перепрыгивать объекты, и полётами. Заранее спасибо :)
>>539806> поиск пути по гексамhttps://www.google.ru/search?q=astar+algorithm+for+hexesТут вопрос в том, как соседние клетки брать. Если у тебя есть объект Клетка, то у нее есть массив соседей. Можно и на уровне карты сделать getCell(x,y) и getSiblings(x,y). Ну и одно другому не мешает. Вот тебе полезная статья на русише https://habr.com/post/424257/ . Еще мне гугль вот такую наркоманию https://habr.com/post/403639/ подсказал, но это к делу не относится.> с поддержкой этажейРаньше стоимость перехода (почти-скорость) из тайла в тайл отсутствовала. Или, скажем так, была равна единице. Убираем константную стоимость: переход вверх стоит 1.3, переход вниз 0.7. Т.е. раньше мы получали 3 пути: 15 шагов, 25 шагов, 10 шагов - и брали самый короткий. Сейчас тоже самое, только вместо шага идет стоимость перехода. Усложняем "не могу перейти": раньше не могли наступать в избранные клетки можем придумать функцию canIGoTo(xy), а теперь проверка становится сложнее из-за двух координат canIGoTo(xyFrom,xyTo). Ну и ты понимаешь, что какие-то юниты ходят по земле, а какие-то плавают по воде, т.е. canIGoTo(xyFrom, xyTo, unit, stepsCountThisTurn, etc).> перепрыгивать объектыЗначит, смотрим из каждой клетки не только на соседние клетки, но и на соседние-соседние. Можем с разностью высот клеток всегда работать, как с массивом (heightDeltasArray). Т.е. раньше смотрели на скалу и видели: [0.3], а теперь смотрим на скалу и еще за скалой: [0.3, -0.3]. Что-то вроде canIGoTo(xyFrom, xyTo, distance, heightDeltasArray, jumpsCountThisTurn, stepsCountThisTurn, etc) выглядит грузно, тяжело смотрится. Можно придумать объект частьШага, чтобы он помнил в себе все клетки (не прыгаем через извергающийся вулкан) и извлекал из юнита данные. Для turn based вполне допустимо. Но тут есть о чем подумать.> полётамиЕсли делать через частьШага, то в настройка юнита или настройкаШассиЮнита меняем вес переходов между разновысотными клетками. Если хуйня эта моя частьШага, по сделай еще одну карту (которая не рендерится и умеет получать координаты юнитов/городов), двигай летающие юниты по ней, а потом складывай юнитов на карту мира (чтобы ПВО могло бомбить НЛО).И чтобы тебя окончательно запутать, я вспомню о тепловых картах. Т.е. берем карту и закрашиваем все клетки зеленым цветом. В клетках вокруг вражеского танка рисуем красный цвет. Потом смешиваем цвета, чтобы получился градиент. Чем краснее клетка, тем меньше юниту хочется по ней ходить. Вместо танка может быть и разность высот, и повышенная температура вокруг (каждой клетки) реки из лавы, и коэффициентБолотистости. Тут речь не о непроходимости, а об уровне натуралистичности пути. Удачи)
>>539806> с поддержкой этажей (один гекс может находиться над другим)Ах ты ебаный ты в стос. Я только сейчас понял, о чем ты. Но. Если мы говорим о массиве соседей клетки, то клетка-над-клеткой может быть соседней (т.е. находиться в массиве соседей). Стоит ли хранить массив соседних клеток и каждый раз смотреть to.z != from.z, или хранить сразу массив стоимостей перехода... Нет, храним все еще соседние клетки, т.к. для разных юнитов стоимость перехода по z может быть разной. Но если клетка есть в соседних, то это значит хотя бы гипотетический юнит "Хожу где хочу" сможет пройти в эту клетку.
>>539810Спасибо, конечно, но это была типа-шутка. Забавно рисовать путь, когда для каждого гекса надо перебирать 6 + 12 + 18 граней с разной стоимостью, ценой, проходимостью и ещё при этом в каждой координате может быть несколько гексов. Я немножко охуел от методов оптимизации. Пока что наоптимизировал три вещи: вместо поиска гексов по дистанции стал "змейкой" рисовать большущий гекс с нужной длиной стороны; ввёл максимальную длину пути, и если до целевого гекса точно больше длина, чем эта, нужна, то отсекаю этот вариант; начинаю поиск с самых длинных путей, а потом ищу пути поменьше из кусков больших. Надо ещё как-то landmarks сообразить и с евристикой повозиться.
>>539811>>539812Вообще, больше всего помогло разбить поиск пути по фреймам. Вероятно, можно втихую строить пути при наступлении хода для каждой абилки, каждый фрейм по чуть-чуть, но это как-то страшно звучит (пока ещё).Довольствуйтесь, граждане, максимально плоским ландшафтом, короче. Меньше головной боли.
>>539812Почему нельзя использовать встроенную навигацию? Сделай карту статичной и сгенерируй навигацию, далее пускай по ней персонажаТам и прыжки, и всякие перелеты естьЧто за изобретение колеса?
>>539647Сложно живется, когда встроенных методов не знаешьhttps://docs.unity3d.com/ScriptReference/Vector3.Lerp.html
>>539854Потому что гексы, карта нестатична по дизайну (+ перепрыжки должны и на юнитов реагировать, которые сами двигаются), и навмеш явно под другое заточен. Хотя был в треде анон, который обновляющимся в рилтайме навмешем обмазывался, но я велосипед уже изобрёл, так что да.
Вот есть в моем классе, помимо всего прочего, 2 публичных поля, одно из которых bool, а другое может быть каким угодно. Есть у меня монобихэйвиор, в котором находится массив этого класса. Так вот я хочу сделать так, чтобы то второе поле отображалось в инспекторе только когда bool переменная тру. Смотрел в сторону PropertyDrawer, но дело в том, что класс мой не такой уж маленький и мне не охота описывать, как будут отображаться все остальные поля. Тем более что стандартное представление меня устраивает.Так вот как добавить только условие отображения поля, не переписывая отображение всего класса?
А хули такое гавнище-то печется? Пеклось минут 25, вышла шумная хуйня. Отключил фильтры с блюрами глянуть на необработанный результат и ваще охуел. Это чё за хуйня? Да в каком-нибудь максе менее шумная и в более высоком разрешении тень за две минуты отрендерится.
Юнитач, только ты моя последняя надежда. Пытаюсь влезть во внутренности animation controller'а, понять как там все устроено. Контроллер не мой, сидит уже запакованный в ассет бандле. AssetBundle.LoadFromFile работает нормально, даже вешается на рантайм аниматор и анимации играет, да вот только посмотреть как оно устроено - никак, "Cannot show controller from asset bundle".Есть способы его из этого состояния как-то копирнуть в ассет, чтобы на стейт машину поглядеть?Риппером пробовал, при импорте в юнити прилетает куча ошибок на неправильные guid.
Какие подводные пилить на Юнити под веб 2д офк? Не лохает? Тач норм работает?И можно ли адекватно закостылить скрытие ебучего сплеша?
>>540107Пиздец залупа. Понакрутил всего дохуя, прождал часов 6 и вот нахуй. Такая хуйня, такая хуйня.
>>540178>>540107Да это так, он ахуенно рендерит, но долго. Я сравнивал с циклами из блендера почти один в один, на маленькой сценке вообще быстро и круто. И потом решил на большой потестить и не дождался нахуй, там время в прогрессии растет, на 1см площадь увеличилась + 1час рендера.
>>540178Подожди 2019 версию, там убрали старый лихтерен и добавили гпу ускорение для выпечки лайтмап. Ну или накати бету, но не сри сюда проблемами с бетаверсией, лол.
>>540206>45 seconds GPU>6 minutes CPU (old i5 2500k 3.3ghz)Восьмикратное ускорение устроит? Правда хуй знает, какой там GPU, мне лень опять ставить бету и засекать на своей системе
Привет компьютерщики-игроделы. Как реализуется генерация земли в таких играх как Alto's Odyssey, что бы трасса была не ровной, а волнистой? Предполагаю что как то через синусы или какие то хитровыебанные формулы, но мыслей пока нет. Что вы можете мне подсказать?
>>540208>Восьмикратное ускорение устроит?Это хорошее ускорение, но все равно на больших сценах поди по 10часов будет рендерить. Просто если скачать их демку и зарендерить это пиздец полный. Это все при том что типhttps://twitter.com/hxLexie/status/1067636045313802241почти написал рендер в реальном времени. Да, он не идеально рендерит, но быстро, подкрутить и будет дольше, но лучше.
Посоны может посоветуете какие нибудь видосы по пост эффектам и настройкам рендеринга что бы картинка глаз радовала.
>>540224Землю как на твоих картиночках я синусы через и делал. Собсно, в каждом синусе ты можешь контролировать длину волны, её высоту и смещение. Ну и можно складывать несколько синусов. Я их вообще в конфиг выводил. Т.е. у нас есть синус с шириной 1, высотой 2 и смещением 3. Просчитаем высоту для мировой координаты 0: sin((0+3)х1)х2. Суть - воспроизводимая вертикаль зависит от горизонтали. Чем больше разных синусов, тем хитрее ландшафт, только следи за проходимостью (можешь, например, ограничить максимальную разницу в высотах уже после просчета синусов).Я просчитывал высоту в цикле с некоторым шагом, который на экране соответствовал нескольким пикселям. Далее строил фигуру, которую закрашивал картинкой, плюс эти же данные скармливал статичным бодям в box2d.
>>540252Смотри кинофильмы и чужие игры. Посмотри типовые эффекты и научись разбивать на них картинку. Какие-то типовые вещи не учитывают ни используемых у тебя текстур, ни скайбокса, ни желаемой тебе атмосферы. Главное с пост-эффетах - не переборщить.
>>540237>на больших сценах поди по 10часов будет рендеритьЭто приемлемо, макс сложные сцены не меньше рендерит.>почти написал рендер в реальном времениКоторый отвалится спустя пару версий. А юнитеки запилили свой лайтмаппер на основе рейтрейсинговой технологии АМД. Да, на невидии работает. Да, я пёк лайтмапы на невидии. Да, это очень быстро. Единственное "но", кусок говна мамонта вместо проца не прокатит, нужны SSE4.1. Ну и нормальная видеокарта.https://www.youtube.com/watch?v=ZQcvi35eVkoА вообще там в ассет сторе давно есть GPU лайтмаппер, только нахуя он нужен-то.
>>540281>на больших сценах поди по 10часов будет рендерить>Это приемлемо, макс сложные сцены не меньше рендерит.А после 10 часов ты увидишь, что в каком-то месте хуево отрендерилось и по новой.
>>540297А у кого оно есть? Учись. Я тебя не призываю в художественную школу пойти. Кстати, зачем они художественные школы, раз у художников есть интуитивное понимание? Потыкайся со стандартными юнитивыми пост-эффектами и посмотри, что с ними делают другие ребята.
Суп, Есть шарик, стакан и камера. Камера закреплена на стакане. Как можно заставить шарик двигать стакан, но чтобы он не создавал препятствий для физики? То есть чтобы шар не замечал его. Хочу сделать нормальную камеру, чтобы шарик мог свободно кататься в этом стакане, но если едет вперёд, то камера следует за ним.
>>540337Так чекбокс автогенерации никуда не делся. Просто на гифке он включен.>>540340>A noisy result at first, but rapidly improving directly in the Scene View.А вообще на гифке рилтайм рейтрейсинг на кпу, не удивительно, что сначала шумно. Да и сам формата гифа шумный, чего уж там.
ух заебись вот наконец нормально будет работать поиск ближайшего навмеша на пустом пространстве с учетом соседних чанков. ебучие полтора месяца исследовал пространство этой проблемы.>>538432на самом деле это сейчас только они разродились на апдейты. в прошлом году такой хуйни небыло. с одной стороны хорошо, с другой стороны фичи вроде коллаборейта иногда отваливаются после такого.>>540254а можно ещё и смещать синус на перлин нойс.>>540317лучше бы игры делали, а не рендерингом упарывались>>540349>Как можно заставить шарик двигать стакан, но чтобы он не создавал препятствий для физикисделать шар isKinematic true? сравнить дистанцию до края стакана от шарика и на этом основывать свои манипуляции?
>>540372>isKinematic trueНе, он же полностью физический.Поработать с геометрией, это понятно. Нужно, чтобы камера не сразу реагировала на шарик, а следовала за стаканом. И не сразу ставить её на линию шарик-центр_стакана-камера.Вот так нахрапом я не знаю как это решить.
>>540374Сами Юнитеки пишут:>Please note that this function is very slow. It is not recommended to use this function every frame. In most cases you can use the singleton pattern instead.
>>540371> камеру над шариком, чтобы она не прыгала1. По LateUpdate устанавливать x и z камеры в такой же, как у шарика. Можно каждый фрейм смещать камеру на часть разницы, т.е. x = (xBall - xCamera) / 5f.2. А с чего она, вообще, прыгает как сумасшедшая?
Вот есть у меня канвас, у которого стоит render mode - Screen Space - Camera. А вот как мне сделать элемент интерфейса (допустим текст), который бы не перемещался при передвижении камеры?
>>540382>1.Сейчас так и делается. Камера неповоротная. Я не упомянул об этом? Надо чтобы она поворачивалась в сторону движения шарика.>2.В моей первой попытке реализации камера устанавливается на линию текущее_положение-старое_положение-камера.И когда шарик двигается назад, камера каждый кадр поворачивается на 180.
Вот что за пидорас из юнити решил, что будет классно назвать дефолтный компонент CharacterController? Пидорасина. Мне теперь придется выдумывать кривое название, чтобы не конфликтовать с ним.
>>540385Или не упоминал, или я в глаза ебусь. Повороты в юньке это отдельная история. Насколько я понимаю, у них везде есть история перехода с 359 на 361 градус. Решение - кватернионы, но они сложные. По памяти чего скажу. Попробуй:1. Через через localRotation задавать нужный градус (хотя ты уже так и делаешь, да?), но чекай переход через остаток от деления на 360. т.е. cur = Mathf.Floor(camera.localRotation.y % 360); prev = Mathf.Floor(ball.localRotation.y % 360);И если cur!=prev то ты пытаешься повернуть камеру не в том направлении. Авось, прокатит.2. С помощью Rotate (проверка из 1го пункта пригодится) обязательно передавай Space.World - авось, прокатит.3. Тыкай квартернионы https://docs.unity3d.com/ScriptReference/Quaternion.html и особенно: https://docs.unity3d.com/ScriptReference/Quaternion.Lerp.html , https://docs.unity3d.com/ScriptReference/Quaternion.Slerp.html , https://docs.unity3d.com/ScriptReference/Quaternion.Angle.html - эти прокатят, но и наебешься, и напляшешься.
Пишу игру на юнити про космические путешествия. Вознилка проблема с реализацией поворота. Простой transform.Rotate(Vector3.down * rotateSensibility); выглядит очень тупо. Какие есть еще варианты?
Что то я не могу допереть как сделать чтобы несколько инстансов одной модели, используя одну текстуру-атлас, имели разные варианты расцветок (пик). Я так понял модель должна иметь несколько uv, и сам fbx это позволяет, но вот юнити импортит только первую. Как такое обычно делают?Пик из гугла описывающий суть.
>>540353>области которые отдельно запекаются.Какой смысл, если эффект от кручения глобального света затрагивает все области сразу?>>540414>но чекай переход через остаток от деления на 360. т.еif (angle < -360) { angle += 360; } А я себе так запилил. Ну и с положительными углами то же самое. Работает, брат жив. Но у меня 100+ строк камераконтроллераОлсо, кто-то писал раньше на юнитискрипте, он же "яваскрипт"? Ну, до дропа поддержки юнитеками? Жопы не горят?
>>540425>юнитекамиСтранная тенденция придумывать уничижительные клички людям, уровень квалификации которых большая часть местного населения даже осознать не в силах. Не надо так.
Прошёл Night In The Woods. Сильно вдохновился. Сколько нужно учиться c#, чтобы уметь создавать подобное в программном плане?
>>540428Если это платформер с диалогами, то можно сразу начинать с изучения юнити, уровня шарпа, который у тебя будет в итоге, тебе хватит.
>>540375я знаю о чем говорю!>>540379мне кажется тебе следует ещё картинок порисовать чтобы нормально описать свои проблемы для себя самого, а потом уже для нас. интерполируй позицию, хули.>>540406нужен чарактер контролер - пользуйся стандартным!>>540428выглядит как хуйня. дольше рисовать будешь говнографон чем учится код писать. ICQ то у тебя большой? если не очень то дождись визуального погромирования. если средне то может за пару месяцев и сможешь узнать достаточно. если большой то лучше бы спиздил чужой код.
https://pastebin.com/xSSewLhTЭто вообще легально? Как они умудрились запихнуть в 2д директ дерево четыре моушена причем все в ебаном 0,0?Или это риппер глючит?
>>540425>100+ строк камераконтроллераТы осилил в них уместить изменения пост-эффектов? Все равно пакеж! Мне интересно.
>>540435Я восстановить его хочу, в юнити, мне надо увидеть что у него внутри. Рипнутый контроллер выдает pptr ошибки, я уже просто головой еду.
Я стою в комнате. В комнате выключен свет и соответственно самой комнаты не видно. Всё чёрное. В руке есть фонарик и при его включении луч от фонарика проясняет нам часть комнаты. То есть нам становится видно только ту часть комнаты, где сейчас находится луч от фонарика. Как такое сделать? Может есть гайд, но я не нашёл.
>>540426Во-первых, не я это начал. Во-вторых, кличка скорее нейтральная и зародилась на форуме, который в то время посещали сами юнитеки, как производное от Unity Technologies. В третьих, захочу их обозвать - назову юнитипидорами. Но вообще они молодцы, движок хорош. Даже новый террейн запилили. Не прошло и сотни лет.>>540434> изменения пост-эффектов?Nope. Я игру пилю всего лет пять, до постэффектов не дошёл пока. А так там всё просто, скопировал поведение камеры из любой 3д рпг и кручу её кватернионы.
Начал изучать этот ваш Юнити в связке с C#. Пока вывод такой: C# очень похож на Джаву, а Юнити не кажется таким уж смертельно сложным.
>>540437но зачем? я вот не отговариваю хуйнёй маяться, мне просто интересно.тут только удачи пожелать можно.>>540571они коллайдеры то у деревьев исправили, не?>>540584сложность не в языке, или API, а как не выстрелить себе в ногу
>>540592>но зачем?Любопытство. Я знаю, что слайдеры чаргенератора у них двигают@скейлят массивы с костяшками. И вот мне интересно узнать, как они автоподгонку анимаций под персонажа сделали да так четенько, что жиробасина или тростинка главгерой, анимация подстраивается под любую комбинацию.
>>540592А что не работало? В 2019 вроде всё адекватно работает, только при рантайм добавлении надо вызвать. Не вникал.
>>540599а где че как? может тоже захочу узнать.>>540646ротация не работала. на пеньках и столбах то не заметно, но проблема присутствовала
Вы бы знали, как я заебался. Каждый раз хочется сделать код лучше и лучше. Могу убить часы на продумывание какой-нибудь архитектурной мелочи. Почему я не могу воспринимать кодинг просто как инструмент для достижения цели...
Как сделать область, при входе в которую, будет исполняться определённый код? Например, иду по коридору, замечаю, что висит картина. Подхожу к картине поближе и, допустим, в коридоре выключается свет.
Я тут как то спрашивал как генерируется земля по такому типу как на скрине. Вообщем синусами я овладел, умею строить графики функций и всё такое, но как мне теперь генерировать землю через меш? Я как понял план такой:1. создавать первую полосу точек по графику2. потом через цикл строить остальные точки по такому же графику, но с отступом от прошлой полосы3. Прогонять все точки и строить треугольники4. Сделать UV и нормали5. Наложить материалГде я мог проебаться и не распидорасит ли меш?
>>540678Я думаю тебе нужно следовать такому плану.1. Проставить точки в одной плоскости но в разных высотах случайным образом.2. В Unity специальная функция проставит проставит между этими точками лини с изгибами разной глубины. Поищи в асетсторе это должно быть.3. Накладываешь материал.
>>540414>кватернионы, но они сложные>Quaternion.LookRotation(mocha, govno)Охуеть как сложно>>540678Все верно. Можешь посмотреть уроки от Sebastian League на тытрубе, у него там есть где-то процедурная генерация меша.>>540424На пике просто UV координаты смещаются, не? Создаешь новый материал и меняешь там Offset, ну или пишешь свой шейдер, если батченк нужен.
>>540705На пике похоже да, цвета сгруппированы вместе и можно просто сдвинуть юв. Я так собственно сразу и попробовал сделать, но в Skinned Mesh Renderer сдвиг действует на все инстансы этого меша. > ну или пишешь свой шейдер, если батченк нуженЧто ты имеешь ввиду под кастомным шейдером? Типо параметры в материал передавать через всякие SetFloat('Offset')? Такой подход тоже исключает батчинг. Или я чего то не понимаю.
Я так понял, Юнити не умеет запускать сразу 2-3 инстанса игры в редакторе? Слишком сложно такое реализовать в 2018, блять, году.
>>540648Не хотелось писать скрипт для отображения коллайдеров деревьев. Беглый тест с ригидбоди кубом показывает, что нихуя не вращается. А физикс дебаг не отображет коллайдеры деревьев на террейне. В конце вебмки - префаб дерева, никаких коллайдеров без веток там нет, но при этом куб проходит сквозь ветку и бьётся обо что-то невидимое. Зато они прикрутили автогенерацию биллбордов для любых кастомных деревьев. Возможно и для дитейл мешей тоже, не проверял.
>>540705> Создаешь новый материал и меняешь там OffsetХотя понял о чем. Я почему то его сразу не увидел и програмно двигал ювишку самой модели. Алсо сейчас покопался и оказалось что проебался с динамеческим батчингом инстансов. Оказалось чтобы он работал меш должен быть чуть меньше 300 трисов.Похоже единственный вариант это сгруппировать цвета как на том пике и по индусски копипастить материалы, делая офесет у каждого.
>>540724юнити же и не дает инстансы коллайдеров деревьев. я довольно много времени потратил чтобы применять к ебучим коллайдерам все эти матрицы трансформаций, вроде по другому нельзя их получить.алсо в эдиторе он и не показывает коллайдеры деревьев, если он не в плеймоде. когда юнити переходит в плеймод только тогда он сует все эти коллайдеры. забавное - если пользоватся Physics.OverlapBox раньше юнити возвращало террейн за каждый коллайдер дерева ещё сверху. так что хуй а не коллайдеры. полагаю эту хуйню тоже не починили.разве генерация биллборд не была до этого?
Посоны, как сделать, чтобы как в monkey ball: сфера ригидбади крутится, а меш нет? Ну, кроме перемещения меша в новую позицию ригидбади каждый LateUpdate.
>>540727>и не дает инстансы коллайдеров деревьевВидимо потому и не даёт. Можно попытаться получать инстансы деревьев и спавнить в их позиции префаб с коллайдерами. Только там будет уже Degrees to radians конверсия из инстанса дерева и, скорее всего, те же проблемы с вращением.>он и не показывает коллайдеры деревьев, если он не в плеймодеВ плеймоде тоже нихуя. То есть у префабов всё ок, всё видно без плеймода. У террейна из коллайдеров только сам террейн, независимо от режима.>разве генерация биллборд не была до этого?В 5.х не было. Олсо приятно удивила производительность леса на далеко не топовом железе.
Остановился на 2D игре. В Юнити в 2D-моде можно создавать меши (полигоны) и вешать на них совпадающие с геометрией коллайдеры? Или только спрайты?
>>540726Разные материалы не будут батчиться в один дравкол, так что профита от атласа в этом случае никакого. Не уверен, можно ли так, но там есть инстансинг с сохранением кастомных параметров. По идее можно через него сдвинуть UV.https://docs.unity3d.com/Manual/GPUInstancing.html дальше уже сам разберешься. Но опять же, пишут что для skinned mesh renderer не работает.
>>537360 (OP)Что-то хуйняhttps://www.youtube.com/watch?v=rYB_etC9ZdgДелали, делали, нихуя не сделали.
Тут такое дело, вышла из бетки Unity 2018.3, но на ней не работает старый хак для темной темы.Кто-нибудь в курсе, есть ли новый способ переключить это светлое вырвиглазное говно на богоугодную темную тему?
>>540859>Тут такое дело, вышла из бетки Unity 2018.3Ну как сказать вышла. Я бы сказал, это релиз кандидат. Там всё ещё присутствуют какие-то ебанутые баги с префабами и краши из-за хуйни.
>>540925Чем слабее комп, тем меньшее время редактор проведёт в зависании прежде чем выдаст ошибку. Не то, чтобы это решало проблему, да и убить процесс всё равно быстрее выйдет, просто забавный факт.
Анон, очередной ньюфаг ИТТ. Вот решил я например в качестве хелоуворлда сделать простую игру про рыбалку. Чтобы был домик, озеро, пирсик деревянный и персонаж. Возможностей минимум:-ходьба-приседание на бутылку стульчик рыбацкий-управление удочкой (закинуть, подсечь, вытащить)Потом планирую усложнять добавлением разных рыб, системой скилов и т.д. ВНИМАНИЕ ВОПРОС:Минимальный навык скилов для этой задачи какой?Помимо работы с движком и логикой меня интересует что про графону нужно уметь? Условно, я смогу по мануалам блендера клепать модельки уровня щит-тир качества и насколько это сложно? Мне не очень нравится моделирование и я плохо рисую, но вот с шарпиком я дружу, да и в целом работать с логикой игры мне интереснее чем резать четырёхугольники. Думал что можно брать бесплатные ассеты, но тут-же стал вопрос анимирования. Сомневаюсь что будут бесплатные модельки со всеми нужными мне анимациями. Опять таки, насколько адекватно брать чужие модельки и допиливать анимации под свои задачи? Кто из нищеёбов вкатывался, опишите свой путь и подводные.
>>540953Вместо того, чтобы писать сюда уже бы скачал юнити и начал работать. Создаёшь Terrain, изменяешь его по своему вкусу, импортируешь Assets/Import package/Characters.Перетаскиваешь FPSController на сцену.Идёшь в ассетстор, импортируешь любой бесплатный домик.Дальше сам.
>>540962Лол, ну это я и сам знаю/делал. Уперся в вопрос с персонажем, его кастомными анимациями. Как функционал запилить я уже примерно представляю. Я же спросил за анимации, вот эту всю хуйню.
Как лучше всего подсвечивать интерактивные предметы вокруг игрока?Пока план такой: 1) Кидаю на игрока сферу-триггер2) Когда коллайдер входит в сферу, проверяю его layer и пускаю к нему луч, чтобы проверить, не закрыт ли он стеной3) Если условия выполнены, то коллайдер кидается в список интерактивных предметов, которые подсвечиваются в интерфейсе4) Когда коллайдер выходит из сферы, удаляем из списка и удаляем с экрана
>>540953>Условно, я смогу по мануалам блендера клепать модельки уровня щит-тир качества и насколько это сложно?Недельку два посмотри пару видео русских блендерщиков как они клепают кружку и наковальню.https://www.youtube.com/user/Blender3Dcomua/videoshttps://www.youtube.com/user/fastaboutblender/videosЭтого тебе с головой хватит.Делаешь UV развертку, это обязательно без нее нельзя будет раскрашивать модель текстурой в Substance Painter,.https://www.youtube.com/watch?v=EqvODE3a10kПотом переходи к созданию материалов для текстуры Substance Designer.Когда нужные тебе текстуры как у ААА игр созданы переходи к Substance Painter, где нужно раскрашивать текстурой нужные участки модели.https://www.youtube.com/watch?v=qKWYRJM-6qcГенерируешь текстуру в Substance Painter, в виде png картинки и закидаешь в Unity и нацепляешь на модельку.Что бы сделать адекватную модель как в ААА играх нужно затратить много времени.
Юнитач-помогач, посоветуй как разрешить проблему.У меня есть комнатка-коробка, вроде пикрелейтеда. У стен разные финтифлюшки развешаны(грубо коробками обозначил).Камера может ставить точку фокуса и крутиться вокруг нее, короче говоря, все бохато как в эдиторе.Мне нужно как-то заиметь возможность скрывать\делать прозрачными стены вместе с финтифлюшками, когда камера смотрит через на них, вроде как на пике.Я хотел реализовать так:-финтифлюшки на стенах\у стен сгруппированы в одну трансформу-стенку, каждой стенке по трансформе-перед всеми стенками повешены невидимые коллайдеры-камера пускает луч по центру, если луч упирается в коллайдер смотрю на нормаль-если нормали коллайдера негативный, значит это не бэксайд и ничего не делаем-если позитивный, значит бэксайд и стенка вместе с трансформой финтифлюшек скрывается\делается прозрачнойНо тут вылезла такая проблема. Это если правильно понимаю может сработать только с одной стенкой(красной), но что делать с желтой и потолком? их коллайдеры в центр явно не попадают.Что делать посоны? Пускать кучу ебенячих лучей?
>>540977Анон, а ты часом не знаешь, как без Substance Painter 1 (2500р мин пах, ахуеть мой пк стока не стоит), в блендере рендере (не суслике) вывести тоже самое. Т.е условно у меня есть моделька, состоящая из нескольких материалов, каждый материал имеет ещё несколько текстур + карта нормали и ноды, как совместить это всё счастье в одну, максимум две текстуры и так же просто натянуть на модельку? Мне не для движка, для анимации. Просто если всё это рендерить даже в простом блендер рендере , то несколько моделек, со своими ключами, просто расплавят мой бук.
>>540985То есть луч пересекает только красную стену, а ты хочешь скрывать желтую и потолок?Пускай еще лучей, хули тут сделаешь.
>>540992Как это лучше обставить? Всем экраном пускать? Это же пиздец производительности будет... нет?
>>540997Может лучше определять сторону стенки и если камера на лицевой стороне плейна, то скрывать стенку.
>>540998Хммммммм, а ведь у главной камеры трансформа и соответственно вектор тоже есть, да? Т.е. можно попробовать даже без рейкаста, просто есть трансформа камеры, есть нормаль стенки, если нормали стенки позитивны вектору камеры, значит это бэксайд, но блджад, тогда это надо будет считать все четыре стенки(а то и больше вдруг не только коробку захочется потом) + потолок одновременно на каждом чихе камеры
>>540985Зачем вообще райкастить-то, у тебя же есть координаты центра комнаты, стен и камеры.Если камера снаружи комнаты с той же стороны, что и стена (Vector3.Dot для векторов "на камеру" и "на стену" возвращает значение больше 0), то скрывай, если нет, то не скрывай.Хотя чему я удивляюсь, большинству людей же матеша в жизни не нужна, лел.
>>540992Можно поставить 8 коллайдеров, по одному на каждый угол.Затем пускать луч в центр комнаты и определять какой коллайдер задет. Все смежные стены коллайдера скрывать. Или тоже самое сделать без коллайдеров, через углы
>>541003Тебе не нужен вектор камеры, только её положение. Определяй, что она с нужной стороны.Каждый кадр считать придётся, да.
>>541005>Хотя чему я удивляюсь, большинству людей же матеша в жизни не нужна, лел.Ну не унижай плес, я гуманитарий. Матешу подтяну, обещаю.>>541010Попробую, спасибо.
>>537360 (OP)Хай, анонии. Стоит ли смотреть курсы/читать книги, чтобы научиться юнити? Или можно просто писать код и решать проблемы по мере поступления? Я просто хочу практикой заниматься, а не смотреть/читать как кто-то делает это за меня.
>>540989>а ты часом не знаешь, как без Substance PainterНет, я в это не вникал, мне посоветовали Substance Painter так как он выдает текстуры лучшего качества.>(2500р мин пах, ахуеть мой пк стока не стоит)С торрентов видимо не судьба скачать, да?>Т.е условно у меня есть моделька, состоящая из нескольких материалов, каждый материал имеет ещё несколько текстур + карта нормали и ноды, как совместить это всё счастье в одну, максимум две текстуры и так же просто натянуть на модельку?Именно как это делать средствами блендера я не знаю, смотри видео туториалы.
>>541026Спасибо. Так и думал делать, но увидел курсы и уроки всякие и подумал, что нужно по ним учиться иначе будешь делать что-то не так.
>>541029В любом случае будешь сначала делать что-то не так.Во многих видео на ютюбе по unity кодят полную хуйню, неприменимую в реальной разработке зато быстро достигается необходимый результат. Поэтому прогай, смотри ютюб, переделывай, рано или поздно вкатишься.
>>541033Я просто думал, что в уроках могут рассказывать про какие-то удобные паттерны или как можно упростить себе скриптинг. Короче, научат как делать так, чтобы не изобретать велосипед и не писать говнокод.
>>541054у меня так было: пока сам не объебешься, не поймешь. мог хоть тыщу роликов просмотреть, первый говнокод будет говном, будет один огромный класс, в котором все будет происходить. потом охуел его править в один момент и начал уже выходы искать. захерачил синглтон... потом объебенился на синглтонах во все щели, начал искать что там пизже есть, натыкаешься на инъекции, пихаешь их, потом пилишь гига-йоба-обсервера, потом прочухиваешь что чет не хватает, читаешь про охуенный гей-подход с РХ, начинаешь все потоками считать, потом охуеваешь от того что это гейство больше практически невозможно дебажить нормально, возвращаешься к старым добрым инъекциям@обсерверам но уже обдуманно, а дальше я пока не прокачался и сказать не могу что там, на следующем уровне, может еще более охуительные истории ждут. такие дела
Анончики, хочу вкатиться в Unity. С чего начать - с C# или JS? До этого пробовал кодить в Game Maker.
>>541229>JS?Там он выпилен.>С чего начать - с C#https://metanit.com/sharp/tutorial/Учи с 1 по 12 главу, тебе этого хватит.
Почему может не работать Visual Effects Graph? Делаю все как на оф видео, но ни одной частицы не появляется. Настройки проекта такие же.
Насколько плоха идея делать игру полностью на Unity UI?Жанр tycoon, в основном текст да циферки, платформа андроид. Слышал что UI составляющая юнити хуево оптимизирована, так что хочу услышать ваше мнение.
>>541265>не хочу регаться в майках для вижуалкиРегнись на временную фейкпочту дураhttps://temp-mail.org/ru/
Юнаны, есть проблема с анимацией. Вызываю её через триггер. Когда в аниматоре ставлю галочку на триггер, все срабатывает как и должно, анимация проигрывается. Но если пишу в скрипе SetTrigger("trigger"), анимация начинается но сразу останавливается вначале и дальше не идет. С чем может быть связано?
>>541276Да просто треда нового не было, и я скопировал первую попавшуюся картинку с сайта юньки. мимо_ОП
Пацаны, помню можно было как-то сделать так, что при растягивании спрайта картинка внутри повторялась, а не растягивалась. Как ето сделать, скажите плес?
Встал вопрос о разработке собственной игры. Нужно прояснить чем в этом плане Unity лучше GMS2.Имеется:- Базовое понимание языков программирования- Умение рисовать и делать музыку- Дохера амбиций и свободного времениХотел бы сделать игру, 2Д-экшон суть такова... Вернее, мне нужны:- Возможность при постоянных занятиях в ближайшие полгода разобраться с кодингом под конкретный движок (до уровня "я могу сделать платформер с пиздиловом по лицу, кат-сценами и визуальными свистелками)- Удобный перенос собственных спрайтов (т.к. я тыкал только гамак и то поверхностно, успел заметить только то что там надо всю анимацию ровно укладывать в ячейки 32х32 или 64х64 в ряд, но соответственно, мне же хочется хреначить границы спрайта при переносе самостоятельно из любой части картинки, это в юнити есть?)- Насколько просто вообще накладывать какие-то спец.эффекты и шейдеры, работать с тенями итд? - Хорошая поддержка со стороны рукоммьюнити (хотя англ. знаю где-то на intermediate)- Отстутствие необходимости покупать ассеты, готовность работать сразу ИСКАРОПКИ.- Хули ваще в юнити может помешать мне наслаждаться разработкой и стать очередным успешным инди-хуесосом со своим "пиксели, открытый мир, крафтинг, пенисы"?в основном, конечно, нашел поверхностную инфу про всё кроме переноса спрайтов на форумах и ютюбах, поэтому вопроса джва:1) почему я должен выбрать юнити а не гмс22) че с переносом своих рисунков-то? в состояние анимации чтобы сразуПрисматривался еще к УЕЧу, но мой макбук его не тянет т.к. тут вместо дискретки intel iris plus 655
>>541305Бери юнити, гмс2 хуйня кастрированная, мало ли, какую фичу тебе потом захочется заиметь, в юньке можно очень многое, это серьезный двиг.
>>541318кстати, коль речь про джва-дэ, то что можете сказать про говнодот?в юнити, конечно, среди прочего подкупает перспектива развития как движка так и в плане собственного роста, т.к. тут нормальный язык программирования в основе всей хуйни (возможность в будущем кодить под шиндовс или перекатиться на свифт при желании)
>>541320Годот хороший двиг, но я советую юнити, у него большая поддержка, много разрабов. Если, конечно, анриал не начнет его гасить со своим стором, это маловероятно.
>>541378>годот хорошийСколько годоту лет и где на нём игры?У меня было такое впечатление, что когда делают новый движок вменяемые люди, они создают игру-рекламу для этого движка. Те же валвы с сурсом и халфой, например. Хуле годотяне не делают игру-рекламу себе? Даже не нанимают под это дело никого, просто лепят движок, на котором делают дороги правопорядка.
>>541384>Даже не нанимают под это дело никогоГодот опен-сурс, сделан комьюнити, кому нахуй надо заниматься этим?
>>541406Вот поэтому на годоте никогда и не будет достойных игор :^)>>541403Ну, какую-нибудь да спонсировали. Не обязательно самим же делать.
>>541403>Какую игру сделали юнитекиПоходу это первая коммерческая игра на юньке. Gooball, Ambrosia Software, 2005. Версия юнити 0.2, через месяц выходит версия 1.0source https://web.wpi.edu/Pubs/E-project/Available/E-project-030614-143124/unrestricted/Haas_IQP_Final.pdf
>>541438>Ну, какую-нибудь да спонсировали. Не обязательно самим же делать.Ты нихуя не знаешь, а уже заранее принял сторону юнитиговна, пидарок. У анриала такая история, а что юнити, что годот, одно говно без игр.
>>541467https://gamedata.club/article-top/1359-top-10-luchshih-igr-na-dvizhke-unity.htmlмельком глянько
Хикки, может у кого есть ссылка на крутую консоль для unity? Находил такую как-то на github, но потерял ссылку. Эта консоль появляется сверху, туда можно вводить команды, можно отображать значение переменных, есть поддержка тачскрина.
sup, я профессиАНАЛьный разработчик Unity.могу отвечать на вопросы. сфера — логика / плагины / IAP.PS: Юнити — глючное говно. Лучше бы на Анрыле всё делали.
>>541529Плюсую за RTS, пишу сам, но многие вещи получаются очень коряво.>>541509Как представляешь архитектуру сетевой RTS?В идеале выкати демку.
Что думаете про новый минималистичный интерфейс редактора? Обещают даже разрешить менять размер текста! Вот это да! Они серьёзно? После Zios Themes такой высер кроме как шутку воспринимать невозможно. Кто-нибудь может объяснить, зачем эта пыль в глаза? Ведь никаких техничексих ограничений менять шрифт, формы и размеры нет (и не было)!P.S.: Всё ещё лучше, чем вырвиглазный UE UI...
>>541546>зачем эта пыль в глаза?Это не пыль, это тотальное обновление движка. И в то время, пока ты пользуешься для игр новой гуи системой, эдитор работает на старой. >Zios ThemesТы евангелист этого дерьма? Оно же реально дерьмо.
Так, нашёл форум-треды https://forum.unity.com/threads/unity-on-linux-release-notes-and-known-issues.350256/page-2 и https://forum.unity.com/threads/unity-hub-v-1-3-2-is-now-available.594139/Пишут, что теперь всё унити идёт через хуб.Не хватает мозгов макаки, чтобы запустить AppImage.chmod a+x UnityHubSetup.AppImageЯ ещё и читать не умею, там прямо унити-модер ссылку оставил https://docs.appimage.org/user-guide/run-appimages.html
>>541582Не инструмент дерьмо, а разработчик, держащий инструмент в руках.Кроме говнота. Говнот дерьмо и как инструмент и говнотодебилы тоже дерьмо.
А вы знали, что операторы '?.' и '??' нельзя использовать с объектами Unity? Я вот сегодня узнал, блять. Все из-за того, что они переопределили оператор '==' у Object. Это просто ор.https://forum.unity.com/threads/elvis-operator-null-coalescing-operator.433767/
>>541640>https://forum.unity.com/threads/elvis-operator-null-coalescing-operator.433767/Кек, как раз сегодня удалял эту хуету на работе.
С весны не навещал Юнити-треды.>юнити-говно, я разработчик>как капсулу повернутьНичего не поменялось. Доволен.Нестед префабы оценили?Я очень. Ебаный зоопарк гуи теперь у меня лежит в красивом префабчике, а все остальные сцены его модифицируют то тут и там
>>541640Хм.. А если я пишу if (gameObjectReference) {...}Оно тоже работать не будет правильно потому что нул не нул?
>>541653Тоже в свое время прихуел с такого костыля и теперь везде пишуif(GO!=null){GO.ebash.huyach();}
>>541581Тогда предложи мне не дерьмовый способ кастомизировать шрифты, цветовую схему, формы и размеры. А пока что - да, я свидетель нормального, относительно кастомизируемого интерфейса. Пусть и с помощью костыля. И да, я не говорю, что новый интерфейс дерьмо, да и старый дарк скин весьма неплох (особенно по сравнению с блЮЕ), я говорю что выкатывать такой скудный функционал и орать "Нью эдитор УИ! Новый мы-знаем-как-вам-удобнее шрифт: Робото! А скоро и возможность менять его размер!" при существовании реально работающего костыля доказывающего и без того очевидную возможность вынести все параметры - это смешно. Если жрать что дают, однажды можно сожрать говно. Тут ещё и спасибо некоторые готовы сказать. К слову, я большой любитель юнити, но политика интерфейса всегда была подозрительной. Дарк скин за бабло (и молчок)? Так пусть и возможность кастомизации будет хотя бы за быбло! (Или они думают, что никто не заметит?)
Котаны, обнаружил тут странный баг. При передвижении клавишами W,S,A,D,WA,WD все работает как нужно, но с зажатыми SA и SD функции выполнятся не хотят, никаких связей у функций с управлением передвижением нет, в чем может быть проблема?
>>541738>тут странный баг. При передвижении клавишами W,S,A,D,WA,WD все работает как нужно, но с зажатыми SA и SD функции выполнятся не хотят, никНе нажимай больше черытёх клавиш. Проверь Функции на WASD, возможно на SA и SD написаны хуёво. Впрочем не возможно, а точно.
При срабатывании триггера юнька намертво зависает, что не так? Задумка такова, при соприкосновении с коллайдером мы запускаем корутинку, пока булиан инренж трушный она пиздит врага палкой с задержкой в 0.35, но на практике все зависает. Памахите.
>>541805Какая-то у тебя странная корутина.Корутина "блокирует" текущий кадр, пока не встретит yield return [что-нибудь, можно null].У тебя же начинает бесконечно крутиться while, потому что переменная не меняет значение.В общем погуглил тебе, проверяй: https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnTriggerStay.html
>>541805>>541807И не забудь поменять формулу для урона, твой зависит от количества кадров в секунду.Надо дамага = damagePerSecond * Time.deltaTime.
>>541807> OnTriggerStay.htmlНе подумол что можно сразу для такого положения написать. Благодарю.> И не забудь поменять формулу для урона, твой зависит от количества кадров в секунду.Но у меня разовое получение урона с определенными таймингами, "размазывать" урон не хотелось бы.
>>541804У тебя бесконечная залупа, положи yield return null в конце while, чтобы он заканчивал фрейм то.>>541811>OnTriggerStayА вот этого я бы не трогал, глючное/непредсказуемое говно.
Кто может помочь с запиканием карты? Комп говно, не могу подобрать параметры, чтобы это все запеклось на моем компе и что бы качество запекания было более менее нормальным.
>>541804>>541805yield return null нужно в while засовывать.Я хз, с чем это связано, но у меня корутины зависают намертво, если поток не проходит хотя бы через один yield, т.е. всегда приходится либо в начале, либо в конце корутины один фрейм через yield return null пропускать.
Есть один префаб пули. При рождении она(пуля) должна подсасывать некоторые данные из другого гейобжекта, но т.к. это префаб я туда никакой гейобжект закинуть не могу. А теперь вопрос, как лучше передавать пуле информацию?>>541837>>541812Да, я уже понял.
>>541838>А теперь вопрос, как лучше передавать пуле информацию?1) Инстанцируем пулю2) Через GetComponent получаем ссылку на компонент пули, либо ссылку на интерфейс (IProjectile например)3) Через компонент или интерфейс передаем нужные данные. Например, задаем владельца пули:var bulletInstance = Instantiate(...);var bullet = bulletInstance.GetComponent<IProjectile>();bullet.Owner = this;
>>541841Самое смешное что я так и пытался сделать в начале, но он почему то не хотел заливать туда данные. Надо конечно еще раз попробовать но я уже подсасываю данные через гейобжект.файнд, хоть и на сколько я понял он сильно нагружает и негативно сказывается на оптимизоне.
>>541842>но он почему то не хотел заливать туда данныеВ смысле? Ты с C# вообще не дружишь? Если базовые вещи знаешь, то всё будет заебись.
Всем привет, я новичок. Подскажите, пожалуйста, как в 2д игре сделать, чтобы текст выходил по нажатию кнопки? Как в визуальных новеллах
>>541843Что то знаю.Как запилить небольшой разброс? А то с текущим скриптом разлет пулей получается в 90-180+ градусов.
Хочу пробустить игру в гугл плее. Сейчас 40 оценок, средняя 4.1. Если закину 50 пятерок, меня спалят или норм?
>>542141Периодически бывают облавы, но в целом бизнес работает на продаже оценок. Закидывай 4/5. А лучше заплати за минимальную рекламу, чтобы гугл тебя не фильтровал как неплатящего и сделай/купи пару обзоров на профильные сайты.
>>542143По началу была реклама, но не окупается. Или ты имеешь ввиду, что она перманентно должна быть хотя бы на минимальный бюджет?
>>542147>перманентно должна быть хотя бы на минимальный бюджетДа. Это не точно, но я думаю, что всех неплатящих гугл летом пофильтровал. Когда у всех траффик из категории Похожие порезался в три раза.
Делаю 2д платформер. Встал платиновый вопрос про контроллер. Как лучше делать перемещение - через физику или через трансформ? Во всех бест практисах пишут что лучше через трансформ, но я в своей игре хочу взаимодействия объектов, например, какой либо объект врезается в игрока и отталкивает его, либо оказывает на тушку игрока силу. Конечно легче через физику, но от нее нет чувства контроля за персонажем.
>>542234Не хочешь через физику делай все ручками тогда. Долго, кропотливо и упорно. Зато возможно весьма самобытно.
Есть один гейобжект, он при уничтожении дропает после себя другой гейобжект. Когда за уничтожение отвечает 1 обьект все хорошо, когда 2 и более то он создает количество гейобжектов равное количеству обьектов которые взаимодействовали с ним. Короче говоря моб при получении выстрела из дробовика спавнит кучу предметов хотя должен спавнить один. По идее при очередном получении урона обьект должен самовыпилиться но он успевает просчитать все попадания пулей. Што делать? Лимитировать возможность выполнения функции Die?
>>542473Destroy() срабатывает в этом же фрейме, но позже и в произвольное время.Соответственно, TakeDamage и Die могут сработать 2-3-4-5 раз. Я бы добавил флаг bool isDead = false, и ставил его в тру, когда объект умер.И добавил бы в Die проверку if (isDead) return; первой строчкой.>>542478С таким подходом обосрешься ближе к середине разработки, когда что-то не работает, но ты хз что именно.
>>542557Оф. инфы нет, просто гугл сломал показ похожих приложений. Гуглил по теме, но единственное что на шёл:https://tech.onliner.by/2018/06/27/google-play-6https://www.reddit.com/r/androiddev/comments/8t935n/huge_drop_in_downloads_over_the_past_48_hours/Видимо я откуда-то из комментариев хабра или дтф это прочитал.
Коллеги, как нужно иметь минимум в резюме, чтобы получить позицию разработчика на Unity. Запилил крестики-нолики, допиливаю 2Д-движок для платмормера с обработкой всяких наклонных и движущихся платформ, думаю сделать вредную игру вроде кликера для Андроид.Что ещё?
>>542672>чтобы получить позицию разработчика на Unity.Нах оно тебе нужно? Геймдев без переработок не существует, будешь пахать по 12-14 часов как минимум и выпивать литрами кофе.Будешь делать мобильные детские игрушки с кучей рекламы и донатом.
>>542683>Нах оно тебе нужно?Нет лучше пахать на заводе с 8 до 17, за 23 тысячи, без переработок и перспектив.
>>542684Может даже и лучше и смотря какой завод. Когда работаешь умственно более 8 часов, то мозги кипят.
>>542657Решил, мб пригодится кому.К кости наследуем пустой обжект а уже к пустому обжекту нужную конечность, работает так же, ниче не рескейлится и иерархия удобно выглядит.
>>542683>Геймдев без переработок не существует, будешь пахать по 12-14 часов как минимум и выпивать литрами кофе.По крайней мере, это будет не так тоскливо, как лепить join'ы и select'ы.
>>537360 (OP)Анонс, я сам художник, поэтому ни в программирование, ни в даже какие-нибудь скрипты не умею. Хочу сделать интерактивную открытку, Юнити открыл в первый раз в жизни. Собрал анимации %без костей, чисто на иерархии, собрал сцену.Вопросы:1. Как сделать чтобы при запуске приложения включалась определенная анимация на сцене?2. Как сделать, чтобы другая анимация включалась при клике по элементу, а первая удалялась со сцены?3. Как сделать, чтобы после проигрывания второй анимации включалась другая?Ну и еще засыпку - зачем вообще все эти редакторы анимаций, вроде Спайна и Драгонбонса, с возможностью импорта в юнити, когда в самом юнити создание анимацией реализовано так удобно?Правда Спайн я не смотрел, он платный, но некоторое время использовал Драгонбонс, который типа бесплатный аналог Спайну.
>>542728>Это если серьезно думать надо. А если рутина то можно и больше.И так и так утомляешься, так как мозг работает и потребляет энергию. Если интенсивно решать какую то задачу то еще быстрее выдохнешся.Те же западные люди кто работает в сфере информационых технологиях и бизнес структурах, все поголовно сидят на транквилизаторах, кофе, антидипресанты, и больше денег у них уходит на все эти стимуляторы, это порочный круг, РАБотаешь для того что бы купить транки что бы снова РАБотать, для того что бы...Ты просто еще наивный молодой шутливый юнец который все идеализирует. Иди в геймдев индустрию и сам посмотри как там пахают по 14-16 часов, после этого ты сможешь со спокойно душей идти на обычную профессию.
>>542728Проведи такой эксперимент, напиши себе план работ и работай 10 часов в юнити нонстопом один день або два дня за день я сомневаюсь что ты выдохнешься а вот за два то да, не отвлекаясь на сериальчики, вкашечку, двачик, с часовым перерывом на обед, как в реальных офисах и посмотри, нужно тебе такое или нет.И отпиши здесь свои ощущения после такого графика.
Почему даже если размещать тайлы на тайлмапе вплотную, часто проскакивают такие полоски с цветом фона? 3 пик- overdraw
>>542742>Почему даже если размещать тайлы на тайлмапе вплотную, часто проскакивают такие полоски с цветом фонаГугли пиксельперфект
>>542672Сам устроился недавно. Набирают рандомно. Код твоих игр смотреть не будут. Код тестового задания может и посмотрят.>>542683Кодеры редко перерабатывают, если только на обновлении.>>5427351-2-3 Контроллер анимации прилепи, в нем будет стейт машина. В нем сделай 3 состояния с анимацией на переходах. https://docs.unity3d.com/Manual/class-AnimatorController.html>>542741Ну хуета жи. Лично знаю несколько крупных контор где принципиально не сверхурочат да и в обычное время не сильно напрягаются.
>>542735>зачем вообще все эти редакторы анимаций, вроде Спайна и ДрагонбонсаТочный контроль сцены. Возможность натягивать разные текстуры на одни и те же кости легким движением руки или строчкой кода API. Менять анимации скорость, играть ее взад. Возможность смешивания анимаций - сделать три анимаци моргать глазами, махать руками, щевелить ногами и одной командой играть все три на одном объекте.Собрать что-то из статичных кадров очень часто бывает недостаточно, а значит нужно ковырять другие инструменты для конкретных задач. Оно же все таки не одновременно развивается, возможности везде разные.
>>542741Но так на работе никто так не работает. Когда говорят, что работают по 12 часов в день - это значит, что работают в лучшем случае 5, а остальные 7 - пиздят с коллегами, сидят на хабре и пикабу, ходят курить, срать, пить.
>>542741>>542900Из огня, да в полымя. Вообще, тут нужно определиться что такое "работа". Вот я печатал предыдущее предложение секунд 5, а думал что написать минуту - сколько времени я работал? Если 1/13 то в офисе программисты вообще не работают, ибо средняя норма по больнице это 100-200 строчек. Говорить, что человек в курилке не работает - пиздежь ровно настолько же, насколько и правда. Чтобы 12 часов сидеть на работе, но 7 часов бухать надо быть или ебанько, или китайцем (там считается неуважительным с работы уходить вовремя).
>>542900>Но так на работе никто так не работает.Какой ты наивный.>а остальные 7 - пиздят с коллегамиДо первого предупреждения или увольнения.
>>542924Он все правильно написал, тащемта. Физически невозможно писать код больше 4-5 часов в день на постоянной основе.У нас в сентябре-октябре была ситуация, когда надо было быстро блядь сделать дему для инвестора, лично я работал по 10-12 часов примерно. К концу второго месяца уже чувствуешь себя выжатым.Все остальное время работа идет в режиме "пришел в 10, попил кофе и посовещался, пару часов поработал, обед, попить кофе, часок поработать и домой".мимо из офиса
>>542924>До первого предупреждения или увольнения.Смысл в такой конторе работать где сотрудника отчитывают за разговорчики, лол. В нормальных конторах всех интересует только сколько ты делаешь относительно других.
Привет, перс составной, мне нужно отключить коллизии только внутри тела перса, чтоб при добавлении на карту еще одного такого же тела коллизии с новым телом были. Для каждого тела отдельный слой физики делать? Подскажите более умный способ.
>>542934foreach (Collider collA in charColls){ foreach (Collider collB in charColls) { Physics.IgnoreCollision(collA, collB) }}Если джоинтсами риджидбодисы соединяешь, то это не нужно, у джоинта есть опция отключения коллизии для соединённых им тел.
>>542860>Сам устроился недавно. Набирают рандомно. Код твоих игр смотреть не будут. Код тестового задания может и посмотрят.>Ну хуета жи. Лично знаю несколько крупных контор где принципиально не сверхурочат да и в обычное время не сильно напрягаются.Спасибо.Буду искать место Unity-дева в наступающем.
>>542973Да джоинтами соединяю, но у меня к одному телу прикреплено еще несколько по меньше и вот они уже между собой долбятся а иногда и разлетается все.
Совершенно нубский вопрос.Пишу платформер, в котором все объекты векторные, а размеры в пределах считанныъ единиц.Хочу добавить 2Д-графику, но даже когда добавляю UI-элементы, они огромные (спрайтовые). Чтобы начать превращать абстрактный движок в движок с 2д-графикой, нужно пропорционально увеличить все объекты? Насколько? Как ориентироваться в размерах 2д-графики?
>>5431221) Если UI (Canvas) в режиме скрин спейс - оверлей он в едиторе и будет огромным (зато позволяет производить простые трансформации), но в игре должен быть нормальным. Если с этим проблемы нужно ставить скрин спейс - камера.2) В настройках импорта спрайтов есть pixels per unit, а векторные скалируй как надо и помещай в пустой gameObject со скейлом 1 и с ним уже работай. По дефолту 1 юнит = 1 метр; если хочешь, допустим, 1 юнит видеть как 1 сантиметр, придётся париться и рассматривать так и всё остальное, не советую.
>>543171Сишарп крепчал, деревья гнулись. Всегда поражался Стокгольмскому Синдрому юнити-неудачников. Сам такой же, но не пробитый.
Ну и говно, прихуячил интерфейс, а геттер волатильным сделать нельзя в отличии от поля, в итоге данные с другого потока неверные. Тьфу блядь.
Чики, ЮничУ меня проект содержит слишком много кода, любое изменение фризит эдитор на секунд 5, а запуск игры в эдиторе вообще ложит его на секунд 10. Девелопить игру стало слишком напряжно, хочу покрыть тестами некоторую игровую логику. Собственно, в чём вопрос:не могу найти мануалы по юнит тестированию в юнити. Официальная дока слишком скудна, нет примеров и best practices как тестировать всякие коллайдеры, рейкастинг и т.д. Я так понимаю, что этого нет т.к. тестирование этого говна - задача разработчиков движка, а не разработчиков приложений, но тогда как покрыть тестами эти моменты? Не понимаю совершенно как произвести декомпозицию классов на саб-классы чтобы покрыть эти саб-классы тестами. Буду благодарен за всякие гайды, мануалы, туториалы и т.д. по данной теме. Желательно не видео, а текстом.я просто сам веб-дев и не совсем понимаю как в компонентно-ориентированной парадигме юнити правильно работать по TDD. А кодовая база разрослась из за VRTK и всех этих скриптов фреймворка, steamvr, oculusvr, unityxr и т.д.рандомная вебманя для привлечения внимания.
>>543661Ты читал пост по диагонали. Вопрос не о TDD, а о том как правильно производить декомпозицию компонентов чтобы они были удобно покрываемыми в edit mode, а не в play mode.
>>543654>У меня проект содержит слишком много кода, любое изменение фризит эдитор на секунд 5Используй Assembly Definition Files. Так ты сможешь разбить код на отдельные сборки и избежать лишней компиляции.
Заканчиваю работу над 2д-моделью для платформера.Стало интересно, сложно ли будет написать 3d-аналог.Вот, скажем, хочу попробовать написать fantasy flight simulator.Это позволит поучиться работать с векторами движения и физикой (больше опыта), а также разнообразит геймплей, сделает проект более оригинальным и, следовательно, интересным для резюме.Я думаю написать модель для дракона, который может бегать по поверхности,совершать короткие полёты и планировать. Насколько сложным это будет?
>>543654https://habr.com/company/mailru/blog/267277/#a3>>543673В смысле лгику дракона написать? Ничего сложного..
>>543676>В смысле лгику дракона написать? Ничего сложного..Ну да. Простенькая модель движения протагониста, простенькая 3д-сцена вокруг.Программа-минимум: опыт + любопытный проект в резюме.Программа-максимум: задел на развитие в качестве собственного инди-проекта.
>>543669А что если твоя логика это что то уровня:```Если коллайдером является игрок, то вызвать метод фу компонента бар?```Иными словами если твоя логика это не более чем использование стандартного бихейвора компонентов юнити. Каким образом тогда произвести декомпозицию? Покрыть такой код тестами в плей мод не проблема, а вот в эдит мод - уже вопрос, на который не могу найти ответ.>>543670Спасибо за наводку. Я думал, что шарп может в инкрементную сборку... Хотя вот погуглил и нашёл, что всё-таки умеет. Эта фича не включена из коробки? Может можно каким то образом её включить? Иначе на кой хер он рекомпилит файлы, которые уже скомпилены и после этого не изменены?>>543672Вебм с чит-чат канала вртк слаки.>>543676Спасибо, почитаю.
>>543683Сдаётся мне ты больше пиздишь, чем делаешь. В OnValidate можно реализовывать тесты по какой-нибудь вынесенной проверке, типа if (debugMyShit), чтобы не грузило. Либо использовать очень удобный PropertyDrawer которого почему-то нет из коробки, объясните эту хуйню InspectorButton: raw.githubusercontent.com/zaikman/UnityPublic/master/InspectorButton.cs заменяет твой bool на кнопку и вызывает "MethodName" в скобочках, если что Физика динамики, разумеется, не просчитывается, но остальное работает Physics.RayCast/SphereCast и прочее подобное.
>>543700Поправь меня если я не прав:Есть код, например библиотеки Foo, которая using NUnit.Framework;, например.Если я сую эту библиотеку в асмдеф, то получается, что мне нужно указать в рефах Assembly-CSharp. Получается, что при изменении кода в assembly sharp эта библиотечка Foo будет пересобираться тоже? Соответственно время комплияции не изменится, не так ли?Просто тот oculus vr использует хуеву тучу всякого говна, вплоть до тсп сокетов и как это всё завернуть я не совсем понимаю. А переписывать это не целесообразно ибо чужой фреймворк
>>543654Разработчики в таких случая рекомендуют перейти на ECS https://github.com/sschmid/Entitas-CSharp, они говорят что все легко покрывается тестами, код получается почти без багов и переписываний.
>>543683>Если коллайдером является игрок, то вызвать метод фу компонента бар?```>Иными словами если твоя логика это не более чем использование стандартного бихейвора компонентов юнити. Каким образом тогда произвести декомпозицию? Покрыть такой код тестами в плей мод не проблема, а вот в эдит мод - уже вопрос, на который не могу найти ответ.Ты какой то странный. Берешь и создаешь объекты без задней мысли и тестируешь. Ну моки создай, если лапши много в коде. И хуй знает что ты называешь тестами в плей мод.
>>543700Всё, привёл в порядок все библиотечки. Время релода 7-8 сек. Было в районе 12-15. Не понимаю где может быть ещё затык. Просто у меня ссд, цпу грузит на 50 процентов при релоде, оперы дохрена. Не могу понять где может быть горлышко...>>543716Спасибо, но пока это как то слишком сложно. Нужно почитать, понять преимущества и т.д.>>543732Раз не понимаешь в чём проблема, то забей.
>>543741Удалил плагин для substance материалов (allegorithmic substance), время релода сократилось ~5 сек. Видимо проблема где то в нём. Печаль.Вопрос к знатокам: есть ли какая то альтернатива процедурной генерации PBR материалов как в substance designer? Только чтобы постабильнее. А то я и так из-за несовместимости с 18.3 откатился и заново переписывал проект на 18.2.
>>543740>Нужно почитать, понять преимущества и т.д.Это смотри https://www.youtube.com/watch?v=pp5sYybOidgКраткая суть в том что данные располагаются не фрагментировано из за чего процессору легко обрабатывать эти данные и производительность повышается в 10 раз.