Это копия, сохраненная 17 марта 2020 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Через что вообще лучше писать бег персонажу: velocity, transform.position = Vector3.MoveTowards() или как?
Вопрос нубовской, но все равно, может подскажете?
https://github.com/kennux/TressFXUnity
Спасибо, я вроде попробовал по гайдам оффициальным переделать еще раз, немного подровнял камеру и все стало лучше.
Что такое "новая модульная среда исполнения Unity"?
Для этого придется начать по-другому воспринимать игру.
Прямо сейчас разобраться есть смысл, если планируешь перекатиться, когда ецс будет продакшн реди.
Окей, я разобрался в чем была проблема.
Так ведь я в своей функции использую всякие GUI функции, и поэтому, если вот так без задней мысли вызвать эту функцию вне OnGUI, то появляется ошибка.
Тогда никак.
Насколько я лоды понимаю, там вопрос в площади занимаемой фигурой на экране.
Ужасы какие-то. Функция срабатывает "неправильно" только при неактуальном контексте, т.е. онгуй тебе сайд-эффектит что-то? Почему это дурное влияние нельзя перекинуть в DoStuff, или BeforeDoStuff (из OnGUI дергать BeforeDoStuff, но не дергать DoStuff)?
Или лучше использовать что-то типа таймлайна или какой-то другой встроенной функции юнити?
Сам себе отвечу- использовал таймлайн и не ебался со скриптами.
устаревшая
С плюсами понятно, простой доступ, не требуется каких-либо телодвижений при смене сцен, просто сериализовать и десериализовать.
Ну что же вы, анонимусы.
Тян подумала, что он фрикции изображает?
>просто сериализовать и десериализовать.
Разве так уж просто? Там же вроде с синглтоном ебаться надо.
Да, статический класс нельзя сериализовать в классическом смысле, я скорее имел в виду методы Save(string filename) и Load(string filename).
Т.е. состояние игры (позиции мобов, время суток, хп, инвентарь и т.д.) хранится в статическом классе, содержимое которого управляется менеджерами. Монобехавиоры, которые представляют контент (моб на экране с анимацией и т.д.) могут хранить только данные о предтавлении контента, типа цвета текстуры, а данные о хп, позиции и т.д. брать из статического класса.
Это позволит, теоретически, делать максимально "сухие", независимые от условий сцены, работающие в любых условиях.
Сейчас могу взять за полцены в связи с Чёрной Пятницей.
Уроки в интернетах - это конечно хорошо, но в книге всё систематизировано и, вроде как, полностью освещается весь процесс разработки в деталях на 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?
Сильно не вчитывался, унаследовать обоих от интерфейса с методом GetGameObject() не подойдет?
Заодно можно будет их хранить одним списком как экземпляры интерфейса.
Не, не выйдет.
Но оказывается в лямбы можно пихать if\else! Это просто охуенно, вместо трех массивов теперь один.
https://pastebin.com/2f1jvDwL
>>37859
SHOWMECOLLIDERSPRETTYPLEASEIWILLGIVEYOU10BUX()
Пойдёт?
Сделай составной шейдер с юниформ-переменными, который будет в зависимости от твоих потребностей, накладывать эффекты на отрисовку объекта.
Чего это? Берешь меш от модельки моддера, меняешь материал на свой, показываешь. Если все становится норм меняешь материал назад и показываешь нормально.
Это мне придётся так делать в случае, если не получится шейдеры по очереди накладывать. Супершейдер со всем-всем-всем возможным функционалом - это явный перебор.
Впрочем, чёрт знает. Насколько безопасно моддерам дозволять свои шейдеры писать?
>>37875
Это частный случай. В общем же задача наложить новый шейдер (например, аутлайн) сохранив старый (например, какая-нибудь петушиная раскраска).
>В общем же задача наложить новый шейдер
Может быть, новый материал? Собсно, можно добавить к мешу второй материал, или временно заменить первый. Если мешей несколько - нужен компонент, который на них ссылается (или ищет их при старте). И есть еще варик. Когда "здесь строить нельзя" не показывать ничего, или показывать картинку никак не связанную с конкретным зданием.
>Впрочем, чёрт знает. Насколько безопасно моддерам дозволять свои шейдеры писать?
Дозволять он вздумал, лолка.
Тебе что юнитеки сказали? Делаешь игру на юнити - исходи из того, что моддер с твоей игрушкой сделает все что захочет.
На этом движке нужно писать код?
Если изловчиться, то можно и не писать.
Помню хотел прочитать про эту новую "модульную систему" Юнити и их суперкаомпактные игры, Да вот сука их ссылка на сайте выдавала ошибку 404.
Объясните про компактность эту, чем там? че там такое то?
он то небось хочет в каких-то убогих менюшках тыкать какие-то параметры, накрайняк спагетти тягать в визуальном погромировании!
>Делаешь игру на юнити - исходи из того, что моддер с твоей игрушкой сделает все что захочет.
Не дам делать, что захотят. Читаю только файлы строго определённого формата в строго определённый момент строго определённым образом, всё засендбокшено.
>>37892
Новый материал - это же замена, нет? Два материала разом не работают, но я не разбирался особо, как оно работает, может, ступил где-то.
Как вариант ещё - сделать базовый шейдер, а потом анально обязать (через рефлекшоны) моддеров делать GrabPass с этого базового шейдера. Нужный функционал там будет 100% таким образом, но тогда проблемы с последовательностью наложения эффектов. Я хз, все варианты какой-то выбор между пиками и другими пиками.
Чтобы всегда можно было КЕНТ БИЛД ЗЕЭР через шейдер правильно сделать. Стандартизация, хуёмоё
Ограничить полет фантазии мододелов + потратить собственное время ради того, чтобы показать, кто тут разработчик, скорее. Хотя можно было просто написать рекомендацию в ридми.
>Ограничить полет фантазии мододелов
Для полёта фантазии у них есть оставшаяся часть программы шейдера.
Лезть через код и генерировать их рантайм или можно схитрить и повесить два дллиииииннюющих спрайта на курсор и просто скрывать их под границей?
Если хочешь генерировать без спрайтов, делаешь объект в уи, прицепляешь к нему рендерер, строишь вертексы как тебе надо, текстурку приделываешь вместе с шейдером, и отрисовываешь твои линии. Погугли про построение геометрических фигур из кода.
>>38019
Блджад, почему никто не сказал что в UI есть маски?:---D
Я уже было думал вспоминать математику, а тут такой царский подгон, сделал белую маску, подогнал ее под мою йоба-карту, под маску засунул два длиннющих спрайта и курсор, все работает. Не знаю уж как сильно это на производительность влиять будет, но вроде пекарню не плавит.
>Два материала разом не работают
Работают. Подозреваю, что зависит от материалов. Но два материала на меш я накидывал - картинка на экране менялась (и менялась адекватно, без "не могу нарисовать").
Там разговор только об извлечении контента. Т.е. некто может выдрать модели и текстуры из игры... И что из этого следует? Что он может подменить сцену целиком?
Просто прими как данность, что с такими вещами как гармония(особенно если речь идет про один особенный форк гармонии), любой моддер может все что угодно с твоим ассембли творить, вплоть до подмены кода рантайм и полного изменения логики. Единственное лекарство - обфускация ассембли, да и то не гарант.
Я вообще не принципиальный - принять как данность могу много чего. Я не об этом. Я о моддинге. О нормальном. И есть пара вопросов:
1. что за гармония?
2. вытаскивание моделей из игры - хуй с ним, а нет ли какой тулзы которая позволяет делать модинг на юнити в общем случае?
>что за гармония?
https://github.com/pardeike/Harmony/
>2. вытаскивание моделей из игры - хуй с ним, а нет ли какой тулзы которая позволяет делать модинг на юнити в общем случае?
Что ты подразумеваешь под моддингом? Допиливание нового функционала или просто добавление ассетов?
>Что ты подразумеваешь под моддингом?
Есть игра (пущай будет "Тетрис 4000"). Есть диалоговое окно (внутри игры, или в сторонней программе - не суть) "Выберите какие моды следует добавить в игру Тетрис 4000". Отмечаешь в нем галочками нужные тебе моды: "Кубик ввиде кристала", "Копровидео на фоне", "Добавляем NPC" - и запускаем игру. Сорян за такой полет мысли. Это с точки зрения игрока. И как - с точки зрения моддера - такие моды писать? За ссылку спасибо, я завтра посмотрю, сегодня уже спать.
Хм, действительно. Только вот у меня цвет меняется, а прозрачность уже нет. Скорее всего обычный шейдер юнити альфу к единице приравнивает где-то. Надо поэкспериментировать
Пока что я хочу взять верхний bounds геймобжекта и мысленно нарисовать плоскость чуть выше, из который буду кастовать лучи строго вниз с определённой периодичностью. Затем брать точки попаданий, прибавлять к ним чуть-чуть высоты, и строить из них меш. Очевидно, что с таким подходом в зависимости от сетки могут проскочить какие-то пики у геймобжекта. Ну, и ещё для этого обязательно нужен коллайдер.
Есть решение похитрее?
У материала есть Rendering Mode (в самом верху материала, даже перед Albedo), в одном из них прозрачность будет. И будет она зависеть от metallic + smoothness. Плюс, два материала с разным Rendering Mode хз как себя поведут. Но тут я не особо соображаю, так что не хочу хуйню городить.
Graphics.Raycast
Есть один прыжок в 2д, выглядит так:
>rigidbody.AddForce(transform.up * jumpForce, ForceMode2D.Impulse);
Хочу запилить даблджамп, написал, он прыгает два раза, все ок.
НО!
Такая фигня- когда падаю с большой высоты, хочу прыгнуть перед приземлением, и вот тут проблема, что игрок почти не подпрыгивает. Типа той силы, что дает прыжок не хватает.
Как сделать, чтоб он всего прыгал по нормальному?
Считать в этой формуле прыжка ускорение героя? Или как?
>if(rigidbody.velocity.y < -1f) { rigidbody.AddForce(new Vector2(0, jumpForce + Mathf.Abs(rigidbody.velocity.y)), ForceMode2D.Impulse);
Ну как-то так, работает даже... вроде.
Спасибо.
>диалоговое дерево через скриптабл объекты, как мне добавить некий массив действий для каждой реплики
Ебашь теги в реплики. При выводе на экран убирай теги, чтобы они не отображались. При этом, если тег найден при загрузке строки, добавляй действие. Например:
> Покажи товары <Action>Trade</Action>
Все экшоны у тебя должны быть из заданного тобой набора (торговать, наматывать кишки и т.п.), который твоей игровой логикой распознаётся и привязывает к строке диалога некоторое действие, таким образом строка диалога превращается как бы в кнопку.
Не обязательно. Вариантов много.
Например, зачем тебе создавать класс, если ты можешь создать структуру? Она так же сериализуется, но при этом лежит не в куче, а в стеке. Что быстрее на полсекунды.
Кроме того, зачем сериализовать в течение одной игровой сессии? Храни эту структуру в памяти. Но без фанатизма. Если структура будет мегабайт на 12 - это норм, а если 5 гигов - ты что-то делаешь не так. Вообще надо не структуру хранить, и не класс, а массив структур и переменных. А лучше не массив, а словарь.
Логика токова: В памяти лежит массив. Все сцены могут читать и писать в него через универсальные функции. Когда сцена загружается, она читает этот массив и ищет в нём данные, относящиеся к самой себе. Если не находит - значит сцена грузится впервые и она оставляет все свои объекты и скрипты - как есть. Если же сцена находит данные о себе, значит она уже ранее загружалась, она читает эти данные и согласно им трансформирует себя, например, уничтожает часть дефолтных объектов, которые были перемещены с неё в прошлый раз. Открывает двери и сундуки, например. Устанавливает квестовым триггерам нужные состояния и т.п.
В процессе интеракции игрока с объектами на сцене все они записывают свои изменения в этот наш глобальный массив-синглтон, так что при повторной загрузке сцены мы как раз и имеем информацию для вышеописанного трансформирования.
Например: в сцене на столе стоит ваза с яблоками. Твоей логикой предусмотрено, что ты можешь взять яблоко, после чего триггер вазы переводится в состояние "пусто", а в инвентарь игрока добавляется запись "яблоко".
При активации триггера происходят все графические дела, затем объект-ваза записывает в массив что-то вроде {"сцена1/ваза1" = "облутано"}, в инвентарь посылает команду additem("яблоко"), а инвентарь, как только в нём произошли изменения, у него сработало событие об изменении и он туда же в массив записал свой новый состав. Таким образом, сам персонаж игрока при своей загрузке использует этот синглтон для установки своего состояния, включая состав инвентаря.
И тут мы обнаруживаем охуительную побочную возможность! Наш массив-словарь-синглтон - это уже готовый набор данных для выгрузки в файл сохранения игры! Мы задаём ему атрибут сериализации, при записи записываем его в файл, при загрузке наполняем его данными из файла и даём команду всем активным объектам в игре, включая сцены и павны - перечитать своё состояние.
Не обязательно. Вариантов много.
Например, зачем тебе создавать класс, если ты можешь создать структуру? Она так же сериализуется, но при этом лежит не в куче, а в стеке. Что быстрее на полсекунды.
Кроме того, зачем сериализовать в течение одной игровой сессии? Храни эту структуру в памяти. Но без фанатизма. Если структура будет мегабайт на 12 - это норм, а если 5 гигов - ты что-то делаешь не так. Вообще надо не структуру хранить, и не класс, а массив структур и переменных. А лучше не массив, а словарь.
Логика токова: В памяти лежит массив. Все сцены могут читать и писать в него через универсальные функции. Когда сцена загружается, она читает этот массив и ищет в нём данные, относящиеся к самой себе. Если не находит - значит сцена грузится впервые и она оставляет все свои объекты и скрипты - как есть. Если же сцена находит данные о себе, значит она уже ранее загружалась, она читает эти данные и согласно им трансформирует себя, например, уничтожает часть дефолтных объектов, которые были перемещены с неё в прошлый раз. Открывает двери и сундуки, например. Устанавливает квестовым триггерам нужные состояния и т.п.
В процессе интеракции игрока с объектами на сцене все они записывают свои изменения в этот наш глобальный массив-синглтон, так что при повторной загрузке сцены мы как раз и имеем информацию для вышеописанного трансформирования.
Например: в сцене на столе стоит ваза с яблоками. Твоей логикой предусмотрено, что ты можешь взять яблоко, после чего триггер вазы переводится в состояние "пусто", а в инвентарь игрока добавляется запись "яблоко".
При активации триггера происходят все графические дела, затем объект-ваза записывает в массив что-то вроде {"сцена1/ваза1" = "облутано"}, в инвентарь посылает команду additem("яблоко"), а инвентарь, как только в нём произошли изменения, у него сработало событие об изменении и он туда же в массив записал свой новый состав. Таким образом, сам персонаж игрока при своей загрузке использует этот синглтон для установки своего состояния, включая состав инвентаря.
И тут мы обнаруживаем охуительную побочную возможность! Наш массив-словарь-синглтон - это уже готовый набор данных для выгрузки в файл сохранения игры! Мы задаём ему атрибут сериализации, при записи записываем его в файл, при загрузке наполняем его данными из файла и даём команду всем активным объектам в игре, включая сцены и павны - перечитать своё состояние.
Аноны, молю вас о помощи!
Столкнулся с ошибкой:
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/
Вот только никаких плодов это не даёт, и я всё ещё не могу запустить игровой режим из-за ошибки, когда скрипты уже были пересохранены а движок перезапущен. Как это фиксить?
Это не ошибка, а предупреждение.
У меня фиксится, когда открываю файл студией, она меняет окончания строк.
Пусть ошибкой это и не является, но игровой режим запустить из-за этого не выходит, что является проблемой
Присоединяюсь к твоему баттхёрту
не апдейться и нет проблемы
Умирает
Debug.Log сделать не судьба? Можно даже myId().toString() + (".Awake"/".OnEnable") + Time.deltaTime.toString() в сообщение засунуть и прогнать на 10к объектах.
>
>
>Профалйер ест по 100-200 мегоабайт в секунду при рисовании графиков с помощью Vectrosity. В чем может быть проблема?
Расслабься, проблема в Юнити
>>38104
>Перекатываюсь из другого треда с вопросом: если я хочу, чтобы васяны смогли модами заменить модельку главного героя, добавить новых монстров, оружие, вот это все, то проще будет это реализовать на юнити или гейммейкере?
Запили архитектуру с абстрактными фабриками абстрактных объектов, подключай объекты из модерских сборок.
Раз такое дело пошло, можно и брейкпоинты ебануть вместо ссаных дебагов.
"public static MoneyController Instance { get; private set; }"
и
private static MoneyController _internal;
public static MoneyController Internal { get { return _internal; } }
void Awake () {
_internal = this;
}
>>53901
Почти ни в чем. Первый только не дописан и использует авто пропертиес (). А второй заточен под монобехавиор.
ничем. вообще ещё конечно же можно просто ебошить public static class MoyaHuinya{} и там вот будет другой интересный сорт синглтона. у которого конструктор может случиться в непредвиденных обстоятельствах.
Ну можешь например найти шрифт для текста подходящий к табло и просто гонять текст на канвасе
Мочеглот у нас поехавший, в дурке уже.
Ну то есть, эвент жахнул с компонента, его менеджер услышал, жахнул свой эвент, который услышал уже его мегаменеджер, который просто знает обо всех своих подопечных и вызывает на эвенте их методы передавая то что прилетело с эвентом по своей цепочке вниз как аргументы. То есть, два конечных компонента нихуя друг о друге не знают, они даже не знают что у них менеджер там есть какой-то, они просто жахают эвенты когда что-то случается.
Охуенно придумал или хуйня переделывай?
Есть опенсорс решение пишу уже 3 года, проверил уже двумя играми, никак не дойду до этапа публикации, если готов возиться с почти полным отсутствием документации на текущий момент, то https://docs.anthillplatform.org/en/latest/#anthill-platform
Если нтересно, оставь мыло, распишу в деталях. Клиент под юнити правда очень старый.
То есть запускаю один раз, изменяю значение.
Запускаю второй раз, изменяю значение.
И вот во второй раз в логаю перед изменением я вижу значение от первого запуска.
Не оч, если честно, 300 страниц оч мало, подумоть не дают, заставляют листинги смотреть, не знаю как в интернете.
Ты где значение меняешь? В редакторе или в скрипте? Значения из редактора перезаписывают значения из скрипта, оно так и работает у них.
Меняю в скрипте. По факту там вообще должен быть пустой массив, но в нём уже один элемент.
Я ожидал, что там будет пусто. Есть возможность как-то это изменить?
По-моему тег [HideInInspector] должен убирать из, собственно, инспектора поле. Значение из эдитора всегда будет перезаписывать значение из скрипта, в этом и смысл эдитора. Не нравится - либо скрывай поле, что не очень удобно, либо приделывай какой-нибудь Initialize() для скрипта и в нём задавай свой пустой массив, что тоже не очень удобно.
Я вот лично выкрутился тем, что у меня всё-всё-всё на карте из внешнего текстовика создаётся в рилтайм. Нет объекта в эдиторе, не нужно поля менять :3
если хочешь менять приватные значения, но чтобы они ещё и сериализовались то вроде переключение инспектор в дебаг режим дает это
Все разобрался, нужно было сделать развертку.
Я ещё совсем начинающий. Для меня да. Потому что сложно ещё так абстрактно мыслить и использовать их решения для своей игры.
Получаешь вектор от одного к другому, умножаешь на длину шага, создаешь.
end - start
Всё оказалось до банального просто.
Взять все объекты по типу, перечислить их и сравнить по Camera.main.WorldToScreenPoint
Спасибо братишка, добра
Раз уж ты в треде, подскажи, как мне сделать поиск пути по гексам с поддержкой этажей (один гекс может находиться над другим), прыжками в длину, то есть с возможностью перепрыгивать объекты, и полётами. Заранее спасибо :)
> поиск пути по гексам
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 вполне допустимо. Но тут есть о чем подумать.
> полётами
Если делать через частьШага, то в настройка юнита или настройкаШассиЮнита меняем вес переходов между разновысотными клетками. Если хуйня эта моя частьШага, по сделай еще одну карту (которая не рендерится и умеет получать координаты юнитов/городов), двигай летающие юниты по ней, а потом складывай юнитов на карту мира (чтобы ПВО могло бомбить НЛО).
И чтобы тебя окончательно запутать, я вспомню о тепловых картах. Т.е. берем карту и закрашиваем все клетки зеленым цветом. В клетках вокруг вражеского танка рисуем красный цвет. Потом смешиваем цвета, чтобы получился градиент. Чем краснее клетка, тем меньше юниту хочется по ней ходить. Вместо танка может быть и разность высот, и повышенная температура вокруг (каждой клетки) реки из лавы, и коэффициентБолотистости. Тут речь не о непроходимости, а об уровне натуралистичности пути. Удачи)
> поиск пути по гексам
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 вполне допустимо. Но тут есть о чем подумать.
> полётами
Если делать через частьШага, то в настройка юнита или настройкаШассиЮнита меняем вес переходов между разновысотными клетками. Если хуйня эта моя частьШага, по сделай еще одну карту (которая не рендерится и умеет получать координаты юнитов/городов), двигай летающие юниты по ней, а потом складывай юнитов на карту мира (чтобы ПВО могло бомбить НЛО).
И чтобы тебя окончательно запутать, я вспомню о тепловых картах. Т.е. берем карту и закрашиваем все клетки зеленым цветом. В клетках вокруг вражеского танка рисуем красный цвет. Потом смешиваем цвета, чтобы получился градиент. Чем краснее клетка, тем меньше юниту хочется по ней ходить. Вместо танка может быть и разность высот, и повышенная температура вокруг (каждой клетки) реки из лавы, и коэффициентБолотистости. Тут речь не о непроходимости, а об уровне натуралистичности пути. Удачи)
> с поддержкой этажей (один гекс может находиться над другим)
Ах ты ебаный ты в стос. Я только сейчас понял, о чем ты. Но. Если мы говорим о массиве соседей клетки, то клетка-над-клеткой может быть соседней (т.е. находиться в массиве соседей). Стоит ли хранить массив соседних клеток и каждый раз смотреть to.z != from.z, или хранить сразу массив стоимостей перехода... Нет, храним все еще соседние клетки, т.к. для разных юнитов стоимость перехода по z может быть разной. Но если клетка есть в соседних, то это значит хотя бы гипотетический юнит "Хожу где хочу" сможет пройти в эту клетку.
Спасибо, конечно, но это была типа-шутка. Забавно рисовать путь, когда для каждого гекса надо перебирать 6 + 12 + 18 граней с разной стоимостью, ценой, проходимостью и ещё при этом в каждой координате может быть несколько гексов. Я немножко охуел от методов оптимизации.
Пока что наоптимизировал три вещи: вместо поиска гексов по дистанции стал "змейкой" рисовать большущий гекс с нужной длиной стороны; ввёл максимальную длину пути, и если до целевого гекса точно больше длина, чем эта, нужна, то отсекаю этот вариант; начинаю поиск с самых длинных путей, а потом ищу пути поменьше из кусков больших. Надо ещё как-то landmarks сообразить и с евристикой повозиться.
>>39812
Вообще, больше всего помогло разбить поиск пути по фреймам. Вероятно, можно втихую строить пути при наступлении хода для каждой абилки, каждый фрейм по чуть-чуть, но это как-то страшно звучит (пока ещё).
Довольствуйтесь, граждане, максимально плоским ландшафтом, короче. Меньше головной боли.
Почему нельзя использовать встроенную навигацию? Сделай карту статичной и сгенерируй навигацию, далее пускай по ней персонажа
Там и прыжки, и всякие перелеты есть
Что за изобретение колеса?
Сложно живется, когда встроенных методов не знаешь
https://docs.unity3d.com/ScriptReference/Vector3.Lerp.html
Спасибо. Постоянно забываю про это.
Потому что гексы, карта нестатична по дизайну (+ перепрыжки должны и на юнитов реагировать, которые сами двигаются), и навмеш явно под другое заточен.
Хотя был в треде анон, который обновляющимся в рилтайме навмешем обмазывался, но я велосипед уже изобрёл, так что да.
Так вот как добавить только условие отображения поля, не переписывая отображение всего класса?
Есть способы его из этого состояния как-то копирнуть в ассет, чтобы на стейт машину поглядеть?
Риппером пробовал, при импорте в юнити прилетает куча ошибок на неправильные guid.
И можно ли адекватно закостылить скрытие ебучего сплеша?
Пиздец залупа. Понакрутил всего дохуя, прождал часов 6 и вот нахуй. Такая хуйня, такая хуйня.
Подожди 2019 версию, там убрали старый лихтерен и добавили гпу ускорение для выпечки лайтмап. Ну или накати бету, но не сри сюда проблемами с бетаверсией, лол.
>45 seconds GPU
>6 minutes CPU (old i5 2500k 3.3ghz)
Восьмикратное ускорение устроит? Правда хуй знает, какой там GPU, мне лень опять ставить бету и засекать на своей системе
Как реализуется генерация земли в таких играх как
Alto's Odyssey, что бы трасса была не ровной, а волнистой? Предполагаю что как то через синусы или какие то хитровыебанные формулы, но мыслей пока нет.
Что вы можете мне подсказать?
>Восьмикратное ускорение устроит?
Это хорошее ускорение, но все равно на больших сценах поди по 10часов будет рендерить. Просто если скачать их демку и зарендерить это пиздец полный. Это все при том что тип
https://twitter.com/hxLexie/status/1067636045313802241
почти написал рендер в реальном времени. Да, он не идеально рендерит, но быстро, подкрутить и будет дольше, но лучше.
Гугли курву Безье
Землю как на твоих картиночках я синусы через и делал. Собсно, в каждом синусе ты можешь контролировать длину волны, её высоту и смещение. Ну и можно складывать несколько синусов. Я их вообще в конфиг выводил.
Т.е. у нас есть синус с шириной 1, высотой 2 и смещением 3. Просчитаем высоту для мировой координаты 0: sin((0+3)х1)х2. Суть - воспроизводимая вертикаль зависит от горизонтали. Чем больше разных синусов, тем хитрее ландшафт, только следи за проходимостью (можешь, например, ограничить максимальную разницу в высотах уже после просчета синусов).
Я просчитывал высоту в цикле с некоторым шагом, который на экране соответствовал нескольким пикселям. Далее строил фигуру, которую закрашивал картинкой, плюс эти же данные скармливал статичным бодям в box2d.
Смотри кинофильмы и чужие игры. Посмотри типовые эффекты и научись разбивать на них картинку. Какие-то типовые вещи не учитывают ни используемых у тебя текстур, ни скайбокса, ни желаемой тебе атмосферы. Главное с пост-эффетах - не переборщить.
>на больших сценах поди по 10часов будет рендерить
Это приемлемо, макс сложные сцены не меньше рендерит.
>почти написал рендер в реальном времени
Который отвалится спустя пару версий. А юнитеки запилили свой лайтмаппер на основе рейтрейсинговой технологии АМД. Да, на невидии работает. Да, я пёк лайтмапы на невидии. Да, это очень быстро. Единственное "но", кусок говна мамонта вместо проца не прокатит, нужны SSE4.1. Ну и нормальная видеокарта.
https://www.youtube.com/watch?v=ZQcvi35eVko
А вообще там в ассет сторе давно есть GPU лайтмаппер, только нахуя он нужен-то.
>на больших сценах поди по 10часов будет рендерить
>Это приемлемо, макс сложные сцены не меньше рендерит.
А после 10 часов ты увидишь, что в каком-то месте хуево отрендерилось и по новой.
А у кого оно есть? Учись. Я тебя не призываю в художественную школу пойти. Кстати, зачем они художественные школы, раз у художников есть интуитивное понимание? Потыкайся со стандартными юнитивыми пост-эффектами и посмотри, что с ними делают другие ребята.
Ну бля может тебе еще обьяснить как кудахтерн включить?
>>38432
на самом деле это сейчас только они разродились на апдейты. в прошлом году такой хуйни небыло. с одной стороны хорошо, с другой стороны фичи вроде коллаборейта иногда отваливаются после такого.
>>40254
а можно ещё и смещать синус на перлин нойс.
>>40317
лучше бы игры делали, а не рендерингом упарывались
>>40349
>Как можно заставить шарик двигать стакан, но чтобы он не создавал препятствий для физики
сделать шар isKinematic true? сравнить дистанцию до края стакана от шарика и на этом основывать свои манипуляции?
>isKinematic true
Не, он же полностью физический.
Поработать с геометрией, это понятно. Нужно, чтобы камера не сразу реагировала на шарик, а следовала за стаканом. И не сразу ставить её на линию шарик-центр_стакана-камера.
Вот так нахрапом я не знаю как это решить.
Сами Юнитеки пишут:
>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.
> камеру над шариком, чтобы она не прыгала
1. По LateUpdate устанавливать x и z камеры в такой же, как у шарика. Можно каждый фрейм смещать камеру на часть разницы, т.е. x = (xBall - xCamera) / 5f.
2. А с чего она, вообще, прыгает как сумасшедшая?
>1.
Сейчас так и делается. Камера неповоротная. Я не упомянул об этом? Надо чтобы она поворачивалась в сторону движения шарика.
>2.
В моей первой попытке реализации камера устанавливается на линию текущее_положение-старое_положение-камера.
И когда шарик двигается назад, камера каждый кадр поворачивается на 180.
И где же у него "use every frame"?
Или не упоминал, или я в глаза ебусь. Повороты в юньке это отдельная история. Насколько я понимаю, у них везде есть история перехода с 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 - эти прокатят, но и наебешься, и напляшешься.
Карпики?))))
Пик из гугла описывающий суть.
>области которые отдельно запекаются.
Какой смысл, если эффект от кручения глобального света затрагивает все области сразу?
>>40414
>но чекай переход через остаток от деления на 360. т.е
if (angle < -360) { angle += 360; }
А я себе так запилил. Ну и с положительными углами то же самое. Работает, брат жив. Но у меня 100+ строк камераконтроллера
Олсо, кто-то писал раньше на юнитискрипте, он же "яваскрипт"? Ну, до дропа поддержки юнитеками? Жопы не горят?
>юнитеками
Странная тенденция придумывать уничижительные клички людям, уровень квалификации которых большая часть местного населения даже осознать не в силах. Не надо так.
Если это платформер с диалогами, то можно сразу начинать с изучения юнити, уровня шарпа, который у тебя будет в итоге, тебе хватит.
я знаю о чем говорю!
>>40379
мне кажется тебе следует ещё картинок порисовать чтобы нормально описать свои проблемы для себя самого, а потом уже для нас. интерполируй позицию, хули.
>>40406
нужен чарактер контролер - пользуйся стандартным!
>>40428
выглядит как хуйня. дольше рисовать будешь говнографон чем учится код писать. ICQ то у тебя большой? если не очень то дождись визуального погромирования. если средне то может за пару месяцев и сможешь узнать достаточно. если большой то лучше бы спиздил чужой код.
Это вообще легально? Как они умудрились запихнуть в 2д директ дерево четыре моушена причем все в ебаном 0,0?
Или это риппер глючит?
>100+ строк камераконтроллера
Ты осилил в них уместить изменения пост-эффектов? Все равно пакеж! Мне интересно.
Я восстановить его хочу, в юнити, мне надо увидеть что у него внутри. Рипнутый контроллер выдает pptr ошибки, я уже просто головой еду.
Много раз слышал что через маску такое делают.
Во-первых, не я это начал. Во-вторых, кличка скорее нейтральная и зародилась на форуме, который в то время посещали сами юнитеки, как производное от Unity Technologies. В третьих, захочу их обозвать - назову юнитипидорами. Но вообще они молодцы, движок хорош. Даже новый террейн запилили. Не прошло и сотни лет.
>>40434
> изменения пост-эффектов?
Nope. Я игру пилю всего лет пять, до постэффектов не дошёл пока. А так там всё просто, скопировал поведение камеры из любой 3д рпг и кручу её кватернионы.
Ты же сука просто, юнитипидары называются так не по квалификации, а по сути.
>но зачем?
Любопытство. Я знаю, что слайдеры чаргенератора у них двигают@скейлят массивы с костяшками. И вот мне интересно узнать, как они автоподгонку анимаций под персонажа сделали да так четенько, что жиробасина или тростинка главгерой, анимация подстраивается под любую комбинацию.
1370x448, 0:14
А что не работало? В 2019 вроде всё адекватно работает, только при рантайм добавлении надо вызвать. Не вникал.
Спасибо!
1. создавать первую полосу точек по графику
2. потом через цикл строить остальные точки по такому же графику, но с отступом от прошлой полосы
3. Прогонять все точки и строить треугольники
4. Сделать UV и нормали
5. Наложить материал
Где я мог проебаться и не распидорасит ли меш?
Я думаю тебе нужно следовать такому плану.
1. Проставить точки в одной плоскости но в разных высотах случайным образом.
2. В Unity специальная функция проставит проставит между этими точками лини с изгибами разной глубины. Поищи в асетсторе это должно быть.
3. Накладываешь материал.
Да как то хочу сам научиться, без ассетов
>кватернионы, но они сложные
>Quaternion.LookRotation(mocha, govno)
Охуеть как сложно
>>40678
Все верно. Можешь посмотреть уроки от Sebastian League на тытрубе, у него там есть где-то процедурная генерация меша.
>>40424
На пике просто UV координаты смещаются, не?
Создаешь новый материал и меняешь там Offset, ну или пишешь свой шейдер, если батченк нужен.
На пике похоже да, цвета сгруппированы вместе и можно просто сдвинуть юв. Я так собственно сразу и попробовал сделать, но в Skinned Mesh Renderer сдвиг действует на все инстансы этого меша.
> ну или пишешь свой шейдер, если батченк нужен
Что ты имеешь ввиду под кастомным шейдером? Типо параметры в материал передавать через всякие SetFloat('Offset')? Такой подход тоже исключает батчинг. Или я чего то не понимаю.
Ты ахуел такое требовать от бесплатной программы по обучению шарпа.
сбилди и запусти сколько надо
826x430, 0:11
Не хотелось писать скрипт для отображения коллайдеров деревьев. Беглый тест с ригидбоди кубом показывает, что нихуя не вращается. А физикс дебаг не отображет коллайдеры деревьев на террейне. В конце вебмки - префаб дерева, никаких коллайдеров без веток там нет, но при этом куб проходит сквозь ветку и бьётся обо что-то невидимое. Зато они прикрутили автогенерацию биллбордов для любых кастомных деревьев. Возможно и для дитейл мешей тоже, не проверял.
> Создаешь новый материал и меняешь там Offset
Хотя понял о чем. Я почему то его сразу не увидел и програмно двигал ювишку самой модели.
Алсо сейчас покопался и оказалось что проебался с динамеческим батчингом инстансов. Оказалось чтобы он работал меш должен быть чуть меньше 300 трисов.
Похоже единственный вариант это сгруппировать цвета как на том пике и по индусски копипастить материалы, делая офесет у каждого.
юнити же и не дает инстансы коллайдеров деревьев. я довольно много времени потратил чтобы применять к ебучим коллайдерам все эти матрицы трансформаций, вроде по другому нельзя их получить.
алсо в эдиторе он и не показывает коллайдеры деревьев, если он не в плеймоде. когда юнити переходит в плеймод только тогда он сует все эти коллайдеры. забавное - если пользоватся Physics.OverlapBox раньше юнити возвращало террейн за каждый коллайдер дерева ещё сверху. так что хуй а не коллайдеры. полагаю эту хуйню тоже не починили.
разве генерация биллборд не была до этого?
>и не дает инстансы коллайдеров деревьев
Видимо потому и не даёт. Можно попытаться получать инстансы деревьев и спавнить в их позиции префаб с коллайдерами. Только там будет уже Degrees to radians конверсия из инстанса дерева и, скорее всего, те же проблемы с вращением.
>он и не показывает коллайдеры деревьев, если он не в плеймоде
В плеймоде тоже нихуя. То есть у префабов всё ок, всё видно без плеймода. У террейна из коллайдеров только сам террейн, независимо от режима.
>разве генерация биллборд не была до этого?
В 5.х не было. Олсо приятно удивила производительность леса на далеко не топовом железе.
Разные материалы не будут батчиться в один дравкол, так что профита от атласа в этом случае никакого. Не уверен, можно ли так, но там есть инстансинг с сохранением кастомных параметров. По идее можно через него сдвинуть UV.
https://docs.unity3d.com/Manual/GPUInstancing.html дальше уже сам разберешься. Но опять же, пишут что для skinned mesh renderer не работает.
Что-то хуйня
https://www.youtube.com/watch?v=rYB_etC9Zdg
Делали, делали, нихуя не сделали.
Кто-нибудь в курсе, есть ли новый способ переключить это светлое вырвиглазное говно на богоугодную темную тему?
Бля, где не спрошу, везде появится один-два таких "остроумных" дебила с таким же ответом.
>Тут такое дело, вышла из бетки Unity 2018.3
Ну как сказать вышла. Я бы сказал, это релиз кандидат. Там всё ещё присутствуют какие-то ебанутые баги с префабами и краши из-за хуйни.
>2019
>до сих пор нет проверки на бесконечные циклы, редактор просто зависает
Чем слабее комп, тем меньшее время редактор проведёт в зависании прежде чем выдаст ошибку. Не то, чтобы это решало проблему, да и убить процесс всё равно быстрее выйдет, просто забавный факт.
-ходьба
-приседание на бутылку стульчик рыбацкий
-управление удочкой (закинуть, подсечь, вытащить)
Потом планирую усложнять добавлением разных рыб, системой скилов и т.д.
ВНИМАНИЕ ВОПРОС:
Минимальный навык скилов для этой задачи какой?
Помимо работы с движком и логикой меня интересует что про графону нужно уметь? Условно, я смогу по мануалам блендера клепать модельки уровня щит-тир качества и насколько это сложно? Мне не очень нравится моделирование и я плохо рисую, но вот с шарпиком я дружу, да и в целом работать с логикой игры мне интереснее чем резать четырёхугольники. Думал что можно брать бесплатные ассеты, но тут-же стал вопрос анимирования. Сомневаюсь что будут бесплатные модельки со всеми нужными мне анимациями. Опять таки, насколько адекватно брать чужие модельки и допиливать анимации под свои задачи? Кто из нищеёбов вкатывался, опишите свой путь и подводные.
Ничего ты не сможешь, даун, это очень сложно.
Вместо того, чтобы писать сюда уже бы скачал юнити и начал работать. Создаёшь Terrain, изменяешь его по своему вкусу, импортируешь Assets/Import package/Characters.
Перетаскиваешь FPSController на сцену.
Идёшь в ассетстор, импортируешь любой бесплатный домик.
Дальше сам.
Лол, ну это я и сам знаю/делал. Уперся в вопрос с персонажем, его кастомными анимациями. Как функционал запилить я уже примерно представляю. Я же спросил за анимации, вот эту всю хуйню.
Пока план такой:
1) Кидаю на игрока сферу-триггер
2) Когда коллайдер входит в сферу, проверяю его layer и пускаю к нему луч, чтобы проверить, не закрыт ли он стеной
3) Если условия выполнены, то коллайдер кидается в список интерактивных предметов, которые подсвечиваются в интерфейсе
4) Когда коллайдер выходит из сферы, удаляем из списка и удаляем с экрана
Хотя, луч придется постоянно пускать, пока коллайдер будет находится внутри сферы-триггере.
>Условно, я смогу по мануалам блендера клепать модельки уровня щит-тир качества и насколько это сложно?
Недельку два посмотри пару видео русских блендерщиков как они клепают кружку и наковальню.
https://www.youtube.com/user/Blender3Dcomua/videos
https://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 и нацепляешь на модельку.
Что бы сделать адекватную модель как в ААА играх нужно затратить много времени.
Годно, спасибо.
У меня есть комнатка-коробка, вроде пикрелейтеда.
У стен разные финтифлюшки развешаны(грубо коробками обозначил).
Камера может ставить точку фокуса и крутиться вокруг нее, короче говоря, все бохато как в эдиторе.
Мне нужно как-то заиметь возможность скрывать\делать прозрачными стены вместе с финтифлюшками, когда камера смотрит через на них, вроде как на пике.
Я хотел реализовать так:
-финтифлюшки на стенах\у стен сгруппированы в одну трансформу-стенку, каждой стенке по трансформе
-перед всеми стенками повешены невидимые коллайдеры
-камера пускает луч по центру, если луч упирается в коллайдер смотрю на нормаль
-если нормали коллайдера негативный, значит это не бэксайд и ничего не делаем
-если позитивный, значит бэксайд и стенка вместе с трансформой финтифлюшек скрывается\делается прозрачной
Но тут вылезла такая проблема. Это если правильно понимаю может сработать только с одной стенкой(красной), но что делать с желтой и потолком? их коллайдеры в центр явно не попадают.
Что делать посоны? Пускать кучу ебенячих лучей?
Анон, а ты часом не знаешь, как без Substance Painter 1 (2500р мин пах, ахуеть мой пк стока не стоит), в блендере рендере (не суслике) вывести тоже самое. Т.е условно у меня есть моделька, состоящая из нескольких материалов, каждый материал имеет ещё несколько текстур + карта нормали и ноды, как совместить это всё счастье в одну, максимум две текстуры и так же просто натянуть на модельку? Мне не для движка, для анимации. Просто если всё это рендерить даже в простом блендер рендере , то несколько моделек, со своими ключами, просто расплавят мой бук.
То есть луч пересекает только красную стену, а ты хочешь скрывать желтую и потолок?
Пускай еще лучей, хули тут сделаешь.
Как это лучше обставить? Всем экраном пускать? Это же пиздец производительности будет... нет?
Может лучше определять сторону стенки и если камера на лицевой стороне плейна, то скрывать стенку.
Хммммммм, а ведь у главной камеры трансформа и соответственно вектор тоже есть, да? Т.е. можно попробовать даже без рейкаста, просто есть трансформа камеры, есть нормаль стенки, если нормали стенки позитивны вектору камеры, значит это бэксайд, но блджад, тогда это надо будет считать все четыре стенки(а то и больше вдруг не только коробку захочется потом) + потолок одновременно на каждом чихе камеры
Зачем вообще райкастить-то, у тебя же есть координаты центра комнаты, стен и камеры.
Если камера снаружи комнаты с той же стороны, что и стена (Vector3.Dot для векторов "на камеру" и "на стену" возвращает значение больше 0), то скрывай, если нет, то не скрывай.
Хотя чему я удивляюсь, большинству людей же матеша в жизни не нужна, лел.
Можно поставить 8 коллайдеров, по одному на каждый угол.
Затем пускать луч в центр комнаты и определять какой коллайдер задет. Все смежные стены коллайдера скрывать. Или тоже самое сделать без коллайдеров, через углы
Тебе не нужен вектор камеры, только её положение. Определяй, что она с нужной стороны.
Каждый кадр считать придётся, да.
Хай, анонии. Стоит ли смотреть курсы/читать книги, чтобы научиться юнити? Или можно просто писать код и решать проблемы по мере поступления? Я просто хочу практикой заниматься, а не смотреть/читать как кто-то делает это за меня.
>а ты часом не знаешь, как без Substance Painter
Нет, я в это не вникал, мне посоветовали Substance Painter так как он выдает текстуры лучшего качества.
>(2500р мин пах, ахуеть мой пк стока не стоит)
С торрентов видимо не судьба скачать, да?
>Т.е условно у меня есть моделька, состоящая из нескольких материалов, каждый материал имеет ещё несколько текстур + карта нормали и ноды, как совместить это всё счастье в одну, максимум две текстуры и так же просто натянуть на модельку?
Именно как это делать средствами блендера я не знаю, смотри видео туториалы.
Спасибо. Так и думал делать, но увидел курсы и уроки всякие и подумал, что нужно по ним учиться иначе будешь делать что-то не так.
В любом случае будешь сначала делать что-то не так.
Во многих видео на ютюбе по unity кодят полную хуйню, неприменимую в реальной разработке зато быстро достигается необходимый результат. Поэтому прогай, смотри ютюб, переделывай, рано или поздно вкатишься.
Я просто думал, что в уроках могут рассказывать про какие-то удобные паттерны или как можно упростить себе скриптинг. Короче, научат как делать так, чтобы не изобретать велосипед и не писать говнокод.
у меня так было: пока сам не объебешься, не поймешь. мог хоть тыщу роликов просмотреть, первый говнокод будет говном, будет один огромный класс, в котором все будет происходить. потом охуел его править в один момент и начал уже выходы искать. захерачил синглтон... потом объебенился на синглтонах во все щели, начал искать что там пизже есть, натыкаешься на инъекции, пихаешь их, потом пилишь гига-йоба-обсервера, потом прочухиваешь что чет не хватает, читаешь про охуенный гей-подход с РХ, начинаешь все потоками считать, потом охуеваешь от того что это гейство больше практически невозможно дебажить нормально, возвращаешься к старым добрым инъекциям@обсерверам но уже обдуманно, а дальше я пока не прокачался и сказать не могу что там, на следующем уровне, может еще более охуительные истории ждут. такие дела
>JS?
Там он выпилен.
>С чего начать - с C#
https://metanit.com/sharp/tutorial/
Учи с 1 по 12 главу, тебе этого хватит.
Жанр tycoon, в основном текст да циферки, платформа андроид. Слышал что UI составляющая юнити хуево оптимизирована, так что хочу услышать ваше мнение.
>не хочу регаться в майках для вижуалки
Регнись на временную фейкпочту дура
https://temp-mail.org/ru/
впадлу, лучше напомни как присвоить вектор к таргетпозишн
Умеет.
Да просто треда нового не было, и я скопировал первую попавшуюся картинку с сайта юньки.
мимо_ОП
Был яварабом, стал человеком, молодец.
Имеется:
- Базовое понимание языков программирования
- Умение рисовать и делать музыку
- Дохера амбиций и свободного времени
Хотел бы сделать игру, 2Д-экшон суть такова... Вернее, мне нужны:
- Возможность при постоянных занятиях в ближайшие полгода разобраться с кодингом под конкретный движок (до уровня "я могу сделать платформер с пиздиловом по лицу, кат-сценами и визуальными свистелками)
- Удобный перенос собственных спрайтов (т.к. я тыкал только гамак и то поверхностно, успел заметить только то что там надо всю анимацию ровно укладывать в ячейки 32х32 или 64х64 в ряд, но соответственно, мне же хочется хреначить границы спрайта при переносе самостоятельно из любой части картинки, это в юнити есть?)
- Насколько просто вообще накладывать какие-то спец.эффекты и шейдеры, работать с тенями итд?
- Хорошая поддержка со стороны рукоммьюнити (хотя англ. знаю где-то на intermediate)
- Отстутствие необходимости покупать ассеты, готовность работать сразу ИСКАРОПКИ.
- Хули ваще в юнити может помешать мне наслаждаться разработкой и стать очередным успешным инди-хуесосом со своим "пиксели, открытый мир, крафтинг, пенисы"?
в основном, конечно, нашел поверхностную инфу про всё кроме переноса спрайтов на форумах и ютюбах, поэтому вопроса джва:
1) почему я должен выбрать юнити а не гмс2
2) че с переносом своих рисунков-то? в состояние анимации чтобы сразу
Присматривался еще к УЕЧу, но мой макбук его не тянет т.к. тут вместо дискретки intel iris plus 655
Бери юнити, гмс2 хуйня кастрированная, мало ли, какую фичу тебе потом захочется заиметь, в юньке можно очень многое, это серьезный двиг.
кстати, коль речь про джва-дэ, то что можете сказать про говнодот?
в юнити, конечно, среди прочего подкупает перспектива развития как движка так и в плане собственного роста, т.к. тут нормальный язык программирования в основе всей хуйни (возможность в будущем кодить под шиндовс или перекатиться на свифт при желании)
Тоже слышал от разрабов что тормазает. Но тебе пойдет. Потом оптимизируешь если взлетит
Годот хороший двиг, но я советую юнити, у него большая поддержка, много разрабов. Если, конечно, анриал не начнет его гасить со своим стором, это маловероятно.
>годот хороший
Сколько годоту лет и где на нём игры?
У меня было такое впечатление, что когда делают новый движок вменяемые люди, они создают игру-рекламу для этого движка. Те же валвы с сурсом и халфой, например. Хуле годотяне не делают игру-рекламу себе? Даже не нанимают под это дело никого, просто лепят движок, на котором делают дороги правопорядка.
>Даже не нанимают под это дело никого
Годот опен-сурс, сделан комьюнити, кому нахуй надо заниматься этим?
>Какую игру сделали юнитеки
Походу это первая коммерческая игра на юньке. Gooball, Ambrosia Software, 2005. Версия юнити 0.2, через месяц выходит версия 1.0
source https://web.wpi.edu/Pubs/E-project/Available/E-project-030614-143124/unrestricted/Haas_IQP_Final.pdf
>Ну, какую-нибудь да спонсировали. Не обязательно самим же делать.
Ты нихуя не знаешь, а уже заранее принял сторону юнитиговна, пидарок. У анриала такая история, а что юнити, что годот, одно говно без игр.
Походу анриал им уже никогда не нагнать. Хуйню какую-то делать начали.
могу отвечать на вопросы. сфера — логика / плагины / IAP.
PS: Юнити — глючное говно. Лучше бы на Анрыле всё делали.
Мобилки пилишь? Расскажи, как у вас там команда устроена.
P.S.: Всё ещё лучше, чем вырвиглазный UE UI...
>зачем эта пыль в глаза?
Это не пыль, это тотальное обновление движка. И в то время, пока ты пользуешься для игр новой гуи системой, эдитор работает на старой.
>Zios Themes
Ты евангелист этого дерьма? Оно же реально дерьмо.
Альтернатив нет. Да и не так плох юнити, как его малюют уечедауны.
Пишут, что теперь всё унити идёт через хуб.
Не хватает мозгов макаки, чтобы запустить AppImage.
chmod a+x UnityHubSetup.AppImage
Я ещё и читать не умею, там прямо унити-модер ссылку оставил https://docs.appimage.org/user-guide/run-appimages.html
Не инструмент дерьмо, а разработчик, держащий инструмент в руках.
Кроме говнота. Говнот дерьмо и как инструмент и говнотодебилы тоже дерьмо.
https://forum.unity.com/threads/elvis-operator-null-coalescing-operator.433767/
>https://forum.unity.com/threads/elvis-operator-null-coalescing-operator.433767/
Кек, как раз сегодня удалял эту хуету на работе.
>юнити-говно, я разработчик
>как капсулу повернуть
Ничего не поменялось. Доволен.
Нестед префабы оценили?
Я очень. Ебаный зоопарк гуи теперь у меня лежит в красивом префабчике, а все остальные сцены его модифицируют то тут и там
Хм.. А если я пишу if (gameObjectReference) {...}
Оно тоже работать не будет правильно потому что нул не нул?
Тоже в свое время прихуел с такого костыля и теперь везде пишу
if(GO!=null)
{
GO.ebash.huyach();
}
Тогда предложи мне не дерьмовый способ кастомизировать шрифты, цветовую схему, формы и размеры. А пока что - да, я свидетель нормального, относительно кастомизируемого интерфейса. Пусть и с помощью костыля. И да, я не говорю, что новый интерфейс дерьмо, да и старый дарк скин весьма неплох (особенно по сравнению с блЮЕ), я говорю что выкатывать такой скудный функционал и орать "Нью эдитор УИ! Новый мы-знаем-как-вам-удобнее шрифт: Робото! А скоро и возможность менять его размер!" при существовании реально работающего костыля доказывающего и без того очевидную возможность вынести все параметры - это смешно. Если жрать что дают, однажды можно сожрать говно. Тут ещё и спасибо некоторые готовы сказать. К слову, я большой любитель юнити, но политика интерфейса всегда была подозрительной. Дарк скин за бабло (и молчок)? Так пусть и возможность кастомизации будет хотя бы за быбло! (Или они думают, что никто не заметит?)
>тут странный баг. При передвижении клавишами W,S,A,D,WA,WD все работает как нужно, но с зажатыми SA и SD функции выполнятся не хотят, ник
Не нажимай больше черытёх клавиш. Проверь Функции на WASD, возможно на SA и SD написаны хуёво. Впрочем не возможно, а точно.
Может у тебя там else if логика?
Крути (отключай) mipmaps и filtering в настройках импорта текстуры нормалей (advanced).
Какая-то у тебя странная корутина.
Корутина "блокирует" текущий кадр, пока не встретит yield return [что-нибудь, можно null].
У тебя же начинает бесконечно крутиться while, потому что переменная не меняет значение.
В общем погуглил тебе, проверяй: https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnTriggerStay.html
> OnTriggerStay.html
Не подумол что можно сразу для такого положения написать. Благодарю.
> И не забудь поменять формулу для урона, твой зависит от количества кадров в секунду.
Но у меня разовое получение урона с определенными таймингами, "размазывать" урон не хотелось бы.
>А теперь вопрос, как лучше передавать пуле информацию?
1) Инстанцируем пулю
2) Через GetComponent получаем ссылку на компонент пули, либо ссылку на интерфейс (IProjectile например)
3) Через компонент или интерфейс передаем нужные данные. Например, задаем владельца пули:
var bulletInstance = Instantiate(...);
var bullet = bulletInstance.GetComponent<IProjectile>();
bullet.Owner = this;
Самое смешное что я так и пытался сделать в начале, но он почему то не хотел заливать туда данные. Надо конечно еще раз попробовать но я уже подсасываю данные через гейобжект.файнд, хоть и на сколько я понял он сильно нагружает и негативно сказывается на оптимизоне.
>но он почему то не хотел заливать туда данные
В смысле? Ты с C# вообще не дружишь? Если базовые вещи знаешь, то всё будет заебись.
Что то знаю.
Как запилить небольшой разброс? А то с текущим скриптом разлет пулей получается в 90-180+ градусов.
Кароче теперь все работает. Не нужно было просто шатать оригинальный файрпоинт ротейшон.
Для инди параши пойдет.
Периодически бывают облавы, но в целом бизнес работает на продаже оценок. Закидывай 4/5. А лучше заплати за минимальную рекламу, чтобы гугл тебя не фильтровал как неплатящего и сделай/купи пару обзоров на профильные сайты.
Это ничего не даст, дебс.
По началу была реклама, но не окупается. Или ты имеешь ввиду, что она перманентно должна быть хотя бы на минимальный бюджет?
>перманентно должна быть хотя бы на минимальный бюджет
Да. Это не точно, но я думаю, что всех неплатящих гугл летом пофильтровал. Когда у всех траффик из категории Похожие порезался в три раза.
Не хочешь через физику делай все ручками тогда. Долго, кропотливо и упорно. Зато возможно весьма самобытно.
Destroy() срабатывает в этом же фрейме, но позже и в произвольное время.
Соответственно, TakeDamage и Die могут сработать 2-3-4-5 раз. Я бы добавил флаг bool isDead = false, и ставил его в тру, когда объект умер.
И добавил бы в Die проверку if (isDead) return; первой строчкой.
>>42478
С таким подходом обосрешься ближе к середине разработки, когда что-то не работает, но ты хз что именно.
Оф. инфы нет, просто гугл сломал показ похожих приложений. Гуглил по теме, но единственное что на шёл:
https://tech.onliner.by/2018/06/27/google-play-6
https://www.reddit.com/r/androiddev/comments/8t935n/huge_drop_in_downloads_over_the_past_48_hours/
Видимо я откуда-то из комментариев хабра или дтф это прочитал.
Что ещё?
>чтобы получить позицию разработчика на Unity.
Нах оно тебе нужно? Геймдев без переработок не существует, будешь пахать по 12-14 часов как минимум и выпивать литрами кофе.
Будешь делать мобильные детские игрушки с кучей рекламы и донатом.
>Нах оно тебе нужно?
Нет лучше пахать на заводе с 8 до 17, за 23 тысячи, без переработок и перспектив.
Может даже и лучше и смотря какой завод. Когда работаешь умственно более 8 часов, то мозги кипят.
Решил, мб пригодится кому.
К кости наследуем пустой обжект а уже к пустому обжекту нужную конечность, работает так же, ниче не рескейлится и иерархия удобно выглядит.
>Геймдев без переработок не существует, будешь пахать по 12-14 часов как минимум и выпивать литрами кофе.
По крайней мере, это будет не так тоскливо, как лепить join'ы и select'ы.
Интенсивно мозг может работать от 4-6 часов, дальше идет вред здоровью и психике.
Анонс, я сам художник, поэтому ни в программирование, ни в даже какие-нибудь скрипты не умею. Хочу сделать интерактивную открытку, Юнити открыл в первый раз в жизни. Собрал анимации %без костей, чисто на иерархии, собрал сцену.
Вопросы:
1. Как сделать чтобы при запуске приложения включалась определенная анимация на сцене?
2. Как сделать, чтобы другая анимация включалась при клике по элементу, а первая удалялась со сцены?
3. Как сделать, чтобы после проигрывания второй анимации включалась другая?
Ну и еще засыпку - зачем вообще все эти редакторы анимаций, вроде Спайна и Драгонбонса, с возможностью импорта в юнити, когда в самом юнити создание анимацией реализовано так удобно?
Правда Спайн я не смотрел, он платный, но некоторое время использовал Драгонбонс, который типа бесплатный аналог Спайну.
>Это если серьезно думать надо. А если рутина то можно и больше.
И так и так утомляешься, так как мозг работает и потребляет энергию. Если интенсивно решать какую то задачу то еще быстрее выдохнешся.
Те же западные люди кто работает в сфере информационых технологиях и бизнес структурах, все поголовно сидят на транквилизаторах, кофе, антидипресанты, и больше денег у них уходит на все эти стимуляторы, это порочный круг, РАБотаешь для того что бы купить транки что бы снова РАБотать, для того что бы...
Ты просто еще наивный молодой шутливый юнец который все идеализирует.
Иди в геймдев индустрию и сам посмотри как там пахают по 14-16 часов, после этого ты сможешь со спокойно душей идти на обычную профессию.
Проведи такой эксперимент, напиши себе план работ и работай 10 часов в юнити нонстопом один день або два дня за день я сомневаюсь что ты выдохнешься а вот за два то да, не отвлекаясь на сериальчики, вкашечку, двачик, с часовым перерывом на обед, как в реальных офисах и посмотри, нужно тебе такое или нет.
И отпиши здесь свои ощущения после такого графика.
3 пик- overdraw
Алсо как реализовать покадровую анимацию воды? Не нашел, как это можно сделать через тайлмап
>Почему даже если размещать тайлы на тайлмапе вплотную, часто проскакивают такие полоски с цветом фона
Гугли пиксельперфект
Сам устроился недавно. Набирают рандомно. Код твоих игр смотреть не будут. Код тестового задания может и посмотрят.
>>42683
Кодеры редко перерабатывают, если только на обновлении.
>>42735
1-2-3 Контроллер анимации прилепи, в нем будет стейт машина. В нем сделай 3 состояния с анимацией на переходах.
https://docs.unity3d.com/Manual/class-AnimatorController.html
>>42741
Ну хуета жи. Лично знаю несколько крупных контор где принципиально не сверхурочат да и в обычное время не сильно напрягаются.
Я пойду
>зачем вообще все эти редакторы анимаций, вроде Спайна и Драгонбонса
Точный контроль сцены. Возможность натягивать разные текстуры на одни и те же кости легким движением руки или строчкой кода API. Менять анимации скорость, играть ее взад. Возможность смешивания анимаций - сделать три анимаци моргать глазами, махать руками, щевелить ногами и одной командой играть все три на одном объекте.
Собрать что-то из статичных кадров очень часто бывает недостаточно, а значит нужно ковырять другие инструменты для конкретных задач. Оно же все таки не одновременно развивается, возможности везде разные.
По себе вижу, что после 6 часов пиздос происходит.
Но так на работе никто так не работает. Когда говорят, что работают по 12 часов в день - это значит, что работают в лучшем случае 5, а остальные 7 - пиздят с коллегами, сидят на хабре и пикабу, ходят курить, срать, пить.
>>42900
Из огня, да в полымя. Вообще, тут нужно определиться что такое "работа". Вот я печатал предыдущее предложение секунд 5, а думал что написать минуту - сколько времени я работал? Если 1/13 то в офисе программисты вообще не работают, ибо средняя норма по больнице это 100-200 строчек. Говорить, что человек в курилке не работает - пиздежь ровно настолько же, насколько и правда. Чтобы 12 часов сидеть на работе, но 7 часов бухать надо быть или ебанько, или китайцем (там считается неуважительным с работы уходить вовремя).
>Но так на работе никто так не работает.
Какой ты наивный.
>а остальные 7 - пиздят с коллегами
До первого предупреждения или увольнения.
Он все правильно написал, тащемта. Физически невозможно писать код больше 4-5 часов в день на постоянной основе.
У нас в сентябре-октябре была ситуация, когда надо было быстро блядь сделать дему для инвестора, лично я работал по 10-12 часов примерно. К концу второго месяца уже чувствуешь себя выжатым.
Все остальное время работа идет в режиме "пришел в 10, попил кофе и посовещался, пару часов поработал, обед, попить кофе, часок поработать и домой".
мимо из офиса
>До первого предупреждения или увольнения.
Смысл в такой конторе работать где сотрудника отчитывают за разговорчики, лол. В нормальных конторах всех интересует только сколько ты делаешь относительно других.
foreach (Collider collA in charColls)
{
foreach (Collider collB in charColls)
{
Physics.IgnoreCollision(collA, collB)
}
}
Если джоинтсами риджидбодисы соединяешь, то это не нужно, у джоинта есть опция отключения коллизии для соединённых им тел.
>Сам устроился недавно. Набирают рандомно. Код твоих игр смотреть не будут. Код тестового задания может и посмотрят.
>Ну хуета жи. Лично знаю несколько крупных контор где принципиально не сверхурочат да и в обычное время не сильно напрягаются.
Спасибо.
Буду искать место Unity-дева в наступающем.
Да джоинтами соединяю, но у меня к одному телу прикреплено еще несколько по меньше и вот они уже между собой долбятся а иногда и разлетается все.
Ну, после Джавы вкатиться в Сишапр проще, чем в кресты.
Пишу платформер, в котором все объекты векторные, а размеры в пределах считанныъ единиц.
Хочу добавить 2Д-графику, но даже когда добавляю UI-элементы, они огромные (спрайтовые).
Чтобы начать превращать абстрактный движок в движок с 2д-графикой, нужно пропорционально увеличить все объекты? Насколько? Как ориентироваться в размерах 2д-графики?
1) Если UI (Canvas) в режиме скрин спейс - оверлей он в едиторе и будет огромным (зато позволяет производить простые трансформации), но в игре должен быть нормальным. Если с этим проблемы нужно ставить скрин спейс - камера.
2) В настройках импорта спрайтов есть pixels per unit, а векторные скалируй как надо и помещай в пустой gameObject со скейлом 1 и с ним уже работай. По дефолту 1 юнит = 1 метр; если хочешь, допустим, 1 юнит видеть как 1 сантиметр, придётся париться и рассматривать так и всё остальное, не советую.
Сравнивай со стандартным кубом или квадом, они по одному юниту(метру).
Сишарп крепчал, деревья гнулись. Всегда поражался Стокгольмскому Синдрому юнити-неудачников. Сам такой же, но не пробитый.
1920x1080, 0:51
У меня проект содержит слишком много кода, любое изменение фризит эдитор на секунд 5, а запуск игры в эдиторе вообще ложит его на секунд 10. Девелопить игру стало слишком напряжно, хочу покрыть тестами некоторую игровую логику. Собственно, в чём вопрос:
не могу найти мануалы по юнит тестированию в юнити. Официальная дока слишком скудна, нет примеров и best practices как тестировать всякие коллайдеры, рейкастинг и т.д. Я так понимаю, что этого нет т.к. тестирование этого говна - задача разработчиков движка, а не разработчиков приложений, но тогда как покрыть тестами эти моменты? Не понимаю совершенно как произвести декомпозицию классов на саб-классы чтобы покрыть эти саб-классы тестами. Буду благодарен за всякие гайды, мануалы, туториалы и т.д. по данной теме. Желательно не видео, а текстом.
я просто сам веб-дев и не совсем понимаю как в компонентно-ориентированной парадигме юнити правильно работать по TDD. А кодовая база разрослась из за VRTK и всех этих скриптов фреймворка, steamvr, oculusvr, unityxr и т.д.
рандомная вебманя для привлечения внимания.
Ты читал пост по диагонали.
Вопрос не о TDD, а о том как правильно производить декомпозицию компонентов чтобы они были удобно покрываемыми в edit mode, а не в play mode.
Об этом нужно думать до начала разработки. Писать раздельно логику и связку с Юнити.
>У меня проект содержит слишком много кода, любое изменение фризит эдитор на секунд 5
Используй Assembly Definition Files. Так ты сможешь разбить код на отдельные сборки и избежать лишней компиляции.
Стало интересно, сложно ли будет написать 3d-аналог.
Вот, скажем, хочу попробовать написать fantasy flight simulator.
Это позволит поучиться работать с векторами движения и физикой (больше опыта), а также разнообразит геймплей, сделает проект более оригинальным и, следовательно, интересным для резюме.
Я думаю написать модель для дракона, который может бегать по поверхности,совершать короткие полёты и планировать. Насколько сложным это будет?
https://habr.com/company/mailru/blog/267277/#a3
>>43673
В смысле лгику дракона написать? Ничего сложного..
>В смысле лгику дракона написать? Ничего сложного..
Ну да.
Простенькая модель движения протагониста, простенькая 3д-сцена вокруг.
Программа-минимум: опыт + любопытный проект в резюме.
Программа-максимум: задел на развитие в качестве собственного инди-проекта.
А что если твоя логика это что то уровня:
```
Если коллайдером является игрок, то вызвать метод фу компонента бар?
```
Иными словами если твоя логика это не более чем использование стандартного бихейвора компонентов юнити. Каким образом тогда произвести декомпозицию? Покрыть такой код тестами в плей мод не проблема, а вот в эдит мод - уже вопрос, на который не могу найти ответ.
>>43670
Спасибо за наводку. Я думал, что шарп может в инкрементную сборку... Хотя вот погуглил и нашёл, что всё-таки умеет. Эта фича не включена из коробки? Может можно каким то образом её включить? Иначе на кой хер он рекомпилит файлы, которые уже скомпилены и после этого не изменены?
>>43672
Вебм с чит-чат канала вртк слаки.
>>43676
Спасибо, почитаю.
Сдаётся мне ты больше пиздишь, чем делаешь. В OnValidate можно реализовывать тесты по какой-нибудь вынесенной проверке, типа if (debugMyShit), чтобы не грузило. Либо использовать очень удобный PropertyDrawer которого почему-то нет из коробки, объясните эту хуйню InspectorButton: raw.githubusercontent.com/zaikman/UnityPublic/master/InspectorButton.cs заменяет твой bool на кнопку и вызывает "MethodName" в скобочках, если что Физика динамики, разумеется, не просчитывается, но остальное работает Physics.RayCast/SphereCast и прочее подобное.
Поправь меня если я не прав:
Есть код, например библиотеки Foo, которая using NUnit.Framework;, например.
Если я сую эту библиотеку в асмдеф, то получается, что мне нужно указать в рефах Assembly-CSharp. Получается, что при изменении кода в assembly sharp эта библиотечка Foo будет пересобираться тоже? Соответственно время комплияции не изменится, не так ли?
Просто тот oculus vr использует хуеву тучу всякого говна, вплоть до тсп сокетов и как это всё завернуть я не совсем понимаю. А переписывать это не целесообразно ибо чужой фреймворк
Разработчики в таких случая рекомендуют перейти на ECS https://github.com/sschmid/Entitas-CSharp, они говорят что все легко покрывается тестами, код получается почти без багов и переписываний.
>Если коллайдером является игрок, то вызвать метод фу компонента бар?
```
>Иными словами если твоя логика это не более чем использование стандартного бихейвора компонентов юнити. Каким образом тогда произвести декомпозицию? Покрыть такой код тестами в плей мод не проблема, а вот в эдит мод - уже вопрос, на который не могу найти ответ.
Ты какой то странный. Берешь и создаешь объекты без задней мысли и тестируешь. Ну моки создай, если лапши много в коде. И хуй знает что ты называешь тестами в плей мод.
Всё, привёл в порядок все библиотечки. Время релода 7-8 сек. Было в районе 12-15. Не понимаю где может быть ещё затык. Просто у меня ссд, цпу грузит на 50 процентов при релоде, оперы дохрена. Не могу понять где может быть горлышко...
>>43716
Спасибо, но пока это как то слишком сложно. Нужно почитать, понять преимущества и т.д.
>>43732
Раз не понимаешь в чём проблема, то забей.
Удалил плагин для substance материалов (allegorithmic substance), время релода сократилось ~5 сек. Видимо проблема где то в нём. Печаль.
Вопрос к знатокам: есть ли какая то альтернатива процедурной генерации PBR материалов как в substance designer? Только чтобы постабильнее. А то я и так из-за несовместимости с 18.3 откатился и заново переписывал проект на 18.2.
>Нужно почитать, понять преимущества и т.д.
Это смотри https://www.youtube.com/watch?v=pp5sYybOidg
Краткая суть в том что данные располагаются не фрагментировано из за чего процессору легко обрабатывать эти данные и производительность повышается в 10 раз.
>>43678
Кстати, хочу отвлечься от технических вопросов (устал, весь день полировал 2д-модель.
Думал о геймплее. Большинство стартовых проектов (для резюме, для работодателя, для души) - это 2д-платформеры, изометрия. Любители для себя вообще пишут всякие визуальные новеллы, про которые можно поспорить игры ли это, или диафильмы.
На мой взгляд игра - это прежде всего головоломка. Я думал, что бы я мог сделать в качестве личного проекта (с заделом на то, чтобы при необходимости развить его из технического упражнения в инди-проект), и подумал как раз о малоизвестном жанре fantazy flight sim. Таких игр, как оказалось, совсем мало - мне вспоминается только древний magic carpet.
Я подумал, что мог бы написать диздоки и задел для игры, фишкой которой будет управление полётом/перемещением дракона (бег, полёт, планирование), а геймплей будет похож на Shelter. Подъёмным ли было бы написать такой аналог Shelter?
В такой проект можно было бы добавить элементы РПГ.
https://www.youtube.com/watch?v=AkmH5C5Bvkc
Хотя знаешь, анончик, в режиме симулятора т.е. без запуска виар шлема время запуска игры примерно 4-5 сек. Т.е. стало х2 раза быстрее чем раньше. Спасибо тебе большое за подсказку, а то желание что-либо делать уже пропадало из за этих долгих загрузок.
>>43744
Добавил в закладки, посмотрю вечерком. Спасибо.
>Не могу понять где может быть горлышко...
Чаще всего в самом софте. Не парься, лучше уже не достигнешь
Да видимо у меня какие то проблемы на уровне железа т.к. как начал натягивать на меши материал из substance designer, время запуска плей мода увеличилось до 20 секунд.
Придётся отказаться от динамических текстур и экспортить их сразу из дизайнера. А то это какой то бред.
Отказ от allegorithmic substance не помог. Хз в чём проблема, но проект пошёл по пизде. Тем не менее пойду скачаю самую последнюю версию юнити и буду заново воссоздавать проект.
Есть модель лестницы и чтобы камера игрока не прыгала по каждой ступеньке я сделал кастомный коллайдер в виде наклонной прямой. Движение плавное и всё красиво, но если игрок дропает вещь на лестнице, то она падает сквозь модель лестницы и лежит внутри её. Каким образом можно сделать чтобы игрок игнорил коллайдер меши , но не игнорил кастомный коллайдер и vice versa для вещей?
Fedora tip
Если я создаю скрипт для объекта с OnMouseDown(), навожу камеру на объект и нажимаю ЛКМ, то ничего не происходит. Как же мне тогда определить, что игрок нажал на объект?
Разобрался. Оказывается нужно использовать лучи, стреляющие из камеры. Но появилась другая проблема - в collider попадает моделька персонажа игрока, а не другие объекты.
Компонент Raycast3D, и можно использовать интерфейсы GUI (IClickable, IDraggable и т.п.).
Хотя я тут подумал... Максимум который я могу себе позволить - добавить немного рандомности в текстуру (скейл, ротейшн) и немного геометрии на уровень. А то у меня один хуй симулятор спуска по лестнице. Разнообразить никак по сути.
Пикрил текстура стены с рандомностью которую один хуй не видно. Кекити кек
Сделать разные Layerы (там даже есть по дефолту Ignore Raycast).
Вообще их бы в шапку добавить
Используй перегруженный метод с указанием маски
Недавно перекатился на юнити и чет не могу до сих пор разобраться с правильным воркфлоу канваса.
Если мне нужен канвас в world space, то я его (канвас) создаю, выбираю в настройках world space. При этом сам канвас остается огромным как и был изначально. Я делаю его меньше (чтобы удобнее было цеплять к объекту, который может перемещаться.
Потом допустим вешаю на этот канвас какой-нить спрайт и начинается пизда с размерами.
Спрайт получается огромный, мне приходится его руками уменьшать. Но это не очень правильно/удобно кмк.
Есть ли способ на таком канвасе получать спрайт такого же размера, как если бы я просто его перетащил в gameobject (без канваса)?
720x405, 4:30
Мудаком оказался я. Я вместо того чтобы внимательнее почитать про steamvr и совместимость в oculus sdk наебашил всякой хуиты в проект и удивлялся чому всё лагает. Пересобрал заново проект, натянул текстурки, всё летает. От allegorithmic substance всё таки отказался в пользу пререндера текстур в substance designer и дальнейшего импорта в юнити т.к. они свой плагин пока ещё не завезли на 18.3 и видимо завезут только к концу месяца, а у меня ДЕДЛАЙНЫ кухонные.
Вембрил мой симулятор спуска по лестнице vr.
Сериализатор JSON встроен в юнити. Храни как угодно.
Я бы сделал списком с ответами со ссылками на следующие реплики.
>Можешь вторым слоем добавить камни\хуямни глину
На текстуру имеешь в виду? Там все текстуры всрато выглядят. Может чего в освещении покрутить?
Нит. На меш вторую текстуру. И складывать их. Можно по маске какой. Но это смотря что конкретно тебе не нравится. В твоем песке. По мне так он унылый.
А как надо тогда?
Вопрос 1. Как сделать нормальный аспект у текстуры?
Вопрос 2. В рендер текстуру же можно кликать как обычно из камеры рейкастом?
Можно конечно обмазаться и засунуть в префабы 2д текстуры и на их основе генерить кнопки. Но хочется дораха бохато в 3д.
да
лень читать ветку, что за трабла там у тебя с substance.
Но, я недавно видел пост, что allegorithmic в январе этого года обновляют свой глючный плагин в Unity store
https://assetstore.unity.com/packages/tools/utilities/substance-in-unity-110555
Видел, спасибо. Просто у меня дедлайны и ждать пока они обновятся желания нет
>Что там хешируется то?
Хз, если знаешь английский то читани эту статью.
https://medium.com/@leomontes_60748/how-to-implement-a-fluid-simulation-on-the-cpu-with-unity-ecs-job-system-bf90a0f2724f
Истинно вам говорю, некоторые клики не видит. Я просто хотел узнать как профессиональные аноны это делают. Просто ставят Input.GetMouseButtonDown() в апдейте? Или может надо GetMouseButton()?
Фиксед- и ЛейтАпдейты не совпадают с фреймами инпута, поэтому если не в апдейте то может не видеть. >Input.GetMouseButtonDown()
Давн - это нажатие вниз. Ап - это отжатие. Просто ГетМаузДаун будет возвращать состояние в этот фрейм. Не в стрелялках, если что, обычно отлавливают отжатие + проверяют, находится ли под мышкой всё тот же объект, на который нажали вниз.
Понятно, спасибо анон.
OnGUI точно всё видит и именно когда надо, но придётся по сути свою инпут систему писать и вдуплять в особенности OnGUI.
В юнити можно компонент Raycast3D интерфейсы UI использовать на гамеобжектах, и будет достаточно реализовать IClickable или даже IDraggable.
Не, у меня просто клик мышкой (неважно где) - сделать хуйню. И почему-то клик не всегда срабатывает.
Тебе нужно просто поместить if (Input.GetMouseButtonDown(0)) {//логика по нажатию} в Update(){}. Если у тебя лыжи не едут рэйкасты не рэйкастятся - это уже другая проблема. К слову, я стрелял одновременно кучей рэйкастов из дробаша в террэйн, и некоторые проходили насквозь, проблема не пропала и причина так и не выяснилась.
Неплохо, только платформы в конец перемести. И фонарик у тебя светит только на 1 метр. Понятно, что это хоррор, но хоть немного реалистичности чтоб было. Попробуй вместе со светом ещё прожектировать светлую текстуру в том же направлении.
Тогда OBS музыку с системы захватила сама. Слишком ссыкотно ночью пилить игру для виар шлемов в тишине.
>>44209
Не, все эти лого я специально выставил в начало чтобы было понятно, что игра спешл фо виар сделана. У меня ДЕДЛАЙН до конца праздников выпустить игру в стим и в день делаю ограниченное кол-во задач чтобы успеть. Если не получается сделать как хочется, то значит не судьба и оставляю как получилось. Со светом я уже поебался сутки, больше тратить на это время не могу. Максимум что я сейчас сделаю - добавлю [RETRACTED] надпись поверх белого шума. Типа как обрезано специально в целях конфиденциальности, в стиле сцп.
720x405, 1:08
>>44209
>фонарик у тебя светит только на 1 метр
По лору так и должно быть. По факту не 1 метр, просто это без шлема так ощущается. В реальности со шлемом порядка 4 метров светит фонарь.
По SCP разве можно выпускать свои игры? Там вроде какая-то ебала была с авторскими правами.
Можно про тех, кто под CC-3.0 лицухой.
Короче, держу в курсе.
Как называется фигура, по типу многогранной пирамиды, и выпуклым основанием, не пойму как гуглить, сектор шара и можно ли её построить средствами юнити, не прибегая к 3д моделлингу.
Потому что таких фигур будет дохуищща. Плюс потом вручную расставлять их будет наверное не оче комильфо. Короче я хочу сделать модель земного шара, поделённую на страны. Может это как-то другими способами можно сделать?
Я думал это как-то проще можно сделать. Ну т.е. есть координаты на поверхности, есть координаты вершины и т.д.
Не, я даже не знаю что это.
С тихим скрипом пытаюсь изучать Юнити. По книжке Uniti in Action, различным видеоурокам. Вроде даже, есть какие-то знания, но понимаю, что их нет. Книги и прочее конечно хорошо, но ведь главным источником именно по фреймворку - документация.
Поэтому спрошу тебя, отзывчивый анон, что нужно смотреть в первую очередь и в какой последовательности, например для 2D.
Имхо, данный список в будущем может сильно помочь вкатывальщикам, а именно структурировать обучение, которые по факту не должно хвататься кусками с разных концов.
Например:
1) Камера и размещение
2)...
3)...
4) Лучи и работа с ними
5) serialize field
6) ...
7) ...
8) ...
9) MVC/MVP/MVVC
Спасибо тебе, анон!
Очевидно, что некоторые пункты не найдешь в документации, но хотя бы будет очевидно понятно что это. Про тот же самый MVC описано в Unity in Action, но в тоже время не совсем понятен принцип работы, и прочее
Нет, не ебу.
Пик:
58 часов лекций, где опять же, инфа не факт что будет нужная и структурированная.
Суть моей просьбы состоит не в том, чтобы в большей степени давать ссылки и прочее, а в том, чтобы именно указать те темы, которые нужно изучить. Очевидно, твоя ссылка очень полезна, почему бы её не добавить в FAQ треда? А вот конкретное изучение тем - дело новых постов в данном треде или QA сайтов.
Лично для меня, изучение по видео довольно проблематично, хоть и с сабами (порой заебывает перематывать фрагмент в 5 секунд по 100 раз, дабы понять, что имелось ввиду)
Вы похоже, не верно поняли мой вопрос.
А они своими авторскими правами подтереться не хотят? Автор не известен, это общественная собственность.
>>44230
Если хочешь примитивы, ищи в ассетсторе. Возможно найдёшь стандартные бесплатные. Если хочешь модель Земли, или в сторе или делай сам. Возможно найдёшь стандартные бесплатные.
Можешь искать не только в ассетсторе, но скорее всего, все остальные платные.
В принципе можно погуглить просто текстурку Земли на шарик-примитив. Должно сработать.
Эти книги смотрел?
Unity для разработчика. Мобильные мультиплатформенные игры 2018
Торн А. - Искусство создания сценариев в Unity - 2016
Паласиос Х. - Unity 5.x. Программирование искусственного интеллекта в играх - 2017
При всём уважении, проще будет добавить весь unity3d.com в ОП-пост, чтобы все смотрели туториалы, но они не будут их смотреть! Вот в чём проблема.
Пока не смотрел, но уже скачанные сидят тут как месяц
Вот опять.
Ты просто кидаешь ссылки на то, где показывают как делать.
Но согласись же, зная темы, зная как ими манипулировать ( с разбором примеров естественно) будет совсем по другому изучение идти.
Повторюсь, я спрашивал просто про то, какие темы/вопросы стоит поднимать для себя, в процессе изучения. Не какие-то узкие проблемы под конкретный проект здесь и сейчас. А какие-то общие темы, которые так или иначе будут использоваться по ходу разработки проектов.
Если грубо говоря, ты кидаешься параграфами, но я имел ввиду содержание/оглавление с кратким пояснением.
Например, что пока не сильно важно, при изучении изменении местоположения объекта в пространстве, а вот на что конкретно стоит делать упор. То же самое, как говорят в начальной школе, что на 0 делить нельзя, хотя в теории можно
Я думаю, я внятно пояснил, если же нет - поясню еще, я это умею и люблю)
1) Архитектура редактора / движка: инспектор, консоль, вид сцены, дерево сцены, проект, настройки проекта и прочие окна / сцены, геймобджекты, компоненты, ассеты, префабы и т.п.
2) C#
в тандеме с:
3) Scripting API
Всё. Нахуя ты голову ебёшь - непонятно. Любитель кодить языком, поди.
1-2-3, а ты до сих пор не понял.
Похуй тогда, мб кто-то другой ответит нормально на этот вопрос, а не будет кидаться ссылками и язвить по делу и без
Почему вот на на нем вполне хорошо, прям идеально идут игры например portal, portal2, half life все части?
А какой нибудь инди выживание, (выберись из дома/леса/лабиринта) на unity 3d тормозит даже на средних пк?
upd
я не адепт годота и уеча, люблю юнити, изучаю его уже полгодика.
Просто вот реально, качаешь из стима какую нибудь бродилку на юнити, а она прям подвисает, хотя карта маленькая, объектов мало.
Я надеюсь, что мне просто не повезло повстречать хорошо оптимизированную игру.
upd2
Пилю игрулю от первого лица. Как доделаю, надеюсь смогу также оптимизировать ее, как портал, что прям все гладко, без провисаний, и чтоб графоний был на уровне. Или я много прошу?
Потому что стим по большей части юнитипомойка из игр из готовых ассетов, и школьники которые их делали даже не заморачивались убрать пару миллионов лишних полигонов на моделях. К тому же там скорее всего Update с кучей проверок на каждом объекте, деревья по 100 дроуколлов каждое и КРАСИВАЯ ТРАВА.
Он спрашивает про то как составлять архитектуру игры что и как нужно программировать.
При этом отвергает наглядные примеры и уроки с поэтапным созданием игр. Фак лоджик.
Молочко нужно давать ребёночку только в стерилизованной бутылочке, нагрев перед этим до комнатной температуры. И не слишком жирное, а то будут зелёные покаки.
ты ебанутый? три раза сказали - дрочи скрипт апи и туторы на сайте юнити, там все разжевано для самых тупеньких тугосерь. Как лет 8 назад заглянул в Script Api reference так больше ничего не нужно. Всякие специфичные вещи уже ищи по названию. По юнити столько инфы что просто охуеть можно. Но если очень хочется.
- Интерфейс редактора
- - каждый создаваемый элемент
- начинаешь делать что-то (что угодно!)
- - смотришь примеры кода в Script API reference.
По архитектуре отдельно читай книжки, больше ничего не нужно для начала. А как начнешь и сам во всем разберешься.
Чето я нихуя не понял блять. Пишут что моноднвелоп включен в пакет установки юнити, но он нихуя не включен блять. Зато включен visual studio community. Они отказались от моно и перешли на вижуал студио или качать надо не с оффсайта или что?
Отказались. Теперь в качестве IDE рекомендуется Visual Studio, как легковесная альтернатива также предлагается VSCode.
Я так понимаю, все эти параметры лучше вообще не трогать прямо в редакторе, чтобы случайно ничего не сломать, банально забыв вернуть измененное значение в ходе экспериментов? Где хранятся классы компонентов, инстанциируемых не скриптами, а в гуе едитора? Xml-ина мб какая? Жму правой кн. мыши -> Edit script -> ничего не происходит. На некоторых компонентах нет и этой опции "Edit script". Вот взять "камеру". У неё куча параметров - придется их все выставлять в окне, или можно создать класс камеры и там с ней делать, что душа пожелает?
Мне ближе создание объектов и выставление им нужных мне полей прямо в коде (надеюсь, даже уверен, что в юнити так можно), чем мышкоклацанье. Хотелось бы вообще не касаться редактора, делая максимум работы скриптами, но тоже без фанатизма. Идея разделения логики и данных мне очень даже нравится, разобраться бы еще с форматом проэкта, и можно ли его редактировать, например, в блокноте.
Ты не прав. У каждого сцп есть автор и если не указано иного, то на его работу стоит лицензия https://creativecommons.org/licenses/by-sa/3.0/
Тем временем я уже залил тизер на ютьюбчик https://www.youtube.com/watch?v=Qk0wobvKnG0 и нашёл даже пару тестеров с окулусом т.к. у меня vive, а окулусоюзеров по статистике больше чем вайво
То, что ты хочешь - называется prefabs. Тебе нужно открыть сайт юнити и начиная с самых азов учиться с ним работать. Отказаться от эдитора не получится т.к. это неотъемлимая часть движка. Либо учись работать с эдитором, либо откажись от юнити.
Меш это и есть координаты вершин, по сути. Тебе нужно будет в какой-то последовательности назначать координаты вершин, а потом сверху натянуть текстурку. И шейдеры ещё.
Спасибо, буду гуглить.
Не сможешь. Да и смысл? Владельцы старых компов спасибо тебе не скажут. Надо равняться на ПК чуть ниже среднего.
Компоненты это и есть "закрытые" скрипты по сути. Если ты пишешь скрипт, то ты по сути пишешь компонент. Из скрипта можно получить доступ к любому другому компоненту или скрипту (выставив поле компонента требуемого класса, например) и там как угодно менять.
На оскорбления никто не провоцировал, а тебя порвало как целку.
Задаешь внятный вопрос, зная, что народец тут порой нещадно тупит, примерно поясняешь и даешь даже пример, как это должно быть, носука, присходит пикрелейтед.
Вы блять реально настолько ебанутые, что даже не видите грамотно сформулированную просьбу.
Вам в школе тупо дают алгоритм решения,, где тупо говорят подставлять циферки в формулы и не поясняют нихуя, составляющие там, что конкретно и как это влияет на работу решения.
Двач, такой двач.
Никто это не отвергает, суть вопроса изначально была совсем в другом
>в школе тупо дают алгоритм решения,, где тупо говорят подставлять циферки в формулы
Тебя родители учили говорить, смотря тебе в ебальник и повторяя раз за разом "мама", "папа" и т.д., и нихуя не объясняли почему папа это папа, а мама это мама и т.д. Тем не менее ты научился же говорить? Повторение - это фундамент обучения.
мимоанон
Ты как раз-таки невнятную хуйню спизданул, которая выглядит единственно понятной и логичной только в твоём манямирке. Тем не менее несколько анонов расслышало что там омежка бубнит себе под нос, и великодушно расписали где узнать, ЧТО, ПОЧЕМУ, КАК, КУДА и ЗАЧЕМ. Но как известно, люди делятся на два типа:
1) Способных делать умозаключения на основе неполных данных
2) Ты толстяк, который троллит тупостью. Самоироничный пикрил, бтв.
>>44369
Двачую. Природа им дала зеркальные нейроны - пользуйся! Пользуйся зеркальными нейронами, блять! Не хочу, хочу ебать мозги!
Просто он ещё пубертатный период не прошёл и можно невооружённым глазом наблюдать отрицание авторитетов. Типичное поведение для инфантилов, чему тут удивлятся... Подрастёт - поймёт свою глупость и тогда начнёт игры писать, а сейчас он только языком молоть может да воображать из себя программиста.
Ну и говно, каждый раз юнитиговно умудряется удивить. Установил юнитиговно, жму плей, все мыльное, сук, ВСЕ БЛЯ В МЫЛЕЕЕЕЕ! Ну юнитиговно, конечно, это прекол. И тысяча ошибок пидарских RenderTexture.Create failed: format unsupported - R8 sRGB (1). Юнитиговно само хуйни наустанавливало (себя), и само про ошибки пишет.
>2019.1.0a13
Смотрите, дети, это инвалид. Инвалид не человек, бейте его и надсмехайтесь над ним.
Юнитипидар, заткни свою дупу быстро, юнитиговно это просто пиздец, когда уже анриал начнет убивать.
>толстить в треде
>юнитиговно не работает после установки
>ну и чта юнити лучий движок, у меня все аднаклассники на нем сидяТ!
Unitypidars. Unitypidars never changes
>Ты тот самый анон, который велосипедил на WebGL?
Нит. Тот анон теперь работает по найму
тот самый анон
сразу видно пидораху, которому показали как делать, он и клепает раз за разом по одному сценарию одно и тоже, и отклонение в любой плоскости расценивает как что-то невообразимое
>>44371
великодушно просто скинули пример.
Давай начнем с того, что видимо ты такой тупой, либо весь двач такой, что в упор не видит четко сформулированную просьбу.
>РЯЯЯЯ, ссылку получи
>а, ты переспросил? НА ЕЩЕ ОДНУ, РЯЯЯ
ты либо контуженый при рождении, либо идиотия наследственно передалась.
>1) Способных делать умозаключения на основе неполных данных
Ты долбаеб? Какие неполные данные ты дал?
Специально спросил так, что бы не пялить в ютуб дохуя времени и смотреть "как нужно делать", а изучить темы самому, почитать про них и додумать самому.
Единственное, что я спросил, это последовательность этих тем, чтобы что-то нужно и важное не проебать.
Важнейшие моменты в обучении:
1) переходить от простого к сложному
2) Искать информацию и применять её самому
3) СТРУКТУРИРОВАННОСТЬ ИНФОРМАЦИИ
п.2 мне же видимо протипоставляет, но именно из-за незнания я пришел сюда и спрашивал, как мне казалось, у знающих людей и готовых помочь
Именно из-за такие долбаёбов, которые накачают ассетов и по урокам делают хуйню однотипную с корованами и грабежами, инди сейчас идет в новый e.t.
Хорошо, вот тебе список:
1) Кватернионы
2) Спрайты
3) Box Collider
4) Mesh Renderer
5) Вектор2
6) Камера
7) Лучи
8) MonoBehaviour
9) LineRenderer
10) RigidBody
Страницу с первой ссылки до конца пролистай, не беси меня.
Там тебе рассказаны все главы всех возможностей юнити. Всё в доступном видео формате.
Такие "на что конкретно стоит делать упор" познаются только с опытом.
Дебил, блядь. Надо обращать внимание на баундинг текстур, иначе у тебя альфа по пизде пойдёт.
Тебе это о чём рассказало? Что ты из этого понял?
Иди сделай мне сначала первую игру про шарик, демку, рабочую. Чтоб на экране был номер твоего поста. Потом поговорим.
Я не особо шарю, но попробуй это
https://unity3d.com/ru/learn/tutorials/temas/performance-optimization/optimizing-graphics-rendering-unity-games
Плюс профайлер.
Попробуй поочерёдно поотключать эффекты, уменьшать текстуры, количество объектов на экране. Количество объектов с Update и сравнивать.
>иди сделай мне сначала
кто ты такой, чтобы я тебе что-то делал?
>первую игру про шарик
или хотя бы сделай внятное пояснение. Если "игра про шарик" из разряда collect-coins, то без проблем, в качестве практики/повторения/вспомнить знания - сделаю
слишком просто, + я хотел бы с дваД поработать, что нибудь придумаю крч, жди
Дадут.
Когда склепаешь свою говноигру из ассетов, выложишь в стим и начнёшь получать далары, тёлочки тебе обязательно дадут.
Уфф. Ну хорошо. Я и сам не знаю толком нужен мне LW RP или HD RP, главное чтобы shader graph работал. А почему в HD не лезть?
Я пытался уже через Package Manager добавить этот RP, но shader graph всё равно отказывается работать почему-то.
HD это для AAA, а не для капсул. Надо создать и закинуть render pipeline ассет в graphics settings. А ещё материалы переводить в lightweight. Edit -> Render Pipeline -> Upgrade -> Lightweight
А еще учись пользоваться гуглом.
https://blogs.unity3d.com/ru/2018/02/21/the-lightweight-render-pipeline-optimizing-real-time-performance/
https://github.com/Unity-Technologies/ScriptableRenderPipeline/wiki/Lightweight-Render-Pipeline
Зато у тебя потом ещё десятка вопросов не возникнет.
(в 3д графике не силен).
Static вроде бы и так в один меш объединяется и куллится как надо.
>Раньше было дохуя материала по юньке
Их и сейчас дохуя, но ты же спрашиваешь не о простых обучающих материалах, а пизженных ассетов с ассет стор. Нехуй пиздить, либо сам пили, либо покупай.
Держи нас в курсе
Сделал в итоге просто массив со struct объектами из который инстантиируется все заново.
Но хуйня в том что сериализация вообще нихуя не умеет, ни Vector3 ни Quaternion, нихуя! Собственно написал Vector3 для сериализации сам, и вот вопрос - мне так придется каждую хуйню самому заново писать?
У меня вот есть класс Building в котором можно хранить все параметры для создания объекта в сцене, я могу как-то сериализовать инстанс этого класса?
Читал что-то про Json, scriptable object, это поможет решить проблему? или просто подскажите "правильный" способ сохранить нужное мне говно.
JSONUtility нормально сериализует векторы. Структы незачем, можно классами с атрибутом System.Serializable.
Правильный способ - иметь дату, отделённую от геймобджектов.
Если ты на поздней стадии разработки, когда менять архитектуру уже поздно, воспользуйся другим JSON сериализатором (SimpleJson вроде норм) и сохраняй дату вручную, типа
json.addProperty("field", gameObject.field)
Я тут за неделю замутил на unity приложуху, которая у меня работает вместо радара в каесочке
Пруф: youtube. com/watch?v=hPNVvTARIks&t=2s
Так сделай, ёптэ!
Никогда не делал игр с мультиплеером. Не знаю даже как подступиться.
Блять, я спрашиваю, чем мне теперь пакеты перекидывать? Фотон свои компоненты вешает, а у меня собственная DO-система. Мне не нужно сервер хостить, а нужно лишь заменить obsolete UNet LLAPI похожим функционалом.
Сложно ли найти начальную позицию C#+Unity-разработчика в Москве?
Вот скажем, я создал отдельную сцену для меню (в режиме screen space - overlay).
Создаю в ней канвас и элемент UI. Они огромны по отношению к полю игры, элементы кототорой небольших размеров.
Это обычная практика?
>создал отдельную сцену для меню (в режиме screen space - overlay). Создаю в ней канвас и элемент UI
Я так понял, ты создал отдельную сцену для меню, а в ней создал канвас (в режиме screen space - overlay) и элемент UI.
>Они огромны по отношению к полю игры
К какому полю игры? В Scene View?
Канвас ровно таких размеров в юнитах, как вьюпорт в пикселях. Вообще в идеале должна быть возможность отключать его гизмо, чтобы не смущал.
Чушь. Я не видел в Москве вакансий в IT меньше 50 тысяч.
Опытным разработчикам на C#+Unity предлагают по 150-200 в среднем.
>Я так понял, ты создал отдельную сцену для меню, а в ней создал канвас (в режиме screen space - overlay) и элемент UI.
Да, именно так.
У вас какая-то неправильная Москва, я на джуна устроился за 350.
1) Если я верно понимаю, меш, ничто иное как сетка, с помощью которой строится модель.
Т.е. по факту, меш, не может быть больше модели, чтобы например построить с каким-то взаимодействием по другому
2) Для генерации физики объекта используется именно RigidBody?
3) Для того, что бы взаимодействовать с объектом используются коллайдеры?
Есть ли какие-нибудь исключения из моих предположений (если они верны) ? Например для взаимодействия с объектом, используется что-то иное, или физика может делать совсем по другому?
1) Меш это геометрия модели: вершины и треугольники.
2) Да
3) Коллайдеры используются для просчёта столкновений, в том числе и рэйкастинга, так что да.
Есть редкий глюк с встроенным в Юнити компонентом Cloth. Вот его описание https://answers.unity.com/answers/46528/post.html
Наткнулся на него в своем проекте на Юнити 5.6. Офигеть, глюк с 2011 года, между прочим.
У меня он в том проявился, что любой Skinned Mesh с Cloth работает нормально пока находится в поле зрения камеры. Как только пропадает оттуда, то что-то с ним такое происходит, что по возвращении обратно его распидорашивает в разные стороны.
Ничего лучше не придумал как добавить новую камеру и рендерить ей все объекты с Cloth постоянно. Но это бьет по производительности и вообще пиздец какой-то. Как быть, что делать?
>Эта страница не существует.
Ну короч очевидный костыль а может и гуд оптимизэйшн практис напрашивается сам собой: тебе надо на OnBecameInvisible как-то дрочнуть Renderer или Cloth так, чтобы он не выёбывался, а на OnBecameVisible раздрочить обратно.
>Опытным (про которых никто не спрашивал) предлагают 60-100 тысяч.
В Москве девопсам и Java-джунам готовы платить по 50-60.
КЛАУД и все вытекающие: навешал компонентов - и доволен. Короче если хочешь мультиплей как у людей, подрубился и играешь, чтобы в стим потом закинуть - твой выбор. Но имей ввиду, в бесплатной версии там ограничение на 20 щей, при чём, как я понял, это контролируется и на P2P (т.е. по LAN будет невозможно подключиться без интернета - лютая дичь). В любом случае, в данный момент ничего лучше, похоже, нет. Они уже условно выпилили UNet, а замену только рожают. К слову, если хочешь попердолиться, можешь попробовать: https://github.com/Unity-Technologies/multiplayer
>для нового апи даже вики не запилили
На гитхабе есть документация и примеры.
>без анальных подписок я не смогу
Выходит, что так. Хотя возможно я жопой читал про фотон.
>матчмейкинга
В мобильных сторах матчмейкинг идёт из коробки. Может быть в стиме тоже что-то подобное есть?
В конце концов запилить его не настолько сложно.
Тонны нефти тебя, анон.
Почему-то на дваче советы годные в отличии от юнити-форума где советовали костыль со второй камерой.
Просто включаю и отключаю по событию OnBecameInvisible
cloth_component.enabled = false
Надо было не лениться читать про Monobehaviour, тогда бы сам додумался.
В смысле ты готов? Всем похуй, на что ты там готов, дели свои готовности минимум на 2.
>>44884
> В Москве девопсам и Java-джунам готовы платить по 50-60.
Ну, да. Но ты же не жава-джуном собрался устраиваться.
>>44886
> Мидлов
Хуидлов. С парой лет опыта в этой сфере 80к - уже ниибать какое достижение.
Вопрос тупой, но я новичок, прости.
В общем, я хочу продить инстансы объекта, сделал некий спавнер. Он берет копию объекта и создает в случайном месте.
Примерно такого вида цикл:
spawnPoint = new Vector2(randomX, transform.localPosition.y);
Instantiate(enemy, spawnPoint, Quaternion.identity);
Эти объекты я хочу уничтожать как-то, запилил Destroy(enemy) по условию, вроде все хорошо, НО! Когда я уничтожаю родительский объект, с которого все клонируются, скрипт вылетает. Как мне быть? Мб есть подводные секретные знания?
>скрипт вылетает
1. Внимательно читай текст ошибки.
2. Не уничтожай родительский объект, сделай мастер объект менеджер, который не является клоном и инстанцируй в нём через префаб.
3. Удостоверься, что в созданных объектах нет ссылок на существующий. Проверь локальные классы, избавься от локальных классов.
Как раз таки ECS не хипстерский а реально полезна штука если вникнуть в ее суть.
Спасибо большое! Запилил кайнд оф синглтон, сейчас вроде все ровно идет. Про префабы не знал
>Steamworks позволяет подрубаться друг к другу через его API, но серваки не хостит, разумеется. Удобно для P2P, но в остальном по сути всё та же ебала.
Вроде как можно распространять не игру, а инструмент для игры, который будет являться сервером.
Что за жопоебля случилась с юнити в 2019? Какие-то про версии предлагают, какие-то деньги требуют. Вчера появилась идея в игоре. Скачал на комп и написал кучу скриптов. Паралельно поставил на ноут юнити. Так как качать 11 гиг, тупо нажал установить, а сам сел за пеку. Сегодня смотрю. Мало того что эта залупа не поставилась и скачала нихуя. Так ещё и в профиль мне насрала что я про разраб и поставила мне галочки что хочу им донатить 1000 баксов. Зашёл и подахуел.
Бамп.
Ну хз, всё таки установленная на нескольких компах под одним профилем... Может они решили мне сказать что я немного охренел?
Хачу сделоть игру. Суть токова. Движок Юнити Ультрахардкор Мытищи. 2d игра по типу Марио. И по типу Марио он бегает по своему 2d вымышленному миру который я называю "Брянск". ГГ может быть магом, войном или негром. Нужно грабить корованы чтобы победить плохих людей. Но в процессе он узнаёт что плохой человек - ТРАП. И в любляется в него. Шлёт нахуй принцессу и набигает в дворец.
Как вам игоря?
Это реле, и пинги там для России например ужасные. Фотон нормально, если читеров не боишься.
Хорошо когда есть первые позитивные и положительные отзывы. Я приступил к разработке.
Может и так.
>реле
Реле?
Впрочем я уже понял, что этот вариант тебе не подойдёт. Там поднимается локальный сервер у одного из игроков.
>если читеров не боишься.
Есть хорошая статья на эту тему
Как расправиться с читерами и не переписать весь код
https://habr.com/company/pixonic/blog/343306/
>Там поднимается локальный сервер у одного из игроков.
Да, Стим, Фотон и .т.д. просто гоняют трафик между вами.
>Всем похуй, на что ты
Мне похуй лично на тебя.
Вот лично на тебя, и ещё немного на твою маму.
У меня рынок труда, коллеги и собеседования перед глазами, а у тебя, дурачок?
Сап юнитачеры, возник спор на тему построения лвл-дизайна.
Первый настаивает на том что бы клеить базовую архитектуру из мелких одинаковых частей (комната состоит из шести мешей). Второй - настаивает делать ее крупными мешами (комната состоит из одного меша). Как правильно?
тестировать в мелких частях, в релиз всё склеить и запечь
лол, ахуеть
А в коде им можно пользоваться, типа, вручную пакеты пересылать, или только компоненты и RPC дрочить?
Рофл. Эпики как крысы поступили. Хотя зачем им это? Разве что это планировалось уже давно...
Подозреваю что можно, он какбе опенсорс вообще. Лучше спроси в дискорде. Я лично только рпц пользовался.
Жалею, что эпикоговно так выстрелило с фортнайтом, лучше бы юнитиговно преуспело, его хоть учить можно.
Мммм, макиавеллизмом запахло)
Использовать фейлы конкурента для легкого пиара обычная практика же.
https://www.youtube.com/watch?v=GiKOXxk1qz8
Нихерна не понял из прочитаного, зачем поднимать кипишь из за того что какое то ненужное говно отвалилось?
Ну да, крысятничество - обычная практика. Разумеется, грех не воспользоваться шансом. Но тут не лёгкий пиар, а скорее саботаж. Зачем эпикам этот сервис при их бабках (плюс у них свой есть)? Разве что лишить его юнитеков. Договорились о бабле заранее, тем более юнитеки отметили, что Improbable/SpatialOS нарушали условия, значит мног очего могли нарушать.
Ну так, это означает застой и неработоспособность функционала на какое-то время. Страшно же. А вдруг ВСЁ или НАЧАЛОСЬ?
С другой стороны, юнитеки позволяют себе очень смелые шаги. Посмотрим, к чему они придут. Глядишь, станут передовиками.
Облачный мультиплеер, как я понял. Но вроде бы те кто платил за хостинг не пострадают.
В уече нужно знать плюсы, плюсы многих останалвивают так там легко проебатся с указателями и памятью.
В кратце, если ты использовал облако юнити, чтобы сделать свой сервис, то у тебя уже не игра, а платформа и тут уже совсем другие лицензии и отношения. В чём Improbable и провинились, как я понял.
>Apparently, you didn’t understand what they were saying. You can still use Unity however you want as long as it’s for your own game. What they take issue with is if you are using a Unity-based server service that you intend to lease to other people for them to use in their games. That’s when your project stops being a game and becomes a platform, and that requires special permissions and partnerships with Unity. And that is what Improbable failed to do for two years, so Unity deactivated their licenses. It couldn’t be any simpler a concept, nor any more evident that Improbable is very clearly in the wrong over this whole situation.
Попробуй группировать компоненты по функциональности, типа Пушка, Снаряд, Цель. Потом всё это развернуть в другом проекте.
Это и так понятно. Меня интересует как единичные вызовы делать, ну или какой там аналог в ECS?
Что у тебя за игра, где так не хватает производительности?
Т.е. не иногда пропадает, а в одной позиции камеры он показывается нормально, а в другой исчезает.
О, тем более.
Подскажи, пожалуйста.
вот в чем вопрос, делаю примеры с сайта юнити, и в одном уроке для передвижения игрока используется transform.position, а в другом через rigidbody.position, хоть в обоих примерах на объектах есть и rigidBody и коллайдер.
С ангельским у меня не все так гладко, так что мог упустить суть.
Надеюсь на твою помощь.
Спасибо
Когда завтра unity внесут в EULA пункт, в котором будет сказано, что ты обязан стать пассивным пидором и давать в жопу, чтобы пользоваться unity, ты сразу же снимешь штаны со вздохом "ну передовики же, что поделать"?
Основная претензия коммьюнити в том, что они внезапно поменяли EULA, чтобы монополизировать облачный хостинг и поиметь побольше бабла, при этом опрокинув кучу студий, которые использовали сервисы improbable и теперь непонятно, что будет с их играми. На реддите уже писали, что сервера некоторых игр закрылись из-за этого.
В первом случае ты двигаешь геймобжект на сцене, во втором физический компонент rigidboy.
Но с rb лучше взаимодействовать через addforce или velocity.
но, если через transform осуществлять передвижение, rigidBody же привязан к объекту?
к тому же, мы же не можем двигать отдельно компонент объекта, мы все равно двигает объект с привязанным компонентом.
Может есть какой-то простой пример, который может явно указать отличия перемещения обоими способами?
И сильно ли влияет, 2Д или 3Д для применения?
//:upd заглянул в документацию, и там такое "If you change the position of a Rigibody using Rigidbody.position, the transform will be updated after the next physics simulation step." но все равно яннп.
поэтому реквестирую
>Может есть какой-то простой пример, который может явно >указать отличия перемещения обоими способами?
p.s. объебался, да через velocity передвижение
в дополнение.
в уроке по 2Д ограничения передвижения игрока делалось через коллайдеры, в 3Д же, делают ограничение через Matf.Clamp.
Тут стоит сделать выбор в пользу удобства, или же есть какие-то другие факторы, например скорость обработки выше, или нагруженость меньше?
transform.position это "божественное" перемещение. Куда захотел, туда и поставил
Rigidbody это физика. Куда объект сможет влезть, туда и поставится с просчётом всех коллизий.
Гугли Unity lifecycle и читай внимательно, сначала работает Update, потом физика.
Иначе говоря, с помощью transform мы может тупо входить в текстуры, объекты с которыми можем взаимодействовать (подбираемые предметы, например) или же в стены, грубо говоря.
по факту, через tranform можно реализовать простой godMode который позволит проходить через все, например
Тру пацаны делают через трансформ.позитион с самостоятельным чеком на коллизии. Т.к. в случае использования перемещения через рб движение получается менее отзывчивое и менее кастомизированое, но в то же время на рб гораздо легче и быстрее написать передвижение.
>transform.position это "божественное" перемещение. Куда захотел, туда и поставил
>Rigidbody это физика
Чушь собачья.
Rigidbody - это готовая модель столкновений с препятствиями, основанной на том же transform.position. Ничто не мешает тебе вместо компонента Rigidbody написать собственную модель столкновений.
>Ничто не мешает тебе вместо компонента Rigidbody написать собственную модель столкновений.
Сейчас бы на c# писать модель столкновений.
>>45164
Потому что RigidBody не во всём хорош, многое можно реализовать лучше.
Вот отличный цикл туториалов на эту тему:
https://www.youtube.com/watch?v=MbWK8bCAU2w
И не ворох лапши. Пока что программирование лучше всего проявляет себя в кодинге, если можно так выразиться. К тому же, как было сказано, лапша в разы медленнее, так что адекватными людьми даже не рассматривается.
>>45123
Если юзаешь много Lights, то в Graphics Settings меняй рендерер на Deffered либо ставь больше лайтов в Forward. Как в новых рендер пайплайнах я хз.
>>45132
Нет, я уже подумывал свалить. Посмотрим, сколько моё очко выдержит.
>>45131
Считай, с момента добавления RigidBody отвечает за Transform. Если уж добавил его, то двигай его. Но если сильно хочется, то поставь RigidBody kinematic, и можешь двигать transform, но всё же советую продолжать двигать RigidBody.
в 2014 нативизации не было.
Аниматор жи есть. Кто то Dotween или аналоги использует
Сумма взноса возвращается когда игра достигает определённой отметки продаж.
Пока ты сидишь с пустыми карманами и кукарекаешь в интернетах на васянов, они рубят по 200-300к руб за говноигру.
Спрос порождает предложение, а не наоборот.
Раньше стим был золотой жилой как ещё ранее были таковой жилой флеш игры. Сейчас стало немного сложнее, но суть осталась прежней. Разница лишь только в том, что ввели некоторые ограничения и теперь нужно немного времени уделять пиару.
Такое соберёт пару соток на распродаже, максимум. Я не про такие говно игры, а про те, которые клепают ежемесячно, но с более адекватным графеном и геймплеем. Всякие платформеры, хуёмеры и т.д.
>там легко проебатся с указателями и памятью.
Ты последние лет 5 в лесу жил? По стандарту 2012 всё идёт нахуй и теперь кресты такая-же няшность как и шарпы.
Вся фишка уича в том, что он быстрый и резкий как понос. Можно запросто делать FPS шутеры типа дума или того-же торнамента. А это пиздец как много значит. Когда даже 150-120 FPS дают преимущество. К сожалению Юнити может и похвастается графоном как у уи, но вот в производительности юнити сосёт хуй довольно сильно.
>сравнивает производительность не подкрепляя ни чем свои слова
Мех. Ясно.
Единственная рил классная вещь в уиче - редактор материалов.
>не подкрепляя ни чем свои слова
Эм... Ну возьми и скомпиль какую-нибудь 3d игруху. И ахуей как долго она грузится на компе. А потом сделай тоже самое в Анриале.
Какой вопрос, такой ответ. Приводить что-то большее кекающему дауну я не намерен. Научишься в адекватное общение - приходи.
>Научишься в адекватное общение - приходи.
>Перешёл в оскорбления
>Так и не подкрепил свои слова доказательствами
>Ретировался, обвиняя другого в неадекватном общении и не стесняясь при этом перейти первым на личности
>Научишься в адекватное общение - приходи.
И тут я потерпел сокрушительное поражение.
>Мех. Ясно.
>Проиграл
>Перешёл в оскорбления
Общаться нормально научись, мемас головного мозга. Может и перестанут оскорблять на двачах.
Раст разьве не свой движок пилили? А то судя по результату из говна и палок - таки свой.
> аналогичный на UE4.
Фортнайт\Батл рояль, Анриал.
Нет, не пилили. Если ты имеешь ввиду гейм фреймворк, то это к движку не относится, а ты не относишься к компетентным в данном вопросе людям.
>Раст
>аналогичный на UE4
>Фортнайт\Батл рояль, Анриал
Исправляй. А то я скажу SUPER HOT.
Справедливо.
Тут скорее проблема в том, что бумер-UE уже ветеран, индустриальный стандарт, зарекомендовавший себя, к тому же эпики сами на нём клепали шутеры как рекламу в т.ч. То же самое с CryEngine. А зумер-Unity ещё молодой, шутливый, ему всё в новинку, поэтому и каких-то серьёзных превью-шутанов на нём нет. Юнитеки этим просто не занимаются почему-то, кроме как на юнайтах. Но это не значит, что их не может быть. Да я и не уверен, что их нет.
Ну вот, мой манявр опередили.
Вряд ли особо отличается.
Мобильные платформы нынче дорого раскручивать. Необходимо покупать трафик чтобы отбивать разработку. Казуалки для пека легче т.к. есть кураторы, есть каналы, которые рады обозревать говно и есть дискорд. Игроки покупают часто их ради карточек, которые позволяют отбить покупку и даже заработать чутка. Для виара ещё легче т.к. индустрия пока подобна пикрилейтед и пипл хавает даже 20 минутное говно.
Итак, пачаны, SCP-087 залит в стим и пока жду аппрува, решил запилить что-нибудь ещё. Изучив рынок выбор пал на создание виар симулятора тира, только с PBR графеном, классными звуками и реалистичным поведением оружия заклинивание, передёргивание затвора, псевдоотдача и т.д.
Я в юнити говноед, как и в моделинге, но раз судьба дала мне виар в самое лучшее время для клепания на нём говна, то значит нужно учиться и улетать на гоа ебать проституток-ваших мамок badum tsss%%
Собственно вопрос в том, не мешаю ли я своими постами-репортами или мне лучше укатиться в свой тред и там семенить?
>с PBR графеном, классными звуками и реалистичным поведением оружия заклинивание, передёргивание затвора, псевдоотдача и т.д.
Уау!
Ты видимо не совсем понимаешь как нужно работать. Выпускать нужно игры, аналоги которых покупают чтобы не создавать свой рынок с нуля. Люди будут покупают твоё говно т.к. они поиграли в одно говно, им зашло, но надоело и они хотят ещё. По этому они купят и твоё говно. Даже если твоё говно окажется хуже, они его всё равно купят, но уже в меньшем кол-ве чем если бы твоё говно было топовым и vice versa.
Алсо почему такое говно покупают - всякие vr румы и прочие параши на таких вот говноподелках выезжают изи. Среднестатистическому васяну в виар руме интересно не по лестнице спускаться, а пострелять в какую-нибудь хуйню. Больше спрос = выше вероятность рубануть бабла. И в отличии от нынешних говноподелок от кириллов за 30 руб, виар говно стоит по 15-20 далларов за игру.
Короче, можешь скринить, тир принесёт мне чёрный гелик в старом кузове в течении полугода после релиза. А мультиплеерный шутан в виар вообще сделает меня богаче абрамовича.
Да ради бога. Скинешь потом на пиво.
>тир принесёт мне чёрный гелик в старом кузове в течении полугода после релиза
Какой ты наивный шкальник.
>Итак, пачаны, SCP-087
Ещё неделю назад ты пркикручивал текстуры к коридору. Ты действительно думаешь, что сделал игру?
Не знаю. Пусть вольво решает, получилась у меня игра, достойная ёрли аксеса или нет. Моё дело ассеты таскать, а не демагогии разводить
Хороший подход, кстати. Житейский. Лишь бы лох не вымер.
В печах бы сжигал таких выблядков, как ты. Нахуй в геймдев пришел? Иди на базар, торгуй турецкими шмотками в палатке с хачами, нахуй ты сюда-то лезешь?
Геймдев это творчество, тут не место таким пидорасам.
саси
Может очень помочь при понимании некоторых механик, жали что роликов кот наплакал(
https://www.youtube.com/channel/UCG2FUqr5VP9wiJCrV9VH9ug/videos?sort=dd&view=0&shelf_id=0
Не волнуйся, для таких как он существует естественный фильтр - критическое мышление и здравый смысл. Умный человек быстро смекнёт, развод на далары перед ним, или нет. А глупый, глядишь, умнее станет.
Ну вот теперь круто и Юнити догнал по графену уток. Беру свои слова обратно. Надо будет посмотреть что они там понакрутили чтобы FPS не проседал. По ощущениям будто ускоренное видео.
Там этот ваш хипсторский ECS!
Да они хуйней какой-то занимаются, запекания обоссанные, препилили систему материалов, теперь непонятно как карты туда закидывать. Постоянно места настроек меняют, заебали петухи.
Шизюнь, тебя ждет небольшое разочарование с твоими симуляторами геликов. Но почитать про это было бы интересно, можешь запилить свой тред.
В юнити вроде как с неткодом туго, тупо нет решения изкаропки, Rust в итоге какой-то велосипед присобачили https://garry.tv/2016/02/18/rusts-networking/
Они отказались от p2p. Хотят чтобы их новая система была заточена под выделенный сервер. Вроде как в древней системе, но ведь еще в юнити4 это все уже было, играл во всякие слендермены.
Но ты не прав. Гейм-дев - индустрия, существует для зарабатывания денег. мимо 300 к в сеунду
Тем временем я уже запилил модель первого оружия - нож. Его можно будет метать в виар, бесплатно без смс.
Моя первая модель, думаю для фёрст трая норм.
Делаю туториалы по юнити, и заметил такую вещь.
Частенько, делают public переменные класса, чтобы потом задавать через инспектор значения.
Я понимаю, когда мы создаем, например публичную переменную GameObject, чтобы сделать ссылку на какой-либо объект или префаб, но вот есть ли смысл это делать для всяких Vector3 (или классика - SPEED) и прочее, что все равно потом ручками в инспекторе забивается?
При более серьезных вещах, так ведь не нужно делать и лучше все забивать в скрипт, когда уже есть стопроцентная уверенность в значениях.
Или в офф туториалах это просто показано так, для удобства и понимания?
Есть ли какие-нибудь подводные камни, кроме удобства редактирования значений через инспектор?
Я про SpatialOS.
Нет, но юнити ещё раз 10 проведёт разработчикам по губам.
При все нелюбви к юнити, конкурентов как не было, так и нет.
Эпики лучше бы свои 25 миллиов потратили на программистов движка, а не на пиар.
Движок у эпиков и так норм. А вот ассеты для него - пиздец полный. Даже те, что за деньги заставляют меня плакать. В итоге какому-нибудь инфи типа меня писать игори вообще нереально. Если программирование и продумывание истории с рисованием карт я вывезу сам, то именно текстурирование и наполнение для карт я уже должен покупать раба в блендером и художника.
>Движок у эпиков и так норм
Норм по меркам 2005. Выпускать такое в один год с юнити - свинство.
Юнити задал новую планку UX.
>А вот ассеты для него - пиздец полный
А ты не думаешь, что это связано? Юнити - это унифицированная контент-платформа, а уеч - это куча собранных вместе софтин, которая работает через жопу и кое-как.
>А ты не думаешь, что это связано? Юнити - это унифицированная контент-платформа, а уеч - это куча собранных вместе софтин, которая работает через жопу и кое-как.
Знаешь, я на самом деле так не думаю. Просто потому, что и в Юнити треде найду человека который также скажет что Юнити плохо, а анриал - лучшее решение эвар.
Как по мне, у меня есть выбор из этих двух и я рад. Хотя на деле у каждого свои недостатки и я сосу два хуя.
Не по тутору, а по пикче. Я просто посмотрел ночью как какой-то араб моделил кольт и утром решил попробовать что-нибудь замоделить.
Ты крут. Хотел бы я чтобы ты замоделил модельки оружия для моей васян РПГ.
ну блин, тогда ты хорош. добра
Это плохо, что не думаешь. Надо думать хоть иногда. Популярность юнити не с печки же свалилась.
>Популярность юнити не с печки же свалилась.
Ну да. Так-то у нас такой огромный выбор этого всего... А, нет. у нас всего выбор из 2 движков. Отсюда и популярность.
То, что руками вбиваешь - выноси, остальное нахуй. Там еще и скрывать поля можно, так же, как и отображать приватные переменные в инспекторе.
Короче как удобно, так и делай, епта.
Даже с gameObjectом зачастую так делать не нужно. В двух словах, если тебе нужно менять значение только из инспектора, делай его [SerializeField] private. public нужен, если ты собираешься получать к нему доступ из других скриптов. А если только из скриптов, можешь вообще переводить поля в свойства, они гораздо более функциональны.
https://steamcharts.com/app/450540
> over 2k reviews
> avg players online 200 per month
Да даже если считать прибыль только по кол-ву отзывов (2.7к), то это в районе 1к $/mo. И это только самый минимум, который можно посчитать. По факту у него куплено овер 100к копий игры, что принесло ему половину новой ламбо до налогов сша. Создатель за всё это время так рубанул бабок, что сидит теперь и жиреет 24/7 онлайн бесплатно с вайфу виар
Подводные камни: всё public будет видно при кодкомплишене, что может вылится в огромные списки предлагаемых бесполезных переменных и функций. Так же любой (объект) сможет всё это менять и использовать, а тебе это не нужно, уж поверь. В целях безопасности и не так мудрят. Типа, замок должен открываться только ключом. Часто так и делают: публичный метод (открыть) который при определённых условиях (вызван ключом) вызывает приватный метод (открыться). То же самое к свойствам, с разницей в том что у них сеттеры/геттеры можно делать разного уровня доступности и в них проверять. Короче, всё сложно, ёпта, кругом обман. Не стоит вскрывать эту тему.
Текстурой добавлю уже рельеф. Думаю и лезвие вообще запечь...
>по вашему все это время существовало всего лишь 2.5 движка.
Бесплатных и с общим доступом и на PC - да.
Ну может в секретных лабораториях существовали другие движки, или движки типа "Сделай 8 битную хуйню на коленке за 12 минут". Но я имел ввиду что-то более менее современно 3dшное и удобоваримое.
Относительно свойств слышал, но я пока зелёный шибко в этом
Анон, подскажи, как правильно делать коллизии. Хочу чтобы при броске, нож втыкался лезвием и не втыкался рукоятью. Да и вообще как сделать правильно "втыкание"?
https://stackoverflow.com/questions/9842917/field-vs-property-optimisation-of-performance
Вкратце: филды быстрее пропердей, если к пропердям не применять особого подхода (тогда почти одинаково). Короче, если не нужен функционал пропердей, юзай филды. Модификатор доступа на производительность не влияет.
Я вот как раз думаю сделать 2 коллайдера, рукоять и лезвие. При коллизии лезвием проверяем velocity.magnitude и дальше уже либо синематик он, либо залупу за воротник. По крайней мере так это у меня в голове
Не убивай Шепарда, подумой.
Хорошо, из 2.75.
Сразу предупреждаю, что у меня игра на старой версии 5.6.3, не могу перейти на новый движок. Так что, возможно, просто старый баг.
Смотрю летсплеи по своей игре. И замечаю, что у некоторый ютуберов нормально управление работает, а у других не работает либо X/Y ось мышки, либо ось правого стика, если он играет на геймпаде.
У меня самого, конечно, все нормально работает на клавомышке и на x-box one геймпаде.
>И замечаю, что у некоторый ютуберов нормально управление работает, а у других не работает либо X/Y ось мышки, либо ось правого стика, если он играет на геймпаде.
>У меня самого, конечно, все нормально работает на клавомышке и на x-box one геймпаде.
Это же юнитиговно, ты что, хотел, чтобы у всех все работало?
Вопрос-то где?
Проблемы как раз в совместимости, видимо. Бывает. Хотя, если всё остальное работает, может ты перемудрил чего (непонятно, зачем у тебя в оси мыши get motion from all joysticks)?
Если бы успех. Там просмотров некоторых летсплеев 100000-200000 штук. Но нихуя я с этого не имею, игра бесплатная.
Если ты думаешь, что в топе итча сидят богатые и успешные, спешу тебя расстроить.
Вопрос в том, как сделать чтобы работало у всех. Бабла на тестеров нет, естественно.
Почему Юнити не может найти корректное устройство и автоматом его прописать в Mouse X и RightAnalogHorizontal при старте игры?
>непонятно, зачем у тебя в оси мыши get motion from all joysticks
А там или это или указываешь номер джойстика. Вряд ли оно на что-то может влиять если подключен только один.
Может может, но в современных версиях? Мало ли что там в древнем 5.6.3, может там на XP и работало всё у всех.
Только ось X не работает? Я понимаю у джойстика, но у мыши... это странно. Может слетает в настройках, когда игру запускаешь, а игроки и не смотрят?
В настройках два джойстика почему-то и RightAnalog оси в Project Settings 4 и 5, а тут 3 и 4.
Хуй знает как эта таблица строится.
Я разве что-то говорил о деньгах? Сама мысль о том, что я создал продукт, который доставляет удовольствие сотням тысяч людей уже прекрасна. Разве это не успех?
бтв что за игра-то?
Сотни тысяч смотрят, а не играют. Просто пара очень популярных ютуберов летсплеили. Gaijin go Home!
Зелёный?
Пока что проекты мои напоминают кучу-малу, но как от этого избавляться, честно говоря, идей нет.
Просто классифицируй по общности, как-то так:
Animation
Fonts
Materials
Models
Prefabs
Scenes
Scripts
Sounds
Sprites
Terrains
Textures
Unsorted
Prefabs можно поделить например на Characters (/Orcs, /Humans), Gear (/Weapons, /Armor), Items (/Keys, /Food), Environment (/Foliage, /Architecture). Классифицируй как хочешь, исходя из логики и здравого смысла. Модель допустим может вместе с материалом и текстурой в отдельной подпапке в Models лежать, а в Textures всякий generic, который на кубы лепишь.
> как-то со временем приходится примерное понимание что и как куда кидать
Да, но лучше сразу начинать.
>Я разве что-то говорил о деньгах? Сама мысль о том, что я создал продукт, который доставляет удовольствие сотням тысяч людей уже прекрасна. Разве это не успех?
Бро, не все могут в карма йогу и в чистые действия.
Нойс.
Алсо посмотрел порнотред, там вместо игроделов какие-то макаки клепают визуальные новеллы на пайтоне. Всё крайне рукожопо и иногда даже неиграбельно. Единственно что доставило - игра про виндраннера, и та блядь из одного уровня.
>>45645
Заебали из треда в тред виндопроблемы на юнити валить.
https://support.microsoft.com/ru-ru/help/2908279/mouse-pointer-stutters-or-freezes-when-you-play-certain-games-in-windo
1. ПКМ (Правой кнопкой мыши) на ярлык игоря - Свойства
3. Перейдите на вкладку Совместимость
4. Запустить программу в режиме совместимости "Windows 8"
5. Отключить масштабирование изображения при высоком разрешение экрана
6. Запустить эту программу от имени администратора
Это и есть неудачные случаи. А об удачных вы и не узнаете - человек с норм деньгами будет сидеть и тихо радоваться, ему эти ваши двачи нахуй не нужны. Деньги тишину любят.
>>45305
Не пизди. Кто 90к в год зарабатывает - на дваче не сидит.
>>45521
> Движок у эпиков и так норм.
Серьезно? А почему же тогда вся индюшатина на юнити?
>>45525
>Просто потому, что и в Юнити треде найду человека который также скажет что Юнити плохо, а анриал - лучшее решение эвар.
Какая разница, кто что скажет? Игры где блядь?
>>45612
Это ж что такое писать нужно, чтобы пришлось юзать филды вместо пропертей ради производительности?
Это был баг в сохранении настроек ввода, он же написал. А геймеры и не заглядывали в настройки.
>с норм деньгами будет сидеть и тихо радоваться, ему эти ваши двачи нахуй не нужны. Деньги тишину любят.
>Кто 90к в год зарабатывает - на дваче не сидит.
Какой-же у тебя зашоренный манямир. Я тебе по секрету скажу, деньги не у того, кто всякую околомагическую хуйню как ты рассказывает, про тишину и про это вот всё, а у того, кто вьябывает. Причём вьябывает много и по делу. А так, ну да, в тредах было много дебилов которые пытались продать HELLI WORLD по 40 баксов. И почему-то для тебя неожиданность что они провалились.
>у некоторый ютуберов нормально управление работает, а у других не работает либо X/Y ось мышки, либо ось правого стика, если он играет на геймпаде.
Вот что он написал. А я написал как это фиксить.
>ему эти ваши двачи нахуй не нужны.
У миллиардеров свои секретные двачи с доступом по секретному пасскоду за 100 баксов, ага. Анон, у тебя на самом деле пелена на глазах какая-то. Или представление уровня "Вот буду я зарабатывать 10к баксов, буду весь день шампанское пить и бассейне купаться, а двачи заброшу." Нет, это не так работает.
SendMessage вызывает метод у всех чайлдов. Мало того, что это не рационально, так это ещё и требует вызова этого метода в самом верху иерархического древа предполагаем, что древо сверху-вниз. Не подходит.
Напиши нормально какая задача, а я скажу как ее решить с SendMessage. То, что ты написал, непонятно
Кекнул.
В общем, нагуглил как в мсдн как шарпе обьявлять ссылки на методы, сделал через объявление публичного делегата и ивента.
Изи программинг, изи лайф.
>>45740
>UnityEvent
В чём профит по сравнению с https://docs.microsoft.com/ru-ru/dotnet/csharp/language-reference/keywords/event ?
>Условно говоря, каким образом в шарпе передать ссылку на метод?
Передай ссылку на третий объект с методом. Тоже мне проблема.
>компонент Б не знает о компоненте А
>Передай ссылку на третий объект
Итого получается, что мы имеем дополнительную сущность, которую хардкодим в другие компоненты (а значит и потом выпиливать заебёмся), которая выступает прокси между компонентами... На выходе получается не модульное, раздутое на пустом месте решение. Для чего? Для того чтобы не использовать стандартное решение делегатов и ивентов в шарпе? Я конечно всё понимаю, но какое бы говно я не делал, код не должен так сильно вонять.
С делегатами он воняет сильнее, имхо. Потом тебе потребуется сохранять локальную инфу, отложить время выполнения, увеличить количество аргументов.
Ты либо троллишь, либо понятия не имеешь о чём говоришь.
>Этого шизоида не слушай. Он или троллит или просто тупой.
Сам-то много проЭктов сделал, чтобы делать такие громкие заявления делать?
Уве Болл в треде! Все в бладрейн!
Вот это уже прикольно. Только я бы во время броска разворачивал нож ровно по линии броска в плоскости полёта, чтобы он не летел восьмёркой.
Ну так это же виар. Нужно придрочиться чутка чтобы попадать.
Берёшь нож ровно
бросаешь
...
профит!
Я же писал, старая версия. Возможно уже пофиксили.
>>45705
Но это решение совершенно через жопу. Юзерам лень виндопроблемы решать, они хотят включить и чтобы все работало.
Алсо, я собираю и тестирую из под Windows 7. Сам билд x86, а не x64, чтобы даже у нищебродов на 10-летней пекарне запускался.
>>45707
Возможно им просто лень настройки трогать.
>>45708
Зарабатывает тот, кто делает только то, что нужно аудитории. И кто максимально эффективно свои ресурсы использует. Так-то можно быть дохуя специалистом по крестам, писать свой движок и вкалывать как папа Карло под оптимизацией проекта. Но не факт, что это окупится.
Профит ЮнитиЭвента в поддержке инспектора. Ты можешь прямо в редакторе делегаты назначать для публичного эвента.
Минус в производительности.
>У меня тут проблема, посоветуйте как решать?
>Но это решение совершенно через жопу.
Парень ты нормальный вообще?
О, сделай такую-же игру, только с метанием хуёв.
Ну камон, бро, мы же на геймдев-доске. Главная заповедь гейдева в том, чтобы у юзера все работало на его говне без усилий с его стороны.
10 лет назад можно было еще заставлять игроков делать такие вещи. Но сейчас, игрок просто пошлет тебя нахуй и побежит качать другую игру.
Не знаю, я уже на x86-архитектуру думаю. Возможно на последней десятке какие-то проблемы с драйвером вылезают из-за нее.
>>45781
А то по видосу не видно. Там контроллеры под HTC Vive вроде. Контроллер персонажа обычно идет из пакета интеграции с такими штуками, если анон его сам не писал.
>Кекнул
Мань, у меня 10 лет опыта C# и 5 лет опыта unity.
Раз я говорю использовать SendMessage, значит ты должен заткнуться и использовать SendMessage
Кекнул с шизика ещё раз
У меня 6 лет опыта юнити, и я говорю что сенд меседж для конченных юнити петухов, у которых лагают игры из трех пикселей.
>SendMessage
Ну его нахер. Потом хер отследишь что откуда вызывается. Уж лучше строго вызывать методы от типа, чем вот так через рефлексию.
>Да, под окулус и вайв с моушн контроллерами.
У ВРа нет будущего так как от него тошнит после 30 минут пользования.
Лол.
Нашел курс https://stepik.org/course/3944 . Как думаете, годнота? Или забить на это и проходить туторы по геймдеву на юните и дальше знание фич само придет?
Спасибо, вроде как тур по C# то что мне нужно.
Очередной обосрамс от валв. Пусть дальше скины рисуют, ничего другого они больше делать не умеют
Newells gonna Gabe
>Ну камон, бро, мы же на геймдев-доске.
Ну так выставляй при установке параметры запуска как я написал.
Например я узнал что лучше объявлять массив с известным числом элементов, например new List<T>(256) так например при добавлении нового элемента массив не будет пересоздаватся и не будет теряться процессорное время.
Или такой трюк объявлять класс как sealed, что оптимизирует работу компилятора.
Лучше сразу изучать C#-релейтед и бэст практисы, тем более если человек сам проявляет интерес. Понятно, что тормоза как правило вызваны не филдами вместо пропертей, а сотней Update с GetComponent и Instantiate/Destroy. Но обычно такие проблемы как раз у тех, кто своевременно не интересовался оптимизацией.
Лооол. Никогда не делай того что не понимаешь. Советчиков - нахуй. Оптимизует оно работу компьютера, мда.
Конкретно - нигду. Отовсюду собирают по нитке. А вообще есть тред на программаче по шарпам. И абстрактные методы оптимизации.
Всегда пользовался proGrids но впервые он поломался и никак не лечится.
Сносил и ставил заново прогрид из мэнеджера и из ассет стора, сносил и ставил сам юнити. Форум этих ушлепков закрыт, на форуме юнити не нашел решения.
Всегда все работало внезапно наебнулось при перезапуске проекта.
Суть чего?
Импортирую модель, перед этим генерю ей второй UV канал.
В юнити ставлю галку "generate lightmap UV". В свойствах объекта ставлю галку Static. Захожу в Lightning, отрубаю "Realtime global illumination", включаю "Baked GI".
По идее для моей модели должен теперь генериться лайтмап, как для всех объектов в сцене?
Если я включаю baked освещение, модель становится серая, не освещённая. Террейн освещается при этом запечённым светом. Что делать дальше не могу допереть, как осветить модель?
Забыл написать, версия unity 2018.1.6f1
>у тебя уже появились тормоза, которые надо лечить оптимизацией?
Нет, но я хочу знать подводные камни.
Итак, у меня при спуске по лестнице сцп есть девочка, которая плачет (лоуполи говно, сделанное на коленке). Идея расширения функционала такая:
Игрок когда спускается к ней получает затемнение экрана хедсета и она исчезает. Я собираюсь переделать этот момент чтобы игрок появлялся в помещении sort of dorm ибо сцп в кампусе же после затемнения. Игрок начинает бродить, собирая БУМАЖКИ привет, слендермен Там будет какая нибудь хуйня, например это будут листы с дневника. Помещения будут освещены, но не как днём. Генерацию уровня сделаю через разрезание помещений на тайлы и комбинации их в рантайме. Таким образом получится сорт оф процедурная генерация. Собрав все листы игрок сможет покинуть помещение и вернутся на лестницу.
В чём же сложность гейплея? В том, что за игроком будет гоняться призрак привет слендермен х2. Убегать от призрака в виар - так себе идея и по этому лучше сделать геймплей основанный на hide & seek. При появлении призрака свет будет мигать, давая понять игроку, что пришло время прятать очко. Но чтобы не заморачиваться со всякими хуйнями типа где прятаться я решил сделать К Р А С И В О. Игрок будет дышать в игре и это будет геймплейной механикой. Чтобы перестать дышать игроку нужно будет поднести свой motion controller к лицу (как в реале мы подносим руку к лицу), тем самым он задерживает дыхание. Задержать дыхание можно на определённое кол-во времени, для игрока это будет отображаться в виде потемнения экрана до полной темноты, где полная темнота == смерть от удушья. Так же игроку нужно будет не двигаться чтобы призрак его не видел.
Такие вот дела.
Правильно. Потому что скримеры уже устаревший приём.
Делай негромкий звук или пугай по-другому.
Хотя, я так подумал... Нахуй псевдо процедурную генерацию, лучше сделаю рандомные места для спавнов бумаг и запилю несколько уровней, повествующих откуда взялся этот бабский плач.
>>45970
Скримеры это классика, которая не устареет никогда.
>>45971
Ну дунно. Можно сделать чтобы игрок через силу начинал дышать, игнорируя руку. Это сейчас не принципиально важный вопрос.
>>45972
Они жалуются на звук. Там просто и правда высокий писк, я специально выбирал. На самом деле у меня и эмбиент звук вызывает чувство заложенных ушей, но на это вольво не жалуются, а значит похуй.
Как сбросить полность настройки эдитора
preferences? Есть файл с конфигурацией который можно удалить или заменить?
Можно же от удушья потерять сознание, а призрак дальше тебя в сраку изнасилует
Да хуй с ним. Сделал чтобы при полном затемнении кадра игрок начинал дышать с отдышкой. Так и игроку будет понятнее что происходит, и мне похуй т.к. на игровую логику это особо не влияет
Спс. Теперь не знаю по какому из двух вариантов пройтись. Думаю в итоге по этому буду учить, там вроде тем даже больше. Но не уверен что все они полезны для гейдева
Я перфекционист и хочу использовать только самые оптимизированые и правильные методы.
нет ты
Бля, а можно без потери сознания, просто заходишь в игру, находишь призрак трапа и он насилует тебя в сраку. Опционально надо сильнее на него подышать. Я бы такую игру купил.
А нахуя? У тебя оно уже захлебывается на 4 капсулах, 14 миллисекунд на фрейм это пиздос. На этом говнище речь о сотнях, максимум тысячах, какие тут миллионы объектов. Сейчас бы делать компонент классом и хранить в куче, пиздос.
>У тебя оно уже захлебывается на 4 капсулах,
Во первых это не компилированный рендер, а пререндер движка.
Во вторых у него вполне себе может стоять какая-нибудь некрокарта.
Там gpu занимает 0.3 секунды, остальные 14 - cpu, так что вряд ли проблема в карте. Надо просто принять, что нужно выбрать что-то одно из "c#" и "быстродействие", особенно если речь о ecs
Я мимо шел и просто стало интересно насколько быстрее баннимарк будет с ECS на юнити. классический баннимарк не выдерживает и 7к кроликов в 60 фпс не держит. Если что баннимарк это 2д бенчмарк.
Попробуч сначала скомпилировать и запустить через екзешник. И там уже FPS измерь. Терзают меня смутные сомнения.
Ладно пацаны, пока у меня не получится сделать баннимарк на юнити используя ECS. Я пока обычные шарпы с апи юнити выучу и потом попробую.
Возможно какая нибудь стратегия.
Я пока на печке полежу.
Сап, юные натуралисты, подскажите как делаются игори типа диаблы, в проекции будто 2.5d? Изометрические чтоли, или не знаю как это точно называется.
> Я перфекционист и хочу использовать только самые оптимизированые и правильные методы.
Ты не перфекционист, ты долбоеб, который хочет вычистить унитаз вилкой. На самом деле даже не унитаз, а огромную конюшню на табун лошадей, и не вилкой, а зубочисткой.
>>46301
>Надо просто принять, что нужно выбрать что-то одно из "c#" и "быстродействие", особенно если речь о ecs
Одно другому не мешает.
>ты долбоеб, который хочет вычистить унитаз вилкой.
Не будь таким грубым анон.
>>46162
Но ты действительно не осознаёшь что обьём работ с C# бесконечен, а на изучение даже малой доли уйдёт года 4. Просто бери что есть и работай с этим. Так проще и быстрее. А отдельные элементы всегда проще нагуглить чем с нуля сразу пилить архитектуру.
А может юнити - тормозное говно? Не задумывался о таком варианте развития событий?
Это смешно и грустно.
Чему там в юнити тормозить-то? Это ж не годот с гдскриптом и не уе4 с блюпринтами.
Шах и мат, хейтеры.
Отличный стимул продолжить пилить игру до выхода в магазин
Все движки по своему говно.
>Ты не перфекционист, ты долбоеб, который хочет вычистить унитаз вилкой. На самом деле даже не унитаз, а огромную конюшню на табун лошадей, и не вилкой, а зубочисткой.
Из за таких как ты криворуких разработчиков даже хеловорд тормозит.
>>46323
>Но ты действительно не осознаёшь что обьём работ с C# бесконечен, а на изучение даже малой доли уйдёт года 4.
Все я осознаю, я 5 лет делал парсеры на шарпе и знаю почти все подводные камни.
Кстати, стим даёт интересную статистику по трафику. В теории изучив алгоритмы работы можно получать хороший органический трафик выпуская аналоги на трендовые игры
>выпуская аналоги на трендовые игры
Если у тебя нет в команде 5-10 толковых умных ребят то пока ты выпустишь свое аналоговнет уже в тренде будут совсем другие вещи.
https://www.youtube.com/watch?v=WOdWCzC7IMk
Ты не прав. Ты почему то считаешь, что игра должна быть трипл А уровня. Возможно в тебе говорит юношеский максимализм, а возможно ты просто не хочешь понять, что люди играют даже в лютейший кал ибо им это нравится. И это есть у всех. Например мне нравятся хуёвые хоррор фильмы, которые сняты на коленке, с хуёвой актёрской игрой, псевдодокументальным стилем и нихуя не страшные. Просто они мне нравятся потому, что они до тупости забавно пытаются тебя пугать
В наше время выпустить индюшатинку много времени не занимает. Тренды - не вспышки, они имеют определённый довольно продолжительный срок жизни, за который можно очень неплохо навариться.
Теперь я понимаю почему на хайпе DayZ появились всякие WarZ и аналоги и понимаю какой же охуенный кусок пирога они откусили в своё время. Чисто на органическом трафике получить огромные прибыли это топчик.
>WarZ
Кстати, это вот отличный пример того как дёшево рубануть бабок на тренде. Тот, кто помнит какой хайп развернулся в своё время вокруг мода для армы и как после выхода в early access standalone версии DayZ, которая висела в топах продаж без скидки во время новогодней распродажи, поймёт как же озолотились создатели WarZ, которая была просто жалким китайским кривым подобием дейза, но при этом даже она имела свою какую-никакую, но аудиторию
Охуенный геймдев-тред, чё.
Потому игры сейчас и дерьмо потому что делаются для сиюминутной выгоды а не ради создания великого шедевра, хотя потребители тоже виновны том что покупают и жрут говно.
всегда проигрывал с таких вот "творцов", которые рассуждают о ШЕДЕВРАХ
сам то много шедевров насоздавал, довн?
вперде у тебя всё, довнер
Итак, я тупой тридцатилетний быдлан, который пытается вкатиться в геймдев, но т.к. тупой нихуя не получается. Поэтому спрошу здесь.
Дано: сфера, вокруг которой на определённом расстоянии должна вращаться камера (вращать саму сферу не вариант). С грехом пополам вспомнил школу и курс тригонометрии в чухане, чтобы вычислять координаты. Но с вращением камеры ума не дам. Короче помогите разобраться
void Update ()
{
if (isRotating)
{
transform.Rotate (deltaRotationX, deltaRotationY, 0);
CameraPosition.x = -40 Mathf.Cos (((transform.rotation.eulerAngles.x + deltaRotationX) Mathf.PI) / 180) Mathf.Sin (((transform.rotation.eulerAngles.y + deltaRotationY) Mathf.PI) / 180);
CameraPosition.z = -40 Mathf.Cos (((transform.rotation.eulerAngles.y + deltaRotationY) Mathf.PI) / 180);
CameraPosition.y = -40 Mathf.Sin (((transform.rotation.eulerAngles.x + deltaRotationX) Mathf.PI) / 180) Mathf.Sin (((transform.rotation.eulerAngles.y + deltaRotationY) Mathf.PI) / 180);
transform.position = new Vector3 (CameraPosition.x, CameraPosition.y, CameraPosition.z);
//transform.eulerAngles = new Vector3 (-Mathf.Acos (transform.position.x / (40 Mathf.Sin (transform.rotation.y))), -Mathf.Acos (transform.position.y / 40), 0);
//transform.rotation.eulerAngles.x = -Mathf.Acos (transform.position.x / (40 Mathf.Sin (transform.position.y)));
}
}
Ебать мои старые костыли. Залупа вышла. Короче если не сложно подскажите ещё как код сюда вставлять нормально)
Для таких целей, создается пустой объект и помещается дочерним в в сферу которая не крутится а в коде ты делаешь так transform.Rotate для пустого объекта, камера же существует дочерним объектом того пустого объекта и крутится вместе с ним.
У тебя вышло красиво но неоптимизировано, внутренние функции юнити написаны на С++ намного быстрее будут чем те которые ты напишешь.
Ладно, я мб сделаю через костыль, но хотелось бы всё равно решить задачу, исключительно чтобы понять. Размять мозги так сказать.
1624x946, 0:10
>но хотелось бы всё равно решить задачу, исключительно чтобы понять
В этом нет смысла, тебе дали высокоуровневые функции, пользуйся, делай ШЕДЕВРЫ, нет не хочу, хочу делать велосипеды.
Если хочешь понять как действительно оно все работает то заходи на сайт https://www.geogebra.org и там экспериментируй.
Так, сделал через дочку, но получилось говно.
GameObject.Find ("CameraRotator").transform.Rotate (-deltaRotationX, deltaRotationY, 0);
Хуйли он по Z крутится под сабатон?
Не, ну некоторые хорошие практики нужно значть, чтоб не писать хуиту типа FindWithTag(), FindObjectOfType() и т.д.
Оптимизировать сразу не нужно, ясенхуй. Но сдругой стороны, писать откровенный треш и надеяться потом соптимизировать глупо, т.к. хуевый изначальный подход может помножить на ноль все дальнейшие попытки оптимизации - когда прийдетс всю игру переделывать.
Лучше иметь плохо оптимизированную игру, чем хорошо оптимизированное нихуя. С учетом ограниченности ресурсов именно второе у местных адептов оптимизации и получится в итоге.
https://blogs.unity3d.com/2019/01/16/updated-terms-of-service-and-commitment-to-being-an-open-platform/
unity изменили tos и теперь improbable ничего не нарушают.
браво, юнити!
>не фартануло кидануть на доллары и разорить небольшую компанию
>испугавшись воя, поднятого коммьюнити, вернули eula обратно
>браво юнити
> кинула юнити
Я просто проигрываю с того, какие юнити-фанбои куколды.
А что им надо было делать после того, как у них отжали лицензии и забрали возможность вести бизнес дальше? Сказать "ну ладно, раз юнити-бояре так велели, значит закрываемся"?
юнити послушали отзывы коммюнити и теперь это открытая платформа. но если хочешь использовать имя и лого юнити в рекламных целях, ты должен быть официальным партнёром.
для рекламы своего сервиса.
что не так? это может создать например ложное впечатление, что твой сервис как-то официально связан с юнити и ты можешь навредить бренду.
это нормальная практика
Юнити считается плохим движком только среди мамкиных борцунов с двача или вконтакта.
Взрослые дяди считают её годным и универсальным инструментом.
Анриал они считают годным и универсальным, и готовы платить отчисления, а юнитиговно это для школьников, которые бегают по всем тредам и верещат - ЮНИТЯЯЯЯ!
даун из сосайлума, ты?
Юнитеки слишком мягкие. Контора перепродаёт технологию, причём год не шла на контакт с юнитеками и морозилась. Отзыв лицензий был бы абсолютно логичен. Причём эти improbable ещё и нагло пиздели, лол. Слишком мягкие, крайтек небось бы по судам затаскал.
>Публичный имидж unyti
Так он и так уже находится на уровне унитазного слива, при слове "юнити" первая ассоциация у всех людей вокруг - обосранные школьники, битардия, ассет флипы со скидкой 95% в стиме.
Смысл им так париться?
Если б не юнити, ты бы не рвался на 2 треда в гд )
Это такой шаблон проектирования.
1. В классическом способе все объекты в оперативной памяти располагаются хаотично из за этого процессору тяжело такие данные доставать из оперативной памяти а в екс данные объектов располагаются последовательно.
2. В классическом способе функция Update вызывается столько сколько есть объектов в сцене за один кадр к которым прикреплен С# cs файл из за этого теряется производительность, в екс функция Update вызывается только один раз за кадр для всех объектов.
https://blogs.unity3d.com/ru/2015/12/23/1k-update-calls/
3. Удобство написания кода и поведения для объектов.
>объекты в C#
>располагаются последовательно в памяти
Проиграл. Так-то в C# не напишешь нормальный аллокатор, поэтому любая реализация ECS на нём - не более чем карго-культ и пародия на полноценные языки, где такая реализация возможна.
Что там с баннимарком, кстати, еще не запилил?
Интересно, сколько сущностей это поделие может потянуть.
Типичный пример того, как, не зная нихуя, иметь своё очень важное мнение. Съеби уже и не позорься.
>для школьников, которые бегают по всем тредам и верещат
>пришел в юнититред и верещит про анриал
Чот кек.
Стим заапрувил билд, теперь игра 100% выйдет в стим.
Поебавшись чутка с помещениями я внезапно осознал сколько гемороя при создании живого окружения. Моделить кровати, столы, стулья это ещё ладно, но ведь нужно ещё и придать окружению эффект ЖИВОСТИ. В общем, решил отказаться от этой хуйни. Пока думаю как лучше всё обыграть чтобы не тратить огромное кол-во времени на это дерьмо. Возможно нужно пересмотреть core функционал и сделать что-нибудь в духе амнезии
>В общем, решил отказаться от этой хуйни
Я устал, поэтому не буду нихуя делать, пусть будет говно.
Впрочем как и все СЦП игры
>1. Ядро юньки написано на крестах.
Как будто мы не знали.
>2. Unity ECS хранит данные в неуправляемой памяти используя специальный класс native array.
И че?
>3. Массив ссылочных типов хранит ссылки, массив типов значений хранит сами значения.
Додик я это и имею виду когда говорю что массивы хранят объекты.
Жри что дают и не выёбывайся
Кирилы уже совсем обленились, вот западные Кирилы по 12 лет делают игры в одиночку, как пример игра Kenshi.
string[] хранит ссылки. int[] хранит значения интов. Все, короче, иди нахуй, дебил блядь. Объекты какие-то выдумал, охуеть.
Добавь несколько мини-игр, мудло, а не "сходи найди предохранитель в тёмной жопе дракона".
Идиот иди основы шарпа учи и не позорся.
List<Person> people = new List<Person>(3);
people.Add(new Person() { Name = "Том" });
people.Add(new Person() { Name = "Билл" });
Нужен какой то core-gameplay, без него сложно строить вообще что-либо. Спуск по лестнице - хуёвый геймплей. Я так не куплю себе дом на бали
Всё, я придумал. Весь геймплей будет строиться вокруг рассудка и пикрилейтеда. Олды на месте?
Собрал приложение на 5 сцен с простыми скриптами (код любезно одолжил у кого-попало), обычное приложение со ссылками на сайты. Писал под андроид, изначальное разрешение было 800х640. Вместо нормальных кнопок зафигачил картинку и поверх неё текст для кнопки.
В итоге после компиляции при разрешении фулХд всё поплыло по П.
Вопрос к знатокам - как сделать статичное разрешение экрана приложения, чтоб оно не катилось к собачьим черенкам при открытии. Настройки юнити там, или скрипты..
Без екс мин к/с 45
С екс мин к/с 50
Итого выигрыш 5 к/с.
Что сказать-то хотел, даун? Экземпляры класса хранятся ссылками, структуры хранятся по значениям.
А, криво прочитал. Это какое-то васянство Leopotam, там может быть что угодно.
Окей гугл, unity how to make screenshot
https://docs.unity3d.com/ScriptReference/ScreenCapture.CaptureScreenshot.html
Да не. Я знаю как делать скриишоты, но не понимаю как этот скриншот засунуть в файл сейва вместе с прочими данными сейва.
Эм, в сейв помимо текущего состояния игры запихнуть ещё и одну строчку с именем файла скриншота? Да не, бред какой-то.
Но тогда будет сейв отдельно и скриншот отдельно. А нельзя чтобы был какой-нибудь файл save.dat в котором всё это лежит?
И нахуя? Не плоди сущностей. Все игры, которые я видел, делают скрины отдельными картинками.
Да как-то неопрятно вроде получается - папка с сейвами, отдельная папка со скриншотами для сейвов, вся хуйня.
Ну хуй знает тогда. Тогда сохраняй скриншот, побайтово переписывай его в сейв, каждый раз при запуске игры - доставай оттуда. Это конечно охуеть как опрятно.
>С екс мин к/с 50
Это не екс, а какое-то позорище, настоящий ecs - это например specs в amethyst, он у меня после 100к активных объектов начал проседать ниже 60 фпс.
Там говорят оптимизация оче неважная. Врать не буду, сам не видел, но анон рассказывал, будто бы из монитора кто-то 2 fps показывал.
Код покажи как оно без гейм обджектов работает потом говори.
У тебя может быть комп по мощнее чем у меня или давай кидай тесты.
Как это мешает ему быть одной из самых быстрых многопоточных реализаций ecs из всех существующих?
>Как это мешает ему быть одной из самых быстрых многопоточных реализаций ecs из всех существующих?
Вот когда в amethyst будет графон как в юнити тогда эти тесты можно будет сравнивать.
Держи в курсе
Это копия, сохраненная 17 марта 2020 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.