Не нашел - создалСКАЧАТЬ: http://unity3d.com/ru/get-unityУРОКИ: http://unity3d.com/ru/learn
Какие настройки сделать для камеры и разрешения экрана под игру для мобилок, в частности под андроид. И какого разрешения делать картинку для бэкграунда, если камера будет статичной?
>>255749Много видел мобилок с соотношением 4:3 и 5:4?
>>255750Ну так какое сделать-то?
>>255749Делай под фуллашди, 1080x1920. От него уж пляши.Если камера будет статичной, то какая нахрен разница, какой размер у бэкграунда? Просто делай так, чтобы растянутый на весь экран он нормально выглядел.
>>255753И что ты имеешь в виду под статичной камерой? Если у тебя в игре будут 3д меши, то тебе в любом случае придеться менять ей дистанцию, для разных разрешений. А с 2д элементами тебе поможет вот такая хуета, как на скрине. В таком случае вся графика, что запихана в канвас будет меняться в зависимости от высоты экрана, а в ширину тебе нужно заранее сделать очень длинные бэкгранды, с запасом. Если ты не про уи говоришь, а просто про бэкграунд - делай делай огромного размера, с запасом, чтобы не терять качество на размазывание. Но при этом сохраняй кратность, чтобы можно было пик ужать в настройках спрайтов.
>>255753>>255754А если у меня будет возможность только вертикально играть. То все равно такое же разрешение делать?
>>255779Ты дебил какой-то. Больше ни с какими проблемами не сталкивался?
Анон, хочу для писольартовой своей игры сделать четкое попиксельное перемещение всех объектов. Разрешение что-то вроде 320*200 будет и надо, чтоб все смещалось четенько пиксель в пиксель. При этом некоторые элементы интерфейса типа текста будут в большем разрешении, так что не получится просто все мелкое делать и апскейлить.Есть какая-то штука для этого в юнити или писать ручками надо?
>>255782Size камеры = разрешение по вертикали / (две высоты спрайта). Например 200 / ( 16 х 2 ) = 6,25
>>255782Вешаешь на камеру: https://dotnetfiddle.net/m5pT6U
>>255781Со многими, не знаю как сделать постепенное открывание уровней. Точнее что бы прогресс сохранялся. Я вообще не могу в сохранение и загрузку. Хотя гайдов всяких почитал, в голове нихера не осело. Может и тут подскажешь.
>>255784>>255785спасибо
>>255790PlayerPrefs
>>255750Прилично.Один из ярчайших выродков -- ипад.мимоПРОбыдло
>>255793Ой, катись-ка ты с этим говном отседова.>>255790Кароч, гугли mvc и сериализацию.Можешь еще протобуферов гугловских навернуть.Самый простой пример:[System.Serializable]public class PlayerData{public List<bool> IsLevelUnlocked = new List<bool>();}Вот эту залупу можешь сериализовать в бинарник, либо жсон и сохранить на диск. В идеале еще пошифровать. inb4: и то и то залупа, а не сохраненияА потом кароч в своем монобехе, который рулит игрой, лепишь:if(File.exist)десериализуемelsem_PlayerData = new PlayerData();for(i = 0;i < levelCount; i++) забиваем список закрытых уровней в falseа потом когда надо почекать открыт ли уровень или нет берешь такой иif(m_PlayerData.IsLevelUnlocked[номеруровня])ахуенночоткоуровеньоткрыт;elseблянухуйсосибратанпобрацки;мимобухойПРОбыдлоinb4: код хуйня, он не поймет
>>255830Без урока lvlGD не разобраться.
>>255830>сериализация для того чтоб сохранить циферкуСъеби нахуй из этого треда к блюпринт-программистам.
Ну вот, я закончил свою игру. Сбилдил её на андроид, проверил, пофиксил и теперь все хорошо. Как мне на windows 10 без сертификатов от apple тупо собрать ipa файл моей игры для ios? Выкладывать, в appstore не собираюсь.
>>255837Добавлю, что пытался поставить OS X на виртуалку, но натолкнулся на разного рода сложности, которые устал обходить. Наверняка кто-то уже все за меня придумал и есть простой способ сделать то, что мне нужно.
>>255833В анус себе съеби, говнокодер.Хуй знает во что его KILLER GAME вырастет, поэтому пусть учится.
>>255749Надо делать так чтобы работало на всех. Потому что ведроид ссаный. У дедушки Ляо обязательно найдётся модель с соотношением сторон 5.555:3.666. Обязательно.
>>255837Никак. Беги за маком. В природе есть mac mini всего за 60к.
>>255888за 120. за 60 был до крыма
>>255893Я за 60 вместе с маковской клавиатурой и мышью покупал в прошлом июле. Но то совсем днищемодель, хотя и по ряду причин сейчас моя основная машина с которой пишу вот прямо сейчас. Средняя без клавиатуры и мыши стоит чуть менее 60 прямо сейчас. Но даже это гоняет Юнити без особых проблем если не делать графоний.
>>255888>>255893Причём тут Крым?
>>255899До санкций они имеют ввиду же.
>>255888брал мак аир 2013 на авито за 30к
>>255902Как санкции повлияли на цену на нефть, которая и влияет на курс рубля?
>>255905Уебок, за засирание /gd тебе не заплатят, сьеби в свой политач, гнида
Блин, а с виртуалками os x никак? Не может быть чтобы каждый нищекирил покупал себе мак для компиляции на ios.
>>255916Тебе нужен цифровой сертификат который получается только с реального устройства. Плюс стольник в год отстегивать эпплу. Компилять можно и в облаке.
>>255923Можно же без 100 в год если не собираюсь в апстор выкладывать.
Третья виртуалка не стала. Ладно, видимо соснул я с iOS.Без хорошо продуманной архитектуры очень болезнено было писать. Костыли подпирали велосипеды.Я так и не понял, например, как мне в update только 1 раз выполнить какую-то функцию нормальным способом? Я делал флаг типа:bool started = false...if(!started){ myFunc(); started = true;}...и потом при выходе из текущего гейм стейта обратно ставил started = false;Но это же пиздец какой-то.Существует аналог http://gameprogrammingpatterns.com/contents.html чтобы прямо в unity реализовывали, как для дебилов?
>>255930Корутину запили, или Invoke.
>>255940Корутина в апдейте точно также постоянно выполняется. Напиши пример.
>>255685 (OP)Как реализуют подмен одежды в играх на unity ?К примеру есть модель игрока, и скажем игрок находит рюкзак и одевает его.Все изи если рюкзака 2-3 вида. А если их 10-15 ?Делать сабмеш с атрибутом отображать\не отображать не вариант, сильно ФПС просядет.
>>255749переключи проект на андройд, там будут все нужные разрешения.file->build settings->android->switch platform
>>255956Объект рюкзака, меняешь его меш с текстурой на нужные.
>>255927На реальном устройстве не проверишь.
>>255954Чего? StartCoroutine(Hui())...IEnumerator Hui(){ Debug.Log("Pizda"); //konec korutini}
>>255837На винде под ios собрать будет очень сложно, оно того не стоит. Какие я вижу варанты:1. Купить старый мак на авито. Макбук Про 2009 года стоит 10-15 тысяч рублей, на него можно поставить последнюю икс ось и на нем билдить под ios. Понятное дело, что будет подтормаживать, но чтобы собрать проект, самое то. 2. Есть сервис, на котором можно запускать мак ось в облаке. Стоит от 20 баксов в месяц: http://www.macincloud.com/Да, кстати, ты же в курсе, что тебе нужен девелоперский сертификат эпл, чтобы собирать приложения для ios? Он стоит 100 баксов, дается на год. Если ты нещеброд и проект более-менее комерческий, запускайся в гугл плей и смотри как попрет. Если нихуя качать не будут на андройд, то и на ios будет тоже самое.
>>255961Забыл, там еще yield return обязательно нужен. В конце yield return null допиши.
Реально ли приделать отдельный хитбокс для оружия и отдельный для персонажа, чтобы это не было костылями и по-уебански? Ну чтобы у разного оружия разный хитбокс был. Как вообще это делается? Есть спрайты оружия, есть спрайты персонажа и врагов. Как технически это вообще реализовывается?
>>256036Отдельные слои для отдельных типов хитбоксов. Для мобов свой слой, для героя свой, для оружия свой.
>>256048Можешь с примерами какой-нибудь гайд дать?
>>256051Не могу. Я гайды не смотрел. У тебя есть объект "оружие" с коллайдером - дай ему слой "weaponcolliders". Для персонажа тоже свой слой. Для мобов - слой. Учись работать со слоями, детектить столкновения только по отдельным слоям, и будет тебе счастье.
>>256054Слои применяются только для проверки столкновений? Для чего тогда применять теги?
>>256056Теги - хуйня. Слои именно для физики должны использоваться. Ты даже в настройках физики (Settings/Physics) можешь указать, чтобы коллайдеры из определенных слоёв не сталкивались друг с другом. Например, если хочешь, чтобы мобы никогда не застревали в оружии (пример говно, но суть ясна). При грамотной работе со слоями и отключением лишних контактов скорость игры заметно возрастает, если ты используешь много коллайдеров.
>>256056В идеале можно обходиться без тэгов. Не знаю, как другие, но я ими не пользуюсь. Скорость получения объектов по тегам достаточно медленная, а для реакции на разного типа объекты я обхожусь сравнением слоёв, а не тегов.
Как сделать так, что бы при портировании на андроид графон не пидорасило? Я закидываю апк, а у меня вместо пикселей каша одна. Где еще стоит что указать, чтобы все четко отображалось?
>>256076Мип мапы отключи.
>>255960в ideone.com если загрузить ipa?
>>255961Ты что, издеваешься? Или ты советы раздаешь сам не понимая что ты говоришь?
>>256111Если тебе надо запустить корутину один раз - запускай ее в Start, аутист.
>>256113Хуле ты со своими советами тогда дебильными лезешь, раз не понимаешь? Нужно было именно в Update один раз запускать какую-то функцию не используя булевые флаги, ты мне начал рассказывать, что корутина в апдейте не один раз запускается. Теперь меня аутистом называешь. Из-за таких умников найти нормальное решение своей задачи среди тонн высеров тебе подобных превращается в вылавливание яблока ртом из бочки с говном.
>>256115>Нужно было именно в Update один раз запускать какую-то функцию не используя булевые флагиИ как ты себе это представляешь?
Если бы это делалось на Юнити, это ведь было бы в тридэ режиме, правильно?
>>256210да
>>256210Но ведь юнити умеет в двадэ.
>>256222Я про режим, в котором оно делалось, я знаю, что умеет. Но тут ведь камера перспективная, хоть и дваде.
>>256226Да, в юнити много камер, эта самая перспективная.
>>256226Пиздец, что ты несешь? Ты можешь использовать 2D-физику и при этом использовать перспективу. Ты не понимаешь сути.Есть физическая модель. 2D и 3D. Есть камера. Перспективная и ортогональная.
>>256229Я понял, спасибо.
>>256115> найти нормальное решениеНайди его запустив свой говнокод через старт/энейбл/эвейк.
>>255685 (OP)Кстати, из вас никто тут нормальную шапку для юнити-треда не пилил? Или её проебали?
>>256259А что не так с текущей?
Rigidbody rocketInstance; rocketInstance = Instantiate(rocketPrefab, barrelEnd.position, barrelEnd.rotation) as Rigidbody;Вот первая строка, "Rigidbody" значит что в переменную влазит компонент ригидбади? Или что?Ведь в нее засовывают целый префаб. И что значит "as Rigidbody"?
>>256481ты создал переменную типа ригидбадизатем ты, скажем грубо, в нее записываешь результат функции инстантиейт. на сколько я помню, базово этот метод выдает просто тип Object(даже когда гейм обжект инстантиейтишь - надо в конце писать ес геймобжект), ибо функция не омжет знать что ты даешь на вход. Ез ригидбади - это типо приведения типов. в общем шо создал - к тому и приведи результат, как-то так
Как (ИФом, но это не важно) запретить нажатие кнопки?
Как мне сюда Else для второй камеры присобачить? Чтобы на неё этот курсор переключать (и обратно)if (camera1.gameObject.active == true){var mousePos = Input.mousePosition;var wantedPos = camera1.ScreenToWorldPoint (Vector3 (mousePos.x, mousePos.y, depth));transform.position = wantedPos;}Не спал, туплю уже.
>>256523уже не надо
Что у меня не так?CS:GetComponent.<Rigidbody2D>().velocity = new Vector2(movement, GetComponent.<Rigidbody2D>().velocity.y);> (24,30): error CS1525: Unexpected symbol `<', expecting `identifier'
>>256544Ты совсем дурак? Пробовал в переводчик строку вставить?После GetComponent не надо ставить точки.
>>256544GetComponent<Rigidbody2D>().velocity = new Vector2(movement, GetComponent<Rigidbody2D>().velocity.y);Точка не нужна после GetComponent
Где можно взять полную инфу по сетевому протоколу сабжа? Пикрандом.
Как аниматор отключать?
Уже не надо, ебать я туплю.Алсо, чо у вас тут так тухло стало?Раньше же куча народу сидела итт.
>>256612Все перешли на уеч, он же лучше.
>>256613>он же лучше.Cмешная шутка.
>>256612Неосиляторы слились, большинство на UE парашу.
>>256663> Неосиляторы > на UEвот пральнонастоящие мужики уже давно на гей мейкер перешли и эрпоге, не то шо эти
>>256577RakNet.
Пацаны, никогда не давил человека машиной, так и должно быть или как-то нереалистично смотрится?
>>256698не думаю что вот так прямпроведи эксперимент
>>256699>>256698Пофиксил.
>>255685 (OP)Есть юнитинюфани в Котосибирске с каким-никаким опытом? Ну чтобы там алгоритмы знали, шарпы были на уровне, ООП, вот это всё? От 20к до 50к дают в знакомой конторе. Пилить игори на мобилочки. Много и быстро. Не КокодемМедия.
>>256698Да, все именно так и происходит.
>>256210Да, но скорее всего с 2д физическими обьектами
>>256669Это я видел. Оно совместимо с новым api?Лучше пойду свою пилить с нуля. Нашел такой туториал, где 33 ACK-а в одном пакете передаётся.
Анон, есть что-нибудь по типу GameObject.Find, но для префабов?
>>256996В каком смысле для префабов? Ты же создаешь из префаба объект, его и ищи.
>>257001Хочу чтобы можно было скриптом создать из префаба объект, но для этого, очевидно, нужен сам префаб как геймобжект.Конечно, я могу просто перетащить его в инспекторе, но я хочу быть крутым и заставить скрипт самостоятельно найти нужный префаб хотя бы по имени.
>>257006Можно кинуть префаб в поле в редакторе.
Как сделать минимапу без привязки второй камер,? Как это делается на сервере? Напирмер если объектов тысяча, корабли, астероиды, ракеты, и клиенту нужно выслать только те, которые видеть ему положено. Брать массив объектов с карты, перебирать по тегу, те которые подходят сравнивать растоянние видимости, и только потом высылать? Ну и как лучше с точки производительности и гибкости делать на юнити? Делать большой триггер коллайдер в виде сферы?
В чем делать анимации должного качества, в блендере получается плохо и деревянно, неужели нет альтернатив?
>>256709ГейБаннерНетворк?
>>257059>получается плохо и деревянноВ блендере ли дело?
>>257063Двачую.
>>257023Сервер вообще про юнити ничего знать не должен. И ты не можешь например отрисовать тыщщу объектов на минимапе, получится кусок непонятной пиксельной каши.
>>257063Да, в нем.
>>256996Resources.LoadAssetBundles.LoadАлсо, пацантре, кто-нибудь юзал StateMachineBehaviour для ИИ?
>>256996Resources.Load, но твой префаб должен быть в папке Resources. Например, Resources/Prefabs/.../pidor.prefab
>>256996AssetDatabase.FindAssets(prefabName);Ищет по всему проекту твой префаб
Ищу аналог gameprogrammingpatterns.com на C#
>>257194Ну ты и дебил.
Если не хочу покупать ассеты, а собираюсь сам пилить, где можно гайды посмотреть?
>>257199на youtube
>>257199В голове, если полностью сам решился.
Друзья, а как еще можно реализовать небо кроме как скайбоксом? Ну, в плане, еще и динамики, что бы можно было анимацию запилить и тд? Как это вообще делается?мне так и не ответили. :(
Посоны, на каком сайте пизженные ассеты можно скачать?
>>257261гугли юнити3дэ чото там uaон в поиске встречается если названия ассетов гуглить>>257259чувак, это сложный вопрос. Здесь не так уж и много реализуемых вариантов. Самое простое - самому ебашить 3D модели и двигать их. я другого не придумал.
>>257266Ну, я догадывался, что это сложный вопрос.Тогда, друг, что скажешь о том, что бы запилить как в одном видео, т.е сферу вокруг локации? А на нее уже анимацию? Это сильно большой костыль?
>>257279>Это сильно большой костыль? Это норма. Вообще не понял в чём проблема.
>>256698Меня сбивала Газель, когда я был в 4м классе. Я отлетел вправо от машины. Удар пришелся на левую ладышку, не спрашивай, как. Пролетел метра два.
>>257279Это называется скайбокс, как бы.
>>257300Это да, но так я смогу сделать ему несколько уровней и тд. Если юзать дефолтный, я так смогу сделать?
>>257299Ах вот ты где, сучёнок.
>>257304Да, мразь. Могла бы что-то получше принести в больницу, а не сраный тетрис.
>>257299>ладышку>в 4м классе.Кому ты пиздишь? В 4-м классе уже писать умеют. Тебе ещё минимум два года до него тянуть. Или ты особо одарённый?
>>257316До кого, еблан? Что ты несешь вообще? При чем здесь "писать"?
>>257316А, лол. Загуглил написание.>Лодыжку
>>257261u3d.at.uaЕбаный в рот, может уже в шапку запилим?мимоПРОбыдло
>>257408Ладно, щас запилю.
Кто-нибудь знает как текст сделать подчеркнутым, мб у кого-нибудь есть ассет? Rich Text не поддерживает <u>, ассеты, которые позволяют отрисовывать текст подчеркнутым стоят овер дохуя. Анон, хелп.
>>257421Наверное, можно найти шрифт, который изначально подчеркнут.
>>257421В удаленном треде писал же тебе - возьми шрифт с подчеркиванием или сам дорисуй нужному шрифту хоть подчеркивание, хоть что.
>>255685 (OP)lf gj[eq
>>255685 (OP)Чому юнити так редко юзают для девелопа игр под пк?
>>257742Это тебе одноклассник сказал?
>>257744На семинаре по юнити на этот вопрос ответить не смогли.Тру стори
>>257742Потому что юнити часто используют для игр на мобилах, ввиду отсутствия альтернативы. Вот и складывается впечатление, что на пк на юнити не делают, на самом деле делают, просто не так часто, как на мобилы.
>>257749https://en.wikipedia.org/wiki/List_of_Unity_games
>>257752Rust был написан на юнити, а потом они перешли на другой движок Точно не уверен насчет перехода. Чому?
>>257753У разработчиков спроси.
>>257753>Точно не уверен насчет переходаКликнуть в вики по слову Rust религия не позволила?
>>257753Побег из таркова пилился на крае, а потом они перешли на юнити. Чому?
>>257756У меня так учительница по английскому говорила.>>257757Почти.
В игруле на iOS нужно иметь возможность прочитать заранее составленный xml, так же надо будет записывать в него.В какие папки мне это все ложить, и какой путь использовать при записи и чтении?
Анон, есть что-нибудь годное по тому, как ПРАВИЛЬНО писать код?То есть всякие там "не стоит захламлять фиксдапдейт", только в более широкой форме. Оптимизация, 60 фпс даже для консоли и так далее.Хотелось бы с самых пелёнок привыкнуть писать код хорошо, а не "как заработает".
>>257822google code standards для своего языка.ТЫСЯЧИ, БЛЕАТЬ, КНИГ НАПИСАНО про это всё. Нет, не хочу учить, не хочу вбить три слова в гугл, не хочу скачать книгу по первой ссылке, хочу на дваче хуйню писать и прокрастинировать.
Кхм, да, действительно, движок один и тот же -- юнити. Графен завезли.
>>257835> туман> колоргрейдингчто тебе ещё завести, болезныйгосподи, ебаный вротельник, а потом они ещё в юичтред заходят посрать
>>257822SOLID, Code Smells, Refactoring.guru
>>257836нуфажина
>>257838по скрину больше ничего не заметно
Я не понял, какая-то манда потерла тред с царской шапкой?Шапку-то схоронили?
>>257822Не загоняйся на тему как правильно писать код. Юнити – это кувалда, которая решает проблемы в лоб. Все эти паттерны и прочее говно, просто не будут работать из коробки, потому что тебе постоянно нужно наследоваться от монобихейвиор. Если бы это реально было все просто и понятно, нашеся бы уже какой-нибудь умник, который записал бы туотриал как это надо реальзовывать в юнити, где конкретно на понятных примерах объяснил бы что к чему. Но юнити уже 10 лет и за это время нет ни одного нормального туториала и знаешь почему? Потому что ими никто не пользуется. Да и где их использовать? Чтобы лишний раз повернуть гейм-обджект не нужны паттерны и стандарты. Вообще, пока ты используешь юнити, тебе даже не понадобится 95% си шарпа. - А что если у меня будет серьезная разработка, например клиент сервер и всякое такое говно? - скажешь ты. - А что если ты, блять, погушлишь пять минут готовые решения? - отвечу я. Стандарты были придуманы, для аутсорсинговых контор, чтобы обезьяны выдали хоть что-то рабочее. У тебя такой проблемы нет, потому что ты не обезьяна и у тебя не какая-нибудь ебучая банковская система, а йоба-игруля.Короче, всегда пиши как удобно тебе, а не как должно нравится каким-то пидарасам, которые ничего кроме asp.net в жизни не видели.
>>257822На самом деле все ответы не правильные, это можно понять по вопросу. Анон хочет производительности, а не паттернов или форматирования кода. Например тот же фикседапдейт либо даже кривая проверка батонов могут съесть немало фпс. Но тут уж надо самому разбираться и гуглить, почему с одной лампочкой 10к трисов, а с двумя в два раза больше и так далее. >>257929>постоянно нужно наследоваться от монобихейвиор.Не нужно, если знаешь, что делаешь. Туториалы есть.
>>257930>Анон хочет производительностиthis
CrossPlatformInputManager - блять, сука, блять, пидарасы, нанвижу, блять. Кто вообше это говно придумал? Сука, я бы пальцы бы переломал, говноеды конченые. Как же, блять, сука заебали конченые мрази, напиши ты, блять, как нормальный человек в одном классе через if, но нет, быдлокодеры размужут по 10 классам то, что умещается в 10 строк. Блять, сука, говно ебаное.
>>257941А да, еще оно не работает.
>>257941если анон сейчас в офисе юнити, ебани по ебалу говноеду, который написал это говно. Сука, блять, если я сижу с компа и делаю игру под девайсы, это не означает что я хочу постоянно юзать ремоут. Что за ебанутые узколобые дегенераты? Почему нельзя написать так, чтобы на компа работал ввод и с клавиатуры и с мышки? Суккаа, ненависть блять пиздецюаквпвап
>>257941У меня работает. На мобилах не юзал, делал небольшой проект с машинкой, всё работает.
>>257952а у меня вагон проектов, которые надо зафиксить по-быстрому в ВО ВСЕХ не работает это говно. В предудущих было тоже самое. Сука, блять, еще и производители ассетов тоже добавляют это говнецо к себе. Серьезно, дотнет-бляди - не люди. Нахуй юнити нанимает людей, которые пишут вопреки экосистеме. АААААА. СУУУКАААА.
>>257973какого хуя я вообще должен чинить покупные ассеты? где эти ебучие черные ящики? Почему я вообще должен обращать внимание на говнокод?
Посоны, я новенький у вас, вот начал делать космострелялку (вид сверху, ортографик камера), а теперь захотелось подцепить HUD как у айронмена, ну типа чтоб полоски ХП в 3d отображались. Но получилось только когда камеру перевел в перспектив мод. Можно ли канвас рендерить отдельной камерой и налаживать поверх изображения основной камеры? Должна быть полупрозоачность,
>>257973>производители ассетов тоже добавляютПотому что у них тоже всё работает. Но всегда есть кто-то один, у которого всё не работает.
>>258001Можно сделать джве камеры, первая не имеет гуя, вторая не рендерит ничего, кроме гуя. Ещё придётся установить порядок рендеринга.
>>258008Пробовал так, не получилось, но раз такое возможно, буду копать дальше.
>>258028Если канвас будет в режиме "скрин спейс оверлей", то не сработает. А так работает, только что проверил. Кулинг маск и депт настрой по вкусу.
Сработало, нужно было еще выставить Clear flag - Depth only, добра.
Гайс, можно ли из приложения менять сплэшскрин? Именно Android. Будем считать, что у меня pro, естественно
>>255754Я вот поставил настройки как у тебя. И все кнопки на андроид устройстве ужимаются. На компе и в самой юньке все нормально, а как на телефон перекину, то все сжимается до маленьких размеров.Еще вопрос такой. Как реализовать сохранение лучшего результата в игре, что бы еще и на андроиде работало. Приведите точный пример скрипта на сохранение, что именно там должно прописываться?
мужеки, кто юзает dotween?
>>258211Я. Так себе, если честно, даже стандартный Animator впечатлил больше.
>>258194Насчет первого — попробуй поставить не Scale with screen size, а Constant Physical Size, с дефолтными настроечками (Points, 96, 96, 100).Насчет второго, эм... Ну:PlayerPrefs.SetFloat("Player Score", Mathf.Max(currentScore, PlayerPrefs.GetFloat("Player Score")));PlayerPrefs.Save();Примитивно, дальше сам.
Ананасы, скажет кто, как лучше сделать респавн героя по кнопке, в 2d проекте. Из идей только сделать запуск сцены по новой, но мне не хватает мэдскиллза чтобы это сделать. Поможет кто...
>>258223Все "стартовые" значения и вызовы функций вынеси из Start() в функцию Spawn(), которую будешь вызывать из Start и из нужной кнопки.
господа, дайте ссыль на UFPS, не нашел нигде современной спираченной версии
>>2582491.6 нигде нет, есть 1.4.9https://forum.cgpersia.com/f79/release-ufps-ultimate-fps-1-4-9-a-106631/
>>258252хотелось бы 1.6, но и на этом спасибо, не думаю что различия стоят долгих упорных поисков
Господа, платиновый вопрос, наверное.Есть объект, переносящий игрока не следующий лвл. Нужно получить номер текущей сцены, добавить к нему 1 и при колайде с игроком запустить следующую сцену.Какую ему ссылку то нужно?Если прописать номер сцены вручную, то всё ок.
>>258260Разобрался однако. Пздец гайды у юнити кароче.
>>258264>Scena
>>258266А что такое? Что бы со Scene не попутать.
>>258276А ты пиши имена переменных как белые люди - с маленькой буквы, и проблем не будет.
>>258281Я открою тебе тайну- пока я делал свою говно игру я ничегошеньки не понимал. Туполепил команды по мануалу и копипастил готовый код. Уже движок забабахал, врагов сделал, осталось спрайты нарисовать да какую-нибудь историю прикрутить и игорь готов. По образованию визажист, если что.
Меня в гринлайте за лого юнити в запуске игры не обоссут? Пока не планирую покупать проф. версию.
>>258285>визажистГде на такое учат, лол?Мимоврач
Ананасик, у меня вопрос по 2д физике.У меня есть объект, который нужно раздавить. Скажем на поверхности лежит блок. На него сверху падает другой. Если падает достаточно тяжелый, то первый блок уничтожается.Другой вариант - когда блок зажимается между двумя кинематик объектами. Они просто продавливают блок через себя, а нужно его уничтожить. Я честно гуглил, но нихуя не нашел.
>>258293Тебя за твою игру тупую обоссут, а уже потом за лого юнити. Так что не волнуйся.>>258294На 3х месячных курсах, очевидно.>>258297Ну, когда падает, можешь через коллайд уничтожить. void OnCollisionEnter2D(Collision2D coll) { if (coll.gameObject.tag == "BiggerMass") { Destroy(gameObject,.5f); } }Скрипт ставить в объект с меньшей массой. Правда тут уничтожится лёгкий объект даже если не на него упадёт большой, а он на большой. Можно ещё скорость движения чекать, но это думаю и так понятно.про второй вариант не очень понял. В голову пришёл только корейский способ- вставить внутрь объекта ещё один объект, который будет уничтожать их оба при контакте с чему угодно кроме того, во что он вставлен.
>>258307В обоих случаях нужно вычислить силу, которая действует на объект. Во втором случае два движущихся объекта как бы зажимают блок между собой. Резолвер, если есть куда - "выдавливает" блок, а если его "выдавить" некуда - продавливает сквозь коллайдеры. Самый простой и очевидный способ, который пришел мне в голову - количество точек столкновения. В самом простом случае с круглым коллайдером их две, по одной на каждый из объектов, которые зажимают его. Может быть и больше, если коллайдер не круглый. Но я пока рассматриваю этот простой случай. Получается, что когда блок "продавливается" через коллайдеры, количество точек столкновения увеличивается, например до четырех (в некоторых случаях и больше). Так что если количество точек столкновения больше 4 - можно смело уничтожать объект. Но это частный случай. Время от времени с таким подходом возникают проблемы. Например при больших скоростях резолвер не успевает добавить контрсилу вовремя, и блок уничтожается даже при обычном столкновении, а не когда его зажимают другие обьекты.Может есть способ вычисли эту самую силу давления на объект?
>>258310Rigidbody2D.massМассу точно можно получить, не думаю, что есть смысл ебаться с расчётом силы (масса* на ускорение). Если у тебя проблемы только при больших скоростях, то может проще взять и обрезать макс скорость?
Сука, как получить доступк блядскому альфа каналу? Шейдер накинул, пишу ему object.renderer.material.color.a как в гайде, а оно хуй.Нужно сферу сделать полупрозрачной, пол часа гуглил, нихуя не нашел, поулчить компонент не получается, помогите, иду спать с разорванным пердаком. Блядь, все приходится гуглить, анон, сижу 4 дня, я конечно ньфажина ссаная, но тем не менее. Вот создал 10 обьектов, и подцепил их к пустому обьекту, чтоб двигать все вместе. Запускаю, и тут хуяк главОбьект сьехал вправо, а координаты в трансформе те же самые что и были. WTF? у меня баттхерт, приходится сука былокодить и в ручную писать сдвиг. А от UI кресло прогорело нахуй. Ладно, может просто тупой, зато кораблик летает, мнимапа работает и карта со свездами, которая скролится, только нужно сделать чтоб объекты на краю были прозрачными, а то когда резко исчезает оченоь некрасиво.рейнджер порватка
>>258311На самом деле проблема возникает не только при больших скоростях. Есть частные случаи, когда точек столкновения много, но нет давления на блок. Предусмотреть все такие случаи и исключить их не получится. Ну и да, сила давления не предусматривает ускорения. Как быть в этом случае?
>>258314Отвернуться от давления- делить силу на площадь соприкосновения ты заебёшься. Может просто сравнивать массы сталкиваемых объектов и неподвижный уничтожать?С зажиманием-у тебя как эти зажимания возникают то?
>>258315
>>258316Ебать, так у тебя 1 тело не подвижное жи. Тогда просто чек 2х коллайдеров одновременно+чтобы кто-то из них двигался.Функции лень гуглить но логика такая: Если ((есть_колайд_с_1объектом&&есть_колайд_с_2объектом)&&(скорость1го>0&&скорость2го=0||скорость1го=0&&скорость2го>0))Уничтожить этот объект.Ладно, завтра попробую нормальный код кинуть. По-моему идея с проверкой точек соприкосновения тут будет полностью провальна.
>>258317Не спеши с выводами. Вместо статического коллайдера может быть кинематик коллайдер.
>>258321Я пришел к выводу, что пока самый оптимальный вариант - с двумя коллайдерами. Но возникла другая проблема. Чтобы уничтожить объект нужно чтобы в столкновении участвовало минимум три объекта - сам блок, и два (статических или кинематик) коллайдера. Я порылся в документации, но так и не понял как мне определить сколько коллайдеров сталкиваются с моим блоком. Collision2D.collider дает мне доступ к одному. А если их два или больше, как быть тогда?
>>258333А как у тебя называются колайдеры?
>>257784Application.persistentDataPath>>257929>потому что тебе постоянно нужно наследоваться от монобихейвиорКатись отседова, умник ебаный.>>257941Манда ты тупая, даже объяснять тебе ничего не буду, а ткну сюда: http://gameprogrammingpatterns.com/command.htmlЕбись дальше со своими перехардкожеными ифами.Алсо, скоро новый инпут завезут: http://blogs.unity3d.com/ru/2016/04/12/developing-the-new-input-system-together-with-you/>>258211Юзал. Штука хорошая, но ебал в рот. Аниматор попизже будет.>>258313Ты какой шейдер используешь, наркоман?Вангую, что какой-нибудь Opaque.
>>258387>Ты какой шейдер используешь, наркоман?>Вангую, что какой-нибудь Opaque.А какой надо? Разные пробовал, напиши строчку кода будь добр как получить доступ со скрипта, потому что у меня подсвечивает красным.
>>258403Отбой, сделал
>>258384А как они могут называться? CircleCollider, Polygon Collider. Они добавлены как компоненты. Я подозреваю что доступ к ним можно получить через гет компонент и массив с коллайдерами. Но тут другая проблема теперь - даже если я получу ссылку на правильный коллайдер, как мне проверить что OnCollisionEnter происходит для правильного коллайдера?
>>255685 (OP)ЮнитигосподаРасскажите мне про возможности местного физического движка.Мне нужно симулировать поведение шагохода в реальном мире и отработать алгоритмы.Есть ли у вас подобие акселерометра, гироскопа? Про соединения все итак более-менее понятно.А вот про то, можно ли тут сделать балансирующий шагоход - не совсем.
Сап, я решил сделать сейв лоад систему по этому гайдику https://unity3d.com/ru/learn/tutorials/modules/beginner/live-training-archive/persistence-data-saving-loading но как передавать туда инфу, если у меня например 100 скриптов с которых мне надо достать и сейвануть инфу. Делать 100 ссылок в скрипте сейвлоада как то не ок, и сто класов статиками тоже не ок, какой третий пиздатый способ которого я не знаю?
>>258448Берешь и без задней мысли пишешь СИСТЕМУ СОХРАНЕНИЙ.И каждая блядь, которой надо сохранить-загрузить данные стучится в эту систему сохранений.мимоПРОбыдло
>>258432Сделать можно всё. Ты должен понимать, что physics - физический движок, который ты в любом случае будешь использовать.
Серьёзный вопрос, только не бейте.Нужно ли для 2Д игры писать/заюзать готовое решениедля culling-га объектов вне камеры?
>>258532Если включишь, то будут бесящие фичи, как в ниндзягайдене, когда враги ВНЕЗАПНО появлялись там, где их не было секунде назад. Если не включишь- могут быть лаги (если овердохуя понапихал). Я свои 2д делаю без кулинга.
>>258532У тебя фруструм кулинг из коробки работает.мимоПРОбыдло
Интересуют способы обхода ограничения координат объектов в Юнити. Суть вопроса в том, как создать огромный процедурный мир. Сам мир прекрасно генерируется, но рано или поздно погрешность float дает о себе знать и все катится в пизду. Какие идеи есть?
>>258555Делать всё из кубиков размеров в 1f? Больше кубиков богу кубиков!!!
>>258555Погрешность?Расскажи ещё.мимоначинающий
>>258555Это не проблема юнити. Это проблема c#. Только в библиотеках java можно сделать мир как в майнкрафте, т.к. там используется double. А в c# во всех либах для координат float.
>>258577float предоставляет четкие данные вплоть до 6 или 7 чисел, вне зависимости от того, после какого по счету числа идёт запятая. Такова особенность. Поэтому мир достаточно сильно ограничен, если тебе важен каждый сантиметр.
>>258588до 6 или 7 цифр*
>>258586То есть если я тупо перепишу сейчас все скрипты на js, то расстояние от центра координат перестанет быть проблемой? Какие подводные камни у такого подхода?
>>258597Java и JS-дрисня - разные вещи
>>258599Как я понял, мне не решить проблему с погрешностью?
>>258532Я на эту тему гуглил. Нет никакого готового куллинга для 2д. В моем случае было достаточно скрипта, который деактивирует объект, и отключает физику, если он вне видимости камеры.
>>258555Генерить мир в виртуальных int координатах, а потом преобразовывать значения в float?
>>258604Что-то не допру, можно пример?
>>258555И ещё вопрос: как эта проблема решена в kerbal space program? Там ведь довольно большой мир, и скорости тоже серьёзные.
Чуваки, сделал игру на юнити. Она жутко забагованная и недоделанная, и я планирую её долго править, но у меня возник вопрос. Как избежать такого сильного зависания во время переключения сцен? У меня начало возникать подозрение, что это в принципе невозможно, потому что игра одинаково подвисает на разных девасайх. То есть все анимации и визуальный переход между локациями желательно делать в одной сцене, чтобы добится максимально плавной игры? https://play.google.com/store/apps/details?id=com.Dogroom.DogTv
>>258610черт, два раза запостилось
>>258605Например скрипт генерации работает с целыми числами. А уровень генерируется в процессе игры в пределах, где погрешность не влияет на координаты. Относительно позиции игрока, например.
>>258555Катится в пизду это как? Кубики стык в стык не попадают что ли? >>258606Не вижу таких ситуации в этой игре, на которые погрешность оказывала бы серьезное влияние.
>>258555У себя сделал так - мир отцентрован относительно персонажа, персонаж всегда примерно в нулевых координатах, мир двигается относительно него. Положение персонажа - три double, XYZ. Из подводных камней большого мира - отрисовку вдаль не запилить, т.к жрёт фпс. Много активных объектов не запилить, т.к жрёт фпс.
>>258625У меня не кубики, а звезды, с планетами и прочим. И на большом удалении от центра камера начинает дрожать, как и сам корабль, и звезда с планетами вокруг.
>>258650На каком то twg была игра с бесконечным заводом космосом на юнити, значит есть способы дать пососать ограничениям.
>>258604И в чем смысл этого действия? Ты преобразуешь int во float и опять получаешь число с погрешностью.>>258650Короче, я тебе поясняю. В маленьких играх можно позволить себе двигать небольшой уровень относительно персонажа. Но представь, что будет, если ты будешь менять координаты каждый кадр. Твой фпс адски просядет из-за того, что ты насилуешь physics и заставляешь всем ебаным объектам менять свою позицию.В майнкрафте реализована возможность делать мир шириной до 10 миллионов блоков (метров), если мне не изменяет память. Также, если мне не изменяет память, он написан на libgdx. А там можно использовать double для координат. Такие дела.
>>258674>можно использовать double для координатНа самом деле нельзя и дело не во фреймворке, а в видеокарте. Она для рендеринга принимает данные во флоатах и пошлёт нахуй твои даблы. С подобной проблемой сталкивался разраб спейсэнжина, кстати, можно погуглить.>что будет, если ты будешь менять координаты каждый кадрДвигаю мирок 50х50 тайлов 4х4км каждый. Не каждый кадр, а только когда игрок преодолевает 2км в любую сторону. Каждый кадр учитывается только прохождение игрока по любой из координат. >>258626 -кун.
>>258674Ну значит если тип данных у координат не изменить никак , то может проще написать свой движок?
>>258680Вот мне тоже интересно как инженер обошел эту хрень, я где-то читал пару лет назад его пост об этом, но сейчас хрен вспомнить где.
>>258682>как инженер обошел эту хреньПросто конвертирует перед передачей на рендеринг в относительные координаты во флоатах, а сам оперирует абсолютными. Почти то же, что и я делаю, лол. На читал скорее всего на хабре.
>>258674Смысл в том, что координата целого числа 60000000 может быть представлена как относительная координата 0.0.
>>258484 >>258674>physicsPhysX, даун необучаемый, PhysX.
>>258674>майнкрафт>Также, если мне не изменяет память, он написан на libgdxЧереп не давит от знаний?
>>258703Он чуть выше писал, что в шарпе даблами пользоваться нельзя, так что всё и так понять, нечего разжёвывать.
>>258387говна пожуй, ебанат
Как без лишнего гемороя запилить сервер для фри-ту-плейной игры с юнити клиентом? Есть готовые решения? Хотел заюзать https://parse.com/, но они перестают работать в январе.
>>258611вроде можно сцены загужать в отдельном потоке. это может помочь. В старой api это дергалось через Application.LoadLevelAcyns, сейчас, наверно, есть что то подобное в SceeneManager
>>258611Скорее всего аудиофайлы грузятся долго. Поменяй для музыки тип на streaming
Подскажите пожалст, как узнать площадь треугольника? Для Vector2 и Vector3.
>>258804https://www.google.ru/search?q=площадь+треугольника
>>258810там много и искать надо и для Vector3 особенно. проще спросить чем вечер искать.
>>258812Ебать прогугли площадь трехугольника в пространстве. Или найди его стороны, через функцию которая возвращает растояние между точками и подставь в формулу.
>>258814а могу просто попросить на дваче, чтобы мне дали довольно тривиальную хуйню, у которой много методов решения, которая в добавок ещё и может быть написана красиво и понятно(а может даже с коментиками) с использованием имеющейся хуйни в юнити. вместо того чтобы сидеть и выдавливать это из гугла и из себя.
>>258815
>>258819Дай в виде шарпа.
>>258821Дал за щеку, читай.
>>258821 Ты охуел? Катись отсюда.
>>258824>>258823жадные вы хуи.
>>258824>>258823Тричую, блядь.Совсем охуел, пиздюк.
>>258828на самом деле мне 27 лет, а написали хуйни, поэтому надо написать хуйни в ответ.какой ответ такой и ответ на ответ, хули.но вернусь к просьбе. нет чтоли ни у кого под рукой красиво функции, которая потом не клюнет меня с порядком вершин, или ещё какой хуйнёй?
>>258830Да-да, мы тебе поверили, пошёл нахуй.
>>258830А от порядка вершин будут разные трехугольники? Что несет..
>>258830Великовозрастный ленивый долбоеб - ещё хуже пиздюка
>>258830while(true){GameObject gayObject = new GameObject("cockHole");Debug.Log(gayObject.name);Vector3[] vert = new Vector3[3];vert[0] = Vector2.zero;vert[1] = Vector3.back;vert[2] = Vector2.one;float sqrTri = ((vert[1].x - vert[0].x)(vert[2].y - vert[0].y) - (vert[2].x - vert[0].x) (vert[1].y - vert[0].x)) * 0.5f;Debu.Log(sqrTri);}
ладно, всем спасибо за внимание, я выдавил из себя что хотел, жадные хуи. заставили тут меня вспомнить эту сраную геометрию.>>258844я пришел к более изящному решению.private static float Area(Vector2 A, Vector2 B, Vector2 C) {return Mathf.Abs(Vector3.Cross(A - B, A - C).z) * 0.5f;}
>>258855Мелкобуква в 27 лет, пиздиш.>>258830>>258815
>>258856знаешь, сидя в интернете с 2002 года я пришел к простому выводу: использовать любые правила которые не приводят к искажению смысла сообщения это бесполезная трата усилий. например первое сообщение в треде я написал вежливо и с большой буквы, потому что хуяк просьба которая вроде как сэкономит мне время. а для говна мне лень на шифт жать.впрочем иди нахуй, эту тему можно развить, но она не про юнити, а новые треды тут делают редко.
Привет, анон. Ищу себе напарника для совместного гейм-дева. Мне очень скучно что-то делать в одного, пиши на мое фейко-мыло: anon.ananasov.pr@yandex.ruКод пишу исключительно на C#, мне без разницы 3д или 2д.Жду тебя, няш :3
>>258903Хоть описал бы, чего тебе надо, жанры там какие предпочитаешь, на что пишешь.
>>258906Жанры абсолютно любые, пишу на десктоп, на андроид пока-что не пробовал. Вкатился то недавно. Да и если заинтересовало, то пиши на почту. Там на все отвечу ^^"
Какой нахуй суперхот? Вот говноапа продается за 269 рублей. Конечно завидовать нехорошо, но, сцуко, почему я до этого не додмался?http://store.steampowered.com/app/334410
>>258917На VR просто более пиздатого ничего пока не сделаешь. Рисовалку толко как у лилипичу.
>>255685 (OP)Антуан, я тут чисто случайно наткнулся на свг импортер. Вообще охуенная штука, и со скэйлом проблем нет, и занимат копейки места. А как оно в деле, кто нибудь пробовал? Охуенно садит производительность в 2д режиме? А то у меня от юнити смешанные чувства, вроде и работает неплохо, но каждый мой пук сьедает такое колличество фпс, что я даже не знаю, стоит ли игра свеч.
Как запилить бэкенд для фритуплейки с минимальным гемором?
>>258931Попроси у мамки денег, найми макак.
Аноны, есть у кого моделька щупальца? Можно самую простую, лоупольную.
>>259026Вырежи из старбаунда, там красивые.
Уважаемые нет юноны, шо можете сказать о распознавании образов? Была игоря на мобилочку, помню, шота про паркур, там гг бежит по скролящейся дорожке с препятствиями, а игрок должен рисовать кружочки-завиточки чтобы гг изящно вращаясь и выгибаясь преодолевал препятствия. Хотел бы к своим корованам прикрутить такое. Я правильно полагаю, что машина различать узорчики лучше всего будет при использовании нейросети я в этом вообще хуй и ну ваще не разбираюсь?Есть ли готовые решения на такой случай? Каким образом енто лучше реализовать в юнити мытищи ультрахардкор?
>>259200Ищи, гугли, на андроид студио такая библиотечка точно была, с возможностью еще и добавлять свои жесты так что думаю полюбому где то что то такое естьа в ассетстроре за 100$ так точно.
У кого-нибудь есть Procedural UI Image? Можете поделиться?
>>258964денег нет. вернее есть, но на макак не хватит.Нашел вот это: http://www.gamesparks.com/ выглядит круто, но дорого шопиздец. Первые 100к пользователей бесплатно, потом 2 цента ЗА КАЖДОГО ЮЗЕРА. То есть с ляма установок им надо 20 килобаксов отстегивать.
>>259218>думает что в его говно больше 10 человек поиграет
>>259221но ведь играют же
Как лучше всего реализовать таймбар. У меня есть вот такое прикрепленное к красной полоске:transform.position = new Vector3 (gameObject.transform.position.x - Time.deltaTime * 16, gameObject.transform.position.y, 1);if (transform.position.x > xx + 60) {transform.position = new Vector3 (xx+58 , gameObject.transform.position.y, 1);}if (transform.position.x <= xx - 60) {Time.timeScale = 0.0f;}}xx - gameObject.transform.position.x;При клике увеличивается на 4. В самой юнити работает нормально, а на мобилках размеры херятся. И получается что полоска не до краев доходит. Что поменять? Я думал использовать размеры самой полоски вместо чисел 60,-60. Но не могу найти как выцепить размер непосредственно в коде.
>>259246Таймбар на канвасе? Сделай на канвасе и правильно выбери относительно чего скейлить, и в настройках рескейл на мобилочках сделай.
>>259246>Как лучше всего реализовать таймбар.Тут я хотел спросить, а не утверждать. Просто у меня не получается сделать нормально.>>259257У меня стоит constant physical size. Но при этом на мобилках все равно херятся размеры.
>>259261а не проще с помощью слайдера в новом UI, отключив у него управление?
>>259246А ты никогда не задумывался, для чего нужен слой гуя?
>>259265>>259262Я и пришел сюда за советом и наставлением. Будьте любезны, помогите.
>>259273Сделай канвас с такими параметрами
>>259276Добавь слайдер, сними галочку в нем с того чтобы его можно было мышкой двигать, наложи текстуру и програмно увеличивай размер движущейся штуки.Или вариант номер 2, сделай картинку обводки индикатора которая типо окаймляет твой бар и сделай внутрений бар, поставь первую картинку поверх второй и локалскейлом увеличивай ту картинку которая показывает насколько этот бар заполнен. Кривовато описал но вроде понятно.
>>259277Вобще гугли HP bar unity там все будет хорошо расписано с кодом.
Кто-нибудь знает как менять размер размер экрана игры в редакторе через код? Типа было 320х480 стало 940х640
На пике одно и то же растение с разными материалами: деафул-материал(сверху) и спрайт(внизу).Как видно, тот что выше нормально реагирует на свет. Но его изображение деформировалось и стало ужасным. Нижний спрайт не изменил своего вида, но его видно при отсутствии света. Очевидно, выглядит бредово.Подскажите как сделать не деформированный спрайт, реагирующий на свет?
>>259409http://antonkudin.tumblr.com/post/110198230014/pixellightingМожет что-то интересное почерпнёшь.
Аноны, делаю тайкун, и у меня в игре есть внутриигровой календарь, и мне нужно запилить генерацию, чтобы на каждый год генерировался календарь, с днями недели и правильными датами, типа в некоторых месяцах 31 день, в некоторых 29, и все это должно соответствовать этим правилам. Так вот, есть ли идеи как запилить, как прописать условия для каждого месяца + высокосного года. Надо массив ебануть или можно безз него обойтись, хотя наврятли. Хелп, вообще не соображаю
>>259424А настоящий календарь использовать, зашквар чтоли? Бери системные инструменты, они всё умеют.
>>259430Но у меня игрок будет пролистывать время, и неделя за 5 сек пройдет, у меня будет симуляция времени, разве так можно будет делать?
>>259436Системные инструменты знают сколько дней будет в феврале в хуй-пойми-каком году и все такое
Какие настройки графониума у картинок будут самыми приемлемыми для андроид устройств? >>259246Кстати, сам нашел ответ на свой вопрос.>Но не могу найти как выцепить размер непосредственно в коде.RectTransform objectRectTransform = gameObject.GetComponent<RectTransform> ();wid=objectRectTransform.rect.width;
>>259456Если говорить про фильтрацию, то билинейная и точка на производительность почти не влияют. Так что если у тебя не пиксель арт какой нибудь - лучше брать билинейную. Нет мягких градиентов - 16 битный формат самое то. На ретине даже не заметишь. А максимальный размер, насколько я понял влияет за упаковку в атласы и мипмапы. Не думаю что тебе нужно ее дергать. Я ставлю минимальный размер в который втискивается спрайт.
>>259461Алсо, хорошая практика - работать со спрайтами один к одному. Поэтому у меня всегда 1 юнит - 1 пиксель.
Анон, поясни за мультиплеер. Чем хорош фотон? А может сам мультиплеер от юнити? Как выглядит сервер -- консольное приложение, или обязательно юнити-приложение? Вообще имеет смысл сервера-мастера игры? Как дела с читерами?
Котаны, есть вопрос: как на UI отобразить картинку какую-либо по координатам объекта в 3Д пространстве. Например, кликнул мышкой по объекту, рейкастом получил его параметры, а вот как отобразить вокруг него, допустим овал, на UI я не пойму.
>>259501А зачем тебе это делать на UI? Вы тут как то криво решаете задачи. Один на физике элементы интерфейса делает, другой элементы сцены в интерфейс запихивает. Охуеть тут можно.
>>259504я вообще не знаю как решить эту задачу, физикой я просто получаю имя объекта, но мне нужно ка то отобразить вокруг этого объекта спрайт, независимо от расстояния от камеры, поэтому и подумал что UI лучше использовать.
>>259508Я так понял тебе нужно что-то вроде выделения юнита в РТС?
>>259508Camera.WorldToScreenPoint, только все равно не понятно зачем тебе UI.
>>259510>>259511Вот скрин космической карты из SE. На нем видно у всех звезд обводку, которая не меняет размера от расстояния от камеры до этой звезды. Я хочу реализовать что-то подобное, но только для звезды по которой кликнул мышью. Сам объект получаю рейкастом, это не проблема. А вот как рисовать этот кружок вокруг него, нет идеи.
>>259500спроси в бэкенд треде.
>>259512Ну функцию я тебе дал. Пользуйся.
>>259512Есть несколько вариантов.1. Создаешь canvas, в нем renderer mode ставишь в world space. Теперь у тебя UI будет рисоваться не на камере, а в пространстве. Потом ты добавляешь картинку в этот canvas и перетаскиваешь canvas в трехмерном пространстве туда, куда тебе нужно. Ну или картинку. Его можно вращать, все дела.2. Другой вариант (Кстати, у тебя 2д или 3д?) Если 3д, то можно создать plane и на нее повесить как текстуру твою картинку, которую ты хочешь. Ну и просто перетаскиваешь ее в то место, куда тебе надо.3. Если ты хочешь создавать динамически 2д-фигуру, то с этим проблема, потому что юнити почему то так не умеет. Зато, вроде бы, умеют плагины. Посмотри в этой категории:https://www.assetstore.unity3d.com/en/#!/search/page=1/sortby=popularity/query=category:117То, что тебе может подойти:https://www.assetstore.unity3d.com/en/#!/content/20166https://www.assetstore.unity3d.com/en/#!/content/29160https://www.assetstore.unity3d.com/en/#!/content/82
>>259519Отличная функция, спасибо за наводку. Все замутил, все работает.
Аноний, моя первая поделка в программировании вообще.Цель - сделать галактическую карту, просмотри пожалуйста быдлокод и скажи что не так? Все работает, но должны быть упущения, bad practice и тд. Может само по себе решение глупое? Сорри что так сжато.
>>259445Спасибо анончик, спас.
>>259535
>>255685 (OP)Вы не девелоперы. Вы ссаные конструкторы. Сажи въебите.
>>259535Если у тебя в игровом мире 10 звезд это ок. А если 1000 или 1000000? Инстантиэйт не лучший вариант. Тем более парсить список из 100000 элементов, на предмет их видимости это очень плохо. Нужно оптимизировать.
>>259545 — раздался пронзительный голос со стороны параши. Но пацаны, как всегда, не обратили внимания на это визгливое кукареканье. Пусть кукарекает, что с него взять? Движкоблядь — не человек, и сегодня ему предстоит очень трудная ночь. У него уже в течение полутора лет каждая ночь была очень трудной, и теперь его рендер был разработан настолько, что он без труда мог вывести на экран банку сгущёнки.
>>259548Звезд будет 50-100, но а если тысячу, какое решение можно применить? Была еще идея сделать карту как бокс коллайдер, и если звезда в нем, то отображается. Благодарю за отзыв.
>>259563Решений может быть множество, от структуры данных, из которой ты будешь читать информацию для отображения до каких нибудь кластеров, которые будут обрабатываться попадая в область видимости камеры. Честно говоря мне лень думать.Что мне сейчас бросилось в глаза, так это проверка на видимость. Быстрее использовать префаб со скриптом. OnBecameVisible тебе поможет рисовать все что нужно и избавит от пробега по массиву в каждом апдэйте.
Анон, я вижу сегодня у тебя настроение хорошее, ты советы даёшь.Можешь рейтануть мой маленький проект в плане оптимизации? Один скрипт скинуть будет глупо, там их всего лишь пять и они тесно связаны, лучше просмотреть цельный проект.Суть в том, что хотелось бы не проседать по кадрам на ~100м объекте при скорости x10. Есть у вас какие-нибудь советы, как у тех, кто уже довольно давно кодит?Единственные мои идеи по оптимизации на данном этапе - вместо постоянного applyforce с собственной силой за каждый объект, применять всего лишь один applyforce с суммой всех нужных сил.Просто хочу максимально обсосать этот тестовый проект ради получения бесценного опыта.В c# и юнити я третий месяц, не бейте ногами.https://www.dropbox.com/s/cxjo4or73to4yc5/chem.rar?dl=0 не вишня
>>259462Одна история ахуительней другой
>>259574Ты себе льстишь, когда говоришь что на скорости 10х проседает на сотом объекте. У меня проседает на третьем десятке, с семидесяти до пяти-шести фпс, лол.Ты не думал использовать вместо всего этого хлама Point Effector?
Господа, можно ли прикрутить к этому страхоёбищу нормальный интерфейс?После ue4 вообще невозможно работать, глаза вытекают, пальцы узлом завязываются, мозг фаломорфирует.
>>259577Шо нитак?
>>259586В официальных мануалах юнити всегда берут 10-36 пикселей на 1 юнит. Ты вообще представляешь, что значит 10 юнитов? Это гигантский объект. Так никто не делает.
>>259587Физика объекта размером в 100 юнитов - это пиздец, например. Просто по поведению объектов можно судить.
>>259584>После ue4 вообще невозможно работатьНе знал что ко вкусу говна можно привыкнуть. Почему с уе4 ушел, кстати? Насчет вопроса - интерфейс юньки можно до неузнаваемости перелопатить, правда блюпринт-программистам это не под силу.
>>259583Поинтэффектор хорошая штука, но я, как минимум, не знал о его существовании. В новой версии обязательно воспользуюсь им.Но на данный момент я хотел бы оставить апплай форс просто ради интереса и, опять же, опыта. А то кто знает как жизнь сложится.Может меня свяжут и под дулом автомата заставят аналогичную хуйню делать используя только апплайфорс? Как я перед ними отчитаюсь, если проседать на тридцатом объекте начнёт?
>>259590UE4 слишком тяжелый для нашего скромного 2D говнеца. У меня тут рядом сидит сеньор шарпов, он со мной полностью согласен насчет интерфейса.Рассказывай как лопатить. С документацией у юнити тоже беда какая-то.
>>259587Ты представляешь что размер - относительная штука, и 1 юнит это всегда один юнит. Не метр, не килограмм. Просто единица измерения. Если тебе нужно сдвинуть спрайт на 10 пикселей, ты заебешься с координатами. Гигантские объекты у него, вообще охуеть.
>>259593У тебя абуз фиксед апдейта. Единственное что может это исправить - отказ от такого количества вычислений за тик.
>>259597Ты ебанутый? Ты понимаешь, что максимальная координата равна максимальному float'у? Ты понимаешь, что никто в здравом уме не будет использовать 1 юнит как 1 сантиметр? Это, блять, просто здравый смысл. Он делает картинку равную 1/650 от общего размера ФИЗИЧЕСКОГО МИРА. Вообще охуеть. Удивительно.
>>259597Ты странный, так как нет смысла считать расстояние в юнити в пикселах, юнити же не блиттингом в фреймбуфер эти спрайты рисует. Где отображается пиксель только от настроек камеры зависит.
>>259600И ты мне сейчас назовешь общий размер физического мира, и максимальное значение float?
>>259603Настройки камеры... считаются в юнитах))) Браво. Теперь ты должен понимать о чем я говорю.
>>259569>OnBecameVisible тебе поможет рисовать все что нужно и избавит от пробега по массиву в каждом апдэйте.Хм, не знал, крутая штука, но, OnBecameInisible не подойдет, так как хочется плавного исчезновения, а не мгновенного. Придется пока оставить так, буду поднимать скил на других вещах, добра.
>>259604Ладно, не трудись. Я сам тебе его назову - 3e+38. Точные значения можно получать вплоть до 9999999, что для любой 2д игры не просто достаточно, а более чем.
>>259610void Update() {if (isVisible) { ...}}
>>259599Я понимаю, что фиксдапдейт это святое, но мне казалось, что большую часть жрёт именно физика, а не какие-то там 2+2.Это не так?
>>259634А что по-твоему у тебя в фиксед апдейт как не физика?)
>>259664Да, точно, хуйню написал. Я тогда уже был одной ногой в постели, ничего не соображал.meh
Сап, Гдеч.Теоретический вопрос: как реализовывать обход динамических препятствий?Есть один встроенный navmesh, и хотелось бы, ползая по нему, обходить динамические препятствия, типа других ползунов.Можно использовать встроенные obstacle, но тогда нет возможности выбирать "игнорить" легкую обстаклю, которую проще сдвинуть, или видя что она более тяжелая - аккуратно обходить. К тому же ползун будет "видеть" весь путь, даже тот который не в его поле зрения, а какого хрена он видит других ползунов за углом?Можно рейкастить перед собой, находить коллайдер, сравнивать массы, брать его bounds, но что делать потом? Как построить новый путь или скорректировать старый, исходя из этих bounds?Дискач.
>>259686ты задал довольно страшный вопрос. динамические обстаклы это обычно когда берется готовый навмеш, в нем вырезаются дырки в нужных местах и он ретриангулируется минуя этап вокселизации. можешь попробовать брутфорсить все баунды, например как это у этих хуёв http://rivaltheory.com/rain/ например чтобы агент просто обходил их по краям в надежде что где-то там найдется дырка. или триангулировать только динамические обстаклы, строя проходимые области только между ними, а потом искать места соприкосновения с существующим навмешем.если препятствия появляются в процессе, то можешь сохранять несколько предыдущих маршрутов и проверять, какие препятствия появились на старом пути, например. и пускать агента по старому маршруту, если он более адекватен.алсо пикча из моего самодельного навмеша который я никак не закончу.
>>259686Зачем тебе делать обстаклем препятствия, которые не нужно обходить?
>>259693Ковырял их проект, по некоторым причинам, отказался от его использования.Как я уже упоминал, нет проблем в использовании обычных обстаклей, есть проблема в том, что навмеш един для всех. Это значит что Ползун весом в 1 килограм и весом в 100 килограм для навмеша - одинаковые препятствия.К тому же, учитывая, что навмеш един, то Ползун1 в 20 километрах от препятствия, внезамно о нем узнает при построении пути, если Ползун2 в 1 метре от него поробует через него пройти.Поэтому я предположил, что наиболее адекватным будет компть в сторону редактирования определенного Path, рассчитанного для данного конкретного ползуна, учитывая что мы знает bounds препятствия.Так же есть решения, которые называются 3d pathfounding (в "космосе" и т.д.), но там много непонятной магии, типа Dijkstra's algorithm и т.п.Опять же, это мои предположения, поэтому запускаю дискач.
>>259696Для одного это препятствие, для другого "я эту хуйню еще обходить буду?!". Но навмеш же один для всех.
>>259693Тащемта можно упороться в подобное, но чот как то непросто это.http://gamedevelopment.tutsplus.com/tutorials/understanding-steering-behaviors-collision-avoidance--gamedev-7777
>>259698Навмеш да, а carving можно включать в зависимости от того, кто использует навмеш.
>>2597005 Ползунов используют навмеш. Одновременно. Каждый использует как обстакли только 2 из оставшихся 4. Вот я о чем. Ниторопись, подумой.
>>259699это долго, если нихуя не знаешь какие есть проблемы и как их можно решить.>>259697да можешь особо не описывать проблему, она и так понятна. вроде у юнити обстаклы не могут влиять на какой-то конкретный леер, так что вариант с тем чтобы каждый леер был для своего агента отпадает. если хочешь пользоваться навмешем юнити то можешь попробовать сделать довольно нелепую хуйню - очередность проверки путей. включить нужные обстаклы для нужного агента, получить путь, включить обстаклы другого агента и так далее.редактирование пути на самом деле довольно плохая затея, если несколько обстаклов рядом. если хочешь именно строить маршрут, то для проблемных мест можно на коленке собрать свою навигацию по гриду, например. это проще чем свой навмеш написать. например когда агент приближается к жопному месту то там кастуется грид Physics.SphereCast и дальше навигация уже по нему.алсо ололо че дейкстру то вспомнил? лучше https://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0_A* воспользуйся. тот-же дейкстра, только плюс фактор удаленности.
>>259704>очередность проверки путейЯ уже представил всю печальность способа от 10 Ползунов и начало слайдшоу. :(>если несколько обстаклов рядомСогласен, "увидев" один обстакль, попробует обойти, там второй, попробует пройти по предыдущему пути, там первый обстакль и так до бесконечности.Но! Можно использовать CapsuleCastAll и использовать суммарный Bounds.>A*Согласен, рассматриваю как вариант, наряду со steering. Подходы разные, и в данный момент steering мне кажется чуть более удобным вариантом.
>>259707>Я уже представил всю печальность способа от 10 Ползунов и начало слайдшоу. :(да врядли, у юнити динамические обстаклы довольно быстрые, как и проверка пути. к тому-же тебе надо перепроверять путь не каждый фрейм же. я бы попробовал сначала лёгкие пути. это-ж не моя бида-пичаль с тем что у юнити NavMeshBuilder в неймспейсе UnityEditor, так что хуй а не навмеш для процедурного уровня в 3д.>Можно использовать CapsuleCastAll и использовать суммарный Bounds.на самом деле я бы от баундов не отталкивался. если у тебя уровень имеет только одну плоскость то можно, например, зная форму обстаклов собирать все их контуры в кучу, находя места их пересечения и искать обход уже сложной фигуры. но весь этот план глобально говняный, потому что динамический обстакл может упираться в границу навмеша например полностью блокируя какой-то проход и так ходя вокруг обстакла агент никогда не найдет
>>259708>динамические обстаклы довольно быстрыеА если не 10, а 40 Ползунов? Придется менеджер писать, в котором обязать их региться, и чтобы он каждому рассчитывал путь. Мысль интересная, но не решает вопрос с "всезнанием" пока еще не видимых участков пути.>обстакл может упираться в границу навмеша например полностью блокируя какой-то проходПо идее, можно на краях bounds брать NavMesh.SamplePosition (к примеру, используя Bounds.ClosestPoint), тем самым проверяя сам факт проходимости.
>>259710да думаю и 40 потянет, на самом то деле. и больше. у меня где-то был забавный мини-проект где был навмеш с псевдобесконечным миром для 2д. я двигая мир вокруг игрока брал самплы из перлина и представлял их как динамические обстаклы, надо было убегать от злого шара. пересчитывал каждый фрейм и в общем-то не тормозило ниче особо даже с таким ужасным подходом.>тем самым проверяя сам факт проходимости. не ну это вариант конечно, да. хотя интересно можно ли заставить юнити построить альтернативный маршрут, имея в виду что тут не ходим не используя метод выше.
>>259711>да думаю и 40 потянетКак вариант запомню, хотя необходимость постоянно следить за перебираемым массивом в менеджере пути делает меня грустным.>заставить юнити построить альтернативный маршрутPath в юньке это массив Vector3. Где [0] это точка начала, а последний элемент - конец пути.По идее, нужно [1] точку редактить, вводя поправку на bounds задетекченных коллайдеров (вот тут хз как... вектор от Collider.ClosestPointOnBounds до.. до... хз, края bounds?), а потом в появившемся vector3 брать NavMesh.SamplePosition, тем самым гарантированно получая точку навмеша. Если непроходимо обстаклями, то будет толкаться до упора, это да.А еще можно от до [i+1] рейкастить (как минимум первые 2-3 точки), и вводить поправку вышеуказанным способом, перерассчитывая после этого путь от скорректированной точки и дальше, получая новый path.Но это первое что в голову пришло, надеюсь адекваты присоединятся к обсасыванию сферического коня в вакууме.
>>259716да не, я про другое. картинкой объясню. подход с обходом краев предполагает что препятствие можно обойти. а что если нельзя? юнити же нельзя нормально сказать "исключай эту область из поиска пути", кроме как динамическим обстаклом, или Area, что не рассматривается как вариант.
>>259720>подход с обходом краев предполагает что препятствие можно обойти. а что если нельзяМожно рассчитать [1] скорректированную точку (главный вопрос в том, как ее корректировать. Тут у меня проблемы.). От нее (а не от твоего положения, как при первом проходе) сделать NavMesh.CalculatePath(). Получаем путь, учитывающий и объем агента и обстаклю перед носом.
>>259721да по моему никак. надо же чтобы она была ближе к цели чем предполагаемый путь через обстакл. а хуй знает где там продолжение маршрута. юнити же не дает вроде весь граф областей навмеша.
>>255685 (OP)1
>>259723Я не понял тебя.NavMesh.CalculatePath() от Начала до Конца.У нас есть Path. Он содержит 4 точки пути (waypoint): [Начало, 1, 2, Конец]Между [Началом] и [1] обстакля. Корректируем точку [1] относительно обстакли (получаем точку на навмеше, с учетом bounds обстакля).Рассчитываем путь от [1] до Конца.Профит. Что не так?
>>259725ну смотри, есть например коридор из двух квадратов. на картинке они черные. если спросить путь до цели у юнити, то он будет синим. но что если синий путь полностью перекрыт красным обстаклом? его не обойти вблизи синего пути. тогда с учетом обстакла правильный путь будет зелёный. но юнити не знает что синий путь не является правильным. чтобы построить зеленый путь надо передвинуть точку номер 2 с синей позиции на зелёную и считать путь от неё (скорей всего). но каким макаром её можно узнать исходя из оранжевых точек которые являются границами обстакла? я не вижу пути.
>>259734Понял. Согласен. Пока единственный работающий механизм - менеджер, включающий\отключающий обстакли и после этого рассчитывающий путь для каждого агента. Учитывая, что обстакли динамические, придется перерассчитывать Путь для каждого (с включением соответствующего обстакля) минимум раз в пол секунды. Потестю, но предвкушаю грусть и печаль. Больше мне в голову пока идей не приходит...
>>259704> включить нужные обстаклы для нужного агента, получить путь, включить обстаклы другого агента и так далееНе прокатывает. Включаемая обстакля не успевает "прорезать" навмеш. Ray.collider.GetComponent<NavMeshObstacle>().enabled = true; NavMesh.CalculateTriangulation(); NavMesh.CalculatePath(SourceHit.position, DstHit.position, NavMesh.AllAreas, Path); Ray.collider.GetComponent<NavMeshObstacle>().enabled = false;
>>259750там под опцией Carve у обстаклов есть опции всякие интересные. и попробуй давать какое-то время в лупе внутри IEnumerator c WaitForSeconds согласно настройкам обстаклов.
Хуйли у меня галка mirror в blend tree не активна? Хуйли движок не говорит хули блядь ему надо? Хуйли в гугле на эту тему лежит жирный черный хуй? Хуйли всё не для людей? А?
>>259846Это норма, у меня как-то целый проект распидорасило, что-то тупо выключилось и не работало, пришлось заново пересобирать.
Юноны, поясните, как анимировать дочерние части модельки. Т.е. как их поворачивать, двигать, это понятно. А как использовать другие спрайты в анимации дочерней части? Например анимация ног и тела по отдельности. Сильно не бейте, в юнити недавно.
>>259854https://www.youtube.com/watch?v=5tIcetxCqYE
У кого-нибудь есть годные гайды как реализовать систему диалогов в игре? В первую очередь интерисует 2д, но и 3д сойдёт.В смысле подходит ГГ к табличке- появляется надпись (через колайдеры что-то не прокатывает). Или идёт по локации и пошёл текст типа истории.
>>259966Почему не прокатывает? Как проверяешь?
>>259966> (через колайдеры что-то не прокатывает)У меня все прокатывает. Подошел к коллайдеру - заинстансился геймобжект перед камерой, досточка с текстом. Нажал эскейп - досточка дестроится, и можно дальше идти.
>>259990void OnCollisionEnter2D(Collision2D coll) >>260009У меня сами таблички даже но 10-20 камер появляются через UI. Так что привязку делаю на подобии этого. http://nn-game.ru/assets/%D0%B2%D1%81%D0%BF%D0%BB%D1%8B%D0%B2%D0%B0%D1%8E%D1%89%D0%B8%D0%B5-%D0%B4%D0%B8%D0%B0%D0%BB%D0%BE%D0%B3%D0%B8-%D0%B2-2d-%D0%B8%D0%B3%D1%80%D0%B0%D1%85Свой код можешь показать?
>>260013Нууу ээээВот врезается игрок в дверь. На двери колайдер-триггер и скрипт:void OnTriggerEnter(Collider other){if(other.gameObject.tag == "Player"){Instantiate(tablichka, transform.position, transform.rotation);}}"Когда триггер-коллайдер соприкоснулся с другим коллайдером, то если у другого коллайдера тег "Игрок", создаем обьект "табличка" в таких-то координатах повернутый в такую-то сторону". Обьект естественно берется из префаба, ну и в префабе скрипт вида "при нажатии Esc - уничтожиться".
Есть объект игрок ,с прикрепленным к нему скриптом player.захотел добавить второго игрока ,написал очередность ходов, а ход не передается.класс второго игрока тоже плеер.Как мне в коде определить какой это игрок?
>>260110Тег плеер2 добавить?
>>260113добавил,ход не переключается как будто он не понимает какой геймобжеки юзать
>>260110Сохрани на него ссылку где-нибудь.
>>259839Я понимаю.Но это значит, что при каждой итерации необходима будет задержка в цикле. Предположим, задержка в 0.1 сек. Уже при 10 ползунах, это будет 1 секунда.При 100 это будет 10 секунд, что вообще нереально.Пока решения проблемы нет. Благодарю за дискач, навмеш-кун, успеха тебе.Пока в роадмапе под грифом "Альфа" висит возможное решение данной проблемы:AI: NavMesh workflow and bake APIWorkflow: the workflow is now based on componentsNavMesh Surface component describes a volume where the navmesh will be build, you can have multiple volumes, in any orientationNavMesh Portal is a new component which allows to connect two NavMeshes with a wide linkNavMesh Modifier allows to change the area type of the NavMesh which falls inside the volumeNavMesh Markup allows fine grained control of area types per Game Object, replaces static flagsBake API: everything above is built on top of a simple API which allows you to pass in the geometry that will contribute to the NavMesh building method to quickly collect render or physics geometry
доволен, перелопатил кусок кода отвечающий за "воронку". он теперь, конечно, похож на мусорное ведро, но зато теперь сорт оф мультиразмерный агент не такой полужопинский как был раньше.>>260340да поставь более маленькую задержку, че ты. например выше на том скриншотике с кучей навмеш обстаклов каждый кадр выключал все обстаклы, потом брал обжекты из пулла и включал обратно. там задержка была явно не 0.1 секунды.вообще по моему опыту скажу - если есть возможность не ебаться с навмешем, лучше городить костыли. если хочется ебатся с ним, то советую почитать http://upcommons.upc.edu/bitstream/handle/2099.1/16508/Ramon%20Oliva.pdf?sequence=1&isAllowed=y
>>260357кстати, стоит добавить что у этого хрена идея вокселизации мне не очень понравилась. из всех методов мне более адекватным показался у rain indie. у A* берутся треугольники меша и растеризуются, а rain indie более хитрожопый - там берутся меши примитивов и подставляются на место коллайдеров соответствующих типов и растеризуются уже они, так что в итоге меш по границам коллайдеров а не мистической хуйни.кстати одна из причин почему мне не нравится навмеш юнити, он строится по видимой хуйне. в итоге всякие ветки у деревьев которые не имеют колизии добавляются в навмеш как препятствие.
>>260357NIET POOTY.С любой задержкой не работат. Что с большой, что с маленькой. Что с Carve параметрами в 10 что в 0.001.Выйдет адекватный API - будем ковырять, а пока придется подождать, либо, если совсем уж припрет, стороннее юзать.>в итоге всякие ветки у деревьев которые не имеют колизии добавляются в навмеш как препятствиеСогласен, бесит. Фиксится выставлением NavigationStatic в false у модели.
Ананасы, ткните меня носом в то каким должен быть AI в DOOM-like шутере. И как его собсна реализовывать. Мои боты только бегут к игроку пока в него не упрутся, да по пути непрерывно стреляют прям в него. Как заставить их стрейфиться вокруг игрока, например, и не врезаться в стены? Пережидать пока игрок стреляет и набигать пока он перезаряжается?
>>260490Так же как ты и заставил их бежать на тебя. if (игрок стреляет) стрейфif (дистанция <= 100) не идти вперед> не врезаться в стены A* или NavMesh
>>259201и как предлагаешь мне искать енто?
>>260514http://goo.gl/AePxhJ
Кто-нибудь получал девелоперский сертификат юнити? https://certification.unity.com/
Что это?
>>260579Может покупные штуки из ассетстора?
>>260580Скорее всего. Может кто тут узнает.
>>260580>покупныеПочему обязательно покупные? Можно и самому написать.
>>260582Можно, но нахуя? Даже близарт тупо с ассетстора тащит для хертстона либы. Зачем заниматься велосипедостроением и занимать программистов у которых рейт выше чем единоразовая покупка поддерживаемого ассета?
поделюсь с двачиком сценой которая мне понравилась. захотел применить рут моушен к перемещению агента и маршрут стал заметно интересней!https://www.youtube.com/watch?v=R29OY7KbrlA>>260402надо будет самому попробовать костыль такой приделать, интересно стало. кстати там же осенью обещали сделать навмеш не таким полужопинским как сейчас. во всяком случае в их роадмапе был такой пункт. но там довольно мало писали, хотя сказали что сделают выделение зон для навмеша.>>260579а не разглядеть название окошка даже. че делает то не знаешь?
>>260587>а не разглядеть название окошка даже. че делает то не знаешь?хз, тетка в очках левел дизайнер.
Как сделать, чтобы корутина (IEnumerator) продолжала выполняться, если обьект, на котором висит скрипт с корутиной, SetActive(false)?
>>260591никак, они выключаются при выключении объекта. можешm делегировать корутину другому объекту, который бы выполнял функцию менеджера.
>>260592Многовато обьектов получается, а через InvokeRepeating непонятно как передавать параметры в void.
>>260594так ты одному менеджеру делегируй, просто имей в нем колекцию с IEnumerator, где список активных корутин и передавай в корутины что-то что содержит делегат, и например параметр для WaitForSeconds.корутины же можно держать как параметр и делать напримерIEnumerator myIEnumerator = SomeIEnumerator(myAwesomeValue);myIEnumeratorList.Add(myIEnumerator);StartCoroutine(myIEnumerator);и делать это много раз. кстати единственный адекватный известный мне способ применять корутины не в плеймоде это вот так сохранять на них ссылку и каждый раз им говорить myIEnumerator.MoveNext(); в каком-нибудь ГУИ.
>>260579Блюпринты, вестимо. В ассет сторе именно таких не нашел, так что наверное самописные.
>>260596Спасибо!
Что скажите про Forge?
>>260579Что-то такое. Один из тысячи визуальных редакторов. >>260597>БлюпринтыКек. Теперь весь ноде-базед функционал будет блюпринтами? Нахуй это говно.
>>260652Блюпринты уже настолько устойчивый мемас, что нет смысла ебаться с такими длинными и неудобными описаниями. Ноде-базед функционал? Нахуй это говно.
>>260655Флоуграф. Ноды. Блюпринты это как-то анриловскому, а значит, по-пидорски.
>>260652>Один из тысячи визуальных редакторов. Это понятно, но какой именно? Интересно какие именно штуки используют в больших именитых проектах.
>>260659Да скорее всего юскрипт. С моим скрином вся разница только в тёмной\светлой теме. А вообще из визуальщины под юнити навороченней антареса хуй найдёшь, наверное. Но это точно не он.
>>260663Большое спасибо! Похоже это оно и есть.
>>260658Лично мне похуй, я не участвую в петушиных боях.
Поясните как найти всех юнитов на расстоянии N от другого юнита, и следом найти среди них ближайшего.PhysicalOverlap не предлагать, оно ебически тяжелое.
Ануний, поясни, каким образом лучше создавать сцену с точки зрения производительности и чистоты кода, если данные о ней хранятся в массиве ? Инстантиейт или создание объекта с нуля? Вот взять простенькую солнечную систему, которая состоит из звезды, нескольких планет, сотни астероидов и бэкгрануда. Вот астероиды все однообразные, их можно клонировать с префаба + пару строчек кода на изменение трансформа. А что насчет планет?
>>260652> UnrealScript (often abbreviated to UScript)хуя тонко
>>260726Ну для начала, создай класс абстрактных планет...тыпонял
>>260685Самое очевидное - держи все юниты в листе и чекай между ними дистанцию, когда надо.
Почему при установке на андроид, игра выдает два значка на экране?
>>260579ассет Playmaker, наверноеhttps://www.assetstore.unity3d.com/en/#!/content/368
Друзья, подскажите начинающему, почему простой 2Д проект подлагивает на android мобилках?Там всего 9 drawcalls и 150-200 треугольников. Vsync отключен.Простой мониторинг фпс не помогает разобраться - я собирал раз в 0.5 сек, показывает 55-60 фпс. Но лаги-то есть.Пытался рассмотреть профайлером в редакторе - есть странные спайки в работе GPU, но похоже, что это работа на отрисовку самого профайлера ()если двигать его окошко, то спайки превращаются в постоянную нагрузку, такой же по длительности выполнения).На что обратить внимание, какой код, может, вычистить?
>>260837Скрин профайлера и названия девайсов, на которых тестировал.
Подскажите ассет магазина, чтобы за внутриигровые деньги покупать всякию хрень и делать апгрейд. Можно без инапов.
>>260853Игру то сделал? Или сразу магазин нужен?
>>260881>2016>делать геймплей перед внутриигровым магазином
>>260760Это пиздец убогий.Прикрутили сетку и поиск 1-9-25-49 c сохранением результатов. Работает примерно в 50 раз быстрее physics overlap. Нужно еще байтоёбством позаниматься, можно еще быстрее.
>>260897Чо пиздец то? У тебя все равно есть массив с юнитами, если ты заранее позаботился о том, чтобы назначить им родителя.
>>260930Это список. Список пиздец дорогой для обработки. Клетки на порядок дешевле выходят.
>>260940Бро, поясни пожалуйста что такое клетки? Сам ньюфаг ебаный, делал поиск через списки. Алсо, как сделать так чтоб глаза не вытекали от мелкого шрифта и интерфейса ?
>>260989Полагаю, он разбил поле на сколько-то квадратов, квадрат хранит в себе списочек находящихся в нём юнитов. Юниты, перемещаясь по полю, отправляют контроллеру квадратиков инфу о смене своего квадрата по необходимости. В таком случае вместо перебора всех юнитов на мапе ты перебираешь обычно в разы меньше, рассчитывая через нужное расстояние N те квадраты, которые оказываются в пределах этого радиуса, остальные отбрасывая.
>>260995> разбил поле на сколько-то квадратов, квадрат хранит в себе списочек находящихся в нём юнитовШёл 2016 год, в гд всё ещё не слышали про деревья.
>>261025Давай рассказывай про деревья
>>261029https://ru.wikipedia.org/wiki/%D0%9E%D0%BA%D1%82%D0%BE%D0%B4%D0%B5%D1%80%D0%B5%D0%B2%D0%BE
>>261025Что ты там деревьями сделаешь, мамкин гений?
Посоны, поясните , в роадмапе указано что скоро выкатят сервер либу. Это будет полноценный сервер типа фотона или непонятная параша как юнет ?
>>261088Отвечает Александр Друзь.
>>261094>Александр Друзь>>261094Не знаю к чему бы это, но попрошу без оскорбительного оттенка, плиз.
>>261098Оскорбительный оттенок был бы если бы тебе ответили "тебя блядь ебет вообще, когда выйдет тогда и увидишь".
>>261088>Это будет полноценный сервер типа фотонаКакого фотона? Болт? Или клауд? Там много фотонов. Ты про dedicated говоришь?
>>261110>dedicated Да, чтоб можно было копаться в коде и понимать как оно работает.
>>261132Это все равно что сказать "я качаю ассеты чтоб посмотреть как оно работает"
>>261150Я так делаю. Что не так в этом подходе?
>>261152Все так, это мамкин програмизд порвался.
>>255685 (OP)Подскажите с чего начать ньюфагу?
>>261185http://unity3d.com/ru/learn
Добрый вечер. Я случайно попал на юнити, и ахуел:Не знаю, как мне завести где-то переменную ( любого типа ) так, чтобы она была доступна из всех классов всех объектов всех сцен. Во всех туторах что нашел люди делают ГеймОбжект.файндБайТэг//, но что-то подсказывает мне что так делают только мудаки.//
>>261289Объясни детальнее, может быть двухмесяный гуру с# тебе подскажет что-то дельное.А может и недельное, но подскажет точно.
>>261290Вот смотри, допустим я хочу сделать много дверей, которые могут иметь уникальные ключи.Вот я создаю класс doorLockable, с публичными полями типа айди подходящего ключа, закрыта ли дверь и т.д. и кидаю этот класс на двери в сцене.Потом создаю класс для ключей например itemKey, с паблик полем айди ключа.Так вот где же мне сохранить инфу о том какие ключи я взял? Причем так чтобы она была максимально прямо доступна из класса дверей, что-то типо Player.keys[...], без поиска по дереву всех геймобжектов.
>>261289Статическая переменная в любом скрипте тебе в помощь. Обращаться как к статической переменной по имени Класса.переменнойтак реально делают мудаки
>>261292Прикрутить к каждому ключу булевскую "взят ли" и проверять её на тру-фолс у определённого ключа при взаимодействии игрока с определённой дверью. Достаточно связать ключ и дверь, которую он откроет, и искать по всем геймобжектам уже не нужно. Прикрутить к игроку лист взятых ключей и перебирать его на наличие нужного ключя при взаимодействии с дверью. Проверку прикрутить на дверь, заставить её открываться только если есть определённый ключ. Искать игрока перебором геймобжектов не нужно, просто единожды дать каждой двери ссылку на него.Менять свойство определённой двери уже при взятии определённого ключа так, чтобы при первом же взаимодействии с игроком она уже была открыта/открывалась без проблем. Опять связываем попарно двери с ключами и никаких поисков не нужно.Выделить отдельный объект, который будет отслеживать и хранить состояние всех ключей, а при взаимодействии передавать их нужной двери. Тут тоже связываем нужные двери и ключи и... ну ты понялДругих мест для хранения данных наверно и нет. Один из трёх участников взаимодействия или сторонний объект.А вот другие способы передачи данных о подобранности скорее всего есть, но я, очевидно, о них ещё не знаю.Кстати, опытные аноны, какое из этих четырёх мест хранения будет эффективнее и почему?
>>261292Надо просто писать нормальный код, а не то говно в которое так легко скатиться с Юнити. Ключи - состояние персонажа, у него и проверяй.
>>261289Google: Dependency Injection.
так, ребят, вопрос естькороче дефолтный чарконтроллер ставлю, всё как обычно, вроде всё работает но там какая-то вообще одичалая задержка вводасцена сама пустая, пол и чарконтроллерсмотрю инпут сеттингс, там какое-то значение gravity, у всех инпутов 1000, у горизонтал/вертикал 3заменил на косарь, задержка пропаласобственно вопрос, что это за хуйня была, не аукнется ли мне через время, зочем сломали то что раньше нарм работало
>>261367Вангую что с масштабами проебался. Считай что 1 юнит = 1 метр.
>>261374не мог проебаться, потому что школоперетащил чарконтроллер на сцену
Посоны, вот создал я объект из префаба, пускай это будет камень, а теперь нужно добавить ему свойство, например "измерение", как такое сделать?
>>261405Чтоб можно получать было доступ вот так, object.dimensional = 42, или так нельзя?
Возможно ли в юнити изменять модели на ходу? Например, у меня есть стандартная мартышка из блендера голова мартышки из 3 полигонов, стадартная моделька в блендере, так вот, я ее хочу разрезать пополам в рилтайм. Существует ли способ автоматически разделить ее на две половинки, дорисовать поверхности в месте разреза и затекстурировать их? Или нужно будет в блендере рисовать мартышку из двух половинок, которая будет распадаться по команде?
>>261408виз изhttp://docs.unity3d.com/ScriptReference/Mesh.html
>>261292Хранить все взятые ключи в List. При открытии проверять есть ли в этом List ключ. Все.
Поворачиваю объект мышью в игре.Код такой:RotationX += Input.GetAxis("Mouse X") RotationSpeed Time.deltaTime; RotationY += Input.GetAxis("Mouse Y") RotationSpeed Time.deltaTime; Transform.rotation = Quaternion.Euler(-RotationY, RotationX, Yaw);В итоге поворот совершенно ебанутый. Если, к примеру, объект перевернуть, то вместо поворота вправо он повернет влево и подобное.Нагуглить не смог, даже запрос хз как сформировать.Подскажете дебилу, как решить эту проблему?
Сап юнитач, пришел к вам с дефолтным вопросом по UI который меня мучает уже давно. Есть у меня сцена где должен быть список всех сейвов из игры, я делаю его в виде скроллбара и баттонов. Но как добавлять туда кнопки когда сейвов к примеру 10, 20? Как добавить кнопку и одновременно "навесить" на нее все компоненты и расположить и ресайзнуть правильно не вручную, а програмно. Делая диалоговую систему я выкрутился созданием 5ти кнопок и прятанием лишних, потому что в диалоге больше 5 кнопок не нужно но как быть с сейвами я хз.
>>261432RectTransform.
>>261439Что рект трансформ?
>>261442Ты можешь разместить кнопочки с помощью этого кодом как угодно.
>>261443Мне нужно будет все параметры прописывать вручную в коде? Размеры, расположение подключать к скролбару, добавлять в контент сайз фильтр, добавлять как лейаут элемент, подключить к он клику нужную функцию. Сложно но раз других вариантов нету прийдеться так и сделать.
>>261293Что плохого в этом? если переменная требуется в нескольких скриптах? А если объекты создаются во время игры, на кой хуй каждому созданному объекту тянуть компонент,м ? Не, я действительно не понимаю почему способ мудаковский, тк С# осваиваю недавно.
Кириллы, возможно ли пользоваться Transform.Translate вне метода Update()?Может есть способы обхода?Не хочу говнокодить кучу блоков if() в методе Update() для того, что бы вызывать свой метод, в котором используется Transform.Translate (тогда типа мой метод находится в области видимости метода Update()).
>>261459Нагуглил сам.Говорят, что в таком случае надо пользоваться Vector3.Lerp
>>261459С чего ты взял что нельзя?
>>261449Потому что ты создаёшь неуправляемое спешить. После десятка таких переменных ты будешь все время тратить на поиск почему все опять сломалось и на лютые хаки. Используй человеческий код с интерфейсами, вставкой зависимостей и всем таким. В Юнити слишком легко натворить говен особенно по нубству.
*спегетти, ссаная автозамена
>>261463Мне нужно плавное перемещение. Transform.Translate не позволяет этого сделать, т.е. на время перемещения моего объекта юнити зависает.С Vector3.Lerp я пока что немного обосрался и не понял, как сделать.Поэтому если у кого есть идеи, как это сделать - буду благодарен.
>>261467Двигать по чуть-четь на каждом кадре с сглаживанием времени?
>>261470Пытался, но виснет и затем мгновенно перемещает либо просто мгновенно перемещает.
>>261472Плавное перемещение это первый урок в Юнити после запуска. Как это можно запороть имея хотя бы школьный уровень математики я не представляю. Wait, oh shi...
>>261474Все через Update используют, идиёт, ёпта. А мне этот метод нахрен не всрался и я хочу его обойти.
>>261475А никак его не обойти. Максимум что можно сделать - это менеджер который будет в своём Update двигать другие объекты.
>>261475Кто-нибудь может мне объяснить, что этот болезный хочет? Я вот нихуя не понял.
>>261501А, понял. О корутинах он не слышал.
while (i < 300) {i++}Как сделать так, чтоб в условии было время, короче когда цикл запускается, то например секунду пока он выполняется будет тру возвращать в условие, а потом фолс.
>>261517Двачну, тоже интересно как с временем работать.
>>261444Копай в сторону Grid Layout Group. На Youtube вся инфа есть. Также ищи инфу по компоненту "Mask", что сделать прокручиваемый список.
>>261520Спасибо за совет, но эту проблему я решил уже.
Парни, поясните за опенволд на юнити в 2016. Нагуглил только топики 2013-ых годов, изменилось ли что-то? Не мультиплеер
>>261535Да.мимоПРОбыдло
>>261535По сути, всё так же и осталось.
Анон, добавляю объект в arraylist, а затем с каких-то хуёв не могу удалить этот объект оттуда. И вообще, при запросе Contains(obj) мне отвечает, что хуй, нет такого говна у нас. Но при этом при Count запросе - отвечает, что всё-таки что-то там лежит.На какие камни я мог наебнуться?
>>261588У тебя лежит в списке ссылка на объект. Поскольку объект удален, ссылка теперь равна null. Use OnDestroy и удаляй ссылку на объект "руками".мимоПРОбыдло
>>261593Я не удаляю сам объект(из сцены). Я удаляю его из arraylist, т.е. удаляю ссылку на него методом Remove. Но почему-то не выходит.
>>261598Код покеж.
>>261600За сам говнокод по шапке чур не бить. Не рефакторил ещё.
>>261602Удаляешь из одного листа, а проверяешь в другом
>>261602Я, наверное, в глаза ебусь, но где ты его удаляешь?
А можно больше инфы про опенворлд? Хорош ли для этого движок, возможно ли потом дописать сетевой код к готовой игре?
>>261609>>261612Спасибо, кармаки, вы лучшие. Полдня убил на этот косяк, в упор не замечал.Пора завязывать так именовать переменные.
>>261614Посмотри на Rust.
Как в апдейте запустить только одну корутину? Она получается запускается постоянно, а мне нужно что бы она сработала только 1 раз.
>>261633запускай в старте
Я запилил канвас и сделал в нем меню игры с помощью текста. Текст у меня в верхнем левом углу. При одном разрешение экрана все выглядит нормально, как задумал. При изменении на большее/меньшее, текст просто съезжает или за пределы экрана, или на середину. Можно ли как-то универсализировать то, как я расставил в канвасе текст?
>>261637Якорь у текста поставь на левый верхний угол
>>261637http://docs.unity3d.com/Manual/HOWTO-UIMultiResolution.htmlRTFMмимоПРОбыдло
>>261638>>261639Спасибо большое
>>261633Запускай в одном из стартовых методов или заимей флаг, который будет обозначать запущенна корутина или нет.
>>261639> ПРОЧто ты тут делаешь?
>>261517float time = 1.0F;while (time >= 0.0F){time -= Time.deltaTime;}
>>261666Ну и естественно нужно добавить прерывание в цикле, чтобы он отрабатывал каждый кадр, а не за раз.
>>261677а как делаются подобные прерывания? (я новичок)
>>261679break; Ну типаbool end = false;float time = 1.0f; while (time >= 0.0f){time -= Time.deltaTime; If (time <= 0.0f) {end = true};break;}if(end) blablabla
А, так и думал, что ток брейк, а то "прерывание" проассоциировалось с какими-то низкоуровневыми операциями в ассемблере. Горе от ума. За пояснение спасибо.
>>261647Учусь вместе с вами.
>>261517bool m_TurboFuck = false;void Start(){ StartCoroutine(SISKI());}IEnumerator SISKI(){m_TurboFuck = true;yield new WaitForSeconds(1);m_TuboFuck = false;}мимоПРОбыдло
>>261684Нахрена тебе вообще while тут если ты его сразу же прерываешь?
>>261633Нашел сам. Вставил StopAllCoroutines().Теперь, как я понимаю, все корутины, запущенные после первой будут остановлены. Только я пока не знаю, будет ли это большой нагрузкой.
>>261708Объясни где в переводе Stop All Coroutines на русский сказано про "корутины, запущенные после первой".
>>261708Тебе булевый флаг нужен. А еще лучше - проектировать логику так, чтобы одноразовый код не запускать ил апдейта.
>>261699Базара ноль, можно сделать и на if-ах, можно и корутинои. Но человек попросил показать с while.
>>261709Ну вот в апдейте стартуют все корутины каждый фрейм. Я в самой корутине вписал Stop All Coroutines. Получается, что когда самая первая срабатывает, то все остальные прерываются. Такие дела.
>>261714Зачем их все запускать, чтобы потом останавливать, если можно в том же апдейте их запускать только когда нужно?
>>261714C - смекалочка
>>261716Я не могу так. Вроде гуглил ка через булевскую переменную останавливать, но что-то не получается. >>261717А то.
>>261718void Update() {if (true) {StartCoRoutine();true = !true;}}IEnumerator(StartCoRoutine) {yield return;}
Грусть-печаль, нельзя выбрать свойство, когда выбираешь функцию, которая сработает, если нажать по кнопке.
Привет, ребзя. Допустим, есть условие (это псевдокод, сразу говорю): if(KeyPressed.Space or KeyPressed.Enter) { some code }Все бы хорошо, но а что если мне хочется узнать, какое именно условие сработало? Нажал ли я пробел или нажал энтер? Могу ли я узнать, на что именно среагировало условие?
>>261726Грусть печаль - это когда нельзя в стандартном редакторе кнопок навесить скрипт с несколькими параметрами в перегрузке.Пользуйся switch case.>>261728Используй несколько блоков if либо используй else if.
>>261732Ну да, это ясно. Просто думал, может, возможно как-то сократить. Но все равно спасибо
>>261728switch (KeyPressed) {case Space:some code;print("Space");break;case Enter:some code;print("Enter");break;}
>>261693Ага, про корутины знал,но еба, почему нельзя придумать переменную, при первом обращении к которой возвращает тру и еще n времени тру ,а потом всегда фолс, например /
>>261797Ты про события сейчас?
Пытаюсь систему компонентов, которая позволяла бы закидывать любое их число и настраивать им в проперти когда и при каких условиях они активны, и всё это поверх базового типа который все эти данные присваивает уникальному айди объекта в сцене для глобального доступа ко всему.Почему-то за вечер всё сделать не получается.
>>261825>Пытаюсь в юнити сделать аналог юнити.Красавчик, жи есть.
1
https://2ch.hk/gd/res/262023.htmlhttps://2ch.hk/gd/res/262023.htmlhttps://2ch.hk/gd/res/262023.html
>>261647Тут так то из адекватов только МимоПРОбыдло да НавмешКун. Даже я ебанутый.
Анон, как изменить размер terrain?