Этого треда уже нет.
Это копия, сохраненная 7 июля 2016 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
13 Кб, 293x360
#2 #255749
Какие настройки сделать для камеры и разрешения экрана под игру для мобилок, в частности под андроид.

И какого разрешения делать картинку для бэкграунда, если камера будет статичной?
#3 #255750
>>255749
Много видел мобилок с соотношением 4:3 и 5:4?
>>255752>>255828
#4 #255752
>>255750
Ну так какое сделать-то?
#5 #255753
>>255749
Делай под фуллашди, 1080x1920. От него уж пляши.
Если камера будет статичной, то какая нахрен разница, какой размер у бэкграунда? Просто делай так, чтобы растянутый на весь экран он нормально выглядел.
>>255754>>255779
131 Кб, 932x658
#6 #255754
>>255753
И что ты имеешь в виду под статичной камерой?
Если у тебя в игре будут 3д меши, то тебе в любом случае придеться менять ей дистанцию, для разных разрешений. А с 2д элементами тебе поможет вот такая хуета, как на скрине.
В таком случае вся графика, что запихана в канвас будет меняться в зависимости от высоты экрана, а в ширину тебе нужно заранее сделать очень длинные бэкгранды, с запасом. Если ты не про уи говоришь, а просто про бэкграунд - делай делай огромного размера, с запасом, чтобы не терять качество на размазывание. Но при этом сохраняй кратность, чтобы можно было пик ужать в настройках спрайтов.
>>255779>>258194
#7 #255779
>>255753
>>255754
А если у меня будет возможность только вертикально играть. То все равно такое же разрешение делать?
>>255781
#8 #255781
>>255779
Ты дебил какой-то. Больше ни с какими проблемами не сталкивался?
>>255790
#9 #255782
Анон, хочу для писольартовой своей игры сделать четкое попиксельное перемещение всех объектов. Разрешение что-то вроде 320*200 будет и надо, чтоб все смещалось четенько пиксель в пиксель.
При этом некоторые элементы интерфейса типа текста будут в большем разрешении, так что не получится просто все мелкое делать и апскейлить.
Есть какая-то штука для этого в юнити или писать ручками надо?
>>255784>>255785
sage #10 #255784
>>255782
Size камеры = разрешение по вертикали / (две высоты спрайта). Например 200 / ( 16 х 2 ) = 6,25
>>255792
#11 #255785
>>255782
Вешаешь на камеру: https://dotnetfiddle.net/m5pT6U
>>255792
#12 #255790
>>255781
Со многими, не знаю как сделать постепенное открывание уровней. Точнее что бы прогресс сохранялся. Я вообще не могу в сохранение и загрузку. Хотя гайдов всяких почитал, в голове нихера не осело. Может и тут подскажешь.
>>255793>>255830
#13 #255792
>>255784
>>255785
спасибо
#14 #255793
>>255790
PlayerPrefs
>>255830
#15 #255828
>>255750
Прилично.
Один из ярчайших выродков -- ипад.

мимоПРОбыдло
#16 #255830
>>255793
Ой, катись-ка ты с этим говном отседова.

>>255790
Кароч, гугли mvc и сериализацию.
Можешь еще протобуферов гугловских навернуть.

Самый простой пример:
[System.Serializable]
public class PlayerData
{
public List<bool> IsLevelUnlocked = new List<bool>();
}
Вот эту залупу можешь сериализовать в бинарник, либо жсон и сохранить на диск. В идеале еще пошифровать. inb4: и то и то залупа, а не сохранения

А потом кароч в своем монобехе, который рулит игрой, лепишь:
if(File.exist)
десериализуем
else
m_PlayerData = new PlayerData();
for(i = 0;i < levelCount; i++) забиваем список закрытых уровней в false

а потом когда надо почекать открыт ли уровень или нет берешь такой и
if(m_PlayerData.IsLevelUnlocked[номеруровня])
ахуенночоткоуровеньоткрыт;
else
блянухуйсосибратанпобрацки;

мимобухойПРОбыдло
inb4: код хуйня, он не поймет
#16 #255830
>>255793
Ой, катись-ка ты с этим говном отседова.

>>255790
Кароч, гугли mvc и сериализацию.
Можешь еще протобуферов гугловских навернуть.

Самый простой пример:
[System.Serializable]
public class PlayerData
{
public List<bool> IsLevelUnlocked = new List<bool>();
}
Вот эту залупу можешь сериализовать в бинарник, либо жсон и сохранить на диск. В идеале еще пошифровать. inb4: и то и то залупа, а не сохранения

А потом кароч в своем монобехе, который рулит игрой, лепишь:
if(File.exist)
десериализуем
else
m_PlayerData = new PlayerData();
for(i = 0;i < levelCount; i++) забиваем список закрытых уровней в false

а потом когда надо почекать открыт ли уровень или нет берешь такой и
if(m_PlayerData.IsLevelUnlocked[номеруровня])
ахуенночоткоуровеньоткрыт;
else
блянухуйсосибратанпобрацки;

мимобухойПРОбыдло
inb4: код хуйня, он не поймет
>>255831>>255833
#17 #255831
>>255830
Без урока lvlGD не разобраться.
#18 #255833
>>255830

>сериализация для того чтоб сохранить циферку


Съеби нахуй из этого треда к блюпринт-программистам.
>>255842
#19 #255837
Ну вот, я закончил свою игру. Сбилдил её на андроид, проверил, пофиксил и теперь все хорошо. Как мне на windows 10 без сертификатов от apple тупо собрать ipa файл моей игры для ios? Выкладывать, в appstore не собираюсь.
#20 #255838
>>255837
Добавлю, что пытался поставить OS X на виртуалку, но натолкнулся на разного рода сложности, которые устал обходить. Наверняка кто-то уже все за меня придумал и есть простой способ сделать то, что мне нужно.
#21 #255842
>>255833
В анус себе съеби, говнокодер.
Хуй знает во что его KILLER GAME вырастет, поэтому пусть учится.
#22 #255887
>>255749
Надо делать так чтобы работало на всех. Потому что ведроид ссаный. У дедушки Ляо обязательно найдётся модель с соотношением сторон 5.555:3.666. Обязательно.
#23 #255888
>>255837
Никак. Беги за маком. В природе есть mac mini всего за 60к.
#24 #255893
>>255888
за 120. за 60 был до крыма
>>255898>>255899
35 Кб, 800x600
#25 #255898
>>255893
Я за 60 вместе с маковской клавиатурой и мышью покупал в прошлом июле. Но то совсем днищемодель, хотя и по ряду причин сейчас моя основная машина с которой пишу вот прямо сейчас. Средняя без клавиатуры и мыши стоит чуть менее 60 прямо сейчас. Но даже это гоняет Юнити без особых проблем если не делать графоний.
#26 #255899
>>255888
>>255893
Причём тут Крым?
>>255902
#27 #255902
>>255899
До санкций они имеют ввиду же.
>>255905
#28 #255904
>>255888
брал мак аир 2013 на авито за 30к
#29 #255905
>>255902
Как санкции повлияли на цену на нефть, которая и влияет на курс рубля?
>>255915
#30 #255915
>>255905
Уебок, за засирание /gd тебе не заплатят, сьеби в свой политач, гнида
#31 #255916
Блин, а с виртуалками os x никак? Не может быть чтобы каждый нищекирил покупал себе мак для компиляции на ios.
>>255923
#32 #255923
>>255916
Тебе нужен цифровой сертификат который получается только с реального устройства. Плюс стольник в год отстегивать эпплу. Компилять можно и в облаке.
>>255927
sage #33 #255927
>>255923
Можно же без 100 в год если не собираюсь в апстор выкладывать.
>>255960
#34 #255930
Третья виртуалка не стала. Ладно, видимо соснул я с iOS.
Без хорошо продуманной архитектуры очень болезнено было писать. Костыли подпирали велосипеды.
Я так и не понял, например, как мне в update только 1 раз выполнить какую-то функцию нормальным способом? Я делал флаг типа:
bool started = false
...
if(!started)
{
myFunc();
started = true;
}
...
и потом при выходе из текущего гейм стейта обратно ставил started = false;
Но это же пиздец какой-то.
Существует аналог http://gameprogrammingpatterns.com/contents.html чтобы прямо в unity реализовывали, как для дебилов?
>>255940
#35 #255940
>>255930
Корутину запили, или Invoke.
>>255954
#36 #255954
>>255940
Корутина в апдейте точно также постоянно выполняется. Напиши пример.
>>255961
#37 #255956
>>255685 (OP)
Как реализуют подмен одежды в играх на unity ?
К примеру есть модель игрока, и скажем игрок находит рюкзак и одевает его.
Все изи если рюкзака 2-3 вида. А если их 10-15 ?
Делать сабмеш с атрибутом отображать\не отображать не вариант, сильно ФПС просядет.
>>255959
#38 #255958
>>255749
переключи проект на андройд, там будут все нужные разрешения.

file->build settings->android->switch platform
#39 #255959
>>255956
Объект рюкзака, меняешь его меш с текстурой на нужные.
#40 #255960
>>255927
На реальном устройстве не проверишь.
>>256110
#41 #255961
>>255954
Чего? StartCoroutine(Hui())
...
IEnumerator Hui(){
Debug.Log("Pizda");
//konec korutini
}
>>255963>>256111
#42 #255962
>>255837
На винде под ios собрать будет очень сложно, оно того не стоит.

Какие я вижу варанты:
1. Купить старый мак на авито. Макбук Про 2009 года стоит 10-15 тысяч рублей, на него можно поставить последнюю икс ось и на нем билдить под ios. Понятное дело, что будет подтормаживать, но чтобы собрать проект, самое то.
2. Есть сервис, на котором можно запускать мак ось в облаке. Стоит от 20 баксов в месяц: http://www.macincloud.com/

Да, кстати, ты же в курсе, что тебе нужен девелоперский сертификат эпл, чтобы собирать приложения для ios? Он стоит 100 баксов, дается на год. Если ты нещеброд и проект более-менее комерческий, запускайся в гугл плей и смотри как попрет. Если нихуя качать не будут на андройд, то и на ios будет тоже самое.
#43 #255963
>>255961
Забыл, там еще yield return обязательно нужен. В конце yield return null допиши.
#44 #256036
Реально ли приделать отдельный хитбокс для оружия и отдельный для персонажа, чтобы это не было костылями и по-уебански? Ну чтобы у разного оружия разный хитбокс был. Как вообще это делается? Есть спрайты оружия, есть спрайты персонажа и врагов. Как технически это вообще реализовывается?
>>256048
#45 #256048
>>256036
Отдельные слои для отдельных типов хитбоксов. Для мобов свой слой, для героя свой, для оружия свой.
>>256051
#46 #256051
>>256048
Можешь с примерами какой-нибудь гайд дать?
>>256054
#47 #256054
>>256051
Не могу. Я гайды не смотрел. У тебя есть объект "оружие" с коллайдером - дай ему слой "weaponcolliders". Для персонажа тоже свой слой. Для мобов - слой. Учись работать со слоями, детектить столкновения только по отдельным слоям, и будет тебе счастье.
>>256056
#48 #256056
>>256054
Слои применяются только для проверки столкновений? Для чего тогда применять теги?
>>256059>>256060
#49 #256059
>>256056
Теги - хуйня. Слои именно для физики должны использоваться. Ты даже в настройках физики (Settings/Physics) можешь указать, чтобы коллайдеры из определенных слоёв не сталкивались друг с другом. Например, если хочешь, чтобы мобы никогда не застревали в оружии (пример говно, но суть ясна). При грамотной работе со слоями и отключением лишних контактов скорость игры заметно возрастает, если ты используешь много коллайдеров.
#50 #256060
>>256056
В идеале можно обходиться без тэгов. Не знаю, как другие, но я ими не пользуюсь. Скорость получения объектов по тегам достаточно медленная, а для реакции на разного типа объекты я обхожусь сравнением слоёв, а не тегов.
20 Кб, 280x492
#51 #256076
Как сделать так, что бы при портировании на андроид графон не пидорасило?

Я закидываю апк, а у меня вместо пикселей каша одна. Где еще стоит что указать, чтобы все четко отображалось?
>>256077
#52 #256077
>>256076
Мип мапы отключи.
#53 #256110
>>255960
в ideone.com если загрузить ipa?
10 Кб, 356x245
162 Кб, 649x468
#54 #256111
>>255961
Ты что, издеваешься? Или ты советы раздаешь сам не понимая что ты говоришь?
>>256113
#55 #256113
>>256111
Если тебе надо запустить корутину один раз - запускай ее в Start, аутист.
>>256115
#56 #256115
>>256113
Хуле ты со своими советами тогда дебильными лезешь, раз не понимаешь? Нужно было именно в Update один раз запускать какую-то функцию не используя булевые флаги, ты мне начал рассказывать, что корутина в апдейте не один раз запускается. Теперь меня аутистом называешь. Из-за таких умников найти нормальное решение своей задачи среди тонн высеров тебе подобных превращается в вылавливание яблока ртом из бочки с говном.
>>256116>>256242
#57 #256116
>>256115

>Нужно было именно в Update один раз запускать какую-то функцию не используя булевые флаги


И как ты себе это представляешь?
59 Кб, 768x424
#58 #256210
Если бы это делалось на Юнити, это ведь было бы в тридэ режиме, правильно?
#59 #256213
#60 #256222
>>256210
Но ведь юнити умеет в двадэ.
>>256226
#61 #256226
>>256222
Я про режим, в котором оно делалось, я знаю, что умеет. Но тут ведь камера перспективная, хоть и дваде.
>>256227>>256229
#62 #256227
>>256226
Да, в юнити много камер, эта самая перспективная.
#63 #256229
>>256226
Пиздец, что ты несешь? Ты можешь использовать 2D-физику и при этом использовать перспективу. Ты не понимаешь сути.

Есть физическая модель. 2D и 3D. Есть камера. Перспективная и ортогональная.
>>256234
#64 #256234
>>256229
Я понял, спасибо.
#65 #256242
>>256115

> найти нормальное решение


Найди его запустив свой говнокод через старт/энейбл/эвейк.
#66 #256259
>>255685 (OP)
Кстати, из вас никто тут нормальную шапку для юнити-треда не пилил? Или её проебали?
>>256261
#67 #256261
>>256259
А что не так с текущей?
что это значит #68 #256481
Rigidbody rocketInstance;

rocketInstance = Instantiate(rocketPrefab, barrelEnd.position, barrelEnd.rotation) as Rigidbody;

Вот первая строка, "Rigidbody" значит что в переменную влазит компонент ригидбади? Или что?
Ведь в нее засовывают целый префаб.
И что значит "as Rigidbody"?
>>256494
#69 #256494
>>256481
ты создал переменную типа ригидбади
затем ты, скажем грубо, в нее записываешь результат функции инстантиейт. на сколько я помню, базово этот метод выдает просто тип Object(даже когда гейм обжект инстантиейтишь - надо в конце писать ес геймобжект), ибо функция не омжет знать что ты даешь на вход. Ез ригидбади - это типо приведения типов. в общем шо создал - к тому и приведи результат, как-то так
#70 #256516
Как (ИФом, но это не важно) запретить нажатие кнопки?
#71 #256523
Как мне сюда Else для второй камеры присобачить?
Чтобы на неё этот курсор переключать (и обратно)
if (camera1.gameObject.active == true)
{
var mousePos = Input.mousePosition;
var wantedPos = camera1.ScreenToWorldPoint (Vector3 (mousePos.x, mousePos.y, depth));
transform.position = wantedPos;
}

Не спал, туплю уже.
>>256530
#72 #256530
>>256523
уже не надо
#73 #256544
Что у меня не так?
CS:

GetComponent.<Rigidbody2D>().velocity = new Vector2(movement, GetComponent.<Rigidbody2D>().velocity.y);

> (24,30): error CS1525: Unexpected symbol `<', expecting `identifier'

>>256557>>256571
#74 #256557
>>256544
Ты совсем дурак? Пробовал в переводчик строку вставить?

После GetComponent не надо ставить точки.
#75 #256571
>>256544
GetComponent<Rigidbody2D>().velocity = new Vector2(movement, GetComponent<Rigidbody2D>().velocity.y);

Точка не нужна после GetComponent
75 Кб, 413x604
#76 #256577
Где можно взять полную инфу по сетевому протоколу сабжа? Пикрандом.
>>256669
#77 #256609
Как аниматор отключать?
#78 #256612
Уже не надо, ебать я туплю.

Алсо, чо у вас тут так тухло стало?
Раньше же куча народу сидела итт.
>>256613>>256663
#79 #256613
>>256612
Все перешли на уеч, он же лучше.
>>256614
#80 #256614
>>256613

>он же лучше.


Cмешная шутка.
#81 #256663
>>256612
Неосиляторы слились, большинство на UE парашу.
>>256665
#82 #256665
>>256663

> Неосиляторы


> на UE


вот прально
настоящие мужики уже давно на гей мейкер перешли и эрпоге, не то шо эти
#83 #256669
>>256577
RakNet.
>>256804
3223 Кб, Webm
#84 #256698
Пацаны, никогда не давил человека машиной, так и должно быть или как-то нереалистично смотрится?
#85 #256699
>>256698
не думаю что вот так прям
проведи эксперимент
>>256703
#86 #256703
>>256699
>>256698
Пофиксил.
#87 #256709
>>255685 (OP)
Есть юнитинюфани в Котосибирске с каким-никаким опытом? Ну чтобы там алгоритмы знали, шарпы были на уровне, ООП, вот это всё? От 20к до 50к дают в знакомой конторе. Пилить игори на мобилочки. Много и быстро. Не КокодемМедия.
>>257061
#88 #256733
>>256698
Да, все именно так и происходит.
#89 #256741
>>256210
Да, но скорее всего с 2д физическими обьектами
#90 #256804
>>256669
Это я видел. Оно совместимо с новым api?
Лучше пойду свою пилить с нуля. Нашел такой туториал, где 33 ACK-а в одном пакете передаётся.
#91 #256996
Анон, есть что-нибудь по типу GameObject.Find, но для префабов?
#92 #257001
>>256996
В каком смысле для префабов? Ты же создаешь из префаба объект, его и ищи.
>>257006
#93 #257006
>>257001
Хочу чтобы можно было скриптом создать из префаба объект, но для этого, очевидно, нужен сам префаб как геймобжект.
Конечно, я могу просто перетащить его в инспекторе, но я хочу быть крутым и заставить скрипт самостоятельно найти нужный префаб хотя бы по имени.
>>257015
#94 #257015
>>257006
Можно кинуть префаб в поле в редакторе.
радар #95 #257023
Как сделать минимапу без привязки второй камер,? Как это делается на сервере? Напирмер если объектов тысяча, корабли, астероиды, ракеты, и клиенту нужно выслать только те, которые видеть ему положено. Брать массив объектов с карты, перебирать по тегу, те которые подходят сравнивать растоянние видимости, и только потом высылать? Ну и как лучше с точки производительности и гибкости делать на юнити? Делать большой триггер коллайдер в виде сферы?
>>257065
Платина #96 #257059
В чем делать анимации должного качества, в блендере получается плохо и деревянно, неужели нет альтернатив?
>>257063
#97 #257061
>>256709
ГейБаннерНетворк?
#98 #257063
>>257059

>получается плохо и деревянно


В блендере ли дело?
>>257064>>257067
#99 #257064
>>257063
Двачую.
#100 #257065
>>257023
Сервер вообще про юнити ничего знать не должен. И ты не можешь например отрисовать тыщщу объектов на минимапе, получится кусок непонятной пиксельной каши.
#101 #257067
>>257063
Да, в нем.
#102 #257105
>>256996
Resources.Load
AssetBundles.Load

Алсо, пацантре, кто-нибудь юзал StateMachineBehaviour для ИИ?
#103 #257120
>>256996
Resources.Load, но твой префаб должен быть в папке Resources. Например, Resources/Prefabs/.../pidor.prefab
#104 #257131
>>256996
AssetDatabase.FindAssets(prefabName);
Ищет по всему проекту твой префаб
#105 #257194
Ищу аналог gameprogrammingpatterns.com на C#
>>257196
#106 #257196
>>257194
Ну ты и дебил.
#107 #257199
Если не хочу покупать ассеты, а собираюсь сам пилить, где можно гайды посмотреть?
>>257203>>257246
#108 #257203
>>257199
на youtube
#109 #257246
>>257199
В голове, если полностью сам решился.
#110 #257259
Друзья, а как еще можно реализовать небо кроме как скайбоксом? Ну, в плане, еще и динамики, что бы можно было анимацию запилить и тд? Как это вообще делается?
мне так и не ответили. :(
>>257266
#111 #257261
Посоны, на каком сайте пизженные ассеты можно скачать?
>>257266>>257408
#112 #257266
>>257261
гугли юнити3дэ чото там ua
он в поиске встречается если названия ассетов гуглить

>>257259
чувак, это сложный вопрос. Здесь не так уж и много реализуемых вариантов. Самое простое - самому ебашить 3D модели и двигать их. я другого не придумал.
>>257279
#113 #257279
>>257266
Ну, я догадывался, что это сложный вопрос.
Тогда, друг, что скажешь о том, что бы запилить как в одном видео, т.е сферу вокруг локации? А на нее уже анимацию? Это сильно большой костыль?
>>257287>>257300
#114 #257287
>>257279

>Это сильно большой костыль?


Это норма. Вообще не понял в чём проблема.
#115 #257299
>>256698
Меня сбивала Газель, когда я был в 4м классе. Я отлетел вправо от машины. Удар пришелся на левую ладышку, не спрашивай, как. Пролетел метра два.
>>257304>>257316
#116 #257300
>>257279
Это называется скайбокс, как бы.
>>257302
#117 #257302
>>257300
Это да, но так я смогу сделать ему несколько уровней и тд. Если юзать дефолтный, я так смогу сделать?
161 Кб, 960x640
#118 #257304
>>257299
Ах вот ты где, сучёнок.
>>257305
#119 #257305
>>257304
Да, мразь. Могла бы что-то получше принести в больницу, а не сраный тетрис.
sage #120 #257316
>>257299

>ладышку


>в 4м классе.


Кому ты пиздишь? В 4-м классе уже писать умеют. Тебе ещё минимум два года до него тянуть. Или ты особо одарённый?
>>257319>>257325
#121 #257319
>>257316
До кого, еблан? Что ты несешь вообще? При чем здесь "писать"?
#122 #257325
>>257316
А, лол. Загуглил написание.

>Лодыжку

#123 #257408
>>257261
u3d.at.ua
Ебаный в рот, может уже в шапку запилим?
мимоПРОбыдло
>>257418
#124 #257418
>>257408
Ладно, щас запилю.
#125 #257421
Кто-нибудь знает как текст сделать подчеркнутым, мб у кого-нибудь есть ассет? Rich Text не поддерживает <u>, ассеты, которые позволяют отрисовывать текст подчеркнутым стоят овер дохуя. Анон, хелп.
>>257651>>257678
#126 #257651
>>257421
Наверное, можно найти шрифт, который изначально подчеркнут.
#127 #257678
>>257421
В удаленном треде писал же тебе - возьми шрифт с подчеркиванием или сам дорисуй нужному шрифту хоть подчеркивание, хоть что.
#128 #257691
#129 #257742
>>255685 (OP)
Чому юнити так редко юзают для девелопа игр под пк?
>>257744>>257751
#130 #257744
>>257742
Это тебе одноклассник сказал?
>>257749
#131 #257749
>>257744
На семинаре по юнити на этот вопрос ответить не смогли.
Тру стори
>>257752
#132 #257751
>>257742
Потому что юнити часто используют для игр на мобилах, ввиду отсутствия альтернативы. Вот и складывается впечатление, что на пк на юнити не делают, на самом деле делают, просто не так часто, как на мобилы.
#134 #257753
>>257752
Rust был написан на юнити, а потом они перешли на другой движок Точно не уверен насчет перехода. Чому?
#135 #257755
>>257753
У разработчиков спроси.
#136 #257756
>>257753

>Точно не уверен насчет перехода


Кликнуть в вики по слову Rust религия не позволила?
>>257766
#137 #257757
>>257753
Побег из таркова пилился на крае, а потом они перешли на юнити. Чому?
>>257766
#138 #257766
>>257756
У меня так учительница по английскому говорила.
>>257757
Почти.
#139 #257784
В игруле на iOS нужно иметь возможность прочитать заранее составленный xml, так же надо будет записывать в него.
В какие папки мне это все ложить, и какой путь использовать при записи и чтении?
>>258387
#140 #257822
Анон, есть что-нибудь годное по тому, как ПРАВИЛЬНО писать код?
То есть всякие там "не стоит захламлять фиксдапдейт", только в более широкой форме. Оптимизация, 60 фпс даже для консоли и так далее.
Хотелось бы с самых пелёнок привыкнуть писать код хорошо, а не "как заработает".
#141 #257827
>>257822
google code standards для своего языка.
ТЫСЯЧИ, БЛЕАТЬ, КНИГ НАПИСАНО про это всё. Нет, не хочу учить, не хочу вбить три слова в гугл, не хочу скачать книгу по первой ссылке, хочу на дваче хуйню писать и прокрастинировать.
215 Кб, 400x450
#142 #257835
Кхм, да, действительно, движок один и тот же -- юнити. Графен завезли.
>>257836
sage #143 #257836
>>257835

> туман


> колоргрейдинг


что тебе ещё завести, болезный
господи, ебаный вротельник, а потом они ещё в юичтред заходят посрать
>>257838
#144 #257837
>>257822
SOLID, Code Smells, Refactoring.guru
#145 #257838
>>257836
нуфажина
>>257844
sage #146 #257844
>>257838
по скрину больше ничего не заметно
#147 #257855
Я не понял, какая-то манда потерла тред с царской шапкой?
Шапку-то схоронили?
#148 #257929
>>257822
Не загоняйся на тему как правильно писать код. Юнити – это кувалда, которая решает проблемы в лоб. Все эти паттерны и прочее говно, просто не будут работать из коробки, потому что тебе постоянно нужно наследоваться от монобихейвиор. Если бы это реально было все просто и понятно, нашеся бы уже какой-нибудь умник, который записал бы туотриал как это надо реальзовывать в юнити, где конкретно на понятных примерах объяснил бы что к чему. Но юнити уже 10 лет и за это время нет ни одного нормального туториала и знаешь почему? Потому что ими никто не пользуется.

Да и где их использовать? Чтобы лишний раз повернуть гейм-обджект не нужны паттерны и стандарты. Вообще, пока ты используешь юнити, тебе даже не понадобится 95% си шарпа.

- А что если у меня будет серьезная разработка, например клиент сервер и всякое такое говно? - скажешь ты.

- А что если ты, блять, погушлишь пять минут готовые решения? - отвечу я.

Стандарты были придуманы, для аутсорсинговых контор, чтобы обезьяны выдали хоть что-то рабочее. У тебя такой проблемы нет, потому что ты не обезьяна и у тебя не какая-нибудь ебучая банковская система, а йоба-игруля.

Короче, всегда пиши как удобно тебе, а не как должно нравится каким-то пидарасам, которые ничего кроме asp.net в жизни не видели.
>>257930>>258387
#149 #257930
>>257822
На самом деле все ответы не правильные, это можно понять по вопросу. Анон хочет производительности, а не паттернов или форматирования кода. Например тот же фикседапдейт либо даже кривая проверка батонов могут съесть немало фпс. Но тут уж надо самому разбираться и гуглить, почему с одной лампочкой 10к трисов, а с двумя в два раза больше и так далее.

>>257929

>постоянно нужно наследоваться от монобихейвиор.


Не нужно, если знаешь, что делаешь. Туториалы есть.
>>257932
#150 #257932
>>257930

>Анон хочет производительности


this
CrossPlatformInputManager #151 #257941
CrossPlatformInputManager - блять, сука, блять, пидарасы, нанвижу, блять. Кто вообше это говно придумал? Сука, я бы пальцы бы переломал, говноеды конченые. Как же, блять, сука заебали конченые мрази, напиши ты, блять, как нормальный человек в одном классе через if, но нет, быдлокодеры размужут по 10 классам то, что умещается в 10 строк. Блять, сука, говно ебаное.
#152 #257942
>>257941
А да, еще оно не работает.
#153 #257943
>>257941
если анон сейчас в офисе юнити, ебани по ебалу говноеду, который написал это говно. Сука, блять, если я сижу с компа и делаю игру под девайсы, это не означает что я хочу постоянно юзать ремоут. Что за ебанутые узколобые дегенераты? Почему нельзя написать так, чтобы на компа работал ввод и с клавиатуры и с мышки? Суккаа, ненависть блять пиздецюаквпвап
#154 #257952
>>257941
У меня работает. На мобилах не юзал, делал небольшой проект с машинкой, всё работает.
>>257973
#155 #257973
>>257952
а у меня вагон проектов, которые надо зафиксить по-быстрому в ВО ВСЕХ не работает это говно. В предудущих было тоже самое. Сука, блять, еще и производители ассетов тоже добавляют это говнецо к себе. Серьезно, дотнет-бляди - не люди. Нахуй юнити нанимает людей, которые пишут вопреки экосистеме. АААААА. СУУУКАААА.
>>257979>>258002
#156 #257979
>>257973
какого хуя я вообще должен чинить покупные ассеты? где эти ебучие черные ящики? Почему я вообще должен обращать внимание на говнокод?
#157 #258001
Посоны, я новенький у вас, вот начал делать космострелялку (вид сверху, ортографик камера), а теперь захотелось подцепить HUD как у айронмена, ну типа чтоб полоски ХП в 3d отображались. Но получилось только когда камеру перевел в перспектив мод. Можно ли канвас рендерить отдельной камерой и налаживать поверх изображения основной камеры? Должна быть полупрозоачность,
>>258008
#158 #258002
>>257973

>производители ассетов тоже добавляют


Потому что у них тоже всё работает. Но всегда есть кто-то один, у которого всё не работает.
#159 #258008
>>258001
Можно сделать джве камеры, первая не имеет гуя, вторая не рендерит ничего, кроме гуя. Ещё придётся установить порядок рендеринга.
>>258028
#160 #258028
>>258008
Пробовал так, не получилось, но раз такое возможно, буду копать дальше.
>>258050
#161 #258050
>>258028
Если канвас будет в режиме "скрин спейс оверлей", то не сработает. А так работает, только что проверил. Кулинг маск и депт настрой по вкусу.
224 Кб, 1510x1339
#162 #258055
Сработало, нужно было еще выставить Clear flag - Depth only, добра.
#163 #258140
Гайс, можно ли из приложения менять сплэшскрин? Именно Android. Будем считать, что у меня pro, естественно
#164 #258194
>>255754
Я вот поставил настройки как у тебя. И все кнопки на андроид устройстве ужимаются. На компе и в самой юньке все нормально, а как на телефон перекину, то все сжимается до маленьких размеров.

Еще вопрос такой. Как реализовать сохранение лучшего результата в игре, что бы еще и на андроиде работало. Приведите точный пример скрипта на сохранение, что именно там должно прописываться?
>>258214
#165 #258211
мужеки, кто юзает dotween?
>>258213>>258387
#166 #258213
>>258211
Я. Так себе, если честно, даже стандартный Animator впечатлил больше.
#167 #258214
>>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();
Примитивно, дальше сам.
#168 #258223
Ананасы, скажет кто, как лучше сделать респавн героя по кнопке, в 2d проекте. Из идей только сделать запуск сцены по новой, но мне не хватает мэдскиллза чтобы это сделать. Поможет кто...
>>258228
#169 #258228
>>258223
Все "стартовые" значения и вызовы функций вынеси из Start() в функцию Spawn(), которую будешь вызывать из Start и из нужной кнопки.
#170 #258249
господа, дайте ссыль на UFPS, не нашел нигде современной спираченной версии
>>258252
#171 #258252
>>258253
#172 #258253
>>258252
хотелось бы 1.6, но и на этом спасибо, не думаю что различия стоят долгих упорных поисков
26 Кб, 1100x606
#173 #258260
Господа, платиновый вопрос, наверное.
Есть объект, переносящий игрока не следующий лвл. Нужно получить номер текущей сцены, добавить к нему 1 и при колайде с игроком запустить следующую сцену.

Какую ему ссылку то нужно?
Если прописать номер сцены вручную, то всё ок.
>>258264
39 Кб, 1125x631
#174 #258264
>>258260
Разобрался однако. Пздец гайды у юнити кароче.
>>258266
sage #175 #258266
>>258264

>Scena

>>258276
#176 #258276
>>258266
А что такое? Что бы со Scene не попутать.
>>258281
#177 #258281
>>258276
А ты пиши имена переменных как белые люди - с маленькой буквы, и проблем не будет.
>>258285
#178 #258285
>>258281
Я открою тебе тайну- пока я делал свою говно игру я ничегошеньки не понимал. Туполепил команды по мануалу и копипастил готовый код. Уже движок забабахал, врагов сделал, осталось спрайты нарисовать да какую-нибудь историю прикрутить и игорь готов. По образованию визажист, если что.
>>258294
#179 #258293
Меня в гринлайте за лого юнити в запуске игры не обоссут? Пока не планирую покупать проф. версию.
>>258307
#180 #258294
>>258285

>визажист


Где на такое учат, лол?
Мимоврач
>>258307
#181 #258297
Ананасик, у меня вопрос по 2д физике.

У меня есть объект, который нужно раздавить. Скажем на поверхности лежит блок. На него сверху падает другой. Если падает достаточно тяжелый, то первый блок уничтожается.

Другой вариант - когда блок зажимается между двумя кинематик объектами. Они просто продавливают блок через себя, а нужно его уничтожить.

Я честно гуглил, но нихуя не нашел.
>>258307
#182 #258307
>>258293
Тебя за твою игру тупую обоссут, а уже потом за лого юнити. Так что не волнуйся.

>>258294
На 3х месячных курсах, очевидно.

>>258297
Ну, когда падает, можешь через коллайд уничтожить.

void OnCollisionEnter2D(Collision2D coll)
{

if (coll.gameObject.tag == "BiggerMass")
{
Destroy(gameObject,.5f);
}
}
Скрипт ставить в объект с меньшей массой. Правда тут уничтожится лёгкий объект даже если не на него упадёт большой, а он на большой. Можно ещё скорость движения чекать, но это думаю и так понятно.
про второй вариант не очень понял. В голову пришёл только корейский способ- вставить внутрь объекта ещё один объект, который будет уничтожать их оба при контакте с чему угодно кроме того, во что он вставлен.
>>258310
#183 #258310
>>258307
В обоих случаях нужно вычислить силу, которая действует на объект.

Во втором случае два движущихся объекта как бы зажимают блок между собой. Резолвер, если есть куда - "выдавливает" блок, а если его "выдавить" некуда - продавливает сквозь коллайдеры.

Самый простой и очевидный способ, который пришел мне в голову - количество точек столкновения. В самом простом случае с круглым коллайдером их две, по одной на каждый из объектов, которые зажимают его. Может быть и больше, если коллайдер не круглый. Но я пока рассматриваю этот простой случай. Получается, что когда блок "продавливается" через коллайдеры, количество точек столкновения увеличивается, например до четырех (в некоторых случаях и больше). Так что если количество точек столкновения больше 4 - можно смело уничтожать объект.

Но это частный случай. Время от времени с таким подходом возникают проблемы. Например при больших скоростях резолвер не успевает добавить контрсилу вовремя, и блок уничтожается даже при обычном столкновении, а не когда его зажимают другие обьекты.

Может есть способ вычисли эту самую силу давления на объект?
>>258311
#184 #258311
>>258310
Rigidbody2D.mass
Массу точно можно получить, не думаю, что есть смысл ебаться с расчётом силы (масса* на ускорение).

Если у тебя проблемы только при больших скоростях, то может проще взять и обрезать макс скорость?
>>258314
28 Кб, 408x472
блядь сука порвало нахуй #185 #258313
Сука, как получить доступк блядскому альфа каналу? Шейдер накинул, пишу ему object.renderer.material.color.a как в гайде, а оно хуй.
Нужно сферу сделать полупрозрачной, пол часа гуглил, нихуя не нашел, поулчить компонент не получается, помогите, иду спать с разорванным пердаком. Блядь, все приходится гуглить, анон, сижу 4 дня, я конечно ньфажина ссаная, но тем не менее. Вот создал 10 обьектов, и подцепил их к пустому обьекту, чтоб двигать все вместе. Запускаю, и тут хуяк главОбьект сьехал вправо, а координаты в трансформе те же самые что и были. WTF? у меня баттхерт, приходится сука былокодить и в ручную писать сдвиг. А от UI кресло прогорело нахуй. Ладно, может просто тупой, зато кораблик летает, мнимапа работает и карта со свездами, которая скролится, только нужно сделать чтоб объекты на краю были прозрачными, а то когда резко исчезает оченоь некрасиво.

рейнджер порватка
>>258387
#186 #258314
>>258311
На самом деле проблема возникает не только при больших скоростях. Есть частные случаи, когда точек столкновения много, но нет давления на блок. Предусмотреть все такие случаи и исключить их не получится.

Ну и да, сила давления не предусматривает ускорения. Как быть в этом случае?
>>258315
#187 #258315
>>258314
Отвернуться от давления- делить силу на площадь соприкосновения ты заебёшься. Может просто сравнивать массы сталкиваемых объектов и неподвижный уничтожать?
С зажиманием-у тебя как эти зажимания возникают то?
>>258316
12 Кб, 800x380
#188 #258316
>>258317
#189 #258317
>>258316
Ебать, так у тебя 1 тело не подвижное жи. Тогда просто чек 2х коллайдеров одновременно+чтобы кто-то из них двигался.
Функции лень гуглить но логика такая:
Если ((есть_колайд_с_1объектом&&есть_колайд_с_2объектом)&&(скорость1го>0&&скорость2го=0||скорость1го=0&&скорость2го>0))
Уничтожить этот объект.
Ладно, завтра попробую нормальный код кинуть. По-моему идея с проверкой точек соприкосновения тут будет полностью провальна.
>>258321
#190 #258321
>>258317
Не спеши с выводами. Вместо статического коллайдера может быть кинематик коллайдер.
>>258333
#191 #258333
>>258321
Я пришел к выводу, что пока самый оптимальный вариант - с двумя коллайдерами.
Но возникла другая проблема. Чтобы уничтожить объект нужно чтобы в столкновении участвовало минимум три объекта - сам блок, и два (статических или кинематик) коллайдера. Я порылся в документации, но так и не понял как мне определить сколько коллайдеров сталкиваются с моим блоком. Collision2D.collider дает мне доступ к одному. А если их два или больше, как быть тогда?
>>258384
#192 #258384
>>258333
А как у тебя называются колайдеры?
>>258416
#193 #258387
>>257784
Application.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.
>>258403>>258724
#194 #258403
>>258387

>Ты какой шейдер используешь, наркоман?


>Вангую, что какой-нибудь Opaque.


А какой надо? Разные пробовал, напиши строчку кода будь добр как получить доступ со скрипта, потому что у меня подсвечивает красным.
>>258406
#195 #258406
>>258403
Отбой, сделал
#196 #258416
>>258384
А как они могут называться? CircleCollider, Polygon Collider. Они добавлены как компоненты. Я подозреваю что доступ к ним можно получить через гет компонент и массив с коллайдерами. Но тут другая проблема теперь - даже если я получу ссылку на правильный коллайдер, как мне проверить что OnCollisionEnter происходит для правильного коллайдера?
#197 #258432
>>255685 (OP)
Юнитигоспода
Расскажите мне про возможности местного физического движка.
Мне нужно симулировать поведение шагохода в реальном мире и отработать алгоритмы.
Есть ли у вас подобие акселерометра, гироскопа? Про соединения все итак более-менее понятно.
А вот про то, можно ли тут сделать балансирующий шагоход - не совсем.
>>258484
#198 #258448
Сап, я решил сделать сейв лоад систему по этому гайдику https://unity3d.com/ru/learn/tutorials/modules/beginner/live-training-archive/persistence-data-saving-loading но как передавать туда инфу, если у меня например 100 скриптов с которых мне надо достать и сейвануть инфу. Делать 100 ссылок в скрипте сейвлоада как то не ок, и сто класов статиками тоже не ок, какой третий пиздатый способ которого я не знаю?
>>258459
#199 #258459
>>258448
Берешь и без задней мысли пишешь СИСТЕМУ СОХРАНЕНИЙ.
И каждая блядь, которой надо сохранить-загрузить данные стучится в эту систему сохранений.

мимоПРОбыдло
#200 #258484
>>258432
Сделать можно всё. Ты должен понимать, что physics - физический движок, который ты в любом случае будешь использовать.
>>258694
#201 #258532
Серьёзный вопрос, только не бейте.
Нужно ли для 2Д игры писать/заюзать готовое решениедля culling-га объектов вне камеры?
#202 #258536
>>258532
Если включишь, то будут бесящие фичи, как в ниндзягайдене, когда враги ВНЕЗАПНО появлялись там, где их не было секунде назад. Если не включишь- могут быть лаги (если овердохуя понапихал). Я свои 2д делаю без кулинга.
#203 #258552
>>258532
У тебя фруструм кулинг из коробки работает.
мимоПРОбыдло
#204 #258555
Интересуют способы обхода ограничения координат объектов в Юнити. Суть вопроса в том, как создать огромный процедурный мир. Сам мир прекрасно генерируется, но рано или поздно погрешность float дает о себе знать и все катится в пизду. Какие идеи есть?
#205 #258564
>>258555
Делать всё из кубиков размеров в 1f? Больше кубиков богу кубиков!!!
#206 #258577
>>258555
Погрешность?
Расскажи ещё.
мимоначинающий
>>258588
#207 #258586
>>258555
Это не проблема юнити. Это проблема c#. Только в библиотеках java можно сделать мир как в майнкрафте, т.к. там используется double. А в c# во всех либах для координат float.
>>258597
#208 #258588
>>258577
float предоставляет четкие данные вплоть до 6 или 7 чисел, вне зависимости от того, после какого по счету числа идёт запятая. Такова особенность. Поэтому мир достаточно сильно ограничен, если тебе важен каждый сантиметр.
>>258589
#209 #258589
>>258588
до 6 или 7 цифр*
#210 #258597
>>258586
То есть если я тупо перепишу сейчас все скрипты на js, то расстояние от центра координат перестанет быть проблемой? Какие подводные камни у такого подхода?
>>258599
#211 #258599
>>258597
Java и JS-дрисня - разные вещи
>>258602
#212 #258602
>>258599
Как я понял, мне не решить проблему с погрешностью?
#213 #258603
>>258532
Я на эту тему гуглил. Нет никакого готового куллинга для 2д. В моем случае было достаточно скрипта, который деактивирует объект, и отключает физику, если он вне видимости камеры.
#214 #258604
>>258555
Генерить мир в виртуальных int координатах, а потом преобразовывать значения в float?
>>258605>>258674
#215 #258605
>>258604
Что-то не допру, можно пример?
>>258624
#216 #258606
>>258555
И ещё вопрос: как эта проблема решена в kerbal space program? Там ведь довольно большой мир, и скорости тоже серьёзные.
>>258625
#217 #258610
Чуваки, сделал игру на юнити. Она жутко забагованная и недоделанная, и я планирую её долго править, но у меня возник вопрос. Как избежать такого сильного зависания во время переключения сцен? У меня начало возникать подозрение, что это в принципе невозможно, потому что игра одинаково подвисает на разных девасайх. То есть все анимации и визуальный переход между локациями желательно делать в одной сцене, чтобы добится максимально плавной игры? https://play.google.com/store/apps/details?id=com.Dogroom.DogTv
>>258612
20 Кб, 288x256
#218 #258611
Чуваки, сделал игру на юнити. Она жутко забагованная и недоделанная, и я планирую её долго править, но у меня возник вопрос. Как избежать такого сильного зависания во время переключения сцен? У меня начало возникать подозрение, что это в принципе невозможно, потому что игра одинаково подвисает на разных девасайх. То есть все анимации и визуальный переход между локациями желательно делать в одной сцене, чтобы добится максимально плавной игры? https://play.google.com/store/apps/details?id=com.Dogroom.DogTv
>>258729>>258741
#219 #258612
>>258610
черт, два раза запостилось
#220 #258624
>>258605
Например скрипт генерации работает с целыми числами. А уровень генерируется в процессе игры в пределах, где погрешность не влияет на координаты. Относительно позиции игрока, например.
#221 #258625
>>258555
Катится в пизду это как?
Кубики стык в стык не попадают что ли?

>>258606
Не вижу таких ситуации в этой игре, на которые погрешность оказывала бы серьезное влияние.
>>258650
#222 #258626
>>258555
У себя сделал так - мир отцентрован относительно персонажа, персонаж всегда примерно в нулевых координатах, мир двигается относительно него. Положение персонажа - три double, XYZ. Из подводных камней большого мира - отрисовку вдаль не запилить, т.к жрёт фпс. Много активных объектов не запилить, т.к жрёт фпс.
>>258680
#223 #258650
>>258625
У меня не кубики, а звезды, с планетами и прочим. И на большом удалении от центра камера начинает дрожать, как и сам корабль, и звезда с планетами вокруг.
>>258656>>258674
#224 #258656
>>258650
На каком то twg была игра с бесконечным заводом космосом на юнити, значит есть способы дать пососать ограничениям.
#225 #258674
>>258604
И в чем смысл этого действия? Ты преобразуешь int во float и опять получаешь число с погрешностью.

>>258650
Короче, я тебе поясняю. В маленьких играх можно позволить себе двигать небольшой уровень относительно персонажа. Но представь, что будет, если ты будешь менять координаты каждый кадр. Твой фпс адски просядет из-за того, что ты насилуешь physics и заставляешь всем ебаным объектам менять свою позицию.

В майнкрафте реализована возможность делать мир шириной до 10 миллионов блоков (метров), если мне не изменяет память. Также, если мне не изменяет память, он написан на libgdx. А там можно использовать double для координат. Такие дела.
#226 #258680
>>258674

>можно использовать double для координат


На самом деле нельзя и дело не во фреймворке, а в видеокарте. Она для рендеринга принимает данные во флоатах и пошлёт нахуй твои даблы. С подобной проблемой сталкивался разраб спейсэнжина, кстати, можно погуглить.

>что будет, если ты будешь менять координаты каждый кадр


Двигаю мирок 50х50 тайлов 4х4км каждый. Не каждый кадр, а только когда игрок преодолевает 2км в любую сторону. Каждый кадр учитывается только прохождение игрока по любой из координат. >>258626 -кун.
>>258682
#227 #258681
>>258674
Ну значит если тип данных у координат не изменить никак , то может проще написать свой движок?
#228 #258682
>>258680
Вот мне тоже интересно как инженер обошел эту хрень, я где-то читал пару лет назад его пост об этом, но сейчас хрен вспомнить где.
>>258684
#229 #258684
>>258682

>как инженер обошел эту хрень


Просто конвертирует перед передачей на рендеринг в относительные координаты во флоатах, а сам оперирует абсолютными. Почти то же, что и я делаю, лол. На читал скорее всего на хабре.
#230 #258692
>>258674
Смысл в том, что координата целого числа 60000000 может быть представлена как относительная координата 0.0.
#231 #258694
>>258484
>>258674

>physics


PhysX, даун необучаемый, PhysX.
#232 #258703
>>258674

>майнкрафт


>Также, если мне не изменяет память, он написан на libgdx


Череп не давит от знаний?
>>258710
#233 #258710
>>258703
Он чуть выше писал, что в шарпе даблами пользоваться нельзя, так что всё и так понять, нечего разжёвывать.
#234 #258724
>>258387
говна пожуй, ебанат
Анон, нид хелп #235 #258727
Как без лишнего гемороя запилить сервер для фри-ту-плейной игры с юнити клиентом? Есть готовые решения? Хотел заюзать https://parse.com/, но они перестают работать в январе.
#236 #258729
>>258611
вроде можно сцены загужать в отдельном потоке. это может помочь. В старой api это дергалось через Application.LoadLevelAcyns, сейчас, наверно, есть что то подобное в SceeneManager
#237 #258741
>>258611
Скорее всего аудиофайлы грузятся долго. Поменяй для музыки тип на streaming
#238 #258804
Подскажите пожалст, как узнать площадь треугольника? Для Vector2 и Vector3.
>>258810
#240 #258812
>>258810
там много и искать надо и для Vector3 особенно. проще спросить чем вечер искать.
>>258814
#241 #258814
>>258812
Ебать прогугли площадь трехугольника в пространстве. Или найди его стороны, через функцию которая возвращает растояние между точками и подставь в формулу.
>>258815
#242 #258815
>>258814
а могу просто попросить на дваче, чтобы мне дали довольно тривиальную хуйню, у которой много методов решения, которая в добавок ещё и может быть написана красиво и понятно(а может даже с коментиками) с использованием имеющейся хуйни в юнити. вместо того чтобы сидеть и выдавливать это из гугла и из себя.
>>258819>>258856
1 Кб, 356x74
#243 #258819
>>258821
#244 #258821
>>258819
Дай в виде шарпа.
>>258823>>258824
#245 #258823
>>258821
Дал за щеку, читай.
>>258826>>258828
#246 #258824
>>258821
Ты охуел? Катись отсюда.
>>258826>>258828
#247 #258826
>>258824
>>258823
жадные вы хуи.
#248 #258828
>>258824
>>258823
Тричую, блядь.
Совсем охуел, пиздюк.
>>258830
#249 #258830
>>258828
на самом деле мне 27 лет, а написали хуйни, поэтому надо написать хуйни в ответ.
какой ответ такой и ответ на ответ, хули.

но вернусь к просьбе. нет чтоли ни у кого под рукой красиво функции, которая потом не клюнет меня с порядком вершин, или ещё какой хуйнёй?
#250 #258832
>>258830
Да-да, мы тебе поверили, пошёл нахуй.
#251 #258837
>>258830
А от порядка вершин будут разные трехугольники? Что несет..
#252 #258843
>>258830
Великовозрастный ленивый долбоеб - ещё хуже пиздюка
#253 #258844
>>258830
while(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);
}
>>258855
#254 #258855
ладно, всем спасибо за внимание, я выдавил из себя что хотел, жадные хуи. заставили тут меня вспомнить эту сраную геометрию.

>>258844
я пришел к более изящному решению.
private static float Area(Vector2 A, Vector2 B, Vector2 C) {
return Mathf.Abs(Vector3.Cross(A - B, A - C).z) * 0.5f;
}
>>258856
#255 #258856
>>258855
Мелкобуква в 27 лет, пиздиш.>>258830
>>258815
>>258858
#256 #258858
>>258856
знаешь, сидя в интернете с 2002 года я пришел к простому выводу: использовать любые правила которые не приводят к искажению смысла сообщения это бесполезная трата усилий. например первое сообщение в треде я написал вежливо и с большой буквы, потому что хуяк просьба которая вроде как сэкономит мне время. а для говна мне лень на шифт жать.
впрочем иди нахуй, эту тему можно развить, но она не про юнити, а новые треды тут делают редко.
#257 #258903
Привет, анон. Ищу себе напарника для совместного гейм-дева. Мне очень скучно что-то делать в одного, пиши на мое фейко-мыло: anon.anan`_?asov.prANUSyaA`tndexPUNCTUMr_dnu
Код пишу исключительно на C#, мне без разницы 3д или 2д.
Жду тебя, няш :3
>>258906
#258 #258906
>>258903
Хоть описал бы, чего тебе надо, жанры там какие предпочитаешь, на что пишешь.
>>258907
#259 #258907
>>258906
Жанры абсолютно любые, пишу на десктоп, на андроид пока-что не пробовал. Вкатился то недавно. Да и если заинтересовало, то пиши на почту. Там на все отвечу ^^"
у меня бомбануло. #260 #258917
Какой нахуй суперхот? Вот говноапа продается за 269 рублей. Конечно завидовать нехорошо, но, сцуко, почему я до этого не додмался?http://store.steampowered.com/app/334410
>>258918
#261 #258918
>>258917
На VR просто более пиздатого ничего пока не сделаешь. Рисовалку толко как у лилипичу.
#262 #258927
>>255685 (OP)
Антуан, я тут чисто случайно наткнулся на свг импортер. Вообще охуенная штука, и со скэйлом проблем нет, и занимат копейки места. А как оно в деле, кто нибудь пробовал? Охуенно садит производительность в 2д режиме? А то у меня от юнити смешанные чувства, вроде и работает неплохо, но каждый мой пук сьедает такое колличество фпс, что я даже не знаю, стоит ли игра свеч.
#263 #258931
Как запилить бэкенд для фритуплейки с минимальным гемором?
>>258964
#264 #258964
>>258931
Попроси у мамки денег, найми макак.
>>259218
17 Кб, 791x747
#265 #259026
Аноны, есть у кого моделька щупальца? Можно самую простую, лоупольную.
>>259027
#266 #259027
>>259026
Вырежи из старбаунда, там красивые.
#267 #259200
Уважаемые нет юноны, шо можете сказать о распознавании образов?
Была игоря на мобилочку, помню, шота про паркур, там гг бежит по скролящейся дорожке с препятствиями, а игрок должен рисовать кружочки-завиточки чтобы гг изящно вращаясь и выгибаясь преодолевал препятствия. Хотел бы к своим корованам прикрутить такое. Я правильно полагаю, что машина различать узорчики лучше всего будет при использовании нейросети я в этом вообще хуй и ну ваще не разбираюсь?
Есть ли готовые решения на такой случай? Каким образом енто лучше реализовать в юнити мытищи ультрахардкор?
>>259201
#268 #259201
>>259200
Ищи, гугли, на андроид студио такая библиотечка точно была, с возможностью еще и добавлять свои жесты так что думаю полюбому где то что то такое естьа в ассетстроре за 100$ так точно.
>>260514
#269 #259204
У кого-нибудь есть Procedural UI Image? Можете поделиться?
#270 #259218
>>258964
денег нет. вернее есть, но на макак не хватит.

Нашел вот это: http://www.gamesparks.com/ выглядит круто, но дорого шопиздец. Первые 100к пользователей бесплатно, потом 2 цента ЗА КАЖДОГО ЮЗЕРА. То есть с ляма установок им надо 20 килобаксов отстегивать.
>>259221
#271 #259221
>>259218

>думает что в его говно больше 10 человек поиграет

>>259235
#272 #259235
>>259221
но ведь играют же
1 Кб, 422x265
#273 #259246
Как лучше всего реализовать таймбар. У меня есть вот такое прикрепленное к красной полоске:

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. Но не могу найти как выцепить размер непосредственно в коде.
#274 #259257
>>259246
Таймбар на канвасе? Сделай на канвасе и правильно выбери относительно чего скейлить, и в настройках рескейл на мобилочках сделай.
>>259261
#275 #259261
>>259246

>Как лучше всего реализовать таймбар.


Тут я хотел спросить, а не утверждать. Просто у меня не получается сделать нормально.
>>259257
У меня стоит constant physical size. Но при этом на мобилках все равно херятся размеры.
>>259262
#276 #259262
>>259261
а не проще с помощью слайдера в новом UI, отключив у него управление?
>>259273
#277 #259265
>>259246
А ты никогда не задумывался, для чего нужен слой гуя?
>>259273
#278 #259273
>>259265
>>259262
Я и пришел сюда за советом и наставлением. Будьте любезны, помогите.
>>259276
45 Кб, 282x535
#279 #259276
>>259273
Сделай канвас с такими параметрами
>>259277
#280 #259277
>>259276
Добавь слайдер, сними галочку в нем с того чтобы его можно было мышкой двигать, наложи текстуру и програмно увеличивай размер движущейся штуки.
Или вариант номер 2, сделай картинку обводки индикатора которая типо окаймляет твой бар и сделай внутрений бар, поставь первую картинку поверх второй и локалскейлом увеличивай ту картинку которая показывает насколько этот бар заполнен. Кривовато описал но вроде понятно.
>>259279
#281 #259279
>>259277
Вобще гугли HP bar unity там все будет хорошо расписано с кодом.
#282 #259365
Кто-нибудь знает как менять размер размер экрана игры в редакторе через код? Типа было 320х480 стало 940х640
46 Кб, 229x365
#283 #259409
На пике одно и то же растение с разными материалами: деафул-материал(сверху) и спрайт(внизу).
Как видно, тот что выше нормально реагирует на свет. Но его изображение деформировалось и стало ужасным.
Нижний спрайт не изменил своего вида, но его видно при отсутствии света. Очевидно, выглядит бредово.

Подскажите как сделать не деформированный спрайт, реагирующий на свет?
>>259415
#284 #259415
>>259409
http://antonkudin.tumblr.com/post/110198230014/pixellighting
Может что-то интересное почерпнёшь.
#285 #259424
Аноны, делаю тайкун, и у меня в игре есть внутриигровой календарь, и мне нужно запилить генерацию, чтобы на каждый год генерировался календарь, с днями недели и правильными датами, типа в некоторых месяцах 31 день, в некоторых 29, и все это должно соответствовать этим правилам. Так вот, есть ли идеи как запилить, как прописать условия для каждого месяца + высокосного года. Надо массив ебануть или можно безз него обойтись, хотя наврятли. Хелп, вообще не соображаю
>>259430
#286 #259430
>>259424
А настоящий календарь использовать, зашквар чтоли? Бери системные инструменты, они всё умеют.
>>259436
#287 #259436
>>259430
Но у меня игрок будет пролистывать время, и неделя за 5 сек пройдет, у меня будет симуляция времени, разве так можно будет делать?
>>259445
#288 #259445
>>259436

Системные инструменты знают сколько дней будет в феврале в хуй-пойми-каком году и все такое
>>259540
16 Кб, 320x430
#289 #259456
Какие настройки графониума у картинок будут самыми приемлемыми для андроид устройств?

>>259246
Кстати, сам нашел ответ на свой вопрос.

>Но не могу найти как выцепить размер непосредственно в коде.


RectTransform objectRectTransform = gameObject.GetComponent<RectTransform> ();
wid=objectRectTransform.rect.width;
>>259461
#290 #259461
>>259456
Если говорить про фильтрацию, то билинейная и точка на производительность почти не влияют. Так что если у тебя не пиксель арт какой нибудь - лучше брать билинейную.
Нет мягких градиентов - 16 битный формат самое то. На ретине даже не заметишь. А максимальный размер, насколько я понял влияет за упаковку в атласы и мипмапы. Не думаю что тебе нужно ее дергать. Я ставлю минимальный размер в который втискивается спрайт.
>>259462
#291 #259462
>>259461
Алсо, хорошая практика - работать со спрайтами один к одному. Поэтому у меня всегда 1 юнит - 1 пиксель.
>>259577
#292 #259500
Анон, поясни за мультиплеер. Чем хорош фотон? А может сам мультиплеер от юнити? Как выглядит сервер -- консольное приложение, или обязательно юнити-приложение? Вообще имеет смысл сервера-мастера игры? Как дела с читерами?
>>259516
#293 #259501
Котаны, есть вопрос: как на UI отобразить картинку какую-либо по координатам объекта в 3Д пространстве. Например, кликнул мышкой по объекту, рейкастом получил его параметры, а вот как отобразить вокруг него, допустим овал, на UI я не пойму.
>>259504
#294 #259504
>>259501
А зачем тебе это делать на UI? Вы тут как то криво решаете задачи. Один на физике элементы интерфейса делает, другой элементы сцены в интерфейс запихивает. Охуеть тут можно.
>>259508
#295 #259508
>>259504
я вообще не знаю как решить эту задачу, физикой я просто получаю имя объекта, но мне нужно ка то отобразить вокруг этого объекта спрайт, независимо от расстояния от камеры, поэтому и подумал что UI лучше использовать.
>>259510>>259511
#296 #259510
>>259508
Я так понял тебе нужно что-то вроде выделения юнита в РТС?
>>259512
#297 #259511
>>259508
Camera.WorldToScreenPoint, только все равно не понятно зачем тебе UI.
>>259512
734 Кб, 1366x768
#298 #259512
>>259510
>>259511
Вот скрин космической карты из SE. На нем видно у всех звезд обводку, которая не меняет размера от расстояния от камеры до этой звезды. Я хочу реализовать что-то подобное, но только для звезды по которой кликнул мышью. Сам объект получаю рейкастом, это не проблема. А вот как рисовать этот кружок вокруг него, нет идеи.
>>259519>>259525
#299 #259516
>>259500
спроси в бэкенд треде.
#300 #259519
>>259512
Ну функцию я тебе дал. Пользуйся.
>>259532
#301 #259525
>>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/20166
https://www.assetstore.unity3d.com/en/#!/content/29160
https://www.assetstore.unity3d.com/en/#!/content/82
#302 #259532
>>259519
Отличная функция, спасибо за наводку. Все замутил, все работает.
1519 Кб, Webm
1509 Кб, 1280x2521
784 Кб, 1078x1148
73 Кб, 569x241
#303 #259535
Аноний, моя первая поделка в программировании вообще.

Цель - сделать галактическую карту, просмотри пожалуйста быдлокод и скажи что не так? Все работает, но должны быть упущения, bad practice и тд. Может само по себе решение глупое? Сорри что так сжато.
>>259541>>259548
#304 #259540
>>259445
Спасибо анончик, спас.
91 Кб, 1010x609
#305 #259541
sage #306 #259545
>>255685 (OP)
Вы не девелоперы. Вы ссаные конструкторы. Сажи въебите.
>>259553
#307 #259548
>>259535
Если у тебя в игровом мире 10 звезд это ок. А если 1000 или 1000000? Инстантиэйт не лучший вариант. Тем более парсить список из 100000 элементов, на предмет их видимости это очень плохо. Нужно оптимизировать.
>>259563
sage #308 #259553
>>259545 — раздался пронзительный голос со стороны параши.

Но пацаны, как всегда, не обратили внимания на это визгливое кукареканье. Пусть кукарекает, что с него взять?

Движкоблядь — не человек, и сегодня ему предстоит очень трудная ночь. У него уже в течение полутора лет каждая ночь была очень трудной, и теперь его рендер был разработан настолько, что он без труда мог вывести на экран банку сгущёнки.
#309 #259563
>>259548
Звезд будет 50-100, но а если тысячу, какое решение можно применить? Была еще идея сделать карту как бокс коллайдер, и если звезда в нем, то отображается. Благодарю за отзыв.
>>259569
#310 #259569
>>259563
Решений может быть множество, от структуры данных, из которой ты будешь читать информацию для отображения до каких нибудь кластеров, которые будут обрабатываться попадая в область видимости камеры. Честно говоря мне лень думать.

Что мне сейчас бросилось в глаза, так это проверка на видимость. Быстрее использовать префаб со скриптом. OnBecameVisible тебе поможет рисовать все что нужно и избавит от пробега по массиву в каждом апдэйте.
>>259610
#311 #259574
Анон, я вижу сегодня у тебя настроение хорошее, ты советы даёшь.
Можешь рейтануть мой маленький проект в плане оптимизации? Один скрипт скинуть будет глупо, там их всего лишь пять и они тесно связаны, лучше просмотреть цельный проект.
Суть в том, что хотелось бы не проседать по кадрам на ~100м объекте при скорости x10. Есть у вас какие-нибудь советы, как у тех, кто уже довольно давно кодит?
Единственные мои идеи по оптимизации на данном этапе - вместо постоянного applyforce с собственной силой за каждый объект, применять всего лишь один applyforce с суммой всех нужных сил.
Просто хочу максимально обсосать этот тестовый проект ради получения бесценного опыта.
В c# и юнити я третий месяц, не бейте ногами.
https://www.dropbox.com/s/cxjo4or73to4yc5/chem.rar?dl=0 не вишня
>>259583
#312 #259577
>>259462
Одна история ахуительней другой
>>259586
#313 #259583
>>259574
Ты себе льстишь, когда говоришь что на скорости 10х проседает на сотом объекте. У меня проседает на третьем десятке, с семидесяти до пяти-шести фпс, лол.

Ты не думал использовать вместо всего этого хлама Point Effector?
>>259593
#314 #259584
Господа, можно ли прикрутить к этому страхоёбищу нормальный интерфейс?
После ue4 вообще невозможно работать, глаза вытекают, пальцы узлом завязываются, мозг фаломорфирует.
>>259590
#315 #259586
>>259577
Шо нитак?
>>259587
#316 #259587
>>259586
В официальных мануалах юнити всегда берут 10-36 пикселей на 1 юнит. Ты вообще представляешь, что значит 10 юнитов? Это гигантский объект. Так никто не делает.
>>259588>>259597
#317 #259588
>>259587
Физика объекта размером в 100 юнитов - это пиздец, например. Просто по поведению объектов можно судить.
#318 #259590
>>259584

>После ue4 вообще невозможно работать


Не знал что ко вкусу говна можно привыкнуть. Почему с уе4 ушел, кстати? Насчет вопроса - интерфейс юньки можно до неузнаваемости перелопатить, правда блюпринт-программистам это не под силу.
>>259594
#319 #259593
>>259583
Поинтэффектор хорошая штука, но я, как минимум, не знал о его существовании. В новой версии обязательно воспользуюсь им.
Но на данный момент я хотел бы оставить апплай форс просто ради интереса и, опять же, опыта. А то кто знает как жизнь сложится.
Может меня свяжут и под дулом автомата заставят аналогичную хуйню делать используя только апплайфорс? Как я перед ними отчитаюсь, если проседать на тридцатом объекте начнёт?
>>259599
#320 #259594
>>259590
UE4 слишком тяжелый для нашего скромного 2D говнеца.
У меня тут рядом сидит сеньор шарпов, он со мной полностью согласен насчет интерфейса.
Рассказывай как лопатить. С документацией у юнити тоже беда какая-то.
#321 #259597
>>259587
Ты представляешь что размер - относительная штука, и 1 юнит это всегда один юнит. Не метр, не килограмм. Просто единица измерения. Если тебе нужно сдвинуть спрайт на 10 пикселей, ты заебешься с координатами. Гигантские объекты у него, вообще охуеть.
>>259600>>259603
#322 #259599
>>259593
У тебя абуз фиксед апдейта. Единственное что может это исправить - отказ от такого количества вычислений за тик.
>>259634
#323 #259600
>>259597
Ты ебанутый? Ты понимаешь, что максимальная координата равна максимальному float'у? Ты понимаешь, что никто в здравом уме не будет использовать 1 юнит как 1 сантиметр? Это, блять, просто здравый смысл. Он делает картинку равную 1/650 от общего размера ФИЗИЧЕСКОГО МИРА. Вообще охуеть. Удивительно.
>>259604
#324 #259603
>>259597
Ты странный, так как нет смысла считать расстояние в юнити в пикселах, юнити же не блиттингом в фреймбуфер эти спрайты рисует. Где отображается пиксель только от настроек камеры зависит.
>>259605
#325 #259604
>>259600
И ты мне сейчас назовешь общий размер физического мира, и максимальное значение float?
>>259612
#326 #259605
>>259603
Настройки камеры... считаются в юнитах))) Браво. Теперь ты должен понимать о чем я говорю.
#327 #259610
>>259569

>OnBecameVisible тебе поможет рисовать все что нужно и избавит от пробега по массиву в каждом апдэйте.


Хм, не знал, крутая штука, но, OnBecameInisible не подойдет, так как хочется плавного исчезновения, а не мгновенного. Придется пока оставить так, буду поднимать скил на других вещах, добра.
>>259616
#328 #259612
>>259604
Ладно, не трудись. Я сам тебе его назову - 3e+38. Точные значения можно получать вплоть до 9999999, что для любой 2д игры не просто достаточно, а более чем.
#329 #259616
>>259610

void Update() {
if (isVisible) {
...
}
}
#330 #259634
>>259599
Я понимаю, что фиксдапдейт это святое, но мне казалось, что большую часть жрёт именно физика, а не какие-то там 2+2.
Это не так?
>>259664
#331 #259664
>>259634
А что по-твоему у тебя в фиксед апдейт как не физика?)
>>259678
#332 #259678
>>259664
Да, точно, хуйню написал. Я тогда уже был одной ногой в постели, ничего не соображал.
meh
116 Кб, 693x693
Steering, obstacle, etc #333 #259686
Сап, Гдеч.
Теоретический вопрос: как реализовывать обход динамических препятствий?

Есть один встроенный navmesh, и хотелось бы, ползая по нему, обходить динамические препятствия, типа других ползунов.

Можно использовать встроенные obstacle, но тогда нет возможности выбирать "игнорить" легкую обстаклю, которую проще сдвинуть, или видя что она более тяжелая - аккуратно обходить. К тому же ползун будет "видеть" весь путь, даже тот который не в его поле зрения, а какого хрена он видит других ползунов за углом?

Можно рейкастить перед собой, находить коллайдер, сравнивать массы, брать его bounds, но что делать потом? Как построить новый путь или скорректировать старый, исходя из этих bounds?
Дискач.
>>259693>>259696
423 Кб, 1680x1011
#334 #259693
>>259686
ты задал довольно страшный вопрос. динамические обстаклы это обычно когда берется готовый навмеш, в нем вырезаются дырки в нужных местах и он ретриангулируется минуя этап вокселизации. можешь попробовать брутфорсить все баунды, например как это у этих хуёв http://rivaltheory.com/rain/ например чтобы агент просто обходил их по краям в надежде что где-то там найдется дырка. или триангулировать только динамические обстаклы, строя проходимые области только между ними, а потом искать места соприкосновения с существующим навмешем.

если препятствия появляются в процессе, то можешь сохранять несколько предыдущих маршрутов и проверять, какие препятствия появились на старом пути, например. и пускать агента по старому маршруту, если он более адекватен.

алсо пикча из моего самодельного навмеша который я никак не закончу.
>>259697>>259699
#335 #259696
>>259686
Зачем тебе делать обстаклем препятствия, которые не нужно обходить?
>>259698
89 Кб, 400x300
#336 #259697
>>259693
Ковырял их проект, по некоторым причинам, отказался от его использования.
Как я уже упоминал, нет проблем в использовании обычных обстаклей, есть проблема в том, что навмеш един для всех. Это значит что Ползун весом в 1 килограм и весом в 100 килограм для навмеша - одинаковые препятствия.
К тому же, учитывая, что навмеш един, то Ползун1 в 20 километрах от препятствия, внезамно о нем узнает при построении пути, если Ползун2 в 1 метре от него поробует через него пройти.

Поэтому я предположил, что наиболее адекватным будет компть в сторону редактирования определенного Path, рассчитанного для данного конкретного ползуна, учитывая что мы знает bounds препятствия.
Так же есть решения, которые называются 3d pathfounding (в "космосе" и т.д.), но там много непонятной магии, типа Dijkstra's algorithm и т.п.
Опять же, это мои предположения, поэтому запускаю дискач.
>>259704
#337 #259698
>>259696
Для одного это препятствие, для другого "я эту хуйню еще обходить буду?!". Но навмеш же один для всех.
>>259700
21 Кб, 324x384
#338 #259699
>>259693
Тащемта можно упороться в подобное, но чот как то непросто это.

http://gamedevelopment.tutsplus.com/tutorials/understanding-steering-behaviors-collision-avoidance--gamedev-7777
>>259704
#339 #259700
>>259698
Навмеш да, а carving можно включать в зависимости от того, кто использует навмеш.
>>259703
#340 #259703
>>259700
5 Ползунов используют навмеш. Одновременно. Каждый использует как обстакли только 2 из оставшихся 4. Вот я о чем. Ниторопись, подумой.
#341 #259704
>>259699
это долго, если нихуя не знаешь какие есть проблемы и как их можно решить.

>>259697
да можешь особо не описывать проблему, она и так понятна. вроде у юнити обстаклы не могут влиять на какой-то конкретный леер, так что вариант с тем чтобы каждый леер был для своего агента отпадает. если хочешь пользоваться навмешем юнити то можешь попробовать сделать довольно нелепую хуйню - очередность проверки путей. включить нужные обстаклы для нужного агента, получить путь, включить обстаклы другого агента и так далее.

редактирование пути на самом деле довольно плохая затея, если несколько обстаклов рядом. если хочешь именно строить маршрут, то для проблемных мест можно на коленке собрать свою навигацию по гриду, например. это проще чем свой навмеш написать. например когда агент приближается к жопному месту то там кастуется грид Physics.SphereCast и дальше навигация уже по нему.

алсо ололо че дейкстру то вспомнил? лучше https://ru.wikipedia.org/wiki/Алгоритм_поиска_A* воспользуйся. тот-же дейкстра, только плюс фактор удаленности.
>>259707>>259750
129 Кб, 597x368
#342 #259707
>>259704

>очередность проверки путей


Я уже представил всю печальность способа от 10 Ползунов и начало слайдшоу. :(

>если несколько обстаклов рядом


Согласен, "увидев" один обстакль, попробует обойти, там второй, попробует пройти по предыдущему пути, там первый обстакль и так до бесконечности.
Но!
Можно использовать CapsuleCastAll и использовать суммарный Bounds.

>A*


Согласен, рассматриваю как вариант, наряду со steering. Подходы разные, и в данный момент steering мне кажется чуть более удобным вариантом.
>>259708
#343 #259708
>>259707

>Я уже представил всю печальность способа от 10 Ползунов и начало слайдшоу. :(



да врядли, у юнити динамические обстаклы довольно быстрые, как и проверка пути. к тому-же тебе надо перепроверять путь не каждый фрейм же. я бы попробовал сначала лёгкие пути. это-ж не моя бида-пичаль с тем что у юнити NavMeshBuilder в неймспейсе UnityEditor, так что хуй а не навмеш для процедурного уровня в 3д.

>Можно использовать CapsuleCastAll и использовать суммарный Bounds.


на самом деле я бы от баундов не отталкивался. если у тебя уровень имеет только одну плоскость то можно, например, зная форму обстаклов собирать все их контуры в кучу, находя места их пересечения и искать обход уже сложной фигуры. но весь этот план глобально говняный, потому что динамический обстакл может упираться в границу навмеша например полностью блокируя какой-то проход и так ходя вокруг обстакла агент никогда не найдет
>>259710
49 Кб, 741x405
#344 #259710
>>259708

>динамические обстаклы довольно быстрые


А если не 10, а 40 Ползунов? Придется менеджер писать, в котором обязать их региться, и чтобы он каждому рассчитывал путь. Мысль интересная, но не решает вопрос с "всезнанием" пока еще не видимых участков пути.

>обстакл может упираться в границу навмеша например полностью блокируя какой-то проход


По идее, можно на краях bounds брать NavMesh.SamplePosition (к примеру, используя Bounds.ClosestPoint), тем самым проверяя сам факт проходимости.
>>259711
228 Кб, 1680x1011
#345 #259711
>>259710
да думаю и 40 потянет, на самом то деле. и больше. у меня где-то был забавный мини-проект где был навмеш с псевдобесконечным миром для 2д. я двигая мир вокруг игрока брал самплы из перлина и представлял их как динамические обстаклы, надо было убегать от злого шара. пересчитывал каждый фрейм и в общем-то не тормозило ниче особо даже с таким ужасным подходом.

>тем самым проверяя сам факт проходимости.


не ну это вариант конечно, да. хотя интересно можно ли заставить юнити построить альтернативный маршрут, имея в виду что тут не ходим не используя метод выше.
>>259716
55 Кб, 617x435
#346 #259716
>>259711

>да думаю и 40 потянет


Как вариант запомню, хотя необходимость постоянно следить за перебираемым массивом в менеджере пути делает меня грустным.

>заставить юнити построить альтернативный маршрут


Path в юньке это массив Vector3. Где [0] это точка начала, а последний элемент - конец пути.
По идее, нужно [1] точку редактить, вводя поправку на bounds задетекченных коллайдеров (вот тут хз как... вектор от Collider.ClosestPointOnBounds до.. до... хз, края bounds?), а потом в появившемся vector3 брать NavMesh.SamplePosition, тем самым гарантированно получая точку навмеша. Если непроходимо обстаклями, то будет толкаться до упора, это да.

А еще можно от до [i+1] рейкастить (как минимум первые 2-3 точки), и вводить поправку вышеуказанным способом, перерассчитывая после этого путь от скорректированной точки и дальше, получая новый path.

Но это первое что в голову пришло, надеюсь адекваты присоединятся к обсасыванию сферического коня в вакууме.
>>259720
7 Кб, 556x562
#347 #259720
>>259716
да не, я про другое. картинкой объясню. подход с обходом краев предполагает что препятствие можно обойти. а что если нельзя? юнити же нельзя нормально сказать "исключай эту область из поиска пути", кроме как динамическим обстаклом, или Area, что не рассматривается как вариант.
>>259721
144 Кб, 750x750
#348 #259721
>>259720

>подход с обходом краев предполагает что препятствие можно обойти. а что если нельзя


Можно рассчитать [1] скорректированную точку (главный вопрос в том, как ее корректировать. Тут у меня проблемы.). От нее (а не от твоего положения, как при первом проходе) сделать NavMesh.CalculatePath(). Получаем путь, учитывающий и объем агента и обстаклю перед носом.
>>259723
#349 #259723
>>259721
да по моему никак. надо же чтобы она была ближе к цели чем предполагаемый путь через обстакл. а хуй знает где там продолжение маршрута. юнити же не дает вроде весь граф областей навмеша.
>>259725
#350 #259724
11 Кб, 400x400
#351 #259725
>>259723
Я не понял тебя.
NavMesh.CalculatePath() от Начала до Конца.
У нас есть Path. Он содержит 4 точки пути (waypoint): [Начало, 1, 2, Конец]
Между [Началом] и [1] обстакля. Корректируем точку [1] относительно обстакли (получаем точку на навмеше, с учетом bounds обстакля).
Рассчитываем путь от [1] до Конца.
Профит.

Что не так?
>>259734
10 Кб, 405x569
#352 #259734
>>259725
ну смотри, есть например коридор из двух квадратов. на картинке они черные. если спросить путь до цели у юнити, то он будет синим. но что если синий путь полностью перекрыт красным обстаклом? его не обойти вблизи синего пути. тогда с учетом обстакла правильный путь будет зелёный. но юнити не знает что синий путь не является правильным. чтобы построить зеленый путь надо передвинуть точку номер 2 с синей позиции на зелёную и считать путь от неё (скорей всего). но каким макаром её можно узнать исходя из оранжевых точек которые являются границами обстакла? я не вижу пути.
>>259735
22 Кб, 581x268
#353 #259735
>>259734
Понял. Согласен.
Пока единственный работающий механизм - менеджер, включающий\отключающий обстакли и после этого рассчитывающий путь для каждого агента. Учитывая, что обстакли динамические, придется перерассчитывать Путь для каждого (с включением соответствующего обстакля) минимум раз в пол секунды. Потестю, но предвкушаю грусть и печаль.
Больше мне в голову пока идей не приходит...
29 Кб, 403x403
#354 #259750
>>259704

> включить нужные обстаклы для нужного агента, получить путь, включить обстаклы другого агента и так далее


Не прокатывает. Включаемая обстакля не успевает "прорезать" навмеш.

Ray.collider.GetComponent<NavMeshObstacle>().enabled = true;
NavMesh.CalculateTriangulation();
NavMesh.CalculatePath(SourceHit.position, DstHit.position, NavMesh.AllAreas, Path);
Ray.collider.GetComponent<NavMeshObstacle>().enabled = false;
>>259839
#355 #259839
>>259750
там под опцией Carve у обстаклов есть опции всякие интересные. и попробуй давать какое-то время в лупе внутри IEnumerator c WaitForSeconds согласно настройкам обстаклов.
>>260340
#356 #259846
Хуйли у меня галка mirror в blend tree не активна? Хуйли движок не говорит хули блядь ему надо? Хуйли в гугле на эту тему лежит жирный черный хуй? Хуйли всё не для людей? А?
>>259847
#357 #259847
>>259846
Это норма, у меня как-то целый проект распидорасило, что-то тупо выключилось и не работало, пришлось заново пересобирать.
#358 #259854
Юноны, поясните, как анимировать дочерние части модельки. Т.е. как их поворачивать, двигать, это понятно. А как использовать другие спрайты в анимации дочерней части? Например анимация ног и тела по отдельности. Сильно не бейте, в юнити недавно.
>>259871
#360 #259966
У кого-нибудь есть годные гайды как реализовать систему диалогов в игре? В первую очередь интерисует 2д, но и 3д сойдёт.
В смысле подходит ГГ к табличке- появляется надпись (через колайдеры что-то не прокатывает). Или идёт по локации и пошёл текст типа истории.
>>259990>>260009
#361 #259990
>>259966
Почему не прокатывает? Как проверяешь?
>>260013
#362 #260009
>>259966

> (через колайдеры что-то не прокатывает)


У меня все прокатывает. Подошел к коллайдеру - заинстансился геймобжект перед камерой, досточка с текстом. Нажал эскейп - досточка дестроится, и можно дальше идти.
>>260013
#363 #260013
>>259990
void OnCollisionEnter2D(Collision2D coll)
>>260009
У меня сами таблички даже но 10-20 камер появляются через UI. Так что привязку делаю на подобии этого. http://nn-game.ru/assets/всплывающие-диалоги-в-2d-играх
Свой код можешь показать?
>>260059
#364 #260059
>>260013
Нууу ээээ

Вот врезается игрок в дверь. На двери колайдер-триггер и скрипт:

void OnTriggerEnter(Collider other)
{
if(other.gameObject.tag == "Player")
{
Instantiate(tablichka, transform.position, transform.rotation);
}
}

"Когда триггер-коллайдер соприкоснулся с другим коллайдером, то если у другого коллайдера тег "Игрок", создаем обьект "табличка" в таких-то координатах повернутый в такую-то сторону". Обьект естественно берется из префаба, ну и в префабе скрипт вида "при нажатии Esc - уничтожиться".
#365 #260110
Есть объект игрок ,с прикрепленным к нему скриптом player.захотел добавить второго игрока ,написал очередность ходов, а ход не передается.класс второго игрока тоже плеер.Как мне в коде определить какой это игрок?
>>260113>>260194
#366 #260113
>>260110
Тег плеер2 добавить?
>>260121
#367 #260121
>>260113
добавил,ход не переключается как будто он не понимает какой геймобжеки юзать
#368 #260194
>>260110
Сохрани на него ссылку где-нибудь.
46 Кб, 640x512
#369 #260340
>>259839
Я понимаю.
Но это значит, что при каждой итерации необходима будет задержка в цикле.
Предположим, задержка в 0.1 сек. Уже при 10 ползунах, это будет 1 секунда.
При 100 это будет 10 секунд, что вообще нереально.

Пока решения проблемы нет. Благодарю за дискач, навмеш-кун, успеха тебе.
Пока в роадмапе под грифом "Альфа" висит возможное решение данной проблемы:
AI: NavMesh workflow and bake API
Workflow: the workflow is now based on components
NavMesh Surface component describes a volume where the navmesh will be build, you can have multiple volumes, in any orientation
NavMesh Portal is a new component which allows to connect two NavMeshes with a wide link
NavMesh Modifier allows to change the area type of the NavMesh which falls inside the volume
NavMesh Markup allows fine grained control of area types per Game Object, replaces static flags
Bake 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
>>260357
1040 Кб, 1680x1010
#370 #260357
доволен, перелопатил кусок кода отвечающий за "воронку". он теперь, конечно, похож на мусорное ведро, но зато теперь сорт оф мультиразмерный агент не такой полужопинский как был раньше.

>>260340
да поставь более маленькую задержку, че ты. например выше на том скриншотике с кучей навмеш обстаклов каждый кадр выключал все обстаклы, потом брал обжекты из пулла и включал обратно. там задержка была явно не 0.1 секунды.

вообще по моему опыту скажу - если есть возможность не ебаться с навмешем, лучше городить костыли. если хочется ебатся с ним, то советую почитать http://upcommons.upc.edu/bitstream/handle/2099.1/16508/Ramon Oliva.pdf?sequence=1&isAllowed=y
>>260359>>260402
#371 #260359
>>260357
кстати, стоит добавить что у этого хрена идея вокселизации мне не очень понравилась. из всех методов мне более адекватным показался у rain indie. у A* берутся треугольники меша и растеризуются, а rain indie более хитрожопый - там берутся меши примитивов и подставляются на место коллайдеров соответствующих типов и растеризуются уже они, так что в итоге меш по границам коллайдеров а не мистической хуйни.
кстати одна из причин почему мне не нравится навмеш юнити, он строится по видимой хуйне. в итоге всякие ветки у деревьев которые не имеют колизии добавляются в навмеш как препятствие.
246 Кб, 599x399
#372 #260402
>>260357
NIET POOTY.
С любой задержкой не работат. Что с большой, что с маленькой. Что с Carve параметрами в 10 что в 0.001.
Выйдет адекватный API - будем ковырять, а пока придется подождать, либо, если совсем уж припрет, стороннее юзать.

>в итоге всякие ветки у деревьев которые не имеют колизии добавляются в навмеш как препятствие


Согласен, бесит. Фиксится выставлением NavigationStatic в false у модели.
>>260587
#373 #260490
Ананасы, ткните меня носом в то каким должен быть AI в DOOM-like шутере. И как его собсна реализовывать. Мои боты только бегут к игроку пока в него не упрутся, да по пути непрерывно стреляют прям в него. Как заставить их стрейфиться вокруг игрока, например, и не врезаться в стены? Пережидать пока игрок стреляет и набигать пока он перезаряжается?
>>260500
#374 #260500
>>260490
Так же как ты и заставил их бежать на тебя.
if (игрок стреляет) стрейф
if (дистанция <= 100) не идти вперед

> не врезаться в стены


A* или NavMesh
#375 #260514
>>259201
и как предлагаешь мне искать енто?
>>260541
#377 #260572
Кто-нибудь получал девелоперский сертификат юнити? https://certification.unity.com/
1319 Кб, 1913x957
#378 #260579
Что это?
#379 #260580
>>260579
Может покупные штуки из ассетстора?
>>260581>>260582
#380 #260581
>>260580
Скорее всего. Может кто тут узнает.
#381 #260582
>>260580

>покупные


Почему обязательно покупные? Можно и самому написать.
>>260585
#382 #260585
>>260582
Можно, но нахуя? Даже близарт тупо с ассетстора тащит для хертстона либы. Зачем заниматься велосипедостроением и занимать программистов у которых рейт выше чем единоразовая покупка поддерживаемого ассета?
#383 #260587
поделюсь с двачиком сценой которая мне понравилась. захотел применить рут моушен к перемещению агента и маршрут стал заметно интересней!
https://www.youtube.com/watch?v=R29OY7KbrlA

>>260402
надо будет самому попробовать костыль такой приделать, интересно стало. кстати там же осенью обещали сделать навмеш не таким полужопинским как сейчас. во всяком случае в их роадмапе был такой пункт. но там довольно мало писали, хотя сказали что сделают выделение зон для навмеша.

>>260579
а не разглядеть название окошка даже. че делает то не знаешь?
>>260589
#384 #260589
>>260587

>а не разглядеть название окошка даже. че делает то не знаешь?


хз, тетка в очках левел дизайнер.
#385 #260591
Как сделать, чтобы корутина (IEnumerator) продолжала выполняться, если обьект, на котором висит скрипт с корутиной, SetActive(false)?
>>260592
#386 #260592
>>260591
никак, они выключаются при выключении объекта. можешm делегировать корутину другому объекту, который бы выполнял функцию менеджера.
>>260594
#387 #260594
>>260592
Многовато обьектов получается, а через InvokeRepeating непонятно как передавать параметры в void.
>>260596
#388 #260596
>>260594
так ты одному менеджеру делегируй, просто имей в нем колекцию с IEnumerator, где список активных корутин и передавай в корутины что-то что содержит делегат, и например параметр для WaitForSeconds.
корутины же можно держать как параметр и делать например
IEnumerator myIEnumerator = SomeIEnumerator(myAwesomeValue);
myIEnumeratorList.Add(myIEnumerator);
StartCoroutine(myIEnumerator);

и делать это много раз. кстати единственный адекватный известный мне способ применять корутины не в плеймоде это вот так сохранять на них ссылку и каждый раз им говорить myIEnumerator.MoveNext(); в каком-нибудь ГУИ.
>>260601
#389 #260597
>>260579
Блюпринты, вестимо. В ассет сторе именно таких не нашел, так что наверное самописные.
>>260652
#390 #260601
>>260596
Спасибо!
#391 #260644
Что скажите про Forge?
104 Кб, 785x442
#392 #260652
>>260579
Что-то такое. Один из тысячи визуальных редакторов.

>>260597

>Блюпринты


Кек. Теперь весь ноде-базед функционал будет блюпринтами? Нахуй это говно.
#393 #260655
>>260652
Блюпринты уже настолько устойчивый мемас, что нет смысла ебаться с такими длинными и неудобными описаниями. Ноде-базед функционал? Нахуй это говно.
>>260658
#394 #260658
>>260655
Флоуграф. Ноды. Блюпринты это как-то анриловскому, а значит, по-пидорски.
>>260672
#395 #260659
>>260652

>Один из тысячи визуальных редакторов.


Это понятно, но какой именно? Интересно какие именно штуки используют в больших именитых проектах.
>>260663
#396 #260663
>>260659
Да скорее всего юскрипт. С моим скрином вся разница только в тёмной\светлой теме. А вообще из визуальщины под юнити навороченней антареса хуй найдёшь, наверное. Но это точно не он.
>>260665
#397 #260665
>>260663
Большое спасибо! Похоже это оно и есть.
#398 #260672
>>260658
Лично мне похуй, я не участвую в петушиных боях.
#399 #260685
Поясните как найти всех юнитов на расстоянии N от другого юнита, и следом найти среди них ближайшего.
PhysicalOverlap не предлагать, оно ебически тяжелое.
>>260760
167 Кб, 1600x1200
#400 #260726
Ануний, поясни, каким образом лучше создавать сцену с точки зрения производительности и чистоты кода, если данные о ней хранятся в массиве ? Инстантиейт или создание объекта с нуля? Вот взять простенькую солнечную систему, которая состоит из звезды, нескольких планет, сотни астероидов и бэкгрануда. Вот астероиды все однообразные, их можно клонировать с префаба + пару строчек кода на изменение трансформа. А что насчет планет?
>>260756
136 Кб, 800x600
#401 #260734
>>260652

> UnrealScript (often abbreviated to UScript)


хуя тонко
#402 #260756
>>260726
Ну для начала, создай класс абстрактных планет...
тыпонял
#403 #260760
>>260685
Самое очевидное - держи все юниты в листе и чекай между ними дистанцию, когда надо.
>>260897
#404 #260811
Почему при установке на андроид, игра выдает два значка на экране?
#405 #260830
#406 #260837
Друзья, подскажите начинающему, почему простой 2Д проект подлагивает на android мобилках?
Там всего 9 drawcalls и 150-200 треугольников. Vsync отключен.
Простой мониторинг фпс не помогает разобраться - я собирал раз в 0.5 сек, показывает 55-60 фпс. Но лаги-то есть.

Пытался рассмотреть профайлером в редакторе - есть странные спайки в работе GPU, но похоже, что это работа на отрисовку самого профайлера ()если двигать его окошко, то спайки превращаются в постоянную нагрузку, такой же по длительности выполнения).

На что обратить внимание, какой код, может, вычистить?
>>260846
#407 #260846
>>260837
Скрин профайлера и названия девайсов, на которых тестировал.
#408 #260853
Подскажите ассет магазина, чтобы за внутриигровые деньги покупать всякию хрень и делать апгрейд. Можно без инапов.
>>260881
#409 #260881
>>260853
Игру то сделал? Или сразу магазин нужен?
>>260888
sage #410 #260888
>>260881

>2016


>делать геймплей перед внутриигровым магазином

#411 #260897
>>260760
Это пиздец убогий.
Прикрутили сетку и поиск 1-9-25-49 c сохранением результатов. Работает примерно в 50 раз быстрее physics overlap. Нужно еще байтоёбством позаниматься, можно еще быстрее.
>>260930
#412 #260930
>>260897
Чо пиздец то? У тебя все равно есть массив с юнитами, если ты заранее позаботился о том, чтобы назначить им родителя.
>>260940
#413 #260940
>>260930
Это список. Список пиздец дорогой для обработки. Клетки на порядок дешевле выходят.
>>260989
#414 #260989
>>260940
Бро, поясни пожалуйста что такое клетки? Сам ньюфаг ебаный, делал поиск через списки.

Алсо, как сделать так чтоб глаза не вытекали от мелкого шрифта и интерфейса ?
>>260995
#415 #260995
>>260989
Полагаю, он разбил поле на сколько-то квадратов, квадрат хранит в себе списочек находящихся в нём юнитов. Юниты, перемещаясь по полю, отправляют контроллеру квадратиков инфу о смене своего квадрата по необходимости.
В таком случае вместо перебора всех юнитов на мапе ты перебираешь обычно в разы меньше, рассчитывая через нужное расстояние N те квадраты, которые оказываются в пределах этого радиуса, остальные отбрасывая.
>>261025
#416 #261025
>>260995

> разбил поле на сколько-то квадратов, квадрат хранит в себе списочек находящихся в нём юнитов


Шёл 2016 год, в гд всё ещё не слышали про деревья.
>>261029>>261043
#417 #261029
>>261025
Давай рассказывай про деревья
>>261032
#419 #261043
>>261025
Что ты там деревьями сделаешь, мамкин гений?
1652 Кб, 1280x1024
#420 #261088
Посоны, поясните , в роадмапе указано что скоро выкатят сервер либу. Это будет полноценный сервер типа фотона или непонятная параша как юнет ?
>>261094>>261110
#421 #261094
>>261088
Отвечает Александр Друзь.
>>261098
#422 #261098
>>261094

>Александр Друзь


>>261094
Не знаю к чему бы это, но попрошу без оскорбительного оттенка, плиз.
>>261101
#423 #261101
>>261098
Оскорбительный оттенок был бы если бы тебе ответили "тебя блядь ебет вообще, когда выйдет тогда и увидишь".
#424 #261110
>>261088

>Это будет полноценный сервер типа фотона


Какого фотона? Болт? Или клауд? Там много фотонов. Ты про dedicated говоришь?
>>261132
#425 #261132
>>261110

>dedicated


Да, чтоб можно было копаться в коде и понимать как оно работает.
>>261150
#426 #261150
>>261132
Это все равно что сказать "я качаю ассеты чтоб посмотреть как оно работает"
>>261152
#427 #261152
>>261150
Я так делаю. Что не так в этом подходе?
>>261158
#428 #261158
>>261152
Все так, это мамкин програмизд порвался.
#429 #261185
>>255685 (OP)
Подскажите с чего начать ньюфагу?
>>261188
#431 #261289
Добрый вечер. Я случайно попал на юнити, и ахуел:
Не знаю, как мне завести где-то переменную ( любого типа ) так, чтобы она была доступна из всех классов всех объектов всех сцен. Во всех туторах что нашел люди делают ГеймОбжект.файндБайТэг//, но что-то подсказывает мне что так делают только мудаки.//
#432 #261290
>>261289
Объясни детальнее, может быть двухмесяный гуру с# тебе подскажет что-то дельное.
А может и недельное, но подскажет точно.
>>261292
#433 #261292
>>261290

Вот смотри, допустим я хочу сделать много дверей, которые могут иметь уникальные ключи.
Вот я создаю класс doorLockable, с публичными полями типа айди подходящего ключа, закрыта ли дверь и т.д. и кидаю этот класс на двери в сцене.
Потом создаю класс для ключей например itemKey, с паблик полем айди ключа.

Так вот где же мне сохранить инфу о том какие ключи я взял? Причем так чтобы она была максимально прямо доступна из класса дверей, что-то типо Player.keys[...], без поиска по дереву всех геймобжектов.
#434 #261293
>>261289
Статическая переменная в любом скрипте тебе в помощь. Обращаться как к статической переменной по имени Класса.переменной
так реально делают мудаки
>>261449
#435 #261295
>>261292
Прикрутить к каждому ключу булевскую "взят ли" и проверять её на тру-фолс у определённого ключа при взаимодействии игрока с определённой дверью. Достаточно связать ключ и дверь, которую он откроет, и искать по всем геймобжектам уже не нужно.
Прикрутить к игроку лист взятых ключей и перебирать его на наличие нужного ключя при взаимодействии с дверью. Проверку прикрутить на дверь, заставить её открываться только если есть определённый ключ. Искать игрока перебором геймобжектов не нужно, просто единожды дать каждой двери ссылку на него.
Менять свойство определённой двери уже при взятии определённого ключа так, чтобы при первом же взаимодействии с игроком она уже была открыта/открывалась без проблем. Опять связываем попарно двери с ключами и никаких поисков не нужно.
Выделить отдельный объект, который будет отслеживать и хранить состояние всех ключей, а при взаимодействии передавать их нужной двери. Тут тоже связываем нужные двери и ключи и... ну ты понял

Других мест для хранения данных наверно и нет. Один из трёх участников взаимодействия или сторонний объект.
А вот другие способы передачи данных о подобранности скорее всего есть, но я, очевидно, о них ещё не знаю.

Кстати, опытные аноны, какое из этих четырёх мест хранения будет эффективнее и почему?
#436 #261297
>>261292
Надо просто писать нормальный код, а не то говно в которое так легко скатиться с Юнити. Ключи - состояние персонажа, у него и проверяй.
#437 #261317
>>261289
Google: Dependency Injection.
#438 #261367
так, ребят, вопрос есть
короче дефолтный чарконтроллер ставлю, всё как обычно, вроде всё работает но там какая-то вообще одичалая задержка ввода
сцена сама пустая, пол и чарконтроллер
смотрю инпут сеттингс, там какое-то значение gravity, у всех инпутов 1000, у горизонтал/вертикал 3
заменил на косарь, задержка пропала
собственно вопрос, что это за хуйня была, не аукнется ли мне через время, зочем сломали то что раньше нарм работало
>>261374
#439 #261374
>>261367
Вангую что с масштабами проебался. Считай что 1 юнит = 1 метр.
>>261380
#440 #261380
>>261374
не мог проебаться, потому что школоперетащил чарконтроллер на сцену
#441 #261405
Посоны, вот создал я объект из префаба, пускай это будет камень, а теперь нужно добавить ему свойство, например "измерение", как такое сделать?
>>261406
#442 #261406
>>261405
Чтоб можно получать было доступ вот так, object.dimensional = 42, или так нельзя?
#443 #261408
Возможно ли в юнити изменять модели на ходу?
Например, у меня есть стандартная мартышка из блендера голова мартышки из 3 полигонов, стадартная моделька в блендере, так вот, я ее хочу разрезать пополам в рилтайм. Существует ли способ автоматически разделить ее на две половинки, дорисовать поверхности в месте разреза и затекстурировать их? Или нужно будет в блендере рисовать мартышку из двух половинок, которая будет распадаться по команде?
>>261409
#445 #261425
>>261292
Хранить все взятые ключи в List. При открытии проверять есть ли в этом List ключ. Все.
#446 #261427
Поворачиваю объект мышью в игре.
Код такой:
RotationX += Input.GetAxis("Mouse X") RotationSpeed Time.deltaTime;
RotationY += Input.GetAxis("Mouse Y") RotationSpeed Time.deltaTime;

Transform.rotation = Quaternion.Euler(-RotationY, RotationX, Yaw);

В итоге поворот совершенно ебанутый. Если, к примеру, объект перевернуть, то вместо поворота вправо он повернет влево и подобное.
Нагуглить не смог, даже запрос хз как сформировать.
Подскажете дебилу, как решить эту проблему?
28 Кб, 586x274
#447 #261432
Сап юнитач, пришел к вам с дефолтным вопросом по UI который меня мучает уже давно. Есть у меня сцена где должен быть список всех сейвов из игры, я делаю его в виде скроллбара и баттонов. Но как добавлять туда кнопки когда сейвов к примеру 10, 20? Как добавить кнопку и одновременно "навесить" на нее все компоненты и расположить и ресайзнуть правильно не вручную, а програмно. Делая диалоговую систему я выкрутился созданием 5ти кнопок и прятанием лишних, потому что в диалоге больше 5 кнопок не нужно но как быть с сейвами я хз.
>>261439
#448 #261439
>>261432
RectTransform.
>>261442
#449 #261442
>>261439
Что рект трансформ?
>>261443
#450 #261443
>>261442
Ты можешь разместить кнопочки с помощью этого кодом как угодно.
>>261444
#451 #261444
>>261443
Мне нужно будет все параметры прописывать вручную в коде? Размеры, расположение подключать к скролбару, добавлять в контент сайз фильтр, добавлять как лейаут элемент, подключить к он клику нужную функцию. Сложно но раз других вариантов нету прийдеться так и сделать.
>>261520
350 Кб, 1920x1080
#452 #261449
>>261293
Что плохого в этом? если переменная требуется в нескольких скриптах? А если объекты создаются во время игры, на кой хуй каждому созданному объекту тянуть компонент,м ? Не, я действительно не понимаю почему способ мудаковский, тк С# осваиваю недавно.
>>261465
#453 #261459
Кириллы, возможно ли пользоваться Transform.Translate вне метода Update()?
Может есть способы обхода?
Не хочу говнокодить кучу блоков if() в методе Update() для того, что бы вызывать свой метод, в котором используется Transform.Translate (тогда типа мой метод находится в области видимости метода Update()).
>>261462>>261463
#454 #261462
>>261459
Нагуглил сам.
Говорят, что в таком случае надо пользоваться Vector3.Lerp
#455 #261463
>>261459
С чего ты взял что нельзя?
>>261467
#456 #261465
>>261449
Потому что ты создаёшь неуправляемое спешить. После десятка таких переменных ты будешь все время тратить на поиск почему все опять сломалось и на лютые хаки. Используй человеческий код с интерфейсами, вставкой зависимостей и всем таким. В Юнити слишком легко натворить говен особенно по нубству.
#457 #261466
*спегетти, ссаная автозамена
#458 #261467
>>261463
Мне нужно плавное перемещение. Transform.Translate не позволяет этого сделать, т.е. на время перемещения моего объекта юнити зависает.
С Vector3.Lerp я пока что немного обосрался и не понял, как сделать.
Поэтому если у кого есть идеи, как это сделать - буду благодарен.
>>261470
#459 #261470
>>261467
Двигать по чуть-четь на каждом кадре с сглаживанием времени?
>>261472
#460 #261472
>>261470
Пытался, но виснет и затем мгновенно перемещает либо просто мгновенно перемещает.
>>261474
#461 #261474
>>261472
Плавное перемещение это первый урок в Юнити после запуска. Как это можно запороть имея хотя бы школьный уровень математики я не представляю. Wait, oh shi...
>>261475
#462 #261475
>>261474
Все через Update используют, идиёт, ёпта. А мне этот метод нахрен не всрался и я хочу его обойти.
>>261500>>261501
#463 #261500
>>261475
А никак его не обойти. Максимум что можно сделать - это менеджер который будет в своём Update двигать другие объекты.
#464 #261501
>>261475
Кто-нибудь может мне объяснить, что этот болезный хочет? Я вот нихуя не понял.
>>261503
#465 #261503
>>261501
А, понял. О корутинах он не слышал.
#466 #261517
while (i < 300) {i++}

Как сделать так, чтоб в условии было время, короче когда цикл запускается, то например секунду пока он выполняется будет тру возвращать в условие, а потом фолс.
#467 #261518
>>261517
Двачну, тоже интересно как с временем работать.
#468 #261520
>>261444
Копай в сторону Grid Layout Group. На Youtube вся инфа есть. Также ищи инфу по компоненту "Mask", что сделать прокручиваемый список.
>>261521
#469 #261521
>>261520
Спасибо за совет, но эту проблему я решил уже.
#470 #261535
Парни, поясните за опенволд на юнити в 2016. Нагуглил только топики 2013-ых годов, изменилось ли что-то? Не мультиплеер
>>261540>>261554
#471 #261540
>>261535
Да.

мимоПРОбыдло
#472 #261554
>>261535
По сути, всё так же и осталось.
#473 #261588
Анон, добавляю объект в arraylist, а затем с каких-то хуёв не могу удалить этот объект оттуда. И вообще, при запросе Contains(obj) мне отвечает, что хуй, нет такого говна у нас. Но при этом при Count запросе - отвечает, что всё-таки что-то там лежит.

На какие камни я мог наебнуться?
>>261593
#474 #261593
>>261588
У тебя лежит в списке ссылка на объект. Поскольку объект удален, ссылка теперь равна null. Use OnDestroy и удаляй ссылку на объект "руками".

мимоПРОбыдло
>>261598
#475 #261598
>>261593
Я не удаляю сам объект(из сцены). Я удаляю его из arraylist, т.е. удаляю ссылку на него методом Remove. Но почему-то не выходит.
>>261600
#476 #261600
>>261598
Код покеж.
>>261602
29 Кб, 845x643
#477 #261602
>>261600
За сам говнокод по шапке чур не бить. Не рефакторил ещё.
>>261609>>261612
#478 #261609
>>261602
Удаляешь из одного листа, а проверяешь в другом
>>261619
#479 #261612
>>261602
Я, наверное, в глаза ебусь, но где ты его удаляешь?
>>261619
#480 #261614
А можно больше инфы про опенворлд? Хорош ли для этого движок, возможно ли потом дописать сетевой код к готовой игре?
>>261620
#481 #261619
>>261609
>>261612
Спасибо, кармаки, вы лучшие. Полдня убил на этот косяк, в упор не замечал.
Пора завязывать так именовать переменные.
#482 #261620
>>261614
Посмотри на Rust.
#483 #261633
Как в апдейте запустить только одну корутину? Она получается запускается постоянно, а мне нужно что бы она сработала только 1 раз.
#484 #261636
>>261633
запускай в старте
Проблемы с канвасом #485 #261637
Я запилил канвас и сделал в нем меню игры с помощью текста. Текст у меня в верхнем левом углу. При одном разрешение экрана все выглядит нормально, как задумал. При изменении на большее/меньшее, текст просто съезжает или за пределы экрана, или на середину. Можно ли как-то универсализировать то, как я расставил в канвасе текст?
>>261638>>261639
#486 #261638
>>261637
Якорь у текста поставь на левый верхний угол
>>261641
#487 #261639
>>261641>>261647
#488 #261641
>>261638
>>261639
Спасибо большое
#489 #261646
>>261633
Запускай в одном из стартовых методов или заимей флаг, который будет обозначать запущенна корутина или нет.
#490 #261647
>>261639

> ПРО


Что ты тут делаешь?
>>261691>>263654
#491 #261666
>>261517
float time = 1.0F;
while (time >= 0.0F){time -= Time.deltaTime;}
>>261677
#492 #261677
>>261666
Ну и естественно нужно добавить прерывание в цикле, чтобы он отрабатывал каждый кадр, а не за раз.
>>261679
#493 #261679
>>261677
а как делаются подобные прерывания? (я новичок)
>>261684
#494 #261684
>>261679
break;
Ну типа
bool end = false;
float time = 1.0f;
while (time >= 0.0f){
time -= Time.deltaTime;
If (time <= 0.0f) {end = true};
break;
}
if(end) blablabla
>>261699
#495 #261685
А, так и думал, что ток брейк, а то "прерывание" проассоциировалось с какими-то низкоуровневыми операциями в ассемблере. Горе от ума. За пояснение спасибо.
#496 #261691
>>261647
Учусь вместе с вами.
#497 #261693
>>261517
bool m_TurboFuck = false;
void Start()
{ StartCoroutine(SISKI());}

IEnumerator SISKI()
{
m_TurboFuck = true;
yield new WaitForSeconds(1);
m_TuboFuck = false;
}

мимоПРОбыдло
>>261797
#498 #261699
>>261684
Нахрена тебе вообще while тут если ты его сразу же прерываешь?
>>261713
#499 #261708
>>261633
Нашел сам. Вставил StopAllCoroutines().
Теперь, как я понимаю, все корутины, запущенные после первой будут остановлены. Только я пока не знаю, будет ли это большой нагрузкой.
>>261709>>261710
#500 #261709
>>261708
Объясни где в переводе Stop All Coroutines на русский сказано про "корутины, запущенные после первой".
>>261714
#501 #261710
>>261708
Тебе булевый флаг нужен. А еще лучше - проектировать логику так, чтобы одноразовый код не запускать ил апдейта.
#502 #261713
>>261699
Базара ноль, можно сделать и на if-ах, можно и корутинои.
Но человек попросил показать с while.
#503 #261714
>>261709
Ну вот в апдейте стартуют все корутины каждый фрейм. Я в самой корутине вписал Stop All Coroutines. Получается, что когда самая первая срабатывает, то все остальные прерываются. Такие дела.
>>261716>>261717
#504 #261716
>>261714
Зачем их все запускать, чтобы потом останавливать, если можно в том же апдейте их запускать только когда нужно?
>>261718
#505 #261717
>>261714
C - смекалочка
>>261718
#506 #261718
>>261716
Я не могу так. Вроде гуглил ка через булевскую переменную останавливать, но что-то не получается.
>>261717
А то.
>>261723
#507 #261723
>>261718
void Update() {
if (true) {
StartCoRoutine();
true = !true;
}
}

IEnumerator(StartCoRoutine) {
yield return;
}
#508 #261726
Грусть-печаль, нельзя выбрать свойство, когда выбираешь функцию, которая сработает, если нажать по кнопке.
>>261732
#509 #261728
Привет, ребзя. Допустим, есть условие (это псевдокод, сразу говорю):

if(KeyPressed.Space or KeyPressed.Enter) { some code }
Все бы хорошо, но а что если мне хочется узнать, какое именно условие сработало? Нажал ли я пробел или нажал энтер? Могу ли я узнать, на что именно среагировало условие?
>>261732>>261742
#510 #261732
>>261726
Грусть печаль - это когда нельзя в стандартном редакторе кнопок навесить скрипт с несколькими параметрами в перегрузке.
Пользуйся switch case.
>>261728
Используй несколько блоков if либо используй else if.
>>261736
#511 #261736
>>261732
Ну да, это ясно. Просто думал, может, возможно как-то сократить. Но все равно спасибо
#512 #261742
>>261728
switch (KeyPressed) {
case Space:
some code;
print("Space");
break;

case Enter:
some code;
print("Enter");
break;

}
#513 #261797
>>261693
Ага, про корутины знал,но еба, почему нельзя придумать переменную, при первом обращении к которой возвращает тру и еще n времени тру ,а потом всегда фолс, например /
>>261817
#514 #261817
>>261797
Ты про события сейчас?
Знаю юнити и си шарп два дня. #515 #261825
Пытаюсь систему компонентов, которая позволяла бы закидывать любое их число и настраивать им в проперти когда и при каких условиях они активны, и всё это поверх базового типа который все эти данные присваивает уникальному айди объекта в сцене для глобального доступа ко всему.

Почему-то за вечер всё сделать не получается.
>>261827
sage #516 #261827
>>261825

>Пытаюсь в юнити сделать аналог юнити.



Красавчик, жи есть.
#517 #262020
1
#519 #263654
>>261647
Тут так то из адекватов только МимоПРОбыдло да НавмешКун. Даже я ебанутый.
#520 #264034
Анон, как изменить размер terrain?
Тред утонул или удален.
Это копия, сохраненная 7 июля 2016 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /gd/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски