24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
есть 2д прямоугольник (1), висящий на hinge. оба якоря hinge в одной точке, посередине тела. то есть, банальные качели.
к одному из плечей этих качелей еще одним hinge'м примотано другое тело (2).
что я хочу: таская (2) мышью, вращать (1) вокруг его оси. что я сделал: на каждом апдейте в (2).rigidbody2d.velocity пишу дельту от курсора мыши до (2).transform.position. что я получил: хуйню. (1) без проблем ездит по оси вслед за (2) похоже, что velocity важнее, чем джоинты.
Начал пилить свою маленькую уютную ммо на полностью ванильном юнити, с использованием юнити мастер сервера. Серверная и клиенсткая части будут пилятся в одном проекте, на раздельных сценах. Оформил контроллер персонажа сервером, вроде работает. Пока единственный подводный камень - сложно дебажить это говно, нужно постоянно лезть в настройки билда, убирать/снимать галки, билдить, потом все это запускать, короче брр, но я привыкну. Все ли правильно делаю, или это говно не способно взлететь в принципе? инб4 юзай фотон норкоман
>>162882 У юнити говняная реализация сети, как по мне. Когда я эксперементировал с сетью, то немного поковырял родные возможности юнити, а потом съебал на лидгрен. Но конечно посложнее будет для ньюфака. Ссыль: https://github.com/lidgren/lidgren-network-gen3
>>162862 >Что примечательно - полно же народу с юнити возится. Полно народу сюда пишет. Но всем блядь лень пилить перекат. И каждый раз так, тред может и на вторую страницу погрузиться но страниц больше нет, но всё равно перекат пилить не будут и продолжат писать в старый.
Лёл, всем на всё похуй, последние тредов ~5 пилил я, архивач и жалобу абу тоже. Шапка инвертированная заебись получилась.
>>162871 Движок называется не Юнити3Д, а просто Юнити. В называющем его 3Д можно сразу детектить уебана-топ-менеджера, желающего срубить бабла на быстротуториалах, слепленных на коленке... или ОПа-хуя.
>>162882 Пили клиент-сервер в одной сцене, как в каэсочке, и не еби мозги. Взлететь может, какой-то шутан в лицокниге пиарили активно, на такой хуйне сделан. Только с фотоном.
>>162888 А ещё это ты регулярно и жалуешься в тот тред о форматировании и написал там что-то вроде "абу пидор" или "я ебал абу", точно не помню, но таким шрифтом, что я охуел. Диванон! А, стоп. Не. Но хуй там абу что вернёт своими волосатыми ручонками.
>>162889 >Движок называется не Юнити3Д >Пруфец >unity3d.com Ну лан. Вообще, есть же совершенно другой движок, который называется юнити энгайн. Был, по крайней мере.
>>162948 Они похоже изначально целились в 3д и назвались соответственно, а потом поняли, что их преимущество перед аналогами - 2д под мобилочки и выпустив соответствующие инструменты убрали из названия 3д. Ctrl+f по главной странице ни одного 3д не выдает.
Ребят, я полный Игорь, в интерфейс юнити понял, но с коддингом проблемы, хоть и понимаю. Понимаю, но создать не могу. Где есть хорошие туториалы/обучалочки для даунят? Не очень люблю упарывать мануалы по овердохуя страниц и составлять логических цепочки.
>>162871 Эх, анончики, какк же меня удручает, что в юнити нет коллбэков/слушателей изменения пропертей и игровых объектов. Ну это же трындец. Я хочу знать, когда значение проперти изменилось или когда объект добавился-удалился и все в таком духе. Походу придется в Update() проверять изменения, херя производительность.
>>163021 Активность объектов не меняется сама собой. Вот где её меняешь - вот там и твой слушатель. Нахера лишний раз проверять, если ты сам и меняешь состояние? К тому же, проверить пару булов на тру-фолс - пиздец, какая потеря производительности. Проверяй в корутине, чтоб не дёргать каждый апдейт, если совсем уёбок.
>>163024 Вот они - юнити-профессионалы. Прям как гордые голуби: налетят и насрут тебе на голову.
>Нахера лишний раз проверять, если ты сам и меняешь состояние? Во многих случаях состояние меняют не мои скрипты, а какие-нить сторонние либы, или например то же гизмо в редакторе, которое меняет трансформ. >проверить пару булов на тру-фолс Как насчет десятка матриц 4х4?
>>163021 может, ты ошибся в выборе инструментов? 90% вопросов, начинающихся с "а почему тут нет..." решаются ответом типа "это есть там". найди движок под твои требования.
Нет,я спрашиваю, что лучше пилить и анимировать 3D модельки сразу в Unity. Или в 3Dmax, а потом импортировать в Unity? Чего, будет выдавать лучшее качество и меньшее время?
>>163036 Одно есть здесь, другое есть там, что-то еще есть вот там вот. Так рассуждая, вообще нельзя остановиться на каком-то одном движке. >>163033 >вотчеры Штоэта? Watchers? Ты имеешь в виду паттерн Observer? А вообще, круто было бы прикрутить events из C# для этого дела.
Ну с со слушанем пропертей еще куда ни шло. Но вот есть у меня игровой объект, у которого строго определены дочерние объекты. Но дизайнер может случайно или по незнанию удалить один из дочерних объектов, что тогда делать? В Юнити, насколько знаю, нельзя запретить удалять объекты в редакторе, так что остается в Editor-е при каждом апдейте проверять, все ли объекты на месте, вместо того, чтобы слушать события-оповещения удаления объектов. Если у меня этих дочерних объектов, утрированно, тыща штук, всю тыщу проверять при каждом апдейте как-то хуэвато.
А если сделать у здания или у модели транспорта постоянно движущуюся часть(допустим колесо мельницы или пропеллер у вертолёта) в 3D max то они будут сразу работать в Unity или придётся для них отдельно писать скрипт?
>>163031 >например то же гизмо в редакторе То есть, ты игроку дашь сцену и скажешь "скачай юнити, играй в режиме редактора"? Ты чё, ебанутый?
>дизайнер может случайно или по незнанию удалить один из дочерних объектов, что тогда делать 0. Пиздить дизайнера ногами. 1. Выдавать ошибку в приложении и закрываться. 2. Объекта не стало не в рантайме, а до запуска - одной проверки при запуске сцены будет достаточно.
>>163021 Ты придумал хуевый дизайн. В этом все дело. Зачем знать когда изменились переменные? Что это тебе даст? Расскажи что тебе именно надо сделать, и я скажу как это надо делать нормально.
>>163040 >Но вот есть у меня игровой объект, у которого строго определены дочерние объекты. Но дизайнер может случайно или по незнанию удалить один из дочерних объектов, что тогда делать? Можно скрыть эти объекты, чтобы они не показывались в иерархии. Тогда случайно никто ничего не удалит.
Посоны как поверить в себя? Я не знаю что делать со своей жизню, потому подумываю сделать игоря. Но только я начинаю об этом думать, только ставлю на закачку юнити. Как вспоминаю сколько игорей уже сделано, сколько идей уже реализовано, ито что я хочу сделать например уже гдето было. И я отменяю закачку юнити, и снова иду аутировать в ммо.
>>163082 >сколько игорей уже сделано А играть не во что. >сколько идей уже реализовано У большинства идей реализация так себе и ее еще можно дорабатывать напильником, чтобы ценители обкончались от радости. >уже гдето было Да и хуй с ним, комплекс фич почти уникален для каждой игры, несмотря на реализацию таких фич где-то еще. >аутировать в ммо Лол, аутировать можно что угодно. Сидишь в ммошке без результатов и совршаешь тонны однообразных действий, или сидишь в юнье и делаешь тоже самое. Разница только в общении, но подлиным атутистам на него похуй им и синглплеер вставляет.
Кароч, ты либо титан одниночества с туманными преспективами, либо тёма.жпг
>>163082 Запили симулятор крестьянина, возделываешь поля, доишь корову, смотришь, как помещик ебет твою жену и дочку, ходишь на рыбалку. Эдакий выживач, но в деревне без монтсров и зомби. И время поставь, чтобы игровая минута была равно ирл минуте. Прикрути кооп и аутируйте до посинения.
>>163084 Как-то так. У меня вообще другая проблема - пока в игре нет совсем нихуя - мне интересно. Начал пилить шутан. Прихуярил одну анимацию, контроллер персонажа, слоу-мо, врагов-капсули, к ним подобие ии (очень примитивное, но сложнее и не надо). Заебало. Начал пилить ммо, хуйнул инвентарь, поебался с прискиниванием шмота в рантайме, прихуярил таймер, который отправляет передвижение на сервер, хуйнул простенький сервер, прихуярил шифрование и отключил, чтоб не грузило. Заебало. Думаю, перекатиться обратно на php и написать ещё десяток браузерок.
Посмотрел я тут немного туториалов по юнити. Оказывается все легко. Такуюто йоба игру запилить можна в пару кликов. Вот только в туториале опустили один момент. ДИЗАЙН вот эти все текстурки, интерьеры, анимации. Это все если самому делать кажется пиздец задачей, если ты не прирожденный дизигнер с челкой.
>>163064 >То есть, ты игроку дашь сцену и скажешь "скачай юнити, играй в режиме редактора"? Ты чё, ебанутый? Моя конкретная задача сейчас - это как раз узнать, когда изменяется трансформ с помощью гизмо в дизайн-тайме для моего редактора уровней. Задача: тайлы должны распологаться в узлах нерегулярной квадратной сетки, и я хочу, чтобы гизмо снаппил перемещаемый объект в ближайший угол сетки. Так же я хочу в дизайн-тайме сохранить в скрипте тайла индекс узла сетки, на котором он сейчас расположен. Как это сделать? Сейчас в Editor-скрипте для скрипта тайла я на каждый апдейт беру текущий трансформ тайла, вычисляю индекс ближайшего узла сетки, беру его позицию в сцене и пихаю обратно в трансформ. Но это ппц. Нэкрасиво.
>>163064 >2. Объекта не стало не в рантайме, а до запуска - одной проверки при запуске сцены будет достаточно. Во время экспорта сцены можно проверить ее состояние и вроде как выдать ошибку, с помощью этого http://docs.unity3d.com/Manual/BuildPlayerPipeline.html (хотя я еще не пробовал). Но все равно, если дизайнер таки удалит служебный объект, то его работа остановится до тех пор, пока я не объясню ему, как это пофиксить, а это долго и чревато. Так что такие вещи надо решать заранее.
>>163104 >ДИЗАЙН вот эти все текстурки, интерьеры, анимации. Это все если самому делать кажется пиздец задачей Так и есть.
>>163107 GameObject tile = new GameObject(); tile.hideFlags = HideFlags.HideInHierarchy;
>>163105 Можешь тягать тайлы не с помощью стандартного гизмо, а свой велосипед наваять. Чтобы отключить инструменты можно использовать: Tools.current = Tool.None;
>>163130 Спасибо, анончик, HideFlags.NotEditable - это то, что нужно для моего служебного объекта. Насчет Tools.current стоит побольше поковыряться в доках и примерах, но тоже походу годнота.
Привет, аноны. У меня тут проблема: слой "GameOverScreen" в UI находится поверх слоя "TowerPanel". "TowerPanel" - это панель с кнопками. Кнопки не нажимаются, когда поверх них что-то есть, а нужно чтобы нажимались. Помогите реализовать.
А где бесплатно без смс взять вот эти все текстурки, интерьеры, анимации? И если я сделаю игоря из таких бесплатных текстурок, интерьеров, анимаций - я потом смогу продать игоря?
>>163202 >И если я сделаю игоря из таких бесплатных текстурок, интерьеров, анимаций - я потом смогу продать игоря? >где бесплатно
Нужно смотреть лицензию каждой текстурки и хуйнюшки.
Текстуры - если серьёзные сайты типа cg tetures, то можно, но опять же, смотри лицензию.
Если изменяешь текстуру до, скажем "на глаз" 60-80% неузнаваемости относительно исходника, то терпимо, но рискованно.
Интерьеры - такого вообще нет по-ходу, разве что адовое говно, покупай на асетсторе.
Модельки - есть, гугли, смотри внимательно лицензию.
Лично я не находил ничего внятного кроме фришных анимаций из асетсора и древнючего пака ~уёбищных анимаций для 3дмакса. Если кто знает где мокапы (на сиджипирс м.б.?) скачать без смс, делитесь.
Но ты же говно своё продавать вряд ли будешь, так что можно качать всё подряд, во фришных играх похуй на лицензию.
Пилю тут Tower Defense. Как мне заставить мобов идти именно по этой каменной дорожке? Потому что сейчас они у меня идут по самому короткому пути к противоположному шатру.
>>163226 Есть постоянно шагающий мод, есть цель, к которой он всегда повернут лицом, как только дошагал до цели - меняешь цель на следующую, моб поворачивается к другой цели и продолжает движение, если цель конечная - взрываешь моба, все.
Делаешь статческий класс с методами Observe, который хавает ключ эвента и коллбек, и Trigger, который хавает собственно ключ и EventArgs, в который ты запихиваешь все нужные аргументы.
В том месте, где ты что-то меняешь, триггеришь эвент. Если у тебя редактор или сторонние либы меняют что-то, то экстендишь их и хуяришь эвенты после базового метода от их имени.
>>163232 Ну тут у тебя только один путь, дружище: учиться кодить. Либо ты находишь кодера и вы с ним разделяете обязанности (ты - арт, программер - код). Выпрашивание у ананчика на бордах кода - это путь в никуда.
А как она может не позволить? Метод, который что-то меняет, должен быть явен в коде, что значит что его можно оверлоаднуть, вызвать его же и триггер. Если это что-то совсем тёмное и левое, то можно тупо рефлекшном прорубиться куда угодно и просто подменить метод.
Бананасы, у меня очередной принципиальный вопрос. Вот есть у меня игровой объект, к нему приаттачен скрипт, в котором написана логика объекта. У объекта могут быть дочерние объекты - инстансы префаба. Для скрипта объекта есть Editor-скрипт, который рисует кнопку "Добавить итем" в инспекторе, по нажатию на которую должен создасться инстанс и добавиться как дочерний объект к нашему объекту. Собственно вопрос: где реализовывать логику добавления итема - в самом скрипте (функция, которую вызывает эдитор-скрипт) или собственно в эдитор-скрипте?
>>163240 >А как она может не позволить? Sealed class или sealed method например. Вообще, в нормальной архитектуре автор позволяет переопределять только те методы, которые логически предназначены для переопределения, но не все остальные.
Бля, ну кто просит Юнити так разъебывать трансформ объекта, после того, как его в скрипте добавляют как дочерний объект к другому объекту. Юнити, ну что ты делаешь?
>>163247 Ну вот почему хитровыебанное поведение, о котором его никто не просит, стоит по умолчанию, и чтобы его отключить, нужно поставить какой-то скрытый злоебучий флаг, который хуй найдешь?
Посоны, какой редактор кода использовать с Unity? В Mono Develop расстраивает отсутствие возможности свернуть функцию, плюс он притормаживал при переключении между скриптами. Хочется иметь всё это плюс тёмная цветовая схема и возможность заходить в Debug Mode.
>>163259 Ну а что ты хотел, там есть VS, а сисярп не под вендой это как минимум СТРАННО. Попробуй поставить параллелс и вендой, туда тот же VS и прикрутить к юнити
В общем так посоны, я уже собрался спать, и как любой анан перед сном вздрочнул, и уже засыпая, понял что моя жизнь пуста. По этому теперь я буду делать ммо рпг.да, я нихуя не умею, а ещё я умственно отсталый, ну то есть у меня нет диагноза, но думаю если со мной пообщается психиатр, он будет... Что мне нужно для этого?8
>>163266 Таким не занимался, но думаю это не сильно сложно сделать. Рисуешь стрелочки в OnDrawGizmos(), перехватываешь события мыши и тягаешь свои объекты куда надо.
>>163250 Было бы другое поведение по умолчанию и мудило вроде тебя опять бы пришел жаловаться. Учись смотреть список перегруженных методов прежде чем обиженку строить.
>>163243 Если во время игры не будет использоваться метод для добавления объекта, то лучше вынести в эдитор. Ну и само собой это при условии, что этот метод не использует активно внутренние данные скрипта висящего на объекте.
>>163271 Самое главное - это конечно же придумать название. Потом нужно создать паблик вконтактике и начать собирать команду. Ну а дальше оно само пойдет.
>>163273 Форум и сайт написать могу. Знаю пхп(довольно хуёво). Можно про железо попожробней? Если я например запущу её в стим гринлайт, мне разрешат юзать сервера габена?
>>163271 Принять Ислам. Сириусли, как вы, блин, не понимаете, что ммо — самые сложные, маштабные и затратные проекты? Первая мысль, что появляется у школьника — это ММО или СИМУЛЯТОР ЖИЗНИ.
>>163298 Я так понимаю для начала мне в команду нужны: Ххудожник, чувак знающий толк в серверах, (маркетолог на примете уже есть я его ебуточнее его руку) настоящий програмист а не обезьянка типа меня. Историк(игра будет типа историческая, а не фентези говно) И всё ? Можно приступать?
- художник, - чувак знающий толк в серверах - настоящий программист - историк
Но нужен ли ты им? Эпоха метамодернизма ёпт, все нетакиекакфсе устали друг от друга, попробуй-ка своим говном кого-то заинтересовать. удачи, я в тебя верю
Я знаю что братся сразу за масштабный проэкт это сложно, но что если если бы также разсуждал Джобс: -Стив! Я придумал охуенную тему! Мы запилим макентош! -Нет, Стив, это слишком сложно, пошли лучше сосать хуи на трасе! Стив... пошли... сосать... хуи...
>>163329 Ну так и тут никто не предлагает пилить крестики-нолики, можно начать с понга или змейки. Впрочем, калькулятор - составляющая часть любого компьютера, так что они таки начали с него, да.
>>163329 > сразу взялись за компьютер Тогда все брались за него, глупыш. Такое было время, ПК как бизнес-концепции ещё не полноценно сложилась, процессоры и провода продавались россыпью. Они всего лишь оседлали тренд, сделав ставку на внимание к мелочам. Грубо говоря, выстрелило не охуенное инженерное новаторство возняка, а педантичность и скурпулёзность джобса, поданные под соусом элитности. Грубо говоря, они продавали полированные корпуса, когда остальные продавали корпуса с торчащими пластмассовыми излишками.
Опять в ассет строе сломали кнопку покупки. Схуя я должен покупать собственные асеты?
Вопрос по iOSАноним09/04/15 Чтв 00:22:32#126№163408
Братцы, кто-нибудь разрабатывал под этот ад? Интересуют следующие моменты: Что с разрешением для разных девайсов? Айфон, айпад, ретина и всё это дерьмо? Нужно делать овер дохуя атласов и как-то между ними переключатся при запуске игры в зависимости от разрешения или юнька сама всё это делает ? Мб есть ещё какие-то подводные камни, о которых лучше всего узнать в начале разработки? Кликалка в стиле кетчаповских игорей
>>163367 DamageScreen - это картинка с малиновым вареньем поверх всего. В нормальном состоянии альфа-канал у нее на нуле, при получении урона она на время становится видимой.
>>163446 Но тогда, когда она включается(а это происходит во время блядь игры), на кнопки нажать не получится. И что в итоге - в тебя стреляют, ты пытаешься убежать или стрелять в ответ, но тебе мешает ВАРЕНЬЕ ! Мимопроходил
>>163462 Ну так это тоже самое что и у него. Только у него всегда нельзя нажимать на кнопку, потому что ВАРЕНЬЕ блокирует. А у меня хотя бы когда его нет - можно жать на кнопки, когда есть - нужно жать на варенье. Все логично жи.
Нужно в скрипте указать базовый класс, и потом как-то назначить в эту переменную любой из наследников, да так чтобы они показывались в инспекторе и сериализировались. Это вообще возможно?
>>163531 Например, у меня в игре есть класс Goal для целей персонажей. И много наследников этого класса, которые реализуют специальные цели. Я хочу в редакторе для каждого отдельного персонажа выбрать цель и настраивать ее.
Начинаю осваивать это ваше Unity после N лет кодинга. Буду писать, что мне не нравится и разбивать мечты о том, что юнити это дар божий.
Номер один. Юнити, а как мне нарисовать прямоугольник? Нет ничего проще! Берёшь, создаёшь текстуру 1х1, красишь этот самый пиксель нужным цветом, а, да, ещё тебе нужен гуйстайл. И уже после этого ты берёшь и создаёшь гуйпрямоугольник.
Brilliant. Нужно писать кастомную функцию, чтобы нарисовать прямоугольник. В 100% движков это есть из коробки.
>>163536 Юичепидор, ты задрал своим траленгом уже. Иди ебись с крестами в свой тред, тут тебе не рады. И да, юнити - не дар божий и все это прекрасно понимают.
Короче в пизду эти ммо, шутаны третьего поколения, ААА рпг с открытым миром, симуляторы ГОНОЧЕК И прочую йобу. На одном бесплатном говне из ассет сторе нихуя стоящего не запилить, а за пизженный графоний потом ебало еще начистят, нахуй нахуй Пойду пилить стратежку "квадратики против кругляшков"
>>163542 > Пойду пилить стратежку "квадратики против кругляшков" Так кстати и надо делать. Сначала делаешь интересно на уровне "крестики против квадратиков", потом делаешь/покупаешь подходящий контент.
>>163544 Я полтора года превозмогал, шароебился по всем интернетам в поисках фришных ресурсов, и только сейчас, наконец, СМИРИЛСЯ с тем, что так дальше не пойдет и йоба-шедевор, убийцу топовых инди тайтлов в штиме я с голой жопой, имея только навыки скриптоблядства, не запилю. Сейчас испытываю баттхерт и депрессию. Что у меня в итоге есть: исследованный вдоль и поперек юнити, десятки брошенных проектов совершенно разных направлений, разрушенные под фундамент амбиции и пустая голова идей.
>>163558 Никто мне не ответит. Тут нет таких профи в юнити. Сам я решил использовать XML для настроек, добавлять его к как TextAsset и уже при старте все инициализировать.
>>163572 И что это? Как это настроить в инспекторе? Мне не нужен базовый класс. Как мне в инспекторе выбрать наследник класса Goal, и настроить его переменные?
>>163463 Во-первых, я эту херню не сам придумал, а спиздил из мануалов юнити. Во-вторых, когда ВАРЕНЬЕ и все остальные подобные экраны я перенес на другой холст - у меня все стало работать заебись. Ананасик.
>>163300 >Я так понимаю для начала мне в команду нужны: >Ххудожник, чувак знающий толк в серверах, (маркетолог на примете уже есть я его ебу точнее его руку) настоящий програмист а не обезьянка типа меня. Историк(игра будет типа историческая, а не фентези говно) Я немного рисую, умею в тридє-модели, по образованию программист, шарп нормально знаю. Еще и историей с самого детства увлекаюсь, и неплохо, как я считаю, знаю ее (а еще шарю в археологии, поп. генетике, антропологии). Опиши, что за игорь, может мне интересно будет?
Здравствуй анон. Я кирил. Пилю "игру мечты". В качестве движка выбрал юнити. Возникли кое-какие вопросы. Потому я здесь. Пока что я разбираюсь с движком по видосам с ютуба, от "игроделов"-школьников. Итак, вопросы.
1. Как я понял из видосов, за управление объектами отвечают скрипты, приаттаченные к объектам. А есть ли возможность использовать в сцене некий глобальный скрипт, который будет управлять всеми объектами в сцене? Можно ли скрипты объектов объединять в неймспейсы? Как из скрипта, прикрепленного к одному объекту, получить доступ к полю класса, описанного в скрипте к другому объекту?
2. Как получить полный список всех объектов в сцене? Пока что я додумался только до передачи всех объектов сцены в скрипт, в качестве паблик полей класса. Но ведь должен же быть и вменяемый метод? Стандартная коллекция там какая-то.
3. Я нашел кусок кода, который программно создает объект (в данном случае снаряд, вылетающий из пушки):
Как я понял, создается объект "copy", в точке "spawn_point.transform.position", и вылетает в направлении "Quaternion.identity". Данный кватернион направляет вектор в соответствии со значением ротейта объекта, по отношению к родительскому объекту. То есть, если объект после создания не вращался, то выстрел произойдет точно в том направлении, куда смотрит родительский объект. Например, есть моделька хикки, которая смотрит в определенном направлении. У хикки в руках пистолет, ствол которого являет собою цилиндр из юнити. Цилинд создается в вертикальном положении. Потому, для того, чтобы он стал стволом, его нужно повернуть на 90 градусов по одной из осей. И тогда, при стрельбе получается, что снаряд летит в пол, из-за того, что Quaternion.identity возвращает 90 градусов по иксу. Как мне преобразовать этот кватернион, чтобы итоговый был смещен на "х" градусов по определенной шкале? Если можно, объясните попроще, без углублений в матан, потому что я тупой мудак.
4. Как мне задать уникальное имя каждому объекту, созданному кодом, описанным в предыдущем вопросе?
5. Как программно уничтожить объект? Например, как лучше всего уничтожить снаряды, создаваемые кодом, описанным в третьем вопросе? На вскидку у меня есть идея, прикрутить к базовой модели снаряда скрипт, который определит время жизни снаряда, и если снаряд не встретится с поверхностью, то скрипт должен будет применить к объекту какой-то деструктор (или как оно тут делается?).
6. Можно ли на юнити делать анимированные текстуры ГУИ? Например, анимированный прицел, с выводом информации, всякими прогрессбарами и вращающимися вокруг точки свистелками. Как вообще объединить текстовый гуибокс с гуитекстурой?
7. Поясните за скайбоксы. Как их вообще правильно делать? Как правильно искажать квадратную текстуру, ложащуюся на сторону скайбокс-куба, чтобы скайбокс не выглядел кубом, а выглядел сферой? Можно ли в скайбокс захуярить анимацию и шейдеры? Если да, то как это сделать?
Отдельно очень прошу поделиться гайдами (желательно на русском, ибо я не знаю ингриш на столько, чтобы читать объемные тексты) по темам, поднятым в моих вопросах (да и вообще любыми гайдами). В общем, аноны выручайте, вся надежда на вас.
>>163594 1. Кратко - да. Теоретически, можно работать так, что в Юнити только ассеты класть, а все остальное кодом создавать, включая уровни (хранить в своем формате например). 2. По созданию и уничтожению. Так делать плохо, включается Garbage Collector, просадка по производительности. Гугли ObjectPool.
>>163595 Спасибо за оперативный ответ. Поясни подробнее за программное создание всего. Где вообще точка входа? Куда лепить скрипт, который должен выполняться после загрузки сцены, и как он должен выглядеть (схематически)? Может, есть где про это почитать подробно?
>>163597 Создаешь скрипт, кидаешь на сцену пустой ГО, в скрипте в Start() пихаешь инициализацию, в Update() организуешь главный цикл, например. Но это самый инвалидский способ организации архитектуры в юнити, как по мне.
>>163594 3) Самое простое, домножь кватернион на Quaternion.Euler(90,0,0) 4)Ну хз, обычно этими именами особо не пользуются, но если надо, прибавляй при инициализации рандомную строку в имя. 5)Destroy(gameobject) 6)Ясен пень можно, ищи туторы, старый гуй не юзай, он говно. 7)Искажай как и везде, это не движкоспецифичный вопрос, а еще в пятой версии есть сносный процедурный скайбокс.
Про гайды ничего не скажу, на русском читал только древний FPS Tutorial чуть ли не от первых версий юнити, дальше ингриш и метод тыка.
>>163598 >3) Самое простое, домножь кватернион на Quaternion.Euler(90,0,0) Я пробовал, ничего не меняется. Вот весь код запуска снарядов:
ShotInstance = (Transform)Instantiate(bullet, GameObject.Find("BulletSpawnPoint05").transform.position, Quaternion.identity); ShotInstance.rigidbody.AddForce((transform.forward) * ShotForce); Если умножать кватернион в Instantiate ничего не изменяется. Куда летело, туда и летит. Если менять вектор силы, то снаряд просто перестает вылетать вообще. В чем может быть проблема? Как вариант, скрипт можно перецепить на пустышку, которая у меня служит спавнпоинтом. Либо повернуть ствол в нулевой ротейт. Но все же хотелось бы знать, в чем проблема.
>6)Ясен пень можно, ищи туторы, старый гуй не юзай, он говно. А можно подробнее про новый гуи. Что про него можно почитать, и как его искать вообще?
>7)Искажай как и везде, это не движкоспецифичный вопрос, а еще в пятой версии есть сносный процедурный скайбокс. Проблема в том, что я вообще раньше не сталкивался с игровыми движками, и недавно впервые услышал про существование скайбоксов. Мб есть какие-то стандартные решения, для искажения? Ткни хоть, что почитать про это. И да, спасибо.
>>163601 Алан Thorn будет по C# основы, а также сценарий в единство с помощью языка C#. Здесь вы узнаете, как создавать основные файлы сценариев и получите и понимания для переменных, функций, события, циклы, условных заявлений, и классы, вы получите намочить ноги с программирование в единстве.
>>163602 3) Делай так: Instantiate(bullet, GameObject.Find("BulletSpawnPoint05").transform.position, GameObject.Find("BulletSpawnPoint05").transform.TransformDirection(Vector3.forward)); Если надо, еще умножь на кватернион нужного угла. И да, лучше как можно меньше юзать поиск по имени. И ненадежно, и очень медленно. Лучше держать нормальную ссылку на объект. 6) На русском хз, на английском нормально ищется по "Unity 5 GUI", а вообще он довольно прост, если не считать некоторых моментов. Тянешь на сцену холст, на нем мышкой тягаешь элементы, можно спавнить их из префабов, держать несколько холстов на экране одновременно, этц. Для простых действий даже кодить не надо ничего.
7) Я не знаю, потому что скайбоксы либо воровал, либо юзал процедурные. Но так как это общий вопрос, найти будет несложно.
Получилось у меня сделать им навмеш, налепил несколько плоскостей и сделал их невидимыми, но теперь проблема следующая, идут они по краям плоскостей, а мне нужно по центру. Есть идеи?
>>163575 И что это? Ты добавил 2 одинаковых скрипта? Мне надо допустим так: Goal[] myGoals; в инспекторе это будет как массив целей. А мне надо, например, третьим элементом сделать CollectItemGoal.
>>163610 Норкоман? Создаешь массив объектов родительского класса. А потом мышой тягаешь туда то, что нужно. Дочерние классы, ЕМНИП, прекрасно даже в инспекторе назначаются на такие переменные.
>>163611 >А потом мышой тягаешь туда то, что нужно. Что ты туда тягать собрался? Поля-то будут от класса Goal и сохранится он какGoal , а мне надо от CollectItemGoal или любого другого какой я выберу.
>>163631 1) Делаешь массив пустых объектов (это будут точки на которых мобы будут менять направление движения).
2) Для вычисления направления от текущего положения к заданной точке используй следующее: Vector3 dir = (target.position - transform.position).normalized;
3) Для перемещения по заданному направлению: Vector3 curr_pos = transform.position; curr_pos += Time.deltaTime velocity dir; transform.position = curr_pos;
4) Для вычисления угла поворота: float angle = Vector3.Angle(transform.position, target.position); transform.localEulerAngles = new Vector3(0, 0, angle);
5) Для проверки достиг ли моб целевой точки: Vector3 curr_dir = target.position - transform.position; if(curr_dir.xdir.x+curr_dir.ydir.y < 0) { //достиг }
Доступ к компонентам после LoadLevelАноним10/04/15 Птн 16:59:47#172№163643
Привет, Кириллы, я нуб, пилю класс Game Manager для простенькой головоломки. Хочу, чтобы он описывал действия, производимые игроком в главном меню (такие как выбор уровня и некоторые настройки, позволяющие кастомизировать головоломку под себя), а так же действия связанные непосредственно с решением головоломки, которая находится в отдельной сцене. Для этого использую неудаляемый при загрузке синглтон. Проблема: сразу после загрузки сцены моему классу требуется доступ к некоторым объектам сцены (к Text, который хранит счётчик очков). Пишу: >GameObject Score = GameObject.Find("Score"); Объект находится, но как только я пытаюсь получить доступ к его компоненту Text: >Score.GetComponent<Text> (); вылетает ошибка, что-то вроде null reference - сейчас нет возможности запустить код, чтобы проверить. В общем, компонент найти не удаётся. Если же подождать какое-то время через WaitForSeconds(), компонент становится доступен. Получается обратиться к Score я могу в следующей же строчке после загрузки сцены, а его компонентам нужно время чтобы прогрузиться? Можно было бы запилить WaitForSeconds(0.1), но это же какой-то костыль. У меня такое ощущение, что я принципиально неправильно подхожу к проектированию структуры моей игры. Буду рад советам.
>>163643 кажется, я через жопу описал структуру проекта. Есть две сцены: MainMenu и Puzzle. В MainMenu создаётся неудаляемый синглтон GameManager, который по клику грузит сцену Puzzle и сразу пытается обратиться к компонентам её объектов. Тут-то и происходит фэйл.
>2. Как получить полный список всех объектов в сцене?
foreach(gameObject currentElement in FindObjectsOfType(typeof(gameObject)) as gameObject[]) { //DoSomething } скорее всего это тебе не нужно, что бы ты ни задумал, можно сделать проще и быстрее.
>3. Я нашел кусок кода, который программно создает объект (в данном случае снаряд, вылетающий из пушки): >Transform copy = (Transform) Instantiate (obj_to_copy, GameObject.Find("spawn_point").transform.position, Quaternion.identity); >Как я понял, создается объект "copy", в точке "spawn_point.transform.position", и вылетает в направлении "Quaternion.identity". Данный кватернион направляет вектор в соответствии со значением ротейта объекта, по отношению к родительскому объекту. То есть, если объект после создания не вращался, то выстрел произойдет точно в том направлении, куда смотрит родительский объект. Например, есть моделька хикки, которая смотрит в определенном направлении. У хикки в руках пистолет, ствол которого являет собою цилиндр из юнити. Цилинд создается в вертикальном положении. Потому, для того, чтобы он стал стволом, его нужно повернуть на 90 градусов по одной из осей. И тогда, при стрельбе получается, что снаряд летит в пол, из-за того, что Quaternion.identity возвращает 90 градусов по иксу. Как мне преобразовать этот кватернион, чтобы итоговый был смещен на "х" градусов по определенной шкале? Если можно, объясните попроще, без углублений в матан, потому что я тупой мудак.
Самый простой способ - поставить пустой GameObject в руку хикки или в пистолет и развернуть его нужным образом. Скрипт-спавнер прицепить на эту пустышку.
>4. Как мне задать уникальное имя каждому объекту, созданному кодом, описанным в предыдущем вопросе?
Функция Instantiate сделает все сама.
>5. Как программно уничтожить объект? Например, как лучше всего уничтожить снаряды, создаваемые кодом, описанным в третьем вопросе? На вскидку у меня есть идея, прикрутить к базовой модели снаряда скрипт, который определит время жизни снаряда, и если снаряд не встретится с поверхностью, то скрипт должен будет применить к объекту какой-то деструктор (или как оно тут делается?).
скрипт добавляется к префабу пули. Пуля будет уничтожена через 5 секунд после инстанса void Start(){ Destroy(this.gameObject, 5f); }
>6. Можно ли на юнити делать анимированные текстуры ГУИ? Например, анимированный прицел, с выводом информации, всякими прогрессбарами и вращающимися вокруг точки свистелками. Как вообще объединить текстовый гуибокс с гуитекстурой?
Можно все. Про интерфейс гугли "unity 4.6 gui" это очень обширная тема
>7. Поясните за скайбоксы. Как их вообще правильно делать? Как правильно искажать квадратную текстуру, ложащуюся на сторону скайбокс-куба, чтобы скайбокс не выглядел кубом, а выглядел сферой? Можно ли в скайбокс захуярить анимацию и шейдеры? Если да, то как это сделать?
про более продвинутое небо гугли unity skydome, родных инструментов для этого у юнити пока нету, нужно делать свои.
>Отдельно очень прошу поделиться гайдами (желательно на русском, ибо я не знаю ингриш на столько, чтобы читать объемные тексты) по темам, поднятым в моих вопросах (да и вообще любыми гайдами).
Мануал на офсайте от корки до корки для начала прочитай, он на русском.
>>163643 В OnLevelWasLoaded(int) пытаешься свежезагруженные объекты ковырять? Если да, попробуй WaitForUpdate, как раз все заинициализируется и уже сделаешь что надо.
Лолируйте с меня, аноны. В моей Tower Defense башни прощупывают цель с помощью рейкастов. И закрался как-то в мою игру баг: если у двух башен радиусы поражения пересекаются, то выстрелы происходят, а поражение цели нет. И решил я проверить, во что там рейкасты у башен упираются, не доходя до цели. Добавил в код дебаг с выводом хита. Как увидел лог (пикрелейтед) поржал с себя самого.
Посоны, только не бейте - как мне мой быдлокод (C#) для маленькой консольной программки (сорт оф калькулятор) заставить исполнятся в юнити? Где именно - пофиг - хоть в кастомном окошке, хоть в консоли. Желательно не в игре.
>>163647 Повесь на цели тег и проверяй, во что упёрся райкаст по тегу или используй слои. Разве сложно так? Очевидно, что райкаст и должен упираться в райкаст.
>>163700 Ну, всё-таки часто пишут, что брутфорс - зло, мобов может оказаться больше и т.д, и т.д. Да и внезапно ссылок на мобов может нигде и не быть, если они инстансятся через жопу или наоборот, заранее растыканы по уровню, а ручками массивы забивать лень. И писать поиск мобов с добавлением в массив - тоже лень. Плюс, райкаст сразу даёт направление, сообщает нет ли пересечений с другой хуитой и т.д.
>ссылок на мобов может нигде и не быть Ясно. Программирование уровня /gd/. Ну ты им теги хотя бы поставь. Искать по тегу быстро.
>райкаст сразу даёт направление Какое направление? Башня стреляет вокруг себя в определенном радиусе. Ты по всем возможным углам будешь рейкаст делать?
>>163703 >>163704 Я ж говорю, кастуй сферу и вытаскивай из выдачи всех мобов, что в этом-то сложного? Обязательно надо изобретать самые невротъебенные обходные пути.
>>163704 >А райкаст не брутфорс чтоли? Так оно через физон, а физон работает быстро. В нём же оптимизации.
>Какое направление? Очевидно, что от башни к мобу. Но я не тот анон, который пилит товер дефенс, просто написал, почему это может быть удобно использоваться. Когда-то пилил хуиту, ссылки на мобов хранились, но меж тем я всё равно раскастил из моба к игроку для различных целей. Хотя теперь понимаю, что можно было и обойтись, но хуй знает. И так работало и не тормозило.
Козлики, решил запилить простенькую 3D браузерку с сетью на photon cloud. Стоит ли её создавать на Unity 5? Или лучше пока использовать четвёртую версию?
>Сконпелируй свой калькулятор как dll и кинь в папку с ассетами. Все.
Спасибо, не знал. Пролинковал в VS UnityEngine и UnityEditor dllки, в юнити импорт сетингс указал Эдитор/Стендэлон, ос Виндовс, х86-64, а что в коде менять? Это изначально калькулятор в виндовой консольке, также, результат кроме окошка консоли выводился ещё в буфер обмена и в лог.тхт а мне нужно чтобы эти значения вводились/считались где-то в юнити
>>163744 Будешь юзать пятёрку - выброси стандартный террейн, если свет запекаться будет сотню лет. А так всё работает очень хорошо, для простеньких гуёв новый гуй лучше старого. Только с запеканием света накосячили, бист лучше был плюс запекание террейна может занять джве недели и всё равно не запечётся. Хуй знает, почему.
Кстати, про террейны, хочу к своей параше присобачить огромный бесшовный мир. В теории, точность ебучего флоата 7 знаков, 10 000 метров должно жрать спокойно. На деле у меня начинается проблема с этими флоатами уже на третьей тысяче, до двух с половиной ещё куда ни шло. Итого, мирок пять на пять, двадцать пять км квадратных, это как-то маловато для моей йоба-параши. В уе4 есть "ворлд атлас", но он говно, потому что уе4 говно и не хотелось бы жрать говно только потому, что ниасилил. Плюс там, если не ошибаюсь, прихуярили двойную точность, а это потеря флопсов раз в пять-десять. Нахуй надо, короч. Так вот, отошёл от темы. Если мирок можно хуйнуть не более 2.5км от центра мира, получается, что вариантов у нас не так много. 1. Загрузка других сцен. 2. Аддитивная загрузка других сцен. 3. Сдвигание центра мира. Пилил кто-то что-то такое? Загрузка сцен выглядит самым простым, но тогда будет не один большой мир, а дохуя миров средних размеров. Аддитивная загрузка сцен - сдвигает ли она мировые координаты? А если нет - нахера она нужна вообще, блядь? Ну и ручное сдвигание центра мира наверняка уебёт меня по башке проблемами с относительным позиционированием и физоном. Да, кстати, забавный хак, можно сделать везде скейл 0.5 вместо 1.0 и получить уже 5км от центра мира, но могут появиться проблемы с физонием. Сделал 0.75 хотя все скейлы 1.0, работает нормально. В принципе, теперь понятно почему во всей ммопараше персонажи выглядят, как милипиздрические куклы. Дохуя накатал, ну и хуй с этой хуйнёй. Попробую закодить каждый вариант. Инб: с этого и начинай, пидор графоманский.
>>163750 >а что в коде менять? Засунь весь свой код в класс MoyCalculator, да сделай функции работы с ним. В юнити где угодно пишешь var calculator = new MoyCalculator(); Debug.Log(calculator.poshitay(2,2)); как-то так
>>163750 >результат кроме окошка консоли выводился ещё в буфер обмена и в лог.тхт Ебать ты девелопер.
У Cosole есть выходной поток Out, задать можно через SetOut(TextWriter). Если назначить через него MemoryStreem то можно читать програмно вывод на консольку.
Коде: // инициализация где-то в юните! MemoryStream MS = new MemoryStream(); TextReader TR = new StreamReader(MS); TextWriter TW = new StreamWriter(MS); Console.SetOut(TW);
// где-то в недрах калькулятора Console.WriteLine("Calculator Obezumel!");
// вот хз как часто делает это консолька - тут это в целях теста. TW.Flush();
// чтение в юните MS.Position = 0; string MsgFromCalculator = TR.ReadToEnd(); // еба очистка сообщения MS.SetLength(0);
// где-то в недрах калькулятора Console.WriteLine("222222222222!");
>>163753 >Попробую закодить каждый вариант. Аддитивная загрузка центр мира не сдвигает, потому сдвигаю сам. Всё игровые координаты пришлось перепаять в относительные вместо абсолютных, хуй знает, что из этого может выйти. Решил на всякий случай перевести их в даблы, чтобы не проебать всю точность. Либо потом навешаю "вейпоинтов" - если игрок находится в коллайдере Х_1, значит его координаты такие-то. Но как-то костыльно. Что весело - похоже, физонию похуй на мгновенное перемещение на тысячу метров влево-вправо. Осталось слепить триллион сцен с одним террейном и дело в шляпе.
Аноны, подскажите в чем может быть проблема. Пилю игру для IOS/Android. При нажатии на кнопку загружаю сцену стандартным Application.LoadLevel (name) и начинаются чудеса. Метод то срабатывает и загружается сцена - все норм, то просто наглухо виснет. ЧЗХ?!?! Я конечно загружаю сцену уже нагрузив 190мг на CPU и прибавляю еще 50 но даже 4s может еще чуть выдержать, да и к тому же профайлер на икскоде продолжает работать с мобилой как будто все норм . Конкретно игра стала так делать( ну так мне кажется) после обновления юньки( с 4.3 на 4.6f, кстати после обновления onMouseDown и подобные ему стали почему-то работать с тачем очередной ЧСХ! Вы не наблюдали?)
>>163882 Короче сам спросил, сам понял, что дурак. Если в быстродереве дерево тупо сохранить и сунуть в юнити, то оно там отобразится, как меш. В террейн ставится. Но на террейне не рисуется. Надо юзать экспорт. Но вот беда, для растительности на террейне юнити инключит в шейдоры этой самой растительности шейдор террейна и подмешивает туда цвета. Причём тупо умножением. Надо ебаться с хидден шейдорами и выпиливать к хуям эту фичу.
>>163694 if (Physics.Raycast(shootRay, out hit, attackDistance, enemyLayer))
Не совсем понял как работает рейкаст. Если я четвертым аргументом передам слой, который нужно чекать, то при попадании луча в объект другого слоя луч останавливается и рейкаст возвращает фолс что ли? Ибо видно как одна из башен тупо провожает цель взглядом и не стреляет, потому что ее рейкаст нащупал другой рейкаст.
>>163931 По-моему, надо уже после хита проверять if(hit.transform.gameObject.tag == "Huita") Или if(hit.collider.tag == "Huita")
>>163917 Бля, но как эту педерастию побороть? В основном шейдоре цвет задаётся хуй знает зачем, потом альфа этого цвета (который сплошной) умножается для катаута. Если это убрать - ничего не ломается. Но если в основном шейдоре не задать цвет, то цветом будет считаться белый. Он каким-то образом потом добавляется к цвету в SpeedTreeCommon.cginc. Ну, не мешает и хуй с ним. Но из-за ебанистической системы юнити потом на этот же мейн колор снова умножается цвет где-то в недрах TerrainEngine.cginc. Я точно помню, что выпиливал когда-то это дерьмо для травы, потому что все цвета херятся. А сейчас нихуя не могу найти, где удалить. Ну же аноны, неужели никого не смутили беложёлтые деревь на террейне? Или крутанули цвет в серозелёный и забили?
А ты, что называется, не охуел? Час только прошел. Изволь ждать, когда ответят если ответят. Это не платная техподдержка и даже не стэковерфлоу, чтобы тебе все бросались отвечать. Гугл есть, в конце концов.
>>163936 Пиздооос. Короче проблема снова в энлигтехерн. Если при рисовании по террейну получаются белые деревья - надо запечь лайтмапу, потому что это к ней домножается мейн колор лишний раз. Но деревья будут один хуй ярче, чем вся остальная сцена, так что нельзя ставить мейн колор в 255, надо ставить по 128 и тогда ещё кое-как.
>>163940 Создаёшь новый тип объектов для ачивок, в объекте хранится инт и стринг. Создаёшь массив объектов-ачивок. Я так и собираюсь делать.
Кто уже писал шейдеры под 5-ку? чтоб пбр, все дела. Как передать в стандартную модель освещения окклюжн?
Короче пишу o.Occlusion = _OcclusionTex.g И ничего не происходит. Что угодно пихаю туда - никаких изменений, и никаких ошибок. С остальными параметрами все отлично.
>>163968 Почему бы не проверять в момент действия? Скажем, есть функция подбора вещи, при подборе ставим +1 в массив. Индекс ячейки - айдишник вещи, первое значение кол-во до достижения, второе - кол-во набранное. Для тех же квестов "убей триллион клопов" можно динамически создавать такие объекты и при киллах проверять, тот ли айди противника и тоже плюсовать. Ну хуй знает, я до этого пока не дошёл и точно не скажу, как удобнее.
В общем, посоны, как всегда спасибо за ваши ценные советы. Юнити-тред продолжает оставаться самым полезным тредом в /gd/. Я решил сделать так, с использованием REGISTRY паттерна.
>>163979 Пишу шейдеры, проблем никаких. Сейчас прикрутил 0-1 слайдер проверил оклюжн, работает как часы. o.Occlusion = _AO; Если сэмплишь его из текстуры, то надо же писать что то вроде o.Occlusion = tex2d( _OcclusionTex, IN.uv_mainTex).g;
Не. Нашел в чем проблема. Когда сэмплишь текстуру, координаты развертки обязательно нужно брать из uv_mainTex.
То есть вот так правильно: o.Occlusion = tex2d( _OcclusionTex, IN.uv_mainTex).g; А вот так уже не работает: o.Occlusion = tex2d( _OcclusionTex, IN.uv_myTex).g; Сук.
Похожая ерунда с o.Alpha в катаут шейдерах, кстати. Если не _mainTex и не умножается на _Color - хрен тебе а не тени, дружок.
>>164017 Ну хуй знает, я MainTex вообще не использую, координаты генерю по мировым xz координатам вертекса и экранным, искажаю их, скролю, лерпю и похуй, работает как надо. Покажи код что ли.
>>164018 тьфу блядь, который день сижу, а тут запостил и сразу разобрался. некостыльного фикса нет, джоинты всегда вот так ебутся, когда сила очень... сильная.
>>164034 >>164035 Хм, дело не в кривых руках. Похоже на баг, или дохуя интеллектуальную оптимизацию в парсере surface шейдеров. Надо бы забагрепортить. Если в испекторе шейдера нажать на show generated code, то увидим что юнити нагенерировала из сюрфейс шейдера. А именно, в вертексном шейдере форварда uv_MainTex "пакуется" в float4 o.pack0.xy = TRANSFORM_TEX(v.texcoord, _MainTex); а в фрагментом распаковывается обратно surfIN.uv_MainTex = IN.pack0.xy; На uv_OcclusionMap кладется хуй и он остается с нулевыми координатами.
В дефереде же все кошерно o.pack0.xy = TRANSFORM_TEX(v.texcoord, _MainTex); o.pack0.zw = TRANSFORM_TEX(v.texcoord, _OcclusionMap); surfIN.uv_MainTex = IN.pack0.xy; surfIN.uv_OcclusionMap = IN.pack0.zw; Так что если переключишься в него, проблема пропадет. Ну или можно свою вертексную функцию дописать, в которой творить с координатами что угодно, если конечно есть такая необходимость.
>>164042 Спасибо, хуясе знатоки в геде В дефереде действительно все работает. Но переключиться не могу, дело в том что пишу пак шейдеров для ассетстора и делать приписку мол "паcаны, тайлинг окклюжена работает только в дефереде" - не кошерно. А вертексную функцию написать - скилов не хватает пока. Так что оставлю как есть, наверное.
>>164014 Кстати, да. Я решил МЕТРИКИ оставить для ачивок, а для миссий сделать события вдохновился вчерашним юнитистримом ололо. Теоретически добавив событие и написав небольшую задачу-обработчик, можно сделать что угодно. Например, сделать событие изменения инвентаря, и в задаче проверять есть-ли столько предметов определенного типа. Или событие убийства монстра, а в задаче просто считать сколько монстров убито и т.д.
Выпекаю хейтмапапу 65600х65600, чувствую себя реально грязным извращенцем с пластиковым кляпом в анусе и плёткой в зубах. Выпеклось уже примерно 65600х3500. Кажется, это на долго.
>>164172 Разработчики стараются, пишут changelog каждой версии, что изменено, что пофиксено. А потом приходит вот такой вася с вопросом: "че туда напихали?". Нахуй иди.
>>164198 Cделай террейн поменьше или включи своп и жди до второго пришествия. Террейн 3х3 км у меня запекается очень долго, 2х2 быстро. Это проблемы с энглихтерен, он кривой до ужаса и хуже по качеству, чем бист. Не понимаю, зачем его заменили.
>>164200 >GI: Fixed inconsistent Enlighten build timings; now it should correspond to wall clock time (unless you move at near speed of light relative to your computer, in which case it might still be wrong). Ага, даже стараются спетросянить. Лучше бы движок пилили, тот же лайтмапер ебучий.
>>164150 Выпек. В процессе уменьшил разрешение в четыре раза, до 32832х32832. Только нахуя? Юнитивский террейн не может в хейтмапы. На 16 бит он обсирается, а на 8 бит пиздецовые ступеньки.
>>164220 Двачую. Нехватает какой-то перчинки... воздушности что-ли, дерзновенности и в то же время привязанности к корням, как-то всё пресно, и сумбурно слегка. Думаю, стало несколько плотнее, но это для любителей серьёзного погружения в суть вещей. Мне же больше нравилась поверхностная лёгкость и скольжение предыдущих. Как-то так.
>>164236 Если прогреть юнити в течении 30 минут каким-нибудь годным проектом, предварительно её "натаскав", запуская готовые хорошие игры (типа флапибёрдс, энгрибёрдс или любые другие. заканчивающиеся на "бёрдс"), в течении недели с периодичнсть раз в 15 минут - то что-то такое есть, но на грани восприятия. Естественно, нельзя забывать о хорошем компе с минимум с 8ГБ рама, обязательно последней виндой (можно бетку, главное, чтобы последняя) и последней видеокартой от Нвидиа (чтобы циферок в номере было побольше), ни для кого не секрет, что хороший мощный комп - 99% успеха в геймдеве. Ну, брэндовые клавиатура и мышь минимум за 100$ каждая - это настолько очевидно, что даже вспоминать стыдно. Набирать код на немеханическом говне за пять баксов, гы, даже представить сложно.
Рибята. Что мне нужно - сохранять данные об игре. Поэтому я хочу создавать текстовые файлы. А еще хочу проверять их существование, писать в них, читать и вообще. Нужно делать это платформонезависимым способом.
Какие подводные камни? Я слышал проблемы с созданием файлов через web-плеер, но меня это пока не сильно беспокоит. В общем есть ли способы лучше? Можно ли получить доступ к папке Resources?
>>164319 При чем здесь сериализация? Нет. Мне удобнее хранить в текстовом формате. Мне нужно будет читать "шапку" сохранения побыстрому и использовать хеш над данными из сохранения. В общем не суть. Вопрос насчет того КАК СОХРАНЯТЬ. А не что сохранять.
можешь еще и воспользоваться юнитивской сериализацией и сохранять все в asset используя ScriptableObject. которая еще и сериализует ссылки на ресурсы(так-же как сериализуются геймобжекты в префабы). только имеет множество других ограничений вроде отсутствия сериализации наследования, но ты всеравно похожу стринги хранить собрался.
ну если тебе НАДО, то пиши в текстовый файл. зачем ты вообще этот вопрос задал?
>А-ля GameState? - Что это значит? значит, что состояние игры хранишь в этом классе. ты ведь в любом случае хранишь где-то это состояние, лучше хранить все в одном классе и сериализировать, десериализировать еготебе же НАДО
>>164329 Ты думаешь я этого не видел или что? Потралькать решил? Я понимаю, что советов мудрых дать хочешь, спасибо. Я не утверждаю, что использовать текст это круто. Я просто хочу правильно работать с файлами. Чем их наполнять дело другое. Понимаешь. Ответь на то, что я спрашиваю, пожалуйста.
>>164287 Cогласно документации, вызывается каждый апдейт, пока юзер жмёт кнопку и похуй на движения. Кто ещё обосрался-то.
>>164318 Не пойму, в чём проблема. В юнити реализованы все фичи шарпа которые реализованы в моно, так что никаких проблем нет писать в файл что угодно. Сходи на мсдн и покури доки. Рекомендую пихать в джсон, очень удобно.
>Я слышал проблемы с созданием файлов через web-плеер Через веб сохраняй в юзер.префс и засри реестр полностью. Но не похуй ли, в самом деле? Тем более, что скоро плеер вообще отвалится.
>>164332 Хватит посылать меня в msdn. Я сеньер C# нет. Так в json и собираюсь.
В чем проблема? Я не разбираюсь в Unity3D. И не хочу. Я пытался писать в каталог Resources. На ПК все замечательно работало StreamWriter шалил, но на android нет по понятным причинам. Решил использовать путь Application.prе_что-то там_dataPath. Это лучшее решение. Т.е. абсолютная адресация это стандарт юнити? Или же есть штука типа Asset.CreateFile (str name) и так надо делать? Если лучше абсолютная адресация, то Application.prе_что-то там_dataPath это лучший выбор?
>>164336 Это ты типа свой батхерт так выражаешь или что? Извини, если недопонял.
>>164337 Знаю, что нет в билде. Очевидно из названия. Видел эту штуку, естественно. Это же просто обертка. Суть в том какой путь указать, если нужно так делать (через абсолютную адресацию).
Товарищи Вы меня расстраиваете. Сговорились что-ли? Никто не хочет прочитать мой вопрос внимательно, а только говорите первое, что придет в голову. И кидаете десадовские решения насчет погромирования.
>>164338 >Т.е. абсолютная адресация это стандарт юнити? да >Если лучше абсолютная адресация, то Application.prе_что-то там_dataPath это лучший выбор? да >Неужели я так непонятно пишу юнитоиды? да >В чем проблема? да >Это лучшее решение. да
Ты бы лучше объяснил чем тебе это решение не нравится, а то получается что-то вроде "Пацаны, я записал кароч float a = b + c;. Это лучшее решение для сложения? Или есть лучше?"
>>164339 Стандарт говоришь. Тут поподробнее. Есть ссылка на местного Ричарда Гейба, который говорит это?
Мне все нравится. Только мне нужно быть уверенным, что это сработает на всех платформах. А гарантировать такое очень сложно. Вот я и подумал - юнити это штука для игр. Зачем мне юнити? Говорят она кроссплатформенная. Это то, что мне нужно, очень здорово! В играх часто нужно хранить информацию между сессиями. Так может юниты позаботились о кроссплатформенном хранении информации? вот только не кидайте видос про сейвы. Вы что думаете я не посидел в гугле пару дней перед тем как вопрос задать?
>>164340 Мама роди меня обратно. Ну там же сразу написано, что ридонли. Или я ослеп.
Друзья мне начинает казаться, что не все здесь сидящие настоящие эксперты игростроя.
>>164318 >string path = Application.persistentDataPath + sep + "ololoTest.txt"; Для составления валидных путей есть Path.Combine(YuorPath, AdditionPathWithFileName). Через File.Exist(Path) и Directory.Exist(Path) можно проверить существование файла/каталога.
>StreamWriter sw = new StreamWriter(path); >ololoTest.txt Тут наверно нужен TextWriter/Reader, иначе в файл будет записана бинарная параша.
>>164342 Ты тупой или зеленый. >Так может юниты позаботились о кроссплатформенном хранении информации? Об этом позаботились писатели моно. Прост юзай стандартный путь схоранения файлов в папки для которых юнетики гарантируют их существование и доступность. Все.
Вчемблдьпроблема? Ко-ко-кок кросплатферменность ? Она из каропки. Не знаешь как писать/читать текстовые фалы? Потренеруйся на кошках из мсдна, потом попробуй в юните.
>>164333 >Я пытался писать в каталог Resources Ты ж долбоёб.
>>164344 >Здесь просто настолько все офигенные профессионалы Да даже если человек недельку с шарпами возится, даже без юнити - ему уже будет смешон этот "сениор". Клоун анальный, не знает, как файл записать, пиздец просто.
>>164352 Гарантированно валидный путь - директория игры же. Там можно и схоронять всё в папочку сейвов. И чем плохо писать бинарную парашу? Всё равно потом разбирать и не похуй ли, разбирать джсон, хмл или бинарные данные? Ну, разве что хмл чуть похуже.
>>164368 Спасибо за ценные непредвзятые комментарии и уважение к собеседнику. Сразу чувствуется стиль геймдизайнера - уметь слушать окружающих.
>>164368 Директория игры - это где в android не подскажешь? А в ios? Что насчет xbox?
>>164368 Чем плохо в бинарник? Я не говорю, что это плохо. Но мне стоит хорошо подумать как это реализовать. Потому что, если выйдет новая версия не хотелось бы терять совместимость сейвов на пустом месте.
И вообще что вы заладили. Я же сказал, что не спрашиваю в каком формате хранить. Зачем вы мне что-то такое советуете?
>>164359 >Разве это эстетически правильно Нет конечно. Я пишу в текстовый файл. Но ты же спросил про универсальное кроссплатформенное решение.
>>164368 >Гарантированно валидный путь - директория игр Хуй там. В редакторе да, все хранится. А в билбе нужно заморочится с правами доступа. Лучше Application.persistentDataPath
>>164369 Лол, вылез долбоёб, который не знает, что такое базы данных. Сеньёров без базовых знаний тред.
>>164370 Хорошо, поясню подробнее. Нельзя писать в папку ресурсов.
>>164370 >>164371 >Директория игры - это где в android не подскажешь? А в ios? Что насчет xbox? Это не валидные устройства. Петросян жпг В самом-то деле, так сложно зайти в справку и найти рекомендованные переменные окружения? Напоминает уёбков из эпик гейс, которые прописали путь к студии, как "С:/Program Files/Microsoft Visual Studio" прямо в коде блядь.
>>164377 А переменные окружения причем? На каждом устройстве в переменных окружениях хранятся валидные пути для сейвов? Почему я вообще должен об этом думать? Вот она кроссплатформенность?
>>164378 Базы это файлы. Твоё окружение это не ось, а юнити. Кури мануалы, сделай пару уроков с сайта юнитеков. Потом сходи и почитай мсдн. Если уж ты вообще нихуя не понимаешь.
>>164379 Если распостранить по дедукции, то твоя мамка тоже файл с открытым доступом. Извини вырвалось. В самом деле неужели не понятно что мимодругойсиньер имел в виду. Зачем ты срач разводишь?
>>164379 А виндовс для девушек без страха мне не почитать? Лучше кинь ссылку где в окружении юнити есть абсолютный валидный платформонезавистмый путь, раз уж неплохо разбираешься в этом. И чем этот подход лучше Application.prе_что - то там_dataPath. Заранее спасибо.
>>164368 >Гарантированно валидный путь - директория игры же Виндовс предотвратила попытку программы внести изменения в систему. Разрешить программе от неизвестного поставщика внести изменения в данный компьютер? ЧТО!? ВИРУСЫ! ЭТО ВИРУС!!! ЗАЧЕМ ТЕБЕ КОНТРОЛЬ НАД МОИМ КОМПЬЮТЕРОМ!?!? АВТОР ГДЕ МОИ СЕЙВЫ Я ПЯТЬ ЧАСОВ ИГРАЛ НИХУЯ НЕ СОХРАНИЛОСЬ ТЫ МУДАК ОДНУ ЗВЕЗДУ ДЕРЖИ ДАЖЕ НЕ ДОСТОИН!!!!
>>164380 >И чем этот подход лучше Application.prе_что - то там_dataPath. Этот подход и есть Application.persistentDataPath. Его ввели в юнити 3 и тебе никто не мешает им пользоваться в юнити 5. Так понятнее? Это и есть разумный подход. Даже больше, в справке юнити и советуют его использовать, потому, блядь, я тебе и пишу, кури справку, блядь. Сам сказал, что вопрос касается юнити, вот и используй, что тебе юнити даёт. Есть ещё, как уже писал, Application.dataPath, который будет валидным для большинства устройств, потому что они на шиндовс.
>неужели не понятно что мимодругойсиньер имел в виду Неужели не понятно, что я имею ввиду? Нихуя он не сеньёр, а какой-то хуй с горы, для которого бд - блэк бокс, юнити блэк бокс и так далее. К тому же, он не только не понимает работу инструментов, он не имеет понятия о юз кейсе и таких-то сеньёров точно быть не должно.
>>164382 О так ты разбираешься в БД. Очень хорошо! Подскажи как сейчас грамотные дяди обходят проблему хеллоуина? Т.е. как это модно теперь, чтобы на собеседовании не посмеялись?
>>164385 >Ты говорил про переменные окружения. >Твоё окружение это не ось, а юнити. Ты начинаешь уже слишком толстить.
>как сейчас грамотные дяди обходят проблему хеллоуина? Так же, как и все. Надеюсь, для тебя мелкомягкие и розрабы cql баз достаточно грамотные? Ведь ты наверняка, как и каждый предельно тупой человек, очень высокого мнения о себе. Так вот, к проблеме хеллоуина. Обходят её простой буферизацией данных. И снова - пиздуй читать мелкомягких https://technet.microsoft.com/ru-ru/library/ms190435(v=sql.105).aspx А то ты не только на собеседовании позоришься, ты даже на двачах опозорился. А хуже уже нет.
Привет, аноны. Столкнулся я тут с одной проблемой и не знаю ка кее решить. Суть такова: есть скрипт1, в нем есть метод, принимающий один аргумент. В зависимости от того какое значение будет иметь этот аргумент, этот метод вызовет один из многих других методов. Так вот, пихать все это множество методов в скрипт1 неразумно, т.к. нужен будет лишь один. Поэтому я решил создать отдельный скрипт2 со всеми этими методами, доавил в него неймспейс и импортировал его в скрипт1. Теперь сама проблема: в методах, которые лежат в скрипте2, используется много переменных из скрипта1, а скрипт2, соответственно, о них не знает. Отсюда вопрос: можно ли как-нибудь это все реализовать, не передавая всю эту кучу переменных в качестве аргументов?
>>164396 У меня есть нечто подобное. Скорее всего, подход костыльный, но всё-таки. Есть класс, в котором хранится большая часть данных. Есть ссылка на класс. Ну и соответственно, скрипт1 и скрипт2 могут использовать myClass.var в любом месте.
>>164208 Всё получилось. Итого, нужно 8 бит, в фотошопе открывать нельзя, иначе хейтмапа превращается в говно (хуй знает, почему). Юнити с 16 бит категорически не дружит, что тоже досадно - слишком резкие переходы тонов. Лечится частично снижением высоты террейна и увеличением размера относительно размеров хейтмапы. Допилю алгоритмы и буду заниматься левелдизайном, расчётная площадь мира ~5к км квадратных + 25%.
>>164430 Я уже по-другому придумал. Передаю в библиотеку методов компонент скрипта и в методах юзаю все эти переменные с префиксом скрипта. Правда пришлось все эти переменные сделать паблик. Даже не знаю хорошо это или плохо.
>>164439 Хочу вызывать различные методы в зависимости от значения переменной. Хочу держать их всех в отдельном скрипте. А нужно это для того, чтобы избавиться от избыточности.
>>164447 Непонятно что ты хочешь и зачем тебе вызывать разные методы в зависимости от переменной. Может вообще есть другое более просто решение. Ты рассказывай не что у тебя там в скрипте, а какую тебе надо прикладную задачу
Это снова я. Мобы ходят, башни стреляют. Теперь занимаюсь механикой строительства башен. Решил использовать систему, которую видел в стратегии на UE4.
Есть заблокированная платформа, при клике на неё должно появляться предложение анлокнуть за X голды. После этого она становится анлокнутой. При клике на анлоктную платформу должны появляться три иконки с башнями, и при клике на соответствующую иконку должна строиться соответствующая башня.
Собственно, реализовал что при клике на залоченную платформу она анлокается, то есть тупо один префаб заменяется другим. Нарисовал все иконки и текстуры. Как реализовать строительство, как выводить "плавающие" в воздухе кликабельные иконки, как ввести переменную с голдой, как отнимать голду и как начислять голду за убитых мобов?
>>164460 >Как реализовать строительство Наверно надо написать компонент Stroitelstvo и дать его площадке - в нем считать время и показывать какой-нибудь ассет анимации, а потом подменять все это на башню. >как выводить "плавающие" в воздухе кликабельные иконки Хуй его знает, можно билборд+ригид_боди + рейкаст = костыль интерфеса. Можно взять центр платформы перевести его в пространство экрана и в этом месте нарисовать стд:юните_интерфейс(сам так делать буду). >как ввести переменную с голдой Я уже ввел в твою мамку!Не удержался. Попробуй в игрока. Ему понравится. >как отнимать голду и как начислять голду за убитых мобов? Пообуй заставить мобов генерить статический глобальный эвент - OnMobDied, а игроком на него реагировать(деньги начисляй).
>>164460 > Как реализовать строительство, как выводить "плавающие" в воздухе кликабельные иконки, как ввести переменную с голдой, как отнимать голду и как начислять голду за убитых мобов? Как хочешь!
>>164455 >Уличили в тупости >АЗАЗА ЗАТРАЛЕЛ >я низнаю не талька чта такое базы данных, но и чё такае юскийс Ну вот ты и доказал, что пиздобол обыкновенный, а не сеньёр. Первый хоть признался, что тралл. Лол.
>>164460 >Как реализовать строительство Класс "вышка" с состояниями, каждое состояние - этап постройки вышки можно включительно с "непостроено". На смену состояния вешаешь смену префаба. Плавающие иконки легко и просто через новый гуй, там, кажется, даже канвас можно сунуть в префаб и отображать в скринспейсе.
>как ввести переменную с голдой Непонятен вопрос. Добавь инт и с ним уже работай.
У тебя какие-то очень свои представления о том, что должен знать сениор, и это очень смешно.
К слову о тупости - Какой еблан вспомнит про БД, когда речь идёт о простой записи в файл? Пиздец же. Как твоя фантазия дошла до юз кейсов я даже боюсь спросить.
>>164537 Так ты ж обосрался на тотальном незнании основ, какой с тебя нахуй сеньёр? Что первый, что второй.
>Какой еблан вспомнит про БД, когда речь идёт о простой записи в файл Давай не передёргивай, уёбок. Речь о "я не пишу в файл, я пишу в бд". Тут-то тебя носом и ткнули, что ты нихуя не понимаешь, что такое бд.
> дошла до юз кейсов Был бы хоть джуниором, понимал бы. А так обычный ноубрейн ноускилл.
>>164551 Поддвачну. Точно так же я мог бы написать, что я кармак или билл гейтс, но обосраться на чём-то примитивном. Незнании английского, например.
>>164453 TD. На каждый префаб башни вешается один и тот же скрипт, код в котором одинаков для всех башен. Единственный метод, который будет для каждой башни свой - это метод Shoot(). Этот метод будет отвечать за поведение башни при атаке. Смысла прописывать поведение для всех башен в один скрипт и вешать его на каждую башню я не вижу, поэтому хочу вынести все поведения в отдельный скрипт, а уж в зависимости от типа башни брать из этого скрипта нужное поведение. Может и есть более правильное и красивое решение, я с радостью бы взял его на вооружение.
>>164580 >Единственный метод, который будет для каждой башни свой - это метод Shoot() Ну так и запихни этот мотод в компонент(или интерфейс). Потом напили 100500 компонентов разных атак, и раздай их башням при их создании. Получится как ты хочешь: >хочу вынести все поведения в отдельный скрипт Вместо проверки переменой башни каждый кадр для нужной атаки будет всего одна прверка в момент создания башни для определения компонента.
>>164580 А, то есть ты сделал много скриптов для башен которые отличаются только методом Shoot()? Открой для себя наследование классов. Это идеально решает твою проблему. Не хочешь делать наследование, можно сделать один скрипт поведения для всех башен и добавить к башням, а для каждого Shoot() создать свой компонент (что-то вроде Shootable) c методом Shoot()(, и когда башни нужно стрелять просто пишешь SendMessage("Shoot"). но лучше сделать наследованием, просто делаешь метод shoot виртуальным и переписываешь в каждой башне. >Смысла прописывать поведение для всех башен в один скрипт и вешать его на каждую башню я не вижу, поэтому хочу вынести все поведения в отдельный скрипт а уж в зависимости от типа башни брать из этого скрипта нужное поведение. Почему не сделать для каждой башни свой скрипт?
>>164587 >Альтернатив-то нет. Проиграл с этого гуглоребенка. Добровольно есть во всем уступающее говно, которое еще теперь и (ебет) решает за пользователей что им нужно - это что-то вроде линукс-фанатиков.
>>164590 Кстати, тоже так делал, гораздо удобнее, когда не на каждой башне свой скрипт, а есть один объект, который руководит всеми башнями. Да и по производительности лучше должно быть.
>>164591 Единственный рабочий браузер, после ухода оперы с престо, это хром. Лиса уже лет пять, как недобраузер и не нужна.
>>164588 Но это дерьмо начали в 2007м, а то и 2006м. Тебе стоило это сказать тогда, а сейчас уже ничего не сделать. >>164598 >Единственный нормальный браузер. Да. Но это не потому, что он хорош.
>>164595 >Лиса уже лет пять, как недобраузер Все ясно, кукаретик. Сам я не видел, но пацаны рассказывали, да? А я вот сравнивал, пользовался обеими браузерами. И для меня выбор более чем очевидным. Ты типичный ребенок, который установил хром ПОТОМУ ЧТО ОН У ВСЕХ ЖИ))) ну сиди на это говне дальше. видимо хромоюзерам нравится чувствовать хуй у себя в жопе. что вам там еще собираются отрезать? что там гугл считает хромодаунам еще нинужно?
>>164572 >"я не пишу в файл, я пишу в бд". Тут-то тебя носом и ткнули, что ты нихуя не понимаешь, что такое бд. Лол, пиздец же. Теперь буду говорить, что я пишу в файл, когда речь идёт о бд.
>>164595 >Кстати, тоже так делал То, что ты делал - это хуита, и так делать не нужно. Может в твоем недоделанном примитивном tower defence это и показалось нормальным, но в нормальных больших играх так не надо делать, иначе кривая и не гибкая архитектура в будущем доставит много проблем.
>>164601 > Сам я не видел Я её несколько раз ставил. Первый раз она падала непонятно почему. Потом просто перестала запускаться. Хуйня короче.
>>164603 Я бы не сказал, что соснули, есть же компил в хтмл 5. Но это именно, что прогресс - старый формат апи это очень большая дыра в безопасноти. Хром теперь безопасен. Остальные браузеры - нет. И что же мы выберем, дырявое решето или нормальный браузер?
>>164606 >То, что ты делал - это хуита, и так делать не нужно. Хуита - клонировать один и тот же скрипт на триллион префабов. И у меня была не тд, а фпс и так я руководил ботами. Сначала вешал по скрипту на бота, но быстро понял, что такой подход уёбищный, кривой, неудобный и не подходит для нормальной игры. Потому сделал всё аккуратно через класс-"менеджер", что упростило архитектуру и сделало её более гибкой и расширяемой.
Такой вопрос: как лучше всего определять, какой звук нужно играть, например, при ходьбе по определенной поверхности, или разные звуки попадания пуль в зависимости от типа пуль.
>>164632 На счет ходьбы по различным поверхностям: можно пускать рейкаст вниз и прощупывать им поверхность и на основе этого выбирать какой звук проигрывать.
>>164633 Пиздец совет. Лучше раскидать по уровню области-триггеры и в OnTriggerEnter менять звук на нужный. А с рейкастом тебя в приличном обществе нахуй пошлют.
>>164620 >Браузер, естественно. То есть firefox. На ноль поделил.
>>164644 Он предлагает, походу, по границе типа местности наставить триггеры и переключать по ним звук. Но, во-первых, игрок же может спрыгнуть с высоты и перепрыгнуть триггеры. Во-сторых, их надо будет очень дохуя, а у физона лимит на 65к, вроде, объектов в сцене. Опять же, производительность по пизде пойдёт. Но и пара райкастов в секунду - это слишком дохуя. В крае получаются данные из типа материала, на котором стоит персонаж. В юнити без костылей так не сделать но и в крае через костыли, другое дело, что там этого не видно.
>>164600 >вивальди сделан на движке хрома и является таким же ненастраиваемым куском засохшего твердого говна. опера была годной потому что ее можно было настроить под себя как угодно. в лисе с этим похуже, но хотя бы можно кнопки таскать. ну а с хромом все понятно. хромодебилы пусть кукарекают что нинужно, уродливые табы на самом деле красивые, эта ебанутая кнопка нового таба очень эстетично выглядит, а гиганский шрифт в адресс-баре очень кстати - ведь часто приходится читать адресную строку, вдруг там появится важное сообщение!
>>164644 для обычных объектов можешь просто смотреть что там за материал, для террэйна хуй даже знает. можешь смотреть координату игрока на террэйне и смотреть какой индекс сплат-мапа там преобладает, есть ли, или нет там трава.
>>164665 и правда лол. пара рэйкастов в секунду наверно вот расплавит компьюторы. у меня, например, мешанина из вертексов переводится в карту высот просто рэйкастами. этак 1к * 1к. секунды три может пека и думает.
о ужас страшно представить как же новый гуи определяет куда тычут курсором?
>>164668 а хуй тогда знает как. я двадэ не смотрел.
>>164680 Тащишь мышью Гуй Текст в левый верхний угол, в скрипте создаешь переменную public Text text, перетаскиваешь мышью этот текст на созданную переменную. при изменении значений playerMoney делаешь text.text = playerMoney
Как же приятно видеть боль копателе-детей. А дебил-разработчик даже не позаботился о страничке, которая бы перенаправляла игроков в другой браузер, хотя об этом предупреждали ещё в прошлом году. Воистину необучаемый.
Псс, посоны, дайте наводочку почему может быть так: В Update пишу
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit2D hit = Physics2D.Raycast(ray.origin, ray.direction); if(hit != null) { Debug.Log(hit.collider.name); }
И он у меня выводит постоянно "NullReferenceException: Object reference not set to an instance of an object"
Ведь проверочка на отсутствие объекта установлена. Чому же так может быть?
>>164714 >hit != null Вдогонку, RaycastHit2D это структура т она всегда имеет значение, так что проверять её на нулл - долбоебизм. Рад что нашел проблему сам. Добра.
>>164689 Лол, а кстати - что теперь будет? Только хром ВЗБУНТОВАЛСЯ против юнити или все браузеры нахуй его шлют? И если все, то что предпринимает совет директоров юньки? Делают ставку на WebGL ? Но он же сейчас выглядит совсем монструозно - сраная сценка с кубиком под 100 метров + низкая производительность. Планируется исправить это дерьмо?
>>164741 Да вообще всем похуй. Кому нужен юнити в вебе? Онлайн-параша отвалится, ну и слава богу. Я бы все выпилил нахуй, и флеш и вебгл. Меньше дерьма в интернете было-бы
>>164665 Я исхожу из того, что чем меньше - тем лучше. Ведь ещё есть куча других задач, на которые расходуются ресурсы. Делай как хочешь, а по-моему, дохуя.
>>164684 Это же, вроде, православный новый гуй, что тебе не нравится?
>>164741 Четыре блядь года все знали, что старый апи вот-вот отвалится. Всем было похуй. Апи отвалился. Всем по-прежнему похуй. В каком-то ещё браузере, что-то там про подгорелую лису, тоже хотят отказаться от этого апи. Тем более, никто не мешает внезапно, заюзать новый апи в жабе или юнити - давалось 4 года на это и гугл ждал, пока процент использующих плагины с этим апи станет ниже 30% и только тогда выпилил его нахуй. Похуй всем, было есть и будет. Я вообще хром не обновлял пока - но мне похуй, флеш выключен, юнити выключен, джава выключена.
>>164742 >>164747 Ну хуууй знает. Теперь не получится всякие прототипчики быстро показывать - нужно устанавливать билды, а это нахуй никому не нужно. На том же самом gamejolt довольно много приличных игр на юньке было. И что же теперь? Скачивать и ставить?
>>164751 Ну ладно, пока я добрый, юзай флаги. chrome://flags/#enable-npapi Лол, но учти, в сентябре выпилят и это. Ставка на самом деле делается на хтмл5, хотя у него производительность - просто пизда. Ну и похоже, что адоб отстегнул монету - флеш-то не помер.
>>164752 Спасибо, няша >флеш-то не помер Ох лол - представляю как бы сильно рвались у всех жопы. Даже не представляю что будет если кто-то откажется от флеша резко и прямо в ближайшее время - у юзеров, сайтодержателей, банеро-фрилансеров КРИЗИС наступит.
>>164776 Если вы не поняли о чем речь, то в юнити при удалении объекта (Destroy) он на самом никуда не девается, а просто возвращает фальшивый null. И это приводит к фейлу если использовать не юнитивские объекты.
>>164806 Там может и нигде. Это я столкнулся с такой проблемой. Хранил ссылки на объекты в System.Object.
>>164818 >Хуй знает, как лучше дестроить объекты, чтобы они реально уничтожались. if (myObject == null) myObject = null;
>null check was more expensive than expected, and was the cause of not seeing any speed benefit from the caching пидоры рукожопые. так и не понял зачем они вообще эту хуиту использовали.
Где можно посмотреть исходники шейдеров? Ну или мне просто нужен шейдер для 2D, который бы работал с sortingOrder. А то спрайтовому нельзя назначить текстуру, а другим на sortingOrder плевать.
>>164818 По твоей же ссылке сказано, что объекты реально уничтожаются. Обертки только остаются, но они места занимают чуть меньше чем нихуя. Высосали проблему из пальца.
>>164430 Блядство натуральное. Хотел разбить сцену на несколько сцен и грузить их в рантайме при необходимости, а ненужное выгружать. На самом деле LoadLevelAdditiveAsync блокирует нахуй основной игровой поток и порождает фризы, то есть не асинхронная операция и в справке пиздёж. Нагуглил на форуме десяток подобных вопросов, от которых юнитеки тупо отморозились.
Многие новички заблуждаются насчет программирования интерфейсов. На самом деле программирование интерфейсов - это целая наука. Запрограммировать хороший интерфейс не проще чем сделать хорошую игру. Вот как!
Я вот этот кун >>164460 которому всё объяснили, но у меня все равно нихуя не получается, и я каждый раз сажусь и психую нахуй, от того что у меня ничего не получается.
Хотел сделать классический Tower Defense. Вот список нерешенных задач:
1. Выводить деньги игрока в левом верхнем углу экрана. 2. При клике на специальный объект на игровом поле над объектом появляется кнопка с предложением разблокировать объект за X денег. 3. При клике на разблокированный объект появляются две иконки с башнями, одну из которых можно построить на этой платформе. 4. Механика башни, пассивно замедляющей и атакующей врагов на расстоянии X. 5. Механика башни, атакующей только один класс врагов (летающие).
Собственно, есть готовая карта, с модельками и иконками, есть модельки башен, есть логика монстров (идти до базы игрока и получать урон) и простая логика башни (найди таргет - стреляй). Монстры идут по пути, и при столкновении с базой игрока уничтожатся.
>>164901 Все вопросы решаются за полчаса гуглинга. Сириусли. Тем более, тебе уже писали, как вывести деньги. Добавил в сцену канвас, добавил на канвас элемент "текст", якоря в центр экрана или растянул по углам. Скриптом меняешь значение текста.
>>164906 >С РАДОСТЬЮ ПОДЕЛЮСЬ! хе-хе! Смотри же, не обмани!
Рассказывают как вести деньги: 1. создаешь Canvas, 2. нажимаешь правой кнопкой мышки - create empty, 3. называешь его MoyGUI 4. нажимаешь на новом объекте правой кнопкой мышки - UI - create text - называешь его MoiDenezhki. 5. Выбираешь шрифт, цвет, перемещаешь куда надо. 6. Снова выбираешь MoyGUI - Add Component - New Script. 7. добавляешь using UnityEngine.UI; 8. пишешь 2 переменные: Text moiDenezhki и GlobalVars moiPeremennye. 9. в Start() пишешь: moiDenezhki = transform.Find("MoiDenezhki").GetComponent<Text>(); moiPeremennye = FindObjectOfType<GlobalVars>(); 10. в Update() пишешь: moiDenezhki.text = moiPeremennye.PlayerMoney.ToString(); 11. PROFIT
Имеет смысл заморачиваться с пулами объектов если объектов не создается много? Например, просто использовать AudioSource.PlayClipAtPoint, который создает и удаляет AudioSource'ы, или делать пул объектов?
Сап, анон! Хочу сделать игру, в которой система передвижения/атаки будет похожа на алиен шутер, то есть перемещение идет по двум осям, при помощи WASD, а стрельба/скиллы/прочее вылетает в сторону курсора. Собственно вопрос - как такую штуку замутить? Графика 3d, понимаю что надо будет использовать Animator, но я практически с ним не работал. Даже не представляю пока, какие анимации мне нужны, и в каком направлении капать.
В юнити ещё фокус в том, что разная ёбань так или иначе кешируется. Попробуйте сделать две кнопки, по клику первой кнопки префаб инстансировать, по второй - уничтожать. На первом клике будет лаг, микрофриз при первом инстансировании. Дальше этот префаб уже подгружен в память и при следующих инстансированиях фриза не будет. Я не говорю, что следует полагаться полностью на эти механизмы учитывая, что там может работать кеш на уровне ос или жестяка, но и совать пулы объектов на каждое попёрдывание - избыточно слегка.
>>164963 Во-первых, возьми 2д, так как с 3д ты обосрёшься, инфа 1488%. Во-вторых, посмотри туториалы по юнити, аниматору, скриптингу. А ещё лучше, брось юнити и подрочи C++ годик-другой, иначе так и будешь задавать глупые вопросы в стиле «чуваки, как сделать перемещение wasd».
>>164969 Я здраво оценил плюсы и минусы 2д и 3д, и выбрал 3д. Я хорошо знаю юнити, но именно с аниматором не работал, поэтому спрашиваю, по какой системе это реализовывается.
>>164966 Тут проблема в том, что каждый раз когда создается объект - под него выделяется память, и когда память кончается, то запускается юнитевский garbage collector, который, как пишут в интерентах, является полной хуитой и тормозит игорь.
>>164990 >public static Первая строчка кода, а уже ошибка. Потом ещё и вложенные циклы. Ты совсем ебанут, парень. Выкидывай рандомное число от 0 до длины списка, потом проверяй, нет ли уже этого значения в выборке. Ещё лучше - выброси нахуй списки, у них хуёво с производительностью, используй православные массивы.
>>164994 Какая ошибка? Это выдраны функции. Без внешнего класса код не скомпилится.
>Выкидывай рандомное число от 0 до длины списка, потом проверяй, нет ли уже этого значения в выборке. Так и при выборе 17 из 20 сколько в среднем раз надо рольнуть рандом(0 20) и проверить ранее составленый список на повторы?
Вот на пике выше приведены два самых неудобных юз кейса для каждого типа выборки. Версия с исключениями оче ничего, портит все изначальное копирование всех элементов в новый список.
Мне кажется с вероятностью быстрее работает. Померил. Версия с рандомом ~= 0.8 х версии с включениями. Подводный камень, рандом для типов значений не может в выбору одинаковых элементов по разным индексам.
>Потом ещё и вложенные циклы. Недобор без внешнего вайла составлял около 10% от нужного числа элементов. Это костыль.
>Ещё лучше - выброси нахуй списки, у них хуёво с производительностью, используй православные массивы. Нет, мне не подходит, нужна динамическая длина, при ней массив вырождается в велосипедный список.
>>165003 >Какая ошибка Первое правило статик переменных. Если ты используешь статик - ты что-то делаешь неправильно.
>Так и при выборе 17 из 20 сколько в среднем раз надо рольнуть рандом(0 20) и проверить ранее составленый список на повторы? Очевидно, что нужно 17 раз рольнуть рандом или написать функцию, которая тебе даст сразу список из 17 чисел. Навскидку, ты можешь использовать https://msdn.microsoft.com/ru-ru/library/system.random.nextbytes(v=vs.110).aspx А каждый объект в списке будет иметь флаг "чекед". Так мы избавляемся многократной генерации рандомных значений, от многократных проверок на повторение каждый раз тупо ставим "чекед", похуй, если уже чекед. Но тянем дохуя ненужной хуиты, лол.
>>164901 Учись по видосам, по мануалу, родной. Сириусли, интерфейс - это как раз то, что занимает большую часть разработки, и то, по чему тебя будут судить игроки. Охуенная игровая механика в хуевом интерфейсе = хуевая игра.
Мужики. Есть панель с вертикальным лэйаутом, в этой панели еще две панели (может быть и больше), и в каждой из этих дочерных панелей лежит текст. Нужно сделать так, чтобы высота дочерних панелей зависела от количества текста, который вложен в них, при этом самая главная панель не должна сжимать вложенные панельки. Как это запилить?
>>165005 >NextBytes Былобы охуеyно если бы можно было сгенерить n установленых бит в N заданых байт и использовать это как масrу для исходного листа. А так это ничем не отличается от простой проверrb на вхождение. Пичалька.
>Если ты используешь статик - ты что-то делаешь неправильно. Лол, да ты фонатик. Это вспомогательная функция, она не хранит состояния. Их там целый класс таких красивых(ты еще со строками не идел кашмарца). Оче удобно. Рикоминдую.
Кстате на пастбине два злобных бага в первых ифах. правильно if (NeedSelect >= SomeList.Count) { return new List<T>(SomeList); } if (NeedSelect <= 0) { return new List<T>(); }
>>165005 >Первое правило статик переменных. Если ты используешь статик - ты что-то делаешь неправильно.
Мда, а то, то геймдев имеет мало общего с прочим говнокодом тебя походу совсем не волнует. Статика плоха по той же причине, по которой не стоит широко пользоваться синглтонами - хуево тестировать. А вообще лепить игру надо так, как будет удобно конкретно тебе, разрабу. мимосеньор-150к-месяц
>>165015 > Content Size Fitter А как заставить дочернюю панельку не вылазить за верхний край главной панельки? Ну или наоборот, не вылазить за нижний край, а вылазить только за верхний.
>>165026 >It’s worth keeping in mind that when a Rect Transform is resized - whether by a Content Size Fitter or something else - the resizing is around the pivot. This means that the direction of the resizing can be controlled using the pivot.
1. Меш коллайдеры без конвекса не работают вообще. Даже сетка не отображается. Что за хуйня?
2. Тот же меш коллайдер, с рижидбоди и залоченным вращением. Вибрирует на террейне. Если вращение не блокировать, то лежит спокойно. Если залочить любую ось - начинает вибрировать. Даже на плоском.
А вы знали, что если в префабе в качестве префаба указать самого себя и вызвать Instantiate(), то клонируется не префаб, а сам этот уже инстансированый объект?
>>165005 >Первое правило статик переменных. Если ты используешь статик - ты что-то делаешь неправильно. Поржал с эксперта. Куда по твоему следует отнести все функции из класса Mathf?
>>165044 Так они рид онли. Хоть один ИТТ пидор со статик переменными их рид онли делает? Плюс, в треде уже выше было, что юнитеки иногда поступают, как жопорукие пидорасы и их уж точно в пример приводить не стоит. Там же дохерища старого легаси кода, который по признанию самих юнитеков "лукс одд". Почитайте хоть о возможных косяках со статик переменными, сеньёры и сеньёриты, раз уж реального опыта нет нихуя.
>>165044 Встроить в язык, очевидно же. А ещё лучше вообще выпилить нахуй, чтобы было 3-4 уёбищнейших любительских либы. Да здравствует C++-style, аллах акбар.
Давно хотел спросить, какие есть пути для неосиляторов рисования? Вообще не могу в графику. Что предпринять? Кубы, как в Майнкрафте? В стиле инди-говна с простыми фигурами? Плагиат? Но это совсем зашквар.
>>165037 >>165038 Ебать даун. Нахуй тебе инстанциировать префаб из самого себя? Нахуй тебе дали Resources.Load? Копию он сделал, охуеть просто. Решение уровня гд.
>>165057 инстанс самого себя можно и не только из него делать. например схватил ты предмет, дестроишь его, но вместо ссылки на префаб для дальнейшего инстанциирования у тебя остается ссылка на дестроеный обжект в сцене.
>>165052 Ищи человека, нет другого пути. Поверь, школорисовальщиков по скиллу сопоставимых с твоим школоюнитипрограммированием очень много. Зайди в тот же /pa/, создай уютный тредик, заведи фейкомыльце. Поработать вместе будет полезно вам обоим.
>>165087 Потому что даун ебаный, иерархия так работает. Если бы все ссылки на родительский объект вели к префабу, ты бы не смог в своем говноскрипте повернуть игрока. Ты бы ссылался на префаб. Пошел нахуй короче, говна кусок.
Посоны, поясните за альфаканал. Я спиздил в интернетах текстурку земли. Делаю планету. Добавил две маски альфы к текстуре. Одна подсвечивает белым воду, а темным континенты, вторая наоборот. Схоронил картинку в двух экземплярах, с разными альфами. Юзаю текстуры на сферу. В обоих случаях отражают континенты, а вода не отражает. Я думал, мб чего перепутал, уже несколько раз переделывал. Результат один и тот же. Что я делаю не так? Пикрелейтед.
Посоны-посоны, кто-нибудь знает, есть ли возможность привязать, хм.. изменения РИТМА музыки к переменным? Т.е. например ребята которые сделали Audioshift - они же привязывали изменения гоночной трассы и вообще говоря расположение элементов к музыке. И если это читает кун так или иначе связанный с разработкой своего музыкального буллет-хела для стима хотя он наверное ВОЗГОРДИЛСЯ и считает посещать gd зашкваром - как вы сделали в своей игре привязку к музыке? Тупо ручками всё подстраивали ?
Начинаю изучать юнити, скачал юнити 5. Так вот, почему там на сцене по дефолту небо с солнцем? Как это убрать? Как сделать, чтобы все было синее? И еще, пытаюсь через Player Settings изменить разрешение, а оно не меняется. Что делать? Делаю все по этому туториалу http://www.youtube.com/watch?t=398&v=e7Px2yJA6S4
>>165097 йеп. например смотри. в сцене префаб ссылающийся на префаб в проекте. и в проекте префаб ссылающийся сам на себя. если перенести префаб из проекта в сцену, то получаем уже префаб в сцене ссылающийся сам на себя, вместо префаба в проекте.
простое решение это сделать два префаба ссылающихся друг на друга. адекватное это сделать массив с префабами в проекте и использовать его для инстансинга геймобжектов.
>>164859 Кажется, обошёл и это. Немного попилил интерфейс - новый гуй какой-то дубовый, хуеватый. Но работать с ним можно, события хорошо сделали. Назрел вопрос по поводу растительности. Хочу травку с коллизиями с игроком. И кусты. Как я понимаю, в шейдоре коллизии получить нельзя, то есть нам нужно вешать на каждый куст коллайдер-триггер, вешать скрипт на него и скриптом передавать коллизии в шейдор? Предвижу, что скрипты не будут вешаться на кусты, расставляемые через террейн энжин. Другого способа нет?
Посоны, поясните за коллизии на больших скоростях. Запилил пулемет летающему гробу. Если у пули небольшая скорость, то все норм. Но если большая, то пересечения не определяются. Пытался гуглить, но так нихуя и не понял толком. Мб кто-то знает, как это починить?
>>165180 Сразу предвижу овердохуя проблем. Ну ладно, скорее всего, это тоже решаемо - поебусь и сделаю.
>>165243 Пуля проходит через коллайдер за время меньшее, чем тик физ движка. Это никак не исправить. Разве что к пуле прихуярить райкаст и проверять на наличии хуиты перед пулей. Сотню раз тема обсасывалась уже.
>>165248 Глупый и бессмысленный костыль, который в 90% случаев не поможет. Разве что делать коллайдеры пули по метру, но это повлечёт другие проблемы. Честную скорость пули это запилить не поможет.
>>165252 Периодически не срабатывает, по крайней мере, в четвёрке баг этот был. Ну и по производительности бьёт. Хотя лучше, чем метровые коллайдеры.
>>165253 >Периодически не срабатывает Пруфы >Ну и по производительности бьёт Ты так говоришь будто есть альтернативы гораздо лучше. В некоторых физ движках такой режим обнаружения коллизий включается параметром isBullet, что как бы намекает.
>>165253 > Глупый и бессмысленный костыль, который в 90% случаев не поможет. У тебя по геометрии трояк? > Разве что делать коллайдеры пули по метру По расстоянию полёта пули за такт. > но это повлечёт другие проблемы. Максимум - недорисовку трека пули на один кадр (если треки пуль вообще рисуются), т.к. в следующем пора рисовать взрыв (или другой эффект попадания). Если к этому эффекту пририсовать недостающий кусочек трека, то проблемы не будет даже на покадровом просмотре. > Честную скорость пули это запилить не поможет. Поможет.
>>165253 >Честную скорость пули это запилить не поможет Хочу чтоб пуля честно летела! Каждую пулю из очереди чтоб видно было! И чтоб у каждой меш-коллайдер! И чтоб сопротивление воздуха и гравитацию можно минять! И чтоб три тома баллистики нужно было изучить чтобы попасть в цель! Чтоб влажность воздуха влияла на скорость! Пуля будет главной изюминкой в игре! И чтоб у пули был параметр точность изготовления, чтоб если хуево сделали на заводе - она плохо летела! Только пуля важна, на все остальное похуй! Графон, окружения, геймплей - все в печку! Только Честная Пуля! Пу-ля, пу-ля, пу-ля!
>Ты так говоришь будто есть альтернативы гораздо лучше Нет, но если он пилит на мобилки - хорошей альтернативой будет снизить скорость пули и увеличить её.
>По расстоянию полёта пули за такт. Скорость пули старенького калаша 800 метров в секунду. Тик физ движка по дефолту - 50 раз в секунду. Итого, нам нужен коллайдер длинной 16 метров. Заебись, чё.
>Поможет. Нет, потому что тянется триллион и один баг из-за шестнадцатиметровых пуль.
>>165264 А вдруг он пилит армаклон? Я когда-то хотел.
>>165246 А как его грамотно удлинить? Я задал его сразу длинным, но в итоге он летит не продольно, а хуй пойми как. Как задать направление, что он всегда торцом вперед летел?
>>165280 > И когда же должно срабатывать столкновение? Столкновение сработает строго тогда, когда и должно, с точностью до тика физического движка. У тебя и правда тройбан по геометрии.
>>165268 Можешь попробовать так: в 5 юнити поменяли статик коллайдеры, теперь их можно двигать из скрипта без потери производительности. Собсно, вот берешь этот рельсотрон, который тут предлагают, делаешь его статиком. При стрельбе инстантиируешь рельсу по курсу оружия, а с ней должен быть скрипт, который будет двигать рельсу каждый фикседапдейт на её длинну. Если охота заморачиваться, можешь даже через Нное количество перемещений ПОНИмного её приближать к земле, имитируя влияние гравитации. Собсно, зачем весь этот цирк? Потому что рельсотрон правильно сделаный действительно дает 100% точность схватить попадание, но обсчитывать полет рельсы физ.движком - это оверкил, когда можно же применить выше описанный способ. Алсо, надо бы сделать и вариант с рейкастом, да замерить производительность и сравнить. Но т.к. сейчас ты, анончик, встрял в проблему, то давай и делай, а в следующем треде отпишись. А то тема дейсвтительно постоянно всплывает.
>>165284 У него не по геометрии, а по юнити троебан. Нахуй я весь этот опус >>165287 сейчас писал. Ведь судя порепликам - он даже мануал по коллайдерам осилить не может.
>>165280 А фокус в том, что тут чистый рандом на выходе, зависит от того, сколько времени прошло с прошлого тика. Может получиться так, что игрок прячется за стеной толщиной 15 метров, но этого мало! Её пробивает шестнадцатиметровое копьё и он всё равно погибает. Либо игрок 1 стоит за игроком 2, у игрока 1 есть бронежилет, у второго нет. И тут по ним стреляют, копьё-пуля прошивает игрока 1, но попадает в броню и ХП не отнимает. Игрок 2 погибает. Плюс баги с поперечным касанием. Ультраебанистический подход, это даже хуже червя-пидора, советовать такое может только законченный шизофреник с тройбаном по физике и колом по геометрии. А если скорость пули полторы тысячи? Для честного физона это точно не подходит.
>>165287 >Можешь попробовать так Я не собираюсь этого делать, потому что я не анон с летающим гробом. Но имею обширный опыт работы с юнити, потому и говорю о тех или иных проблемах. Даже иногда с пруфами протухшими.
>надо бы сделать и вариант с рейкастом, да замерить производительность и сравнить Наверняка будет быстрее райкаст, потому что там можно вообще отказаться от коллайдеров плюс рассчитывать всю траекторию в момент выстрела. В БФ4 так и делали, но через жопу. Потом в анус вставили пару костылей и оно начало работать немного получше.
>>165292 >А фокус в том, что...// дальше идет высер человека, не читающего доки Ты же просто не понимаешь как работает физ. движок. Разницу между Update и FixedUpdate уясни для начала, потом тут пиши, ладно? Копье прошивает, вообще охуеть. Знаток юнити, ты знаешь, что можно получать массив коллиженов? выбирать из них, кто был ближе, вот это все хоть раз делал или кукарекать сюда пришел?
>>165305 >Разницу между Update и FixedUpdate А там разница только в двух вещах. И ты её не знаешь.
> выбирать из них, кто был ближе Кек. Получается так : 1.Предложил костыльный уёбищный подход - обосрали. 2. Предложил ещё более уёбищный подход, с ещё большими костылями. А ты знаешь, что у нас нет доступа к деревьям? И вариантов узнать, кто ближе - всего три, олигофрен вроде тебя выберет первый. Это брать все ГО в сцене и брутфорсом перебирать их позиции. Второй - самый сложный. Написать свои деревья. И третий - использовать райкаст. Так почему блядь не райкастить с самого начала? Делать шестнадцатиметровые пули интересней? Надо быть анацефалом, чтобы такое предлагать, срсли. Надеюсь, ты просто очень, очень толстый. А я всё это пишу, чтобы у юнитиновичков не закралось подозрение, что пули-копья это норма и так может сделать психически здоровый человек.
>>165308 Лол, копье-пуля - костыль, а пуля с лазерным дальномером - не костыль. Потому я и писал анону, чтоб делал оба варианта и смотрел, что в его случае подойдет лучше. Зачем ты тут слюной изливаешься, если оно тебе даже не надо? Это я пишу для того, чтобы юнитишкольники учились примерять все к своей ситауции, а не думали, что вешать рейкаст на быстродвигающиеся коллайдеры - это так и задумано.
Дурачки, прежде чем делать 10-метровые пули и лазерные целеуказетели на них (лол), вы хотя бы collision detection на всех объектах правильно выставили? Баги у них лол. Мы как всегда мануалы не читаем и это не мы обсираемся, это как обычно unity во всем виноват.
>>165308 > И третий - использовать райкаст. Три вопроса знатоку. Дженерик деревья юнити содержат коллайдер? Физический рейкаст срабатывает на что-либо кроме коллайдера? Ты хоть раз реализовывал то, о чем со мной тут споришь?
>>165314 Я не тот знаток, с того знатока диванного сам проигрываю.
Слушай сюда, если надо сделать честную пулю, то всю жизнь делали так: у пули есть свойства PositionPrev и PositionCur. Это кэшированная позиция в прошлом кадре и позиция в текущем кадре. В текущем кадре мы хуячим либо лайнтрейс либо капсуль трейс между старой кэшированной точкой и текущей позицией. Выбираем из всего, что пересекает трейс то, что нас интересует. Сортируем квадраты расстояний от PositionPrev до каждого срабатывания трейса. Выбираем наименьшее. Бинго. Обрати внимание - расстояния можно использовать квадратичные (без извлечения корня), ибо нам важно найти минимальное, а не получить точные значения.
>>165332 Никакого "между" там нет. Считаем каждый кадр. Атомарнее некуда. Встроенная функция юнити (точнее PhysX) работает точно также (или ты думаешь, что она у аллаха спрашивает, а не пересеклись ли объекты МЕЖДУ), просто орут что глючит, поэтому вот ручной велосипед.
>>165336 Ты по мухам из гаусса стрелять собрался? Во всех экшонах хватает трейса предыдущая/текущая позиция чтобы детектить произвольно ебануто летящую пулю и объект уровня головы анона. По мухам стрелять - это тебе надо трейсить еще и мух, очевидно. Ну и искать точку пересечения двух отрезков (тоже есть простой алгоритм).
>>165336 >>165339 Иными словами, сначала ты хотел тип детекта Bullet-Moveable, теперь по картинке ты хочешь тип детекта Bullet-Bullet. Это ваще пиздец, честно говоря. Не припомню ни одной игры, где можно пулей сбить другую пулю.
>>165310 Костыль. Но более рабочий. Идеально вообще отказаться от физических пуль, хуй знает, нахуй они впились, писал уже - в том же бф4 их нет и никто не жалуется. Точнее, сначала жаловались из-за кривой реализации и запуска в продакшн без тестирования, потом пофиксили и всё играется.
>а не думали, что вешать рейкаст на быстродвигающиеся коллайдеры Анон спросил совета, а ему посоветовали шестнадцатиметровые пули. Я понял, что это кретин пишет, а анон ещё и поверить может. По доброте и пишу.
>>165314 >у нас нет доступа к деревьям >содержат коллайдер? Толще ты просто не смог.
>хоть раз реализовывал Именно так. Только без пуль шестнадцатиметровых, лол.
>>165328 > того знатока диванного сам проигрываю. > слепошарый описал то, что было чуть выше в треде С первого поста обосрался. Это ж уметь надо. Или ты думал что обозвал райкаст лайнтрейсом и всё, изобрёл новый метод?
>>165336 И что пиком сказать хотел? Или подсказать, как реализовать? На самом ситуация интересная, потому что коллайдер на самом деле не имеет толщины и без контунуос режима будет фейлиться такое регулярно даже на относительно низких скоростях и крупных объектах. Особенно прямоугольных. А если баг чуть выше не пофикшен, то и с континуос тоже будут фейлы регулярные.
>>163082 >Но только я начинаю об этом думать, только ставлю на закачку юнити. Когда я пишу код на юнити и игра выдаёт мне кучу ошибок, то я тоже становлюсь грустным и иду сидеть в уголке комнаты и плакать. >Как вспоминаю сколько игорей уже сделано, сколько идей уже реализовано, ито что я хочу сделать например уже гдето было. У меня наоборот куча годных идей, но максимум что я могу сделать - платформер без анимаций персонажей.
>>165345 >описал то, что было чуть выше в треде Ну не обижайся ты, все будет хорошо. Извини, что в твоих дерьмовых формулировках я не увидел солнцеликого ответа. И кстати, до сих пор не вижу. Видимо, плохо умею в говне ковыряться.
http://unity3d.com/
Торренты:
http://cgpeers.com/torrents.php?searchstr=unity
Сохранение форматирования кода:
не работает, сука, жаловаться можно здесь:
https://2ch.hk/d/res/194351.html
Предыдущий тред:
https://2ch.hk/gd/res/159820.html