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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
54 Кб, 355x270
#2 #192710
Продолжаем охуевать с 2д. Есть два тайла - пол и блок. Заливаем "мир" тайлом пола - нихуя себе объектов, но всё батчится в 1 дк. Заливаем тайлом блока - всё батчится в 1 дк. В одном цикле заливаем поочерёдно блок+пол, нихуя не батчится 2000 дк. Заливаем сначала блоки, поверх полы. Почти всё батчится. Как-то это странно, мне кажется.
#3 #192711
>>192710
Не проще генерировать меш где на "клеточки"-полигоны будут вешатся текстурные координаты нужных тайлов? А потом все говорят мол Юнити тормозит, понимаете ли. Спрайтиками он тайлит, вообще охуеть.
89 Кб, 307x168
#4 #192712
>>192711
Я подозреваю, что перегенерировать меш неправильной формы при каждом действии просто заебусь. Спрайтиками для начала сойдёт, просто странно же, что не сбатчилось. А вообще да, надо оптимизировать всю эту хуйню.
#5 #192713
какие знакомые тайлы...
#6 #192768
Есть сайты с гайдами пошагового создания простеньких игорей? На русском языке. Интересуют игры на андроид. Хочу запилить свой ШЕДЕВР. уровня /gd/. Художник есть, прогером буду я, музыкант тоже есть. 3 года свободного времени у всех.
#7 #192770
>>192768
Websketches
#8 #192771
>>192769
Что тебе не нравится? Я все 2д игоры называю простенькими.
Это же не ААААААААА проекты. 3 года на изучение языка программирования норм. Идея у меня есть действительно годная, но спизженная у некоторых проектов. Взлетит 100%. Осталось только обуздать юнити и с#.
#9 #192773
>>192770
Неплохо.
#10 #192811
Господа, поясните мне почему плохо юзать систему сообщений в юнитях и плохо ли это вообще?
Как-то по привычке начал юзать стандартные шарповские ивенты, но почитав доки подумал, что меседжи могут знатно облегчить мне жизнь.
Предвещаю что они работают каким-нибудь непредсказуемым образом или отрицательно влияют на производительность.
В общем отговорите меня юзать меседжи или погладьте по головке и пообещайте что всё будет ОК.

Пока ушел не далеко, так что перепиливание ивентов на меседжи, думаю, займет пару-тройку часов.
#11 #192812
>>192811
И еще я не понял можно ли посылать меседжи по своему уровню иерархии. Ибо из имеющихся методов я нашел только послать вверх и послать вниз, в обоих случаях, как я понимаю, по "соседям" сообщение не разлетается.
#12 #192847
SendMessage довольно хреновая вещь. проблема в том что она каждый раз дергает метаинфу каждого объекта, выполняя поиск обработчиков, что для большого количества объектов/компонетов/методов приведет к гигантскому оверхеду на вызов евента.

воопше с новым гуем запилили и новые сообщения.
http://docs.unity3d.com/ru/current/Manual/MessagingSystem.html
#13 #192850
>>192811
Они работают на рефлексии и при активном использовании будут тормозить как говно.
#14 #192855
>>192847
Можешь пояснить, правильно ли я понял. Теперь дергается инфа не каждого объекта, а только тех, которые наследуют интерфейс этот, но если таких объектов слишком много будет - производительность всё равно похерится, так?
#15 #192856
>>192855
родные эвенты/делегаты в любом случае быстрее,
но тут вместо медленного поиска нужных обьектов через рефлексию идет быстрый каст интерфейса, что делает скорость вполне себе приемлемой
#16 #192859
>>192812
Sendmessageupwards посылает сообщение на все чайлды вообще.
#17 #192957
>>192770
Там всего лишь несколько простеньких простых проектов показывают, есть что нибудь ещё?
Уроков по 2Д юнити ОЧЕНЬ мало
#19 #192962
>>192957
Если более менее шаришь в C#, то пройди этот тутор http://unity3d.com/ru/learn/tutorials/projects/2d-roguelike-tutorial
Но именно ПРОЙДИ, а не посмотри, т.е. повторяй всё тоже что делает этот чувак. Очень много полезных нуюансов для юнити-новичков.
А там, когда уже чуток разберешься начнешь сам понимать по какому нюансу искать информацию. Всеобъемлющих уроков по юнитям, особенно в 2d ты не найдешь. Я с момента выхода 4.6 ждал таких уроков, в итоге пришлось самому ковыряться.
#20 #192963
>>192962
ну там создаётся в 2,5D как я это называю, вообще я учусь на кодера и С++ 2 года учу
#21 #192966
>>192960
>>192962
Этому слабоумному надо не ссылки кидать, а ссать в ротешник.
#22 #192967
>>192966
поясни почему? или ты тупая пидорашка
#23 #192971
>>192963
Ты мне скажи, ты всегда такой ебанутый, или у тебя сегодня неудачный день?
Где ты там 2.5Д увидел?
Там как раз чистейший 2д.

>вообще я учусь на кодера и С++ 2 года учу


Блять, если ты 2 года учишь плюсы и до сих пор задумываешься над тем чтобы писать игры на юнитях, то ты точно поехавший.
Скорее всего за эти 2 года ты ПОСМОТРЕЛ пару десятков уроков от васи с ютубов и в лучшем случае написал какой-нибудь хеловорлд.
Т.е. опыт программирования у тебя на уровне 5-8 лаб по плюсам, из которых ты самостоятельно сделал первые 2-3, а остальные скатал у одногруппника нерда, который с 1 курса ебашит кодером где-нибудь в конторке.

Пока ты не почитаешь каких-нибудь умных книжек, не научишься писать нормальный код и строить архитектуру, не выучишь матан, линал, теорвер и матстат, не вызубришь все структуры данных и алгоритмы - хуй тебе а не геймдев.
Ты сейчас начнешь писать, запилишь 2-3 фичи и дальше встанешь в ступор потому, что окажется что твоя архитектура полное говно и чтобы запилить 4ю фичу придется всё переписывать сначала.
Ты говоришь есть 3 года? Вот пойди, сделай всё выше перечисленное и найди работу в какой-нибудь конторке, чтобы там выбили из тебя эту дурь. А потом уже думай пилить тебе игры или не пилить.

Два чая этому господину >>192966
#24 #192972
>>192971
ну там реализуется немножко не то что я хочу, я хочу ПЛАТФОРМЕР, и да
матан, линал, теорвер и матстат
структуры данных и алгоритмы
я знаю.
#25 #192977
>>192971

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


Тиречую. Даже я, гуманитарий, пошёл параллельно с изучением юнити читать книжки и смотреть уроки по C#. Не вижу смысла тупо повторять за туторами, не понимая ничего о классах и функциях.
#26 #192978
>>192692 (OP)
Кто и как встраивал IAP (покупки) в Юнити?
Кто нить пользовался soomla?

Я пздц заепался, думаю попробую свой плагин пилит. Хочу зафигачить кнопку "remove ads"
#27 #192990
>>192971

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


На самом деле есть один хитрый способ: берешь одну из игровых библиотек для с++ (SDL, SFML), смотришь туториал, как с помощью нее рисовать и обрабатывать инпут и садишься писать свой 2д движок. Если возникают проблемы — гуглишь. Ближе к середине-концу процесса обычно приходит осознание того, какое же лютое говно твой движок. Стираешь все нахуй и переписываешь с нуля. Повторять до тех пор, пока движок тебя не устроит.
Если есть голова на плечах, то это самый быстрый способ превратиться из червя-пидора в более-менее приличного разработчика. А дальше хоть юнити, хоть анрыл, хоть велосипед, все потянешь.
#28 #192994
>>192971

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


Геймдев и Юнити не имеет ничего общего с нормальным кодом, особенно когда речь идёт про инди команду из 2.5 человек.

Как будто кто-то будет юзать там юнит-тестирование, всякие контейнеры зависимостей. В Юнити даже интерфейсы нормально не заюзаешь, приходиться через костыли делать. О каком "нормальном коде" и "архитектуре" ты говоришь.

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

мимодил
#29 #193043
>>192994

>О каком "нормальном коде" и "архитектуре" ты говоришь.


Ты меня правильно понял, но видимо плохо читал/понял Мартина.
Адекватную архитектуру можно строить в условиях любых ограничений, особенно если весь механизм ооп у тебя при этом доступен. А уж на сам код вообще никакие юнити не влияют.
#30 #193048
Сколько полигонов используют в одной сцене?
#31 #193050
#32 #193051
>>192972
сразу бы и сказал что платформер хочешь.
по платформерам уроков в интернерах вообще уссаться сколько.
#33 #193105
>>193051
И где хоть 1? Видел только примитивную хуйню и её подобие
#34 #193114
Анон, начал изучать этот твой unity3d2d и сразу же возник вопрос, начал клепать платформер, но если я подлетаю к платформе с боку, мой персонаж за нее цепляется. Сразу нашел очевидно решение, это отключение трения в ноль, но вот низнаю, насколько это корректно, и в некоторых ситуациях жи трение всетаки будет необходимо. Это кстати касается и отпружинивания.

Посоветуй универсальное решение на такие случаи.
#35 #193125
Посоны, есть код, управляющий движеним персонажа:
void OnAnimatorMove()
{
velocity = animator.deltaPosition / Time.deltaTime;
velocity.y = rigidbody.velocity.y;
transform.rotation = Quaternion.Euler(0, camera1.GetComponent<MouseLook>().currentYRotation, 0);
rigidbody.velocity = velocity moveSpeed;
}

При любой коллизии его дико пидорасит и выскакивает ошибка
screen position out of view frustum*.
Хуле я не так делаю?
#36 #193130
>>193114
Можешь ареакаст, в котором будешь проверять, есть ли что-то в той стороне, куда должно быть направлено движение персонажа. Дальше прикладываешь движущую силу только в том случае, если в области ареакаста ничего нет.
#37 #193135
>>193114

> универсальное решение


Не использовать встроенную физику.
#38 #193139
>>193130

>ареакаст


а можно ссылку на почитать, что это
>>193135

>Не использовать встроенную физику.


не ну я думаю приду к этому, но пока еще полный нюфаня, думаю стоит пользоваться
#39 #193142
Поясните чем можно пользоваться кроме сообщений? Invoke?
#40 #193174
#41 #193179
>>193142
Используй только SendMessage. Если что упрощай архитектуру.
Алсо, наверняка он оптимизирован же. Внутри Monobehaviour что-то вроде словаря строка-метод. По крайней мере я бы делал как-то так.
#42 #193194
>>193043
Ой, иди-ка ты на член.
Я решил на инпут еакрутить обсервер -- в результате после каждого нажатия получал +7 мс в апдейте.
#43 #193209
>>193194
ты бы еще на анус себе обзервер накрутил, олень.
>>193075
блять, откуда вас таких уебанов мамаши понарожали?
речь идет не о средствах .net, а о банальных правилах хорошего кода, понятиях эффективности и сложности алгоритмов и т.п.

тоже мне тут, блядь, умники нашлись.
#44 #193230
>>193179

>наверняка он оптимизирован же


нет. кешируются только стандартные методы мб(старт, апдейт и т.д.).
собственно в новой системе - таки оптимизируется, создается и кешируется хендлер, его можно получить отдельно(для стандартных эвентов - под него свойства выделены) поиск идет только по первому вызову.
сендмесседж - максимально убог, его блядь в официальных доках советую не использовать.
#45 #193237
>>193230

>нет


Откуда ты знаешь что нет? Потому сделать это супер просто и я не вижу причин почему это не сделано.

>в официальных доках советую не использовать


ссылку

в новой "системе" ничего не кешируется, потому что там нечего кешировать. Это имплементация observer-паттерна черз интерфейсы. В java это очень популярный способ для событий, но в .net нахуй не надо потому что есть нативные делегаты
#46 #193238
>>193139
А что там сложного? Тупо прописываешь в апдейте постоянное смещение объекта вниз по игреку, когда изграундед !=0.
141 Кб, 294x294
#47 #193241
>>193238

>А что там сложного?

#49 #193244
>>193237

>Это имплементация observer-паттерна черз интерфейсы.


не совсем, точнее новый гуй пришел с двумя раздельными системами
обсервер с ручной подпиской через юнити эвенты(хотя зачем он, если есть стандартные эвенты и делегаты - тот исчо вопрос)
https://unity3d.com/ru/learn/tutorials/modules/intermediate/live-training-archive/events-creating-simple-messaging-system

и прямая замена SendMessage с кешем и интерфейсами
http://docs.unity3d.com/ScriptReference/EventSystems.ExecuteEvents.html
sage #50 #193245
>>193135
Использовать 3D-физику даже для платформера - вот универсальное решение. А ты даун.

>>193114
Ты понял? Используешь трехмерную физику и всё тут. Еще до появления 2D физики в юнити использовали трехмерную физику для флатформеров. И до сих пор это лучший вариант. Ставишь для ВСЕХ МОБОВ CharacterController и будет тебе счастье без всяких запинаний. Ты понял? Не слушай этих дебилов. Я года полтора назад сам этим себе мозги ебал. Рецепта ни у кого нет, а повернуть язык что лучше использовать 3D физику ни у одной мрази язык не повернулся.
sage #51 #193246
>>193245
Случайно саганул
#52 #193247
>>193246
Да что не так? Опять!
#53 #193250
>>193245

>Использовать 3D-физику даже для платформера - вот универсальное решение.


Нормальный платформер не сделаешь на box2d, потому что физика в платформерах особенная, аркадная.
#54 #193252
>>193250
2D физика аналогична трехмерной. А CharacterController проще использовать именно для АРКАДНОЙ ФИЗИКИ. Как минимум потому, что:
- имеет форму капсулы, из-за чего исключены любые невидимые спотыкания
- для него используются упрощенные коллизии
- есть Controller.move, который и позволит тебе сделать аркадную физику, какая тебе и нужна. У rigidbody тоже есть аналогичная команда (MovePosition), но её использование сопряжено с внезапно возникающими проблемами из-за незнания тонкостей этого дерьма.

И, в отличие от тех же rigidbody, он касается поверхностей почти идеально. А rigidbody для этого надо увеличивать точность вычислений в настройках физики (если у тебя масштаб спрайтов 1 к 100, например).
#55 #193254
>>193244

>с кешем и интерфейсами


это какая-то ебанутая хуита. я не вижу никаких преимуществ перед простым SendMessage, к тому-же добавляет сложности в коди и требует написание лишнего кода, что само по себе минус.
и что там кешируется? наверняка там что-то вроде

foreach (var t in this.transform)
if (t is IEvent) functor(handler, eventData);

Короче, пользуйся SendMessage
#56 #193256
>>193252
Всё правильно сказал.
>>193238-кирилл
#57 #193257
Вы только посмотрите на этот говнокод:
ExecuteEvents.Execute<ICustomMessageTarget>(target, null, (x,y)=>x.Message1());
в икс мы передаем ссылку на интерфейс, а в игрик параметры, и мы еще должны сами написать в функции вызов нашего метода из интерфейса! Пиздец, это вообще для людей писалось? Какой даун это придумал?

>>193256
Хуйню он сказал. Хотя вся зависит от платформера. Если это ПАЗЛ-ПЛАТФОРМЕР можно делать на чем угодно, а если это аркадный платформер типа марио, митбоя - то только своя физика
#58 #193258
>>193257
Ну а в чём проблема задать скорости, в том числе, падения, в CharacterController? Вот тебе и будет своя физика.
На Гамаке, по крайней мере, так оно и делается.
#59 #193259
>>193257

>Пиздец, это вообще для людей писалось? Какой даун это придумал?


да да, канешна. куда проще юзать SendMessage и не думать о том что она каждый раз тянет метаинфу каждого компонента, ищет по строке метод, заворачивает в делегат и только потом вызывает. или не вызывает но все равно ищет.
#60 #193261
>>193259
Да ничего он не тянет. Если бы использовалась рефлексия, фпс проседал бы уже при десятке сообщений. Ну и к тому-же, ты что, сообщения вызываешь в Update? Сообщения в принципе вызываются редко. Какая разница как они сделаны если ты вызываешь несколько сообщений за пару секунд-минут
То, что наговнокодили юнипитеки - это реальное говно с кучей оверхеда. SendMessage же красивое и изящное решение.
#61 #193267
>>193244

>хотя зачем он, если есть стандартные эвенты и делегаты - тот исчо вопрос



http://forum.unity3d.com/threads/unityevent-where-have-you-been-all-my-life.321103/
если коротко, потому что так поддерживается менюшка в редакторе. Следующая ступень ассетотаскателя - делегатотаскатель.
#62 #193269
Может кто то из гуру подсказать. Решил сделать тактическую игру. Понадобилось сделать всякие маркеры на земле. Стрелочки там всякие, радиусы поражения, кружечки выбора и тп. И вот тут я залип. Как такое провернуть, попробовал забабахать проектор, но есть несколько проблем которые не могу решить. Пробовать настроить проектор? Или смотреть в сторону декалей? Или меня спасет какой-нить шейдер, который можно написать с небольшими навыками?
#63 #193270
>>193267
я там покапался, оказывается что родные эвенты не дружат с юнити, ибо ассетотаскатели не знают что от них нужно отписыватся.

>>193269
простенький прожектор шейдер, тупо цепляю чайлдом к обьекту который нужно выделить и кручу - заебись получается. щас кину.
#64 #193273
>>193269
http://pastebin.com/2vUU9rEg
тупо порезаный стандартный прожекшен шейдер. рисует текстуру с альфой указаным цветом.
#65 #193278
>>193273
О, спасибо, вечером попробую, а то у меня на стандартном артефакты были от текстуры - кружка
#66 #193292
>>193258
Да он просто долбоеб. Не обращай внимания. Думаю, он просто путает СВОЮ ФИЗИКУ (написание физики с нуля) с тем, что я и имею ввиду - с написанием своих точных настроек, а не стандртной физики из rigidbody.
#67 #193294
>>193292
Долбоеб тут только ты. Настроишь и получишь ты только хуиту. Если тебя это устраивает - это твое дело. Но для нормального платформера физика - это 90% успеха игры, поэтому ее нужно запиливать конкретно под твои идеи, а не брать готовые ассеты.
#68 #193301
>>193294
Тебе кто-то говорил про готовые ассеты? Тебе сказали "берём Характерконтроллер и херачим в сишарп в него характеристики движения, торможения и разгона". Всё!
#69 #193309
>>193294
Долбоеб, ты, кажется, не заходил дальше ютьюбовских мануалов по созданию стрелялок. CharacterController - это не АССЕТИК КОТОРЫЙ МОЖНО ИМПОРТИРОВАТЬ ИЗ СТАНДАРТНЫХ АССЕТОВ. Хватит позориться.
#70 #193312
>>193301
А остальное ты как делать собрался?

>>193309
Это очень специализированный компонент для 3д персонажа. Какая разница в стандартных ассетах он или нет? С таким-же успехом могли добавить контроллер для 2д персонажа, но слава богу не добавили
#71 #193319
Всё, уёбки толстить начали. Вместо того, чтобы пытаться вбросить говна в вентилятор, занимались бы делом, кирюши.
1. Речь шла изначально об АРКАДНОМ геймплее, типа как в марио. Поэтому речь и зашла о CharacterController.
2. Нужно скольжение и прочая хуйня - используй Rigidbody. Только с кругом или капсулой в качестве тела, иначе будет спотыкаться к шлюха даже на полу из тайлов.

Вопрос закрываю.
191 Кб, 1000x1362
#72 #193331
>>192692 (OP)
Хочу перекатиться в линукс и использовать это ваше Объединение через Wine. У него там золотой статус, все должно работать. Отговорите меня, пожалуйста.
#73 #193335
>>193331
Visual Studio
#74 #193339
>>193312
Как-как? Жопой об косяк. Прописать в характерконтроллере управление.
>>193316
Назначить постоянное снижение тела вниз?
#75 #193358
>>193331
Нахуя, если скоро выйдет нативный юнити для линукса?
#76 #193379
>>193331

>Отговорите меня


Нет.

Посоны, если вешаю скрипт камера моушн блюр - то билд крашится. В эдиторе ошибок нет. Чё за хуйня вообще?
#77 #193432
>>193408
Попробуй list.add((GameObject)Instantiate(test));
#78 #193441
>>193408
Но тут добавляется его копия
#79 #193448
>>193408
Instantiate возвращает инстанс префаба в сцене потому что. Если хочешь обращаться к префабам то лучше сделай себе библиотеку префабов.
#80 #193449
>>193408
>>193448
стоп что. а не врешь? всегда же инстанс возвращало.
#81 #193451
Что за бред вы пишите? Инстанс клонирует любой юнити объект (не обязательно префаб; алсо, префаб в рантайм это обычный геймобжект) и если это GameObject, то он добавляется на сцену (потому что GameObject'ы автоматически добавляются на сцену в конструкторе)
#82 #193453
Внутри instance работает через сериализацию-десереализацию
#83 #193471
>>193453
нед, тупо копирует
#84 #193474
>>193471
Оно работает через сериализацию. Инфа 100%. Я это где-то читал на их сайте.
Ну а как-ты по другому клонируешь объект? Это самый лучший способ
20 Кб, 445x358
#85 #193478
>>193474
http://pastebin.com/V8SHEcdm

вот простенький пример, где показывают что нифига
93 Кб, 1051x543
#86 #193487
>>193478
У меня другой результат
#87 #193488
>>193379
Хуйня какая, из-за dx11 шойдера крашилось.
#88 #193489
>>193487
блжад. у меня второй раз
obj.Show(); а не
obj2.Show();
уговорил
#89 #193493
Дейваны, а можно как-нибудь оградить юнити от крашей? Иногда бывает, сделал ошибку в скрипте - запустил игру - и весь пека повис намертво, только ребут помогает. Возможно ли этому как-нибудь воспрепятствовать?
#90 #193494
>>193493
сохранятся перед каждым запуском.
не делать бесконечных циклов.
если таки сделал - подрубиться вс/мд в дебуге и попытаться поломать цикл
если ничего не помогло - убить через диспетчер задач.
восстановить не сохраненную сцену из папочки Temp
#91 #193496
>>193493
Отлаживай скрипт на бумаге.
Петросян.жпг
#92 #193511
>>193493
бедняга, сидишь небось на говне мамонта каком-то. у нормальных людей повисает процесс, а не пека. и достаточно открыть диспетчер и завершить его.
#93 #193524
>>193511
ну если одноядерный проц - то будет малоотличимо от полного зависвания. но блжад одноядерный проц в 2015?
#94 #193555
>>193524
У меня и5 3470 четырехядерный, >>193493 всё виснет, шифтальтконтрол не работает, но мышь продолжает двигаться.
#95 #193562
>>193555
Контрол-шифт-эскейп жми.
#96 #193563
>>193562
Имел ввиду контрол+альт+дел не работает, но попробую.
#97 #193694
Обновился до 5.2.2f1 и сразу баг - анимации отвалились. Включение-выключение аниматора нихуя не лечит. Но если вкл\выкл "аппли рут моушн", то анимации начинают работать.
#98 #193701
>>193694

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


В данном случае мудаком являешься ты.
#99 #193713
>>193701
Есть баг, который должны были поправить. Я не говорю, что юнитеки мудаки, наоборот. Но мне нужны обновления в любом случае. Да и после переката с 4.х на 5.х на живом проекте - уже всё похуй, лол.
И да, чтобы пофиксить анимации из кода просто чек-анчек галочку мало, убрал рантайм контроллер и устанавливаю его кодом - работает.
#100 #193728
>>193713

>Но мне нужны обновления в любом случае


Зачем, если не секрет?
#101 #193729
>>193728
а зачем их выпускают?
#102 #193737
Поясните почему VS ругает конструкции вроде
foreach(Animator childAnimator in GetComponentInChildren<Animator>())
и
return (((RaycastHit)x).distance.CompareTo((RaycastHit)y).distance);
а моно компилит без проблем.
#103 #193753
>>193737
конкретнее говори на что ругается.
#104 #193794
Лол один анон не понимает чем юнити лучше АЕ)))
#105 #193798
>>193794
Ты о том треде))
#106 #193804
>>193798
Я оп https://2ch.hk/gd/res/193764.html#193764 (М) треда и что в нем не так?
#107 #193805
>>193728
Жду, когда пофиксят баг "Invalid AABB *this", представитель юнитеков сказал, что про баг в курсе, но что его вызывает точно понять не могут. У меня тоже рандомно возникает. Причём у всех возникает из-за гуя, а у меня из-за загрузки сцен, которую начали ковырять, чтобы запилить одновременное редактирование нескольких сцен. Так и живём.
#108 #193809
Я разработчик, >>193804 тот самый, не могли бы вы мне объяснить чем вызвана такая любовь к юнити и почему он царь горы? Если стоит сменить движок, то я могу, при условии что юнити реально лучше/удобнее/длиннее.
#109 #193815
Опытные котаны, нужен совет по архитектуре.
Пытаюсь запилить 2д тактическую игру с движением по клеточкам(очень не рогалик). Предполагаются объекты игрового поля занимающие больше 1й клетки (как юниты, так и всякие объекты окружения).
Пробовал уже пилить несколько вариантов, и всё время напарываюсь на всякие "тонкие" места конструкции.
Проблема такая:
По логике, должен быть некий BoardManager, который будет следить за тем, какой из юнитов выбран в данный момент, какие команды ему отдавать, да и в целом управлять перемещениями по игровому полю. Очень хотелось бы иметь объект клеточки, чтобы отслеживать клики по конкретным клеткам и подсвечивать клетки доступные для перемещения/юзания скилов/других взаимодействий.
Но непонятно как реализовать структуру хранения юнитов. Если бы они занимали 1 клетку, логично было бы запилить двумерный массив, в котором хранились бы объекты клеточек, у каждой из которых есть список находящихся в ней юнитов/объектов окружения/etc. Это тоже не идеальный вариант, т.к. перемещать юнита из клетки в клетку пришлось бы с верхнего уровня иерархии(из BoardManager).
Сейчас же я вообще не знаю как это реализовывать.
Т.е. я предполагаю сделать в BoardManager двумерный массив клеточек и список юнитов, а у каждого из юнитов список ссылок на занимаемые клетки, но уже чувствую что это породит кучу гемороя.
В общем если кто понял о чем я и реализовывал нечто похожее или имеет годные идеи подскажите как организовать всю эту хуету?
#110 #193857
>>193815

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


Так и делай. Юнит будет стоять на базовой одной клетке и если надо расширяться от неё в стороны.
#111 #193867
Переходить на 5 или нет?
#112 #193870
>>193867
Почему бы и нет?
#113 #193872
>>193815
Интересный вопрос. Я бы сделал так:
- Для статических объектов создал бы двухмерный массив. Если клетка занята, помечаем её 1, иначе 0. Статические объекты: горы, вода, постройки.
- Динамические же объекты свободно бы перемещались по карте. Не вижу смысла ебаться с какими-то там привязками/отвязками.

Теперь о решение задач:
Передвижение юнити из одной клетки в другую клетку: для начала используем алгоритм A, который найдёт путь на статичной карте (двухмерный массив). Путь найден. Начинаем двигать туда нашего персонажа.
Столкновение юнитов: для обработки столкновений я бы использовал steering behaviors (obstacle avoidance). Эта система работает очень быстро, так как там в основе лежит простая работа с векторами. И выглядит очень круто.
Установка построек на место, где юниты*: тут никакие особые проверки не нужны. Просто чекаем статичную карту, если есть место, ставим постройку, а юниты пускай разбегаются, тут опять же можно использовать steering behaviors.

Если карты будут большими, то можно разбить их на зоны. Каждые n-сек проходить по юнитам, чекать их позицию и далее заносить их в определённую зону. Самый простой способ, это разбить карту на четыре зоны. Но заранее не нужно этим заниматься. Преждевременная оптимизация - зло.
#114 #193873
>>193872

>пофиксил разметку


Интересный вопрос. Я бы сделал так:
- Для статических объектов создал бы двухмерный массив. Если клетка занята, помечаем её 1, иначе 0. Статические объекты: горы, вода, постройки.
- Динамические же объекты свободно бы перемещались по карте. Не вижу смысла ебаться с какими-то там привязками/отвязками.

Теперь о решение задач:
Передвижение юнити из одной клетки в другую клетку: для начала используем алгоритм A-звёздочка, который найдёт путь на статичной карте (двухмерный массив). Путь найден. Начинаем двигать туда нашего персонажа.
Столкновение юнитов: для обработки столкновений я бы использовал steering behaviors (obstacle avoidance). Эта система работает очень быстро, так как там в основе лежит простая работа с векторами. И выглядит очень круто.
Установка построек на место, где юниты: тут никакие особые проверки не нужны. Просто чекаем статичную карту, если есть место, ставим постройку, а юниты пускай разбегаются, тут опять же можно использовать steering behaviors.

Если карты будут большими, то можно разбить их на зоны. Каждые n-сек проходить по юнитам, чекать их позицию и далее заносить их в определённую зону. Самый простой способ, это разбить карту на четыре зоны. Но заранее не нужно этим заниматься. Преждевременная оптимизация - зло.
#115 #193890
>>193867
Я вот не переходил, но я параноик.
#116 #193928
>>193890
а я не параноик, я сделал бэкап, кнопку нажал и стало заебись.
#117 #193964
>>193857
>>193873
Я вот подумал, может запилить слой абстрации над трансформом? Точнее допилить методов расширения чтобы он мог пересчитывать позицию в клеточные координаты. Тогда объекты можно не запариваясь хранить как есть на сцене и не запариваться с ссылками на тайлы. Только не приложу ума как мне в таком случае определять в какую клетку тыкают. Да и опять же. Учитывая что геймобъекты клеток все-таки будут, получится что одни клетки там, другие тут. Хуйпиздаджигурда какая-то.
Или сделать какой-нибудь статический класс FieldManager, который будет доступен и из объектов-юнитов и из BoardManager без всяких пробросов и вездесущих ссылок.
#118 #193970
>>193964
Локал трансформ тебе в помощь, дебил.
#119 #193971
>>193964
невидимая плоскость под терейном. рейкаст до неё. точку соприкосновения переводишь из мировых координат в игровые
292 Кб, 1680x1010
#120 #193985
>>193964
так себе мысль. пересчитать любую позицию в клеточные координаты то как нехуй сделать, у тебя же нулевые координаты есть и в мировых и клеточных координатах.

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

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

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

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


для того чтобы определять куда игрун кликает есть методы и попроще. а для подсветки просто перемещай одни и те-же клеточки по полю.

вообще, где-то у меня клевая ссылка была. http://catlikecoding.com/unity/tutorials/
пролистай про Marching Squares, наверно много чего интересного увидишь.
#121 #193998
>>193815
Предстоит подобная задача, но подсказать мало что могу, ибо ньюфаня. Пока для тестов поле боя генерил в массив ячеек, которые содержат в себе необходимые статы вроде высоты ландшафта, проходимости, ссылку на юнит или препятствие на клетке. Плюс пара методов для поиска пути, типа возможности перейти на текущую клетку.
#122 #194005
>>193985

>вообще, где-то у меня клевая ссылка была


За ссылочку отдельное спасибо.
#123 #194052
Поясните за ScriptableObject. Никак не врублю нахуя эта хуета нужна. В доках почитал, но что-то как-то по-гуманитарному там всё описано.
#124 #194067
>>194052
Чтобы сохранять их как ассеты.
#125 #194151
Есть статья про квантерионы и как они помогают делать нормальное движение камеры?
57 Кб, 650x365
#127 #194170
>>194153
Спасибо, но уже читал. А нет чего нить поглубже?
#128 #194213
Как сделать майнкрафт на юнити?
#129 #194215
>>194213
Скачать ассет. Какой именно - спроси у Копателя.
#130 #194217
>>194215
Нет, майнкрафт это не цель, цель это научиться делать майнкрафт. Ну то есть я хочу запелить игру со строительством как в майнкрафте.
#131 #194254
>>194217
Выкинуть юнити и делать его на чем-нибудь нормальном. Иначе не научишься вообще ничему.
#132 #194255
>>194067
Подробнее можно?
#133 #194259
>>194255
Если подробнее, то это как твой скрипт на префабе, только без GameObject'а. Больше никакой разницы. Только ScriptableObject'ы неудобно создавать (нужно писать скрипт редактора для их создания).
Суть в том, что ты создаешь ассет, задаешь в нем данные в инспекторе, пишешь public MyScriptable Object obj и перетаскиваешь свой ассет в инспекторе. Ближайший пример физический материал. Точно так-же можно перетащить и префаб со скриптом, разница только в том, что при нажатии на поле со ScriptableObject в окошке выбора появятся все ассеты этого типа.
#134 #194261
>>194259
Хуйня какая-то.
#135 #194308
>>194261
Короче, скриптабл обджект можешь использовать как базу данных.
https://youtu.be/74Ph6y0rR-g
#136 #194310
>>194308
Суть в том, что тоже самое можно сделать сохранив твой скрипт с данными как префаб, и настроив все параметры. Не совсем понятно зачем нужен ещё этот уровень абстракции. Он только делает вещи сложнее без какого-то преимущества.
#137 #194315
>>194310
так и представляю как какой-то ретард сохраняет в виде префаба что-то абстрактное, вроде базы предметов, или параметров для генерации карты. вот, например, ты хочешь сохранить что-то что является информацией. ну например вот в 2д игре тебе надо сохранить паттерн атаки. вот дракон например жорит огнем и ты хочешь сказать глупой машине "если дракон жорит то первая клеточка получает 2 дамага, а вторая клеточка 1 дамаг", чтобы потом этот паттерн давать своим драконам как опцию для атаки. как ты это через префабы собрался делать?
#138 #194348
>>194310
Префабом неудобно на самом деле. Тебе как то надо будет сочетать пару префабов например, если захочешь дать паре разных монстров одинаковые паттерны атаки или вариации одного монстра с разными свойствами. Потом попробуешь и сравнить.
#139 #194372
>>194261
Забыли самое главное упомянуть. При десереализации все ссылки на один скриптбл обжект будут так же указывать на один скриптбл обжект. То есть если я напишу
MyObject obj = new MyObject();
GetComponent<FirstComponent>().obj = obj;
GetComponent<SecondComponent>().obj = obj;
то (если MyObject не есть скриптбл обжект) после сохранения и загрузки проекта получится, что в компоненте FirstComponent и SecondComponent будут ссылки на разные объекты MyObject. Это важно при расширении редактора своими фичами.
#140 #194386
>>194372
В случае с префабом сохранится ссылка на префаб
#141 #194404
алсо. юнити в ассетсах/префабах умеет следить за иерархией только своих объектов.
[Serializable]
public class A { public int a; }
[Serializable]
public class B : A { public int b;}

public class test : MonoBehavior
{
public A pram= new B { a = 1, b = 1 }
}
если сохранить в префаб - pram станет A, проебав относящиеся к потомкам поля
#142 #194412
Как сделать подобную анимацию? https://vimeo.com/143557631
В юнити не шарю. Скилл рисования есть. И можно ли объемную анимацию с подобным качеством сделать? Т.е. совмещение с 3д и как? Базовые знания 3д есть.
#143 #194417
>>194412
подобные анимации - покадрово отрисованный ролик.
#144 #194424
>>194412
Посмотри как он сделал https://www.assetstore.unity3d.com/en/#!/content/8933
В интернете можно найти сам ассет.
#145 #194431
>>194404
То есть он проебет все перегрузки и все тому подобное или только поля?
#146 #194432
Как сделать эффект дрожащей камеры, как будто с рук снимают
#147 #194436
>>194432
Создавай каждый n-сек смещение и двигайся к нему плавно.
#148 #194443
Поскажите, что я делаю не так. Пилю платформер, кое-как получилось заставить персонажа двигаться. Двигается влево-вправо через rigidbody2d.velocity, если натывается на препятствие, то падает(что логично, учитывая работающее rigidbody), при восхождении по наклонной поверхности бокколлайдер цепляется за поверхность и персонаж падает. Мой вариант движения совсем конченый? и как заставить его не падать?
#150 #194468
>>194445
посмотрел часть, где показывают скрипт движения, переделал у себя (запрет прыжка в прыжке так же сделал), персонаж все так же спотыкается на наклонной поверхности. В примере есть два ската у платформы, значит, должны были решить этот вопрос.
https://unity3d.com/ru/learn/tutorials/modules/beginner/2d/2d-overview
под видео есть подробный транскрипт, в каком временном отрезке проблема решается?
#152 #194491
>>194473
А можно еще сделать эффект расфокусировки изображения? Это наверное пост-эффект для камеры нужно писать
#153 #194527
>>194491
за тебя давно уже сделали всё. в дефолтпаке постэффекты возьми.
#154 #194551
>>194468
Ну и ленивый же ты мудак
In order to traverse the environment our hero has a
#155 #194552
Котаны. Кто нибудь в курсе как в туториале ТАНКИ https://www.youtube.com/watch?v=paLLfWd2k5A у Дыма отбрасывает тень? У Основных шейдеров партикла такой возможности вроде как нет?
#156 #194554
>>194552
в юнити же вроде материал должен быть без альфа-бленда чтобы тени отбрасывал как партикл.
#157 #194555
>>194554
Спасибо. Разобрался. Только с стандартным шейдером не оч:(
#158 #194561
>>194527
И как это сделать стандартным ассетом?
#159 #194562
>>194561
Сука, ну ты тупой.
41 Кб, 700x700
#160 #194569
>>192692 (OP)
Объясните пожалуйста, зачем нужне Generic? https://unity3d.com/ru/learn/tutorials/modules/intermediate/scripting/generics?playlist=17117 Не пойму в каких случаях это может понадобиться
#161 #194594
>>194569
для каких-то общих структур данных, когда типы, используемые в них не известны, или для "общих" структур данных в которых тип собственно данных не имеет особого значения для алгоритмов, из обрабатывающих
например встроенные списки
System.Collections.Generic.List<T> - афтар не знает что изначально будет в списке, но он делает "общий" класс списков а ты далее уже юзая List<int> или List<GameObject> получаешь полностью готовый список чего-угодно, без генерика пришлось бы или писать свой список для каждого типа или юзать Object с постоянными кастами туда-сюда если что такие старые списки есть в System.Collections, так как генерики появились только в C#2.0, могешь попробовать как "удобно" их использовать
или вот для примера GetComponent<T>();
возвращает компонент уже нужного типа без лишних кастов.
"приблизительная" реализация с генериком
public T GetComponent<T>() where T : MonoBehavior
{
foreach(var component in Components)
if(component is T) return component as T;
}
без генериков потребует доставать метаинфу
public MonoBegaviour GetComponent(Type T)
{
foreach(var c in Components)
if(c.GetType == T) return c;
}
и вызов соотвественно
var c1 = GetComponent<MyType>();
var c2 = GetComponent(typeof(MyType)) as MyType;

технически компилятор создаст свой класс на каждую специализацию генерика, избавив тебя от необходимости писать код под каждый вариант.
#162 #194598
>>194431
перегрузки. так как поле типа А то его сериализует как А и соответственно десериализует как А. а если А абстрактный класс то воопше получится null
#163 #194608
>>194594
Ты чо поехавший, они ж кешируют наверняка компоненты в словарь
return components[type];
#164 #194618
>>194608
скорее всего, но это было для примера
#165 #194619
>>194608
а воопше врядли. учитывая что оно учитывает исчо и наследование - то скорее всего там словарь + перебор если не найдено
#166 #194640
>>194619
Словарь ужасная оптимизация из за кэшмиссов. Правильно это хэши от типов (чтобы были value-типы) в массиве с линейным или бинарным поиском.
#167 #194641
>>194551
Вот кусок кода с движением, все вроде как в видео, только в видео герой скат преодолевает, а у меня утыкается в скат.

void Update(){
\t\tmove = Input.GetAxis ("Horizontal");
\t\tif (move GetComponent<Rigidbody2D>().velocity.x < maxSpeed)
\t\t\tGetComponent<Rigidbody2D>().AddForce (Vector2.right
move MoveForce);
\t\tif (Mathf.Abs (GetComponent<Rigidbody2D>().velocity.x) > maxSpeed)
\t\t\tGetComponent<Rigidbody2D>().velocity = new Vector2 (Mathf.Sign (GetComponent<Rigidbody2D>().velocity.x)
maxSpeed, GetComponent<Rigidbody2D>().velocity.y);
\t\t
#168 #194642
>>194641
У rigidbody есть ограничители позволяющие запретить вращение или движение по определенным осям. Не в курсе 2Д однако. Но тоже должно быть.
705 Кб, 1366x2200
#169 #194643
>>194641
Дополнительно прилагаю скрин кода из видео
#170 #194658
>>194642
и правда, надо было запретить вращение по одной из осей, теперь получилось, спасибо
#171 #194678
Каким ассетом делается курсор, проецирующийся на террейн?
#172 #194681
>>194678
Пиздец, уже даже это без ассетов не могут. Сборище даунов.
#173 #194687
#174 #194688
>>194681
Как перестать быть дауном и начать кодировать на сишарпе?
#175 #194714
Пацаны, а ни у кого случаем исходников юнити нет?
Хоть какой-нибудь версии, а то заебало с этим черным ящиком работать.
#176 #194750
>>194714
нахуй они тебе? ящик и ящик, стоит и работает. хули тебе ещё надо то?
#177 #194776

>>194757


какая ирония. это была одна из причин из-за которой я решил написать свой навмеш.
забей, у юнити говённый навмеш который может похвастатся только тем что учитывает нормаль вокселя. если хочется просто навмеш, то лучше рейн возьми.
#178 #194813
>>194750
Ящик стоит и порой нихуя не работает. А в доках хуем покати.
169 Кб, 827x784
#179 #194815
>>194813
пиши свой движок и не парся
50 Кб, 604x466
#180 #194820
>>194815

>пиши свой движок и не парся


Два стар дестроера этому негру.
#181 #194826
Ньюфаг в треде. Можно ли как-то регулировать порядок выполнения скриптов кроме стандартных Awake Start? К примеру есть объект, который автоматом находит и присваивает нужные ссылки, но к нему обращается Start() другого объекта до того, как успеет присвоить, юнити выдает NullReference соответсвенно.
#182 #194827
>>194815
Ах, если бы я только не был макакой.
#183 #194828
>>194826
Гугли script execution order.
#184 #194835
>>194828
Спасибо бро, то что надо.
85 Кб, 922x1080
#185 #194845
>>192692 (OP)
В чем разница использования между hiding способом и полиморфизмом?

Когда в наследованном классе мы пишем "public new void testClass()" в случае полиморфизма и "new public void testClass()" в случае хайдинга.?
#186 #194856
>>194845
new явно указывает переопределение метода/свойства/обьявление в потомке
для полифоризма используется virtual/override
воопше new только подавляет предупреждение, без него тоже работает но так, как случайно ошибиться и перекрыть метод довольно просто - студия ругается, мол проверь все ли у тебя правильно.

суть в том что new(без модификатора) вызывается в зависимости от того как объявлена переменная а virtual/override от того, что реально находится в переменной

public class A {
public void test1() { Debug.Log("A.test1");}
public virtual void test2() { Debug.Log("A.test2");}
public class B : A {
public new void test1() { Debug.Log("B.test1");}
public virtual void test2() { Debug.Log("B.test2");}

A a = new A();
A ba = new B();
B bb = new B();

a.test1();
a.test2();
ba.test1();
ba.test2();
bb.test1();
bb.test2();

получим
a.test1 //чистое А - все вызванное относится к А
a.test2
a.test1 // B объявлена как A соответственно вызовется базовый тест1
b.test2 // но так как тест2 виртуальный - вызовется переопределенный тест2
b.test1 // чистое В - вызовется переопределенный тест1 и тест2
b.test2
#186 #194856
>>194845
new явно указывает переопределение метода/свойства/обьявление в потомке
для полифоризма используется virtual/override
воопше new только подавляет предупреждение, без него тоже работает но так, как случайно ошибиться и перекрыть метод довольно просто - студия ругается, мол проверь все ли у тебя правильно.

суть в том что new(без модификатора) вызывается в зависимости от того как объявлена переменная а virtual/override от того, что реально находится в переменной

public class A {
public void test1() { Debug.Log("A.test1");}
public virtual void test2() { Debug.Log("A.test2");}
public class B : A {
public new void test1() { Debug.Log("B.test1");}
public virtual void test2() { Debug.Log("B.test2");}

A a = new A();
A ba = new B();
B bb = new B();

a.test1();
a.test2();
ba.test1();
ba.test2();
bb.test1();
bb.test2();

получим
a.test1 //чистое А - все вызванное относится к А
a.test2
a.test1 // B объявлена как A соответственно вызовется базовый тест1
b.test2 // но так как тест2 виртуальный - вызовется переопределенный тест2
b.test1 // чистое В - вызовется переопределенный тест1 и тест2
b.test2
#187 #194859
>>194856
Крут, а где ты такой уровень ознакомления приобрел? Т.к. примеры на офсайте не очень
#188 #194862
>>194859
воопше это довольно базовые знания шарпа. в туторах юнити правда довольно убогие уроки по шарпу, но они скорее заточены под применение его в юнити а не изучение с нуля.
мсдн
https://msdn.microsoft.com/ru-ru/library/ms173153.aspx лол, практически тот же пример что я накатал
книги - троэлсен, рихтер
#189 #194887
>>194862
Каким образом лучше реализовать смену уровней? скажем на примере платформера.
#190 #194889
>>194887
Application.LoadLevel()
#191 #194893
>>194889
А если это совсем небольшая логическая игра по типу паззла, вроде такого http://www.chiark.greenend.org.uk/~sgtatham/puzzles/js/singles.html
#192 #194894
>>194887
Очищаешь экран и рисуешь новый уровень.
30 Кб, 573x343
#193 #194898
Блять, сильно расстроился, что в юнити координаты не по пикселям, а по кк то хуйне, тайл в 32х32 непонятно во что надо расстягивать, чтобы равномерно заполнить мапу. Мда.
#194 #194899
>>194898
Смени Filter Mode у текстуры на Point.
#195 #194903
>>194898
А как они могут быть по пикселям, если у тебя камера 3d? Если хочешь 1point=1px, натягивай тайл 3232, делай ortographic камеру, размер камеры выставляй по формуле высота экрана/2/пикселей_в_point. Например при 1280720 и 1point=1px, size камеры будет 320. Т.е. нужны разные разрешения - пили скрипт в пару строк, чтобы размер камеры пересчитывался при запуске. Просто же всё.
#196 #194904
>>194899
ничего не изменилось
>>194903
чет ничего не понял
#197 #194905
>>194904
У тебя 2d игрушка?
На каком разрешении ты запускаешь?
На что натягиваешь текстуру?
#198 #194906
>>194905
2d
хз
GameObject - SpriteRenderer
#199 #194907
>>194906
У камеры projection должен быть ortographic, а size=вертикальное_разрешение/2
Разрешение написано в левом верхнем углу при запуске - под "game"
#200 #194908
>>194907
free aspect, size = 5
#201 #194909
>>192692 (OP)
Что за хуйня с этими массивами в шарпе? Никак не могу представить как на них составить мапу объектов, зачем столько костылей?
Чем их не устроила стандартная реализация вроде [][] = элемент, вместо этого какая то хуйнся [,] = ?!?!?!/
#202 #194910
>>194908
Ну вот сделай вместо free aspect, 1280*720, например, а size=320.
#204 #194913
>>194912
Ты же не то выставил - 1024х768. Ты не очень внимательный, да?
#205 #194915
>>194912
Свойства текстуры -> Pixels Per Unit
#206 #194916
>>194912
Ну и скорее всего pixels per unit в импорте текстуры не "1" стоит - нужно 1.
56 Кб, 773x391
#207 #194917
>>194913
>>194915
>>194916
Где такое? Неужели нет способа без бубнов?

Алсо, как мапу то правильно представить для тайлов?

Скажем в хаксе
0 0 0
1 2 0
0 0 3
Будет выглядеть как [[0,0,0],[1,2,0],[0,0,3]]; А вашем Шарпе как?
#209 #194919
>>194917
Ну если ты уж так вот прям хочешь 1024x768, то size должен быть 384. Pixels per unit ты определяешь в importer settings (нажми тупо на превьюшку текстуры в project)
#210 #194924
>>194909
воопше есть обе реализации
но [][] - массив массивов, при этом эти вложенные массивы могут быть разного размера, типа
int[][] a = new int[2][];
a[0] = new int[2];
a[1] = new int[3];

а [,] - обычный двумерный массив
int [,] a = new int[2,3];
который обычно проще использовать
#211 #194925
>>194924
В чем удобность? Я что не пытаюст писать, то сталкиваюсь с проблемами. Например :
for (var i = 0; i <= lvl.array.Length; i++)
{
for (var j = 0; j <= lvl.array.Length; j++)
{
if(lvl.array[i,j] == 1)
{
Debug.Log("Player init");
GameObject newPl = Player as GameObject;
Instantiate(newPl, new Vector3(j / 1.565f, i / 1.565f, 0f), Quaternion.identity);
}
}
}

Выдаст ошибку, поскольку хз как узнать Длину массива "по строкам" отдельно
#212 #194926
>>194925
GetLength(int)
#213 #194927
>>194926
зы для [][]
соответственно
for (var i = 0; i <= lvl.array.Length; i++)
for (var j = 0; j <= lvl.array.Length; j++)
#214 #194928
>>194927
блжад сьело
for (var i = 0; i <= lvl.array.Length; i++)
for (var j = 0; j <= lvl.array[ i ].Length; j++)
#215 #194929
>>194928
Ты меня тралишь что ль? Я же говорю про [,] реализацию
#216 #194930
>>194929
ну вот же >>194926
for (var i = 0; i <= lvl.array.GetLength(0); i++)
for (var j = 0; j <= lvl.array.GetLength(1); j++)
156 Кб, 746x982
#217 #194931
>>194930
Спасибо. Какой же пиздец этот ваш шарп и юнити. При обилии туториалов не получается делать элементарные игры. В отличии скажем от того же хакса и гамакера, где почитал синтаксис и через день делаешь рогалики.
Может я что то не так делаю? откуда начать надо? Отдельно учить си шарп али уроки не на видосах с офа смотреть?
#218 #194935
Как лучше всего делать беграунд в 2d игре( платформер)? Я создаю объект и леплю на него спрайт разрешением 2248х500 на котором все находится, и так до конца уровня. Как я понимаю это ультра бомжовый вариант как в плане производительности так и графики?
#219 #194936
>>194931
Если тебе такие базовые вещи сложны, то тебе вообще нечего в геймдеве делать.
#220 #194937
>>194935
Если у тебя в качестве фона статическая текстура, то это самый лучший вариант с точки зрения производительности
#221 #194938
>>194931
Лучше сначала изучи C#, хотябы на быдлоуровне, а потом пройдись по туторам.
В итоге всё равно во всем самому придется разбираться(имеется в виду в юнитях).
#222 #194939
>>194935
Анон >>194937 прав.
При этом, если ты эти объекты создаешь из кода, то обязательно юзай пул, иначе производительность проебешь.
#223 #194940
>>194937
А как по другому можно?
3 Кб, 264x191
#224 #194941
>>194936
делал игры пока ты еще был спермой, бака.
#225 #194942
>>194940
Если у тебя фон один и тот же на весь уровень, создай столько объектов, чтобы 1,5-2 экрана заполнить и перемещай их при движении камеры.
#226 #194943
>>194942
Разный
#227 #194944
>>194931
Хуле тогда не на своем любимом хаксе или гамаке игры делаешь, уеба?
#228 #194945
>>194943
Вообще, если фон статический (один на весь уровень), то юзать объект со спрайтом единственный вариант.
Если фона N вариантов, то создай по 1 варианту каждого и когда камера приближается к позиции где должен быть этот фон-перемещай его в соответствующую позицию.
#229 #194948
>>194944
коккококок юнити более удобная разработка окококококо.
А вообще впечатлила скорость развития и поддержки различных платформ, обусловленно популярностью движка конечно, да и разработчик на которого я всегда ориентируюсь ( см Intrusor ), пересел с со старых технологий на юнити, решил последовать примеру.
#230 #194956
>>194945
Ладно, спасибо
#231 #194958
>>194940
parallax background
#232 #194961
>>194958
У меня перспективная камера и разная глубина
#233 #194962
>>194887
Используй ScriptableIObject.
Пишешь класс, с полями, которые будут хранить данные. В твоем случае тупо двумерный массив. А потом пишешь загрузчик из скриптаблобджекта.
Проскролль тред повыше, я кидал ссылку на ютаб, где баба объясняет как ими пользоваться.
#234 #195000
У меня такой вопрос:
Делать начинаю одноэкранную стратегию. Будет по крайней мере две воюющие стороны. Как я понимаю, сначала выбираем сторону, а потом будет загружаться сцена? Отдельная (хоть и карта одна и та же) для каждого пункта меню7
#235 #195021
>>195000
нет, просто в сцене "меню" сохраняй выбор и при загрузке сцены "игры" смотри что выбрал пользователь и давай ему контроль над соответствующей стороной
#236 #195024
>>195021
Спасибо. Так и сделаю. Через пару недель допилю прототип, месяц на фичи, месяц на арт, звук и допиливание.
#237 #195039
Приветствую. Делаю гайд https://unity3d.com/ru/learn/tutorials/projects/roll-a-ball/moving-the-player?playlist=17141
И возник вопрос: почему юнити определяет движение через стрелочки? Как понял за считывание ввода инфы о движении отвечает строка float moveHorizontal = Input.GetAxis("Horizontal"); по горизонтали, но нигде не написано, что это именно стрелочки (да, мануал читал, там написано просто, что значение с клавы берётся от -1 до 1, но не написано, что берётся стрелочками). сюда вообще нормально такие вопросы задавать?
#238 #195040
>>195039
project settings -> input
там создавай какие хочешь оси/"кнопки" и привязывай их к чему угодно
28 Кб, 295x370
#239 #195041
Так, мамкины программеры. Объясните как этот ваш Юнити загружать по ссылке какая-то бесконечная переадресация, у меня уже БОМБИТЬ начинает

Девочка с пика в этой серии смотрит на тетку, читающую по слогам

Я не аутист, просто у меня БОМБИТ уже!!
#240 #195042
>>195041
http://unity3d.com/ru/get-unity/download?ref=personal
Жмакаешь ЗАГРУЗИТЬ УСТАНОВЩИК
>>195040
Мм, спасибо большое.
#241 #195043
>>195042

>Спасибо за загрузку Unity Personal Edition!


Но ничего не загружается.. Я же не настолько аутист
Может у них сервак упал?
Короче скачаю с рутрекера.
#243 #195071
>>195043
Подожди на этой странице секунд 10 или удали свой некро браузер.
#244 #195075
Когда уже простым смертным станут доступны новые 2д инструменты?
28 Кб, 334x302
#245 #195080
>>195075
Пизданулся что ли. Весь движок доступен простым смертным. Че несешь?
#246 #195114
>>195080
Кроме статистики и техподдержки, плюс анальная заставка
#247 #195116
>>195114

>техподдержки


Тебе зачем?
#248 #195123
>>195116
Извини, я в глаза ебался, не знаю зачем написал то сообщение.
#249 #195134
>>195080
Есть новые инструменты, тайловая карта точно, и ещё много чего. Но они в альфа версии уже около года и доступны только для про версии
57 Кб, 1280x720
#250 #195138
Вопрос такой: как можно сделать задержку срабатывания команды? Хочу попробовать воспроизвести бой на мечах из Принца Персии 1989 года, решил не мучаться с коллайдерами мечей и делать бой через проверку расстояния между бойцами(нанесением урона при положительных результатах), с параллельным воспроизведением анимации. Воспроизведение анимации занимает хоть и небольшое, но время и надо бы отсрочить нанесение урона от момента начала анимации.
Наверное еще вариант - это передвигать одну из точек проверки расстояния вместе с выпадом меча, но я не представляю, как это можно сделать.
#251 #195140
>>195138
unity coroutines
#252 #195141
>>195134
Своя тайловая карта с нуля пишется за 2-3 дня. Кроме этой карты там ничего интересного в раннем доступе нету
#253 #195147
>>195141
Используешь движок
@
Пишешь весь функционал с нуля за >2-3 дня
#254 #195149
>>195147

>словарь с тайлами


>весь функционал

#255 #195150
>>195138
Корутины, wayforseconds
#256 #195151
>>195149

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

#257 #195152
>>195151
Я бы не сидел в этом треде если бы все с нуля писал. Нет, я люблю конечно движкописательство, но отлично понимаю, что делая движок игры не сделать.
#258 #195153
>>195141
Что ты несешь. Там в первую очередь продвинутый редактор карт.
Могу только догадываться какое говно ты сделал за 2 дня
#259 #195158
>>195153
И что же "продвинутого" тебе нужно, чтобы наконец перестать ныть и начать делать игры?
93 Кб, 736x736
#260 #195175
>>195071

> удали свой некро браузер.


Пробовал же

У них видимо тех.работы были или сервак отвалился. Сейчас пошла загрузка.
#261 #195203
Ещё один нубяческий вопрос: в некоторых туториалах даётся скрипт (я с си шарпом работаю пока), но если его вставить в юнити, то он не работает. Файл скрипта называется точно как в туториале буква в букву, код точно такой же (даже отдельно скачивал) все действия до этого делал и переделывал в точности как написано. Это проблема в том, что старая версия юнити в туториалах (2014 года)? Уже не первый раз встречается, хочу узнать в чём/ком причина. http://habrahabr.ru/company/microsoft/blog/236125/
#262 #195216
>>195138
Иии... тебе насоветовали хуйни. Проверяй кадр, иначе при просадках фпс получится неиграбельная хуйня.
#263 #195239
>>195216
Вообще-то надо сделать событие анимации
#264 #195254
>>195203
Что пишет в ошибке?
#265 #195265
>>195216
Какие просадки, что ты несешь?
85 Кб, 1888x724
#266 #195272
>>195254
Много чего пишит. Риджид боди в героя добавил, если что. Я так понял, что теперь через риджид боди нельзя работать.
#267 #195273
>>195272
Кирилл, ты бы хоть ошибки погуглил или перевел в гугле
#268 #195274
>>195134
Долбоеб, гугли роудмап. 8 декабря завезут 5.3 версию, где будет все, что тебе нужно.
#269 #195280
>>195272
Тебе в описании ошибки прямым текстом пишут что нужно делать.
#270 #195281
>>195203
тебе же пишут прямым текстом - ригидбоди свойство устарело и не исаользуется

юзай что-то вроде
RigidBody2D rb2d;
void Start()
{rb2d = GetComponent<RigidBody2D>();}
void Update()
{rb2d.AddForce(...) }
и т.д.
#271 #195284
>>195280
>>195273
Если их исправлять, то снова ничего не работает. НО вопрос не в этом. В туториале всё работает именно с этим кодом.
#272 #195285
>>195284
потому что там древняя версия юнити?
57 Кб, 1280x720
#273 #195293
Получить значение - через GetComponent, а как можно передать значение в другой скрипт? Придется сообщать противнику, что он получает урон. http://docs.unity3d.com/ScriptReference/GameObject.SendMessage.html
вроде подходит для этих целей, может кто по-человечески объяснить его действие?
sage #274 #195296
>>195293
Пошел нахуй, даун
#275 #195308
>>195285
Да, именно это я и хотел узнать. Просто думал испугался страшных крестиков и не стал ничего читать, хотя подозревал. Спасибо, что ответили, сейчас ещё найду идиотских вопросов.
#277 #195311
>>195309
Вот это говнокод
#278 #195312
>>195311
Кидай свой вариант.
#279 #195313
>>195312
enemy.SendMessage(Messages.TakeDamage, new DamageInfoStruct(100, DamageType.Physical));
13 Кб, 120x120
#280 #195314
>>195313

> SendMessage

#281 #195316
>>195313
Хорошо что мы в гд, то бишь я уверен что ты никогда не сделаешь ни одной игры, где дамаг будет передаваться мессагами. Есть справедливость.
70 Кб, 800x1200
#282 #195317
#283 #195319
Семён сегодня в ударе.
#284 #195320
>>195316
У меня все передается сообщениями, потому что у этого способа много преимуществ и нет недостатков.
#285 #195326
>>195313
>>195320
Толсто.
#286 #195330
>>195313
class GameMenedger
...
void Update(){
GameObject[] objekti = FindObjectsOfType<GameObject>();
foreach(GameObject objekt in objekti){
objekt.SendMessage("Update");
}
}
#287 #195331
>>195330
У меня пекарня не сгорит, если я это запущу?
65 Кб, 600x600
sage #288 #195332
>>195330

>Menedger


Что же ты делаешь, содомит?
#289 #195333
>>195330
лол
#290 #195334
>>195330
Самый годный вариант из всех
#291 #195337
>>195330
Напиши вариант на Boo плиз
#292 #195372

>КОКОКО SendMessage непроизводительно! На целую миллисекунду больше! Это недопустимо!!!

#293 #195424
Анон, нубский вопрос, болванчик вращается, но направление не меняет, как починить?

if (IsGrounded())
{
Vector3 newPosition = transform.position;
newPosition.z += animator.GetFloat("Horizontal") walkSpeed Time.deltaTime;
newPosition.x += animator.GetFloat("Vertical") walkSpeed Time.deltaTime;
transform.position = newPosition;
transform.rotation = Quaternion.Euler(0, camera1.GetComponent<MouseLook>().currentYRotation, 0);
}
#294 #195427
>>195372

>На целую миллисекунду больше! Это недопустимо!!!


Учитывая то, что у тебя их всего 16.666 и юнити вместо движка, то да.

мимо
#295 #195443
>>195427
С чего-ты это взял? Разве рендер не выполняется в отдельном треде?
Алсо, событие вызывается раз в несколько секунд/минут, поэтому у меня немного больше времени
#296 #195445
>>195424
Отбой, разобрался.
#297 #195472
>>195443
Они в разных тредах, да, но они не работают полностью асинхронно. В начале кадра рендер и апдейт стартуют одновременно и работают параллельно, а потом тот тред, что закончил раньше, ждет другого.
Я не в курсе, какая там у юнити архитектура, но обычно так.

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


Зависит от ситуации. Вдруг, например твое событие произойдет сразу несколько раз за кадр?

Ну и очевидно, что SendMessage никак не может исполняться аж целую миллисекунду, так что по сути я это просто к словам приебался.
#298 #195523
Народ, есть простецкая (из оф. юнити-уроков) 2д-игрулина без стартового меню (игра начинается сразу при запуске)
Сам я шарю в юнити немного больше, чем в нихуя (знаний хватило только запилить эту игрулину повторяя точно телодвижения по видеоурокам) как и в си шарпе, соответственно
Помогите сделать меню (черный экран с 2 кнопками - Новая игра и Выход) и паузу (чтоб при нажатии Еск игра останавливалась и появлялось меню)
Буду очень благодарен.
#299 #195525
>>195523
https://www.youtube.com/watch?v=jlrpHWtdvaU
Вот тут всё хорошо рассказал анон.
#300 #195532
>>195525
А что насчёт пауз?
Можно их как-то по-простому реализовать?
#302 #195578
>>195560

>2.


Не в тему, это функция обработчик состояния приложения. Свернул игру на пека или мобилке - функция сработала, как ты обрабатываешь paused это уже другой разговор.
#303 #195591
>>195472
Ну есть таки вполне обоснованный аргумент почему не стоит использовать SendMessage не касаясь производительности и прочей рефлксии.

Запилили новую систему месседжей, а следовательно вскоре SendMessage будет помечен как устаревший и выпилен нафик.
#304 #195730
>>195591
Где можно прочитать про "новую систему месседжей"?
#305 #195770
>>195591
Уберут, я свою напишу. Там делов-то GetType().GetMethod("message").Invoke()

>>195730
нет никакой новой системы месседжей
#306 #195774
>>195770
Я ж не шизик чтобы беспокоиться о производительности ради производительности в ущерб кода там, где никакого влияния на производительность нет
#307 #195808
SendMessage - это костыль. Если кто-то использует его в коде игры, значит он долбоёб, который не может в архитектуру. Из-за этого получается какой-то чёрный ящик. Хуй поймёшь, кто это должен вызывать, зачем должен вызывать и вызывает ли вообще. Сделай то, не знаю что, не знаю откуда - признак долбоёба, который не может в архитектуру (с)
#308 #195871
>>195808
Так решение-то какое? Или ты просто попердеть пришёл?
#309 #195881
>>195871
Блять, тут в каждом треде ньюфагов надо отправлять читать про EventSystem что ли?

другой анон
#310 #195888
>>195881
Если бы О ЭЛ ДЭ фаги запилили нормальную шапку с ФАКом, то количество бы сократилось.
#311 #195892
Почему бы просто не использовать классический EventEmitter? Схема работы мммаксимум прозрачна, никакого оверхеда.
#312 #195901
Я вообще использую SendMessage(string message, object data) {
switch(message)
case Damage:
case ...
}
Схема работы мммаксимум прозрачна, никакого оверхеда.
Зачем для каждого события заводить отдельный метод и тратить время на рефлексию?
#313 #195908
>>195901

>Зачем для каждого события заводить отдельный метод и тратить время на рефлексию?


Решишь зарелизить что-то сложнее раннера - поймешь.
#314 #195943
>>195730
http://docs.unity3d.com/ru/current/Manual/MessagingSystem.html

того шизика не слушай. и рефликсия у него быстрее интерфейсов и оверхеда нет, и сендмесседж максимум прозрачен(удачи найти случайную большую букву в невызываемом месседже или в переименовании методов) да и новой мессаджсистемы нет
#315 #196000
>>195943
Боже мой, унеси этот говнокод и не позорься
100 Кб, 1116x479
#316 #196008
>>195943

>сендмесседж максимум прозрачен


Мой вариант полностью прозрачен. Чистый C#, никакой магии. Что ты пишешь, то ты и получаешь. фукнции рассылки сообщений это максимально простые методы расширения
#317 #196019
>>196008
Струя моей мочи тебе в ебало максимум прозрачна.
#318 #196024
>>196019
У интерфейсщика попа бо-бо
#319 #196050
>>195808

>Хуй поймёшь, кто это должен вызывать, зачем должен вызывать и вызывает ли вообще


Вообще-то в этом и суть сообщений в компонентной системе. Они обеспечивают прозрачную связь между компонентами без каких-либо зависимостей, что обеспечивает функционирование компонента при любой организации геймобжектов.

>>195908
И в чем разница? Плохо представляю себе ситуацию когда у компонента больше 3-5 обработчиков событий.
#320 #196058
>>196050

>Плохо представляю



Ну так бы сразу и писал, мол, "я чушок-гуманитарий, юзаю месседжи, не обоссывайте плиз", и никаких вопросов бы к тебе не было. Пытаться что-то доказать гуманитарию или артистоблядку - это тоже самое что с голубем в шахматы играть
#321 #196059
>>196058

>Пытаться что-то доказать гуманитарию или артистоблядку - это тоже самое что с голубем в шахматы играть


А вот это обидно было
Мимохудожник
#322 #196122
Уверенно врываюсь в тред и надеюсь на вашу помощь.

Разбираюсь с анимацией 3D-моделей в юнити. Есть анимации всех костей персонажа. Не могу разобраться со смешиванием. Можно ли сделать так, чтобы основная анимация (ходьба) работала всегда, но когда надо, активировалась анимация, действующая только на часть скелета?

То есть:
- Персонаж бежит. В этот момент двигаются ВСЕ кости.
- Мы нажимем "удар". Все кости, которые не задействованы в анимации удара, продолжают выполнять анимацию "бег", а те что есть в анимации удара, проигрывают свой сценарий.
#323 #196137
>>196122
Это невозможно сделать в юнити. Перекатывайся на unreal engine 4
#324 #196146
>>196122
В таких случаях модель разрезают пополам и делают для бега две анимации (туловища и ног). Соответственно анимацию туловища можно переключать на анимацию удара когда надо.
#325 #196149
>>196146
Это безумие...
#326 #196150
>>196122
Вот такое нашел. Впринципе, мне не сложно написать замену тому же animator.setInteger. Конечно, не самые простые средства, но всё же пойдет...

https://www.youtube.com/watch?v=65ns7uikvzc
#327 #196158
>>196146
Я бы сейчас разродился очередной пламенной тирадой какие все кругом мудаки и не лечатся, но вовремя вспомнил что решил больше не нервничать по пустякам и из-за чужой глупости
#328 #196160
>>196122
Гуглируй аватар маск.
201 Кб, 1600x879
#329 #196163
Анончи, начал создавать интерфейс для своей стрелялки от первого лица и столкнулся с одной проблемой.

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

Сейчас план такой. Добавлю специальный компонент OverlayPanel, который будет чекать OnEnable и OnDisable у панелек и окон, вызывая у статического класса GameInput что-нибудь типа LockCursor/UnlockCursor (он будет запоминать, сколько раз вызывали данные методы, а то вдруг открылось две/три панельки). А внутри скрипта камеры/игрока буду проверять специальное поле:
if (!GameInput.mouseLocked && Input.GetButton("Fire")
Fire();
#330 #196164

>2015


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



Эти мудаки вообще работать собираются? Пусть исходники тогда всем расшаривают, ебена мать, раз сами элементарных вещей сделать нихуя не в состоянии
#331 #196183
>>196160
Да. Это то что надо. Можно делать.
#332 #196198
Допустим я сделал модель дерева, могу я заменить им террейновское? чтобы фичи типа винд форса работали
#333 #196429
Ребят, есть русскоязычное пояснение за элементы движка? Чтоб прям на пальцах. Основы.

И как запустить то, что я скачал из ассет стора?
#334 #196430
>>196429
сука, дристанул
#335 #196431
>>196429
Ты без английского разве что змейку накодишь.
#336 #196440
>>196429
http://habrahabr.ru/company/microsoft/blog/236125/
Вот, но это для старого. Там вместо просто рджидбоди2д надо создать переменную myRigidBody = GetComponent<Rigidbody2D>(); и float horizontal = Input.GetAxis("Horizontal");
А потом ускорять через myRigidBody.velocity = new Vector2(horizontal, myRigidBody.velocity.y); например.
Ещё есть куча всяких кириллов, но они таки на старой версии юнити работаю- не всё будет правильно делаться на новых версиях. КРАЙНЕ рекомендую выучить английский на разговорном уровне и юзать либо новые гайды, либо курить документацию.

>И как запустить то, что я скачал из ассет стора?


Файл открыть сцену/открыть проект.
#337 #196453
Кароч, я даун и 2 дня мучаюсь, чтобы по нажатию на кнопку, объект двигался бы к другому объекту. Смог наконец добиться того, чтобы он телепортировался или клонировался по нажатию в конкретное место, но как сделать один объект чтобы двигался к другому объекту?
#338 #196455
>>196453

> по клику мыши на кнопку

101 Кб, 1920x1040
#339 #196472
Зацените, какую йобу я запилил: фреймворк пропертей, который можно наконец-то по-человечески юзать. У каждого проперти можно добавить атрибут, который задает параметры редактора, который будет отображаться в инспекторе скрипта. Параметры аттрибута следующие:
имя проперти, которое может не совпадать с переменной-членом класса
всплывающая подсказка
флаг, определяющий, является ли проперти конструктором (то есть проперти, которое можно задать при создании скрипта, после чего его нельзя изменить)
минимальное и максимальное значение для числовых пропертей.

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

Пример кода выглядит вот так:

\t\t[SerializeField]
\t\t[FloatRangeEditor(
\t\t\tLabel = "Mass",
\t\t\tTooltip = "Mass of softbody",
\t\t\tMin = 0.1f,
\t\t\tMax = 10.0f
\t\t)]
\t\tprivate float mass = 0.1f;
\t
\t\t[SerializeField]\t
\t\t[IntegerRangeEditor(
\t\t\tLabel = "Control points",
\t\t\tTooltip = "Amount of control points",
\t\t\tConstructor = true,
\t\t\tMin = 4,
\t\t\tMax = 128
\t\t)]
\t\tprivate int numControlPoints = 4;

Инспектор скрипта с этими пропертями на пикрилейтед, скрипт Softbody2D.

Следующая фича в этом фреймворке будет механизм оповещений скрипта в дизайн-тайме об изменении значений пропертей.
101 Кб, 1920x1040
#339 #196472
Зацените, какую йобу я запилил: фреймворк пропертей, который можно наконец-то по-человечески юзать. У каждого проперти можно добавить атрибут, который задает параметры редактора, который будет отображаться в инспекторе скрипта. Параметры аттрибута следующие:
имя проперти, которое может не совпадать с переменной-членом класса
всплывающая подсказка
флаг, определяющий, является ли проперти конструктором (то есть проперти, которое можно задать при создании скрипта, после чего его нельзя изменить)
минимальное и максимальное значение для числовых пропертей.

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

Пример кода выглядит вот так:

\t\t[SerializeField]
\t\t[FloatRangeEditor(
\t\t\tLabel = "Mass",
\t\t\tTooltip = "Mass of softbody",
\t\t\tMin = 0.1f,
\t\t\tMax = 10.0f
\t\t)]
\t\tprivate float mass = 0.1f;
\t
\t\t[SerializeField]\t
\t\t[IntegerRangeEditor(
\t\t\tLabel = "Control points",
\t\t\tTooltip = "Amount of control points",
\t\t\tConstructor = true,
\t\t\tMin = 4,
\t\t\tMax = 128
\t\t)]
\t\tprivate int numControlPoints = 4;

Инспектор скрипта с этими пропертями на пикрилейтед, скрипт Softbody2D.

Следующая фича в этом фреймворке будет механизм оповещений скрипта в дизайн-тайме об изменении значений пропертей.
#340 #196473
Бля, разметка сниппета наебнулась, вот нормальная версия

[SerializeField]
[FloatRangeEditor(
Label = "Mass",
Tooltip = "Mass of softbody",
Min = 0.1f,
Max = 10.0f
)]
private float mass = 0.1f;

[SerializeField]
[IntegerRangeEditor(
Label = "Control points",
Tooltip = "Amount of control points",
Constructor = true,
Min = 4,
Max = 128
)]
private int numControlPoints = 4;
#341 #196476
>>196472

>пропертей


>проперти


>проперти


>проперти


>проперти


>пропертей


Блд.
#342 #196477
>>196476
Ну йопте, а как еще их называть? Свойства? Проперти и проперти.
#343 #196484
>>196453
>>196455
Лол, сдвинулся с мёртвой точки. Теперь у меня кнопка двигается.
#344 #196486
>>196431
>>196440
Не так поняли меня. Ангельский я худо-бедно знаю и понимаю, я о том, что глаза разбегаются, и без опыта работы с движком просто не понимаешь, что делать.

Сразу вопрос: вот делаю я всё по гайду про рогалик 2д, там во втором уроке прикручивают анимацию, урок писался на предыдущей версии, сейчас всё не так, и я ниибу, как её прикрутить, и как отдельные группы кадров назначить на разные события (ходьба, удар и пр.)
#345 #196487
>>196486

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


А что ты хочешь сделать? Или предлагаешь нам за тебя придумать?
#346 #196495
>>196484
А вот как заставить двигаться один объект, нажатием на другой объект, так и не понял.
#347 #196497
Почему в Юнити до сих пор не завезли декали? Каким образом создавать декали, если ничего бесплатного, кроме жудко тормозящих deffered decals нет?
#348 #196498
Может кто помочь запилить меню?
Скайп, утокс, вк
26 Кб, 427x213
#349 #196499
Юнити-аноны, кто подскажет как такую сетку реализовать? В ней можно удалять объекты? Типа: Remove(2,3) и он удаляет сектор 2,3.
#350 #196500
>>196499
он не сектор удаляет, а теги объектов
смотри https://unity3d.com/ru/learn/tutorials/projects/2d-roguelike/boardmanager?playlist=17150
#351 #196506
>>196500
Спасибо. Хм, какой тогда профит от сетки?
Просто мне нужно на поле разложить кучу объектов, как в играх типа "три в ряд". С таким же успехом можно ведь с помощью двух for наплодить префабов. Как реализовано в рогалике видел, интересно было, как подписать эти сектора еще.
#352 #196508
>>196506
профит чисто в равномерном расположении и поклеточном перемещении
#353 #196546
>>196487
Я хочу запилить простенький 2д данжн кравлер с рандомной генерацией уровней. И пока всё, что я могу наверняка - это рисовать спрайты.
Понимаю, что придется учить плюсы, и я не против, но ориентироваться в интерфейсе и элементах движка тоже не помешает.
#354 #196553
>>196546

>Понимаю, что придется учить плюсы


какие плюсы?
#355 #196561
>>196546
в юнити пишут на шарпе, да, тебе придется его учить (без знания шарпа или джс ты сможешь делать только дефолт)
#356 #196569
>>196561
Может он ради быстродействия хочет вынести генерацию всей хуйни в отдельную длл на крестах?
#357 #196579
>>196569
т.е. ты считаешь, что человек не знающий с++(а соответственно и организации длл на крестах и интерфейсы между дотнетом(с немаленькой поправкой на моно) и дллками) хочет вынести логику в отдельную дллку?
#358 #196623
>>196561

>дефолт)


Ельцин в треде
#359 #196687
>>196486
https://www.youtube.com/channel/UCyVsCcTte38YC9CxJtw3hBQ
Абалденный гайдер для новичков. Всё расписано и актуально для 5.х версий.
#360 #196751
>>196687
О! Спасибо огромное. Увидел, как там создаётся система инвентаря. Многое почерпну для себя.
Ещё одно доказательство, что в геймдеве без знания английского делать нечего. Разве что говнокодить на гейм мейкере и то лишь благодаря большому ру-комьюнити.
#361 #196810
https://www.youtube.com/watch?v=nH8wlww7gAs
На 5:05 парень затирает про то, что this.myAnimator.GetCurrentAnimatorStateInfo(0).IsName("Slide") чекает, играется ли анимация State и, если написать её с маленькой буквы, то ничего работать не будет. А потом пишет тоже самое для выхода из анимации и пишет не Slide, а slide, который работать не должен. Но всё наоборот и его версия со строчной s работает, а если заменить на заглавную, то нет. Что я понял не так, подскажете?
#362 #196812
>>196810
IsName("Slide") - проверяет имя, которое у него с большой
SetBool("slide", true) - меняет булевую переменную slide в аниматоре

Он же вроде проговаривает и указывает всё это
#363 #196818
>>196812
не не.
Там есть строчка
if(slide && !this.myAnimator.GetCurrentAnimatorStateInfo(0).IsName("Slide"))
А ниже он ещё приписывает
else if (!this.myAnimator.GetCurrentAnimatorStateInfo(0).IsName("slide"))
и говорит, что там будет slide=false.
#364 #196819
>>196818
На 8:22,например, показан весь этот код.
#365 #196826
>>196818
На 12 минуте исправил
#366 #196836
>>196826
Но у меня всё норм работает и так. Ладно, спасибо, пойду разбираться.
100 Кб, 603x444
#367 #196839
Насколько жирные сцены тащит юнити? Делаю пиксельарт инди хуинди, хочу ебануть всю игру одной сценой. Офк, с отключением всех ненужных объектов.
#368 #196851
>>196839
Соснешь.
мимоПРОдевелопер
#369 #196861
Блять, как делать 2д анимацию? Ассетс - криейт - анимация - создается нью анимейшн, ну и типа перетащите элементы в окошко, ну я и пытаюсь пикчи из текстур перетащить - нихуя. ЧЯДНТ?

И хуле гиф не ест? Мне в пнг каждый кадр сохранять чтоль?
И почему в редакторе спрайтов нельзя прозрачность фона сделать?
#370 #196866
>>196839
|<----------------------------------------------------------------------------->|
вооооот такие тащит
#371 #196867
Аноны, меш-коллайдер сильно много жрёт производительности? Хочу добавить в игру около 150 объектов и у каждого из них должен быть меш-коллайдер. У объектов < 255 вертексов.
#372 #196869
>>196867
Добавь и посмотри блжать. Что за калеки в гд обитать стали?
#373 #196871
>>196869
У меня на машине может летать будет, а у других?
#374 #196872
>>196871
А у других что, одна и та же машина?
#375 #196874
>>196867
Сильно.
#376 #196875
>>196867
Зарубите блять уже себе на носу, что в юнити сильно жрет вообще всё.
#377 #196876
>>196861
Ты сначала разрежь спрайт-щит на фрагменты.
#378 #196882
>>196875
Ты наверное хотел скзать "Physics, который используется в том числе и в unity"
#379 #196891
Ананасы, выручайте.

Есть аниматор, есть стэйты аниматора. Как через код указать стэйту нужную анимацию?
#380 #196894
>>196876
Штоу? Подробней?

>>196861
Бамп вопросу(ам).
#381 #196895
>>196894
выбираешь параметры импорта - спрайт/гуй, мульти.
тыркаешь эдитор
слайс - грид - ок - apply
#382 #196908
Юнитаны, подскажите, почему может пропадать трэил от объекта? Если подробно: создаю мини-планетарий, визуализирую траекторию движения планет с помощью трэил рэндерера. НО! спустя определённое время/расстояние трэйл пропадает в игре. Иногда он вырисовывается, когда я жму на паузу. Клиппин плэйнс у камеры выкручен на максимум.
227 Кб, 1409x724
204 Кб, 1407x721
207 Кб, 1410x723
18 Кб, 280x172
#383 #196915
Делай раз. Делай два. Делай три. Анон, какого лешего он проваливается? Настройки коллайдера до и после приседания те же самые.
#384 #196923
>>196915
не по той оси разгибается
#385 #196924
>>196923
я не это имел ввиду, но надеюсь ты понял

он должен тело вверх поднимать, а он ноги ниже опускает
#386 #196927
>>196924
То есть сначала центр сместить вверх, потом разгибать?
5 Кб, 318x264
#387 #196939
>>196895
У меня слайс не тыкается.

Можешь поэтапно описать, как правильно заливать и делать анимацию в юнити?
#389 #196947
>>196908
бамп вопросу, гданы
3 Кб, 671x170
#390 #196965
>>196940
У меня нарезанные кадры не объединяются. Аниматор не появляется.
Всё как он делаю - залил файл, нарезал. И всё.
#391 #196968
Анон, доставь SCI-FI Level Construction Kit 3
https://www.assetstore.unity3d.com/en/#!/content/25706
Я знаю, у тебя есть всё.
#392 #196971
>>196965
Разобрался. Но теперь меня ебет сама анимация. Вот я нарисовал, допустим, юнита, и он шатается - голова и плечи ходят влево и вправо, ноги не двигаются. А в юнити наоборот - ноги и корпус ходят в стороны, а голова с плечами закреплены на месте.
#393 #196983
>>196971
Похуй, тоже разобрался. Нарезать нормально надо было.
#394 #196997
Посоны, а можно как-нибудь на спрайт-рендерер повесить скрипт чтоб спрайт рисовался много раз с фиксированным шагом. Тоесть если надо сделать забор то просо делаем один колышек, вешаем скрипт Array.cs, в инспектор ставим offset: 1.0, repeat: 64 - и готово, у нас забор. Так можно?
#395 #197010
>>196997
можно сделать чтобы 64 объекта создавалось и в инспекторе не показывалось
sage #396 #197102
>>196997
Так можно, но это уже пиздец. Дебри.
#397 #197125
Посоны, кто-нибудь юзал https://www.assetstore.unity3d.com/en/#!/content/2540 ? Есть у кого?
#398 #197132
>>196968
>>197125
Там кнопочка "Buy" есть, щитдевелоперы грёбаные.
#399 #197183
если добавить 2 камеры, из какой из них будет обзор при запуске приложения?
#400 #197184
>>197183
Ты сам не можешь создать вторую камеру и посмотреть?
#401 #197185
пробовал. всегда обзор с последней добавленной, так?
#402 #197186
а вот еще вопрос. при создании сцены создаётся определённое пространство. можно ли как то изменить его цвет, не прибегая к источникам света?
#403 #197198
Ребят, помогите вот с каким вопросом: допустим, я создаю в скрипте сферу и в инспекторе пустой gameobject с компонентами Particle System и Light, НО! у обоих этих компонентов есть такие поля, к которым нельзя обратиться в скрипте. (draw halo у Light, куча различных поведений частиц у particle system). Есть ли возможность в скрипте одному игровому объекту присвоить компонент другого игрового объекта? То есть я хочу сделать вот что: в инспекторе сделать шаблоны компонентов света и системы частиц, где я пропишу все недоступные в скрипте поля как мне нужно, а потом объекту, который я создаю в скрипте, я добавляю эти компоненты. Возможно ли это, и если да - то как? я пытался в скрипте создавать игровой объект, по тэгу находить объект, созданный в инспекторе, и присвоить компонент GO из инспектора добавить объекту, созданному в скрипте. Не помогло.
inb4:setParent(myGameObject.transform.position). nyet, я хотел бы ещё у этих компонентов в скрипте изменять некоторые доступные поля.
#404 #197217
Ладно, анонаса, я аутист.
Пилю свою имба игруху по гайдуhttps://www.youtube.com/watch?v=nH8wlww7gAs
Запилил ВСЁ точно как там. Укрип 1 в 1. Все заглавные строчные проверил. Все переменные, которые должны называться одинаково называются одинаково. Но в конце, когда у него всё работает у меня не выходит из анимации слайда. Сама анимация незалуплена, как и написано в гайде. Могу сделать так, что бы выходил из неё, но тогда можно будет двигаться, т. е. до финальной правки при добавлении в мувенмент дополнительного условия всё работает как часы. Код уже достаточно большой, не уверен, что его стоит сюда выкладывать.
19 Кб, 400x192
#405 #197243
>>197217
В HandleMovenment третий if обнуляет переменную slide в аниматоре, а переменная slide в объекте остается такой же и в следующем кадре в аниматоре опять ставится slide=true
#406 #197252
>>197243
slide обновляется в FixUpdate в функции ResetValues(). В коде ошибок не должно быть. (но я всё, что ты написал сделал и снова отсосал).Если хоитете, я могу весь скрипт скинуть. Я понимаю, что похож на долбаёба, который не может сделать то, что ему сказали, но это не так. Вот весь проект. Сори что раньше не залил. http://rghost.ru/8Gr4jkbxT
36 Кб, 841x617
#407 #197262
>>197252
пик забыл.
#408 #197280
Даже после SetNeighbors между террейнами иногда появляются щели. Если подойти вплотную либо отойти на некоторое расстояние - то они исчезают и всё идеально, а на небольшой дистанции - щели видно. Хотя не всегда и не везде. Таки придётся хуярить внахлёст?
#410 #197303
>>197292
Ну сорян, чувак. Тут сидят бомжи, которые не могут в экономию на обедах.
#411 #197326
Ну так что, ребят. Можно ли компонент одного игрового объекта полностью перенести на другой игровой объект?
#412 #197329
>>197326
Свойство объекта или часть его текстуры?
#413 #197330
>>197329
Нет, именно что компонент. Допустим, есть один игровой объект, у него есть компонент <Light>. Mогу ли я перенести компонент <Light> первого игрового объекта на другой игровой объект с теми же настройками?
#414 #197332
>>197330
райт клик по компоненту-дупликэйт-перенести копию во второй объект.
#415 #197333
>>197332
Ой, забыл уточнить. Меня интересует как это делать в скрипте.
#417 #197337
>>197334
Не совсем. Эта функция создаёт объекты их префабов, а мне нужно именно просто в скрипте скопировать один компонент от одного игрового объекта и присвоить к другому. Вообще, я уже описывал тут свою проблему в этом посте >>197198, но как то меня проигнорировали.
#418 #197340
Как заставить тело двигаться вдоль определённой кривой траектории, не меняя его трансформ.позишн каждый кадр?
#419 #197361
>>197337
http://answers.unity3d.com/questions/12653/editor-wizard-copy-existing-components-to-another.html
То есть вот так хочешь сделать? Как я понял встроенного прямого скрипта для этого нет, надо писать свой.
>>197340
Можно задать аргумент функции траектории не через Time.deltaTime, но тогда всё равно придётся использовать какое-нибудь время или позицию другого игрока. ИМХО можешь поебаться с AddForce, но придётся в каждой точке изменения направления добавлять новую силу. Если их 2-3, то можно, иначе замучаешься.
#420 #197365
>>197361

>AddForce


Отличный совет, скоро в анимацию интерфейса физику будут пихать. Совсем охуели.
#421 #197366
>>197361

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


Но ведь тогда у меня каждый кадр будут создаваться новые силы, а мне нужно, чтобы просто менялся вектор направления силы. Или как раз Time.DeltatTime эту проблему решает?
#422 #197367
>>197365
A когда по твоему имеет смысл использовать AddForce?
#423 #197368
И так, анон, я к тебе с тупым вопросом и потом тут же укатываю, честно.
Представим, что хочу сделать 3д игру, где игрок от первого лица стоит в комнате и в этой комнате ему надо найти всякие вещи. При этом он может вращать эти вещи, допустим, шкатулку какую, и может приближать эти вещи, допустим, чтоб найти маленькую замочную скважину в ней.
Так вот, юнити подойдёт для этих целей или лучше другую программу искать?
#424 #197369
>>197340

> Как заставить тело двигаться по определенной кривой не меняя его позицию?

#425 #197370
>>197369
Дак двигать тело можно через AddForce, Torque и т.д. Я имел ввиду, что не каждый кадр к tranform.position к координатам какой нибудь эпсилон прибавлять, а может быть есть какая нибудь функция, которая двигает тело по заданной траектории, и я о ней не знаю?
#426 #197374
>>197370
Сделай через анимацию
#427 #197376
>>197374
Никогда еще с ними не работал. Не подскажешь, где есть хороший мануал? Или на юнити докс самый лучший будет?
#428 #197380
>>197370
Никак. Делай формулы.
#429 #197382
>>197365
Мне тоже не нравится такой вариант, но первое, что пришло в голову на замену позишна.
>>197368
На юнити это сделать можно. Если не обязательно 3д, а можешь сойти на 2д или псевдо 3д, то лучше на геймекере, если опыта нет и если не будешь после этого делать игры..
#430 #197387
>>197337
http://pastebin.com/K1rXg2ji

Использование

void Start()
{ gameObject.AddComponent(go.GetComponent<KotoriiKopiruemComponent>());
}
#431 #197388
>>197280
Пришлось уменьшать пиксель эррор с 5 до 2.

>>197368
Прекрасно подойдёт. Вспомни конструктор из кербал спейс - вращение, скейл, перемещение - как раз то, что тебе надо. Конечно же, готовой логики из коробки нет и тебе нужно писать скрипты на шарпе.
16 Кб, 1010x810
#432 #197392
Ребята, как делать изометрию?

Вот пик. Спрайт нижнего синего объекта находится не по центру ячейки, и заходит на спрайт вышестоящего объекта стены, но сам объект со стеной не соприкасается. Как это реализовать?

Спрайт вышестояшего синего объекта частично скрыт спрайтом стены, не соприкасаясь с ней. Как это реализовать?

Спрайт стены частично выходит за границы ячейки, на которой он находится, и при этом не мешает передвижению по той ячейке, на которую от частично заходит. Как это реализовать?
#433 #197395
>>197392
Ячейки - одно, картинки объектов - другое. Картинка не будет мешать передвижению на той ячейке где она стоит, инфа о проходимости будет храниться в представлении этой ячейки, а не картинки.

>Спрайт нижнего синего объекта находится не по центру ячейки, и заходит на спрайт вышестоящего объекта стены, но сам объект со стеной не соприкасается


Нихуя не понял, но если у тебя верхний спрайт перекрывает нижний то в настройках компонента спрайта есть параметр слоя отрисовки.
#434 #197396
>>197392

>Спрайт нижнего синего объекта находится не по центру ячейки, и заходит на спрайт вышестоящего объекта стены, но сам объект со стеной не соприкасается. Как это реализовать?



Я так понял это 2д. Всё просто. По оси Z делаешь положение стены дальше от камеры, а положение объекта ближе к камере. Как слои в фотошопе.

>Спрайт вышестояшего синего объекта частично скрыт спрайтом стены, не соприкасаясь с ней. Как это реализовать?


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

>Спрайт стены частично выходит за границы ячейки, на которой он находится, и при этом не мешает передвижению по той ячейке, на которую от частично заходит. Как это реализовать?


Всё тот же колайд бокс сделать правильного размера.
#435 #197404
>>197396
Спасибо, помогло.
#436 #197456
Юнитаны, кто зареган на сиджипирсе, могли бы вы скачать и выложить эту штуку?
http://forum.cgpersia.com/f97/u3d-movement-animset-pro-1-5-character-apocalypse-pack-116401/
#438 #197495
>>197466
Да, но версия.
#439 #197497
>>197456
Зарегистрируйся и скачай. В чём проблема? Там же всё просто.
#440 #197513
>>197497
О господи, анон, закрыта там регистрация. Если бы я мог просто взять, зарегаться и скачать, я бы так и сделел.
#441 #197520
>>197513
Там нет ссылки на версию 1.5. Под спойлером там тупо ссылки на ассетстор.
151 Кб, 1280x984
143 Кб, 500x506
18 Кб, 400x300
#442 #197525
сука сука сука сука сука сука сука сука сука сука сука сука сука сука сука сука сука сука сука сука сука сука сука сука сука сука сука сука сука сука сука сука сука сука сука сука сука сука

Как вы вообще на этом говне проссаном пишете, блядь? Там, блядь, даже консоль уебанская, нахуй блядь. Пиздец.
#443 #197538
>>197525
Переходи на UE4.
#444 #197541
>>197525

>скрин


>ехал ассет через ассет


>плохо зделано тупо

#445 #197545
>>197525
Да нет, всё нормально. Просто ты уебан.
#446 #197549
>>197541

Где ты там ассеты увидел, выблядок?

>>197545

Скриптер раскукарекался.
#447 #197558
Ребят, есть ли в юнити возможность добавить постоянную силу так, чтобы каждый кадр менять её вектор? А то в FixedUpdate при использовании AddForce каждый раз появляется новая сила, а не меняется направление имеющейся.
#448 #197561
>>197558
Или может есть возможность в lateUpdate сбрасывать действие сил на объект?
#449 #197563
>>197558
Меняй непосредственно вектор действующей на объект силы rigidbody.velocity. Это Vector3.
#450 #197565
>>197563
Я уже так делаю, но ведь это не сила прикладывается, а просто сообщается скорость? Я к тому, что от силы я могу получить ускорение, а от скорости - нет.
#451 #197576
>>197558
И в чем по твоему разница между постоянной силой и появлением каждый раз новой?
#452 #197577
>>197576
Предыдущие силы остаются, в том то и дело.
#453 #197579
>>197577
А если я скажу, что не остаются?
#454 #197582
Достаточно ли будет уроков скриптинга и владения редактором, чтобы создать несколько спинномозговых казуалочек для мобилок?
#455 #197586
>>197582
Если ты не будешь делать ничего. что сложнее игрушек,описанных в туториалах- хватит. Если сложнее- нет.
#456 #197682
>>197586
А как потом изучать? Мои навыки пока ограничиваются низкоуровневыми школьными олимпиадками по паскалю и пройденным курсом питона на codecademy. По шарпу посмотрел первую секцию в туториалах по скриптингу юнити и начал читать C# 5.0 Unleashed Bart De Smet'а, но он у меня плохо усваивается. Уровень знания англа довольно высокий, сам язык у него я весь понимаю.
#457 #197684

>2015


>Physics.Raycast возвращает коллайдер


>бегаем по всем компонентам collider.gameObject, чтобы понять, во что же мы уткнулись



Оправдывайтесь, юнитимрази.
#458 #197691
>>197684
Ёбан штоле? Достаточно узнать тег или имя объекта чтоб знать что это за хуйня. Или если у объекта должна быть реакция на рейкаст пили интерфейс IRaycastable и вешай класс с этим интерфейсом на объект. Долбоеб ты тупой.
#459 #197693
>>197682
Читать другие туториалы и документацию, очевидно. Можешь покупать особо выкрученные и заумные ассеты, разбираться как они работают, общаться в геймекерами более высокого уровны, перейти на другой движок, завести собственную команду разработчиков, каждый год выпускать новый колоф дути В общем путей для развития море. Но если развиваться не будешь, то ничего лучше, чем сейчас не сделаешь. Олсо на твиче есть игра creative и в ней хэштег #gamedev вроде. Так там онлайн игры разрабатывают и иногда комментируют всё это или на вопросы отвечают. Конечно на буржуйском. Можешь ещё их посматривать.
#460 #197731
>>197693
Спасибо, но я имел ввиду именно програмиирование на шарпе.
#461 #197742
>>197691

> Достаточно узнать тег или имя объекта чтоб знать что это за хуйня.


>сравнивать строки при рейкасте



Просто эталонная юнитимразь. Надеюсь, тебя машина переедет, лол.

>Или если у объекта должна быть реакция на рейкаст пили интерфейс IRaycastable и вешай класс с этим интерфейсом на объект.



>>бегаем по всем компонентам collider.gameObject, чтобы понять, во что же мы уткнулись



Юнитимразь настолько ущербна что даже не может внимательно прочитать и осмыслить сообщение, на которое отвечает. Хочешь, я заплачу за твою стерелизацию, гнида?
#462 #197755
>>197742
Валерьянки ебани, неосилятор.
#463 #197761
>>197755

По делу есть что сказать, скриптер? Иди теги развешивай, и сравнивай их в рантаиме, имбецил.
15 Кб, 320x320
sage #464 #197770
>>197761

>По делу


SENDMESSAGE
#465 #197772
В ньюфаготреде одни какие-то мудаки, поэтому спрашиваю здесь.
Насоветуйте годных туториалов для создания анимаций персонажа в 3д максе для юнити.
Всё что сам нашел - 2.5 школьника, рассказывающих про пресс_x_ту_спиздить_ассеты.
#466 #197773
>>197742

>сравнивать строки при рейкасте


>делать рейкасты


>применять числа с плавающей точкой а не фиксированной


>использовать условные переходы


>делить на 2 вместо умножения на 0.5


>юзать MOV AX, 00h вместо XOR AX, AX

sage #467 #197786
>>197773

Очевидный студент очевиден.
#468 #197796
Ребят, есть ли разница между методом Set() для Vector3 и вызовом конструктора для Vector3? Это я вот к чему. Я задаю телу скорость по касательной к кривой, и для этого я постоянно меняю вектор направления скорости. Дак вот, я правильно понимаю, что задавая вектор каждый раз таким образом: myVector = new Vector3(newX, newY, newZ) я каждый кадр в куче создаю новый объект вектора 3, потом присваиваю своей переменной myVector ссылку на свежесозданный вектор, и при этом в результате работы конструктора new Vector3 - новый объект в куче, который занимает байты, и будет лежать в ней, пока не придёт мусорщик? Если да, избавляет ли меня от этого метод Set у Vector3? Или он делает то же самое?
#469 #197798
>>197252
Я хз что я сделал, но путём перестановок функций местами у меня наконец всё заработало. Если кому надо могу скинуть.
#470 #197804
>>197796
Создай отдельную переменную (не локальную) для этого вектора и меняй в нем значения Setом.
#471 #197809
>>197804
Я так и делаю, меня просто интересует, прав ли я насчёт бесконечного потока мусора от каждого кадра и насчёт того, что метод Set не делает то же, что и я, а как нибудь через скрытые поля или типа того?
#472 #197816
>>197804
дибил
>>197796
Vector3 это структура и память под неё выделяется на стеке. Соответственно очищается она без помощи сборщика мусора
#473 #197818
>>197816
Тогда получается вызовом конструктора я не создаю каждый кадр новый вектор, а просто по адресу переменной перезаписываю информацию новым вектором?
#474 #197819
>>197818
что-то в этом роде. Даже записав
Vector3 a = new Vector3(1,1,1);
Vector3 b = a;
у тебя в b будет совершенно другой вектор (считай b = new Vector3(a.x, a.y, a.z))
#475 #197820
А вообще, как лучше организовывать движение по траектории? К примеру, мне нужно задать циклическое перемещение объекта по эллипсу, и я стою у распутья: менять каждый кадр transform.position вручную, через компонент rigidbody сообщать скорость под соответствующим вектором, или вообще пилить анимацию. Анон, как лучше, профессиональнее и эффективнее?
#476 #197823
>>197816

>Vector3 - структура


У структуры бывают методы, даунито?
6 Кб, 735x108
#477 #197824
>>197823
ну хз даже
#478 #197827
>>197823

Когда кажется что юнитимразь пробила днище, она начинает удивлять новыми рекордами. Просто пиздец.
#479 #197829
>>197818

Вот тут ликбез на джве страницы:
https://msdn.microsoft.com/ru-ru/library/4d43ts61(v=vs.90).aspx

Стуктура мало того, что value type, так еще там есть лулзы навроде отсутствия default initializers. Такие дела.
#480 #197844
еуые
#481 #197891
Пцаны, как делать процедурную генерацию уровня? Допустим, у меня есть некоторый набор помещений, и мне нужно, чтоб они рандомно располагались на уровне, соединенные коридорами и мелкими случайными комнатками. Допустим, у меня есть даже генератор уровней, но он только коридоры и комнатки рандомит.
Как в принципе оформить мои помещения? Как префабы? Или как? И как их впихивать в уровень?

И еще, подскажите годных туториалов по созданию игровых классов (рпг).
#482 #197903
>>197891
Попробуй каждый уровень пильнуть как сцену и используй LoadLevelAdditively.
427 Кб, 3600x1136
#483 #198017
Посоны, делаю 2д игру. Собрал здоровый уровень из спрайтов.
Вопрос: Можно ли его теперь одним разом отрендерить в одну большую текстуру, причем с приемлемым разрешением. А то делать скриншоты и сшивать их в фотошопе это пиздец геморно.

Может камеру сделать 24000х4096 размером?
#484 #198037
>>198017
Господи как я ненавидел этот ебаный уровень с водопадами.
sage #485 #198200
>>198017
Ты ебанутый? нахуя в видеокарту пихать растр размером в 300 мегабайт? если только это не атлас мегатекстуры, но это не твой случай
Тайлы для кого пилили? два-три мегабайта растров и несколько килобайт списков координат, в любой момент можно любой кирпичик подвинуть, в процессе по координатам вычисляешь какую часть списка рендерить, заодно работаешь со слоями, эффекты накладываешь, даже делаешь анимацию.
А ты хуй, взял и все в одну кучу слепил. Ты недостоин даже говна из под Кармака поесть.
#486 #198227
Там это, один из ваших ссаниной захлебнулся в прикрипленном, попробуйте откачать. Алсо бамп столпам игростроя.
#487 #198230
>>198227

>Меня там обоссали, так что пришёл за добавкой сюда.

41 Кб, 500x500
#488 #198301
Кто-нибудь кто делал 2D изометрию может подсказать канал или иной источник информации, где подробно рассмотрена тема создания и анимирования персонажей в изометрии?
#489 #198337
>>198200
Вы только посмотрите на этого разгневанного распорядителя говном кермака. Агресивность ему завезли. А понять прочитанное ему не завезли. Еще раз, у меня в юнити из этих твоих спрайтов-тайлов-мочи-говна по кусочкам собран уровень. Он уже готов, из обыкновенных SpriteRenderer. Я просто хочу сделать ОГРОМНЫЙ СУКА СКРИНШОТ всего уровня, чтоб в итоге получилась картинка вроде той.

Зачем? А ТЕБЯ ЕБЕТ ПИДОР БЛЯДЬ ИДИ РЕШАЙ КОМУ ОТВЕСИТЬ ЛОЖКОЙ ГОВНА КЕРМАКА А КТО НЕДОСТОИН. Блядь надо мне. Хоче левелдизайнеру уровень показать, порисоватъ на нем. Но нет, приходится делатъ скриншоты и долго и нудно клеить в фотошопе. Ах да, поскольку ты небось все равно не понял, поясню еще разок, а то вдруг слишком сложно для тебя. Я не собираюсь рисовать в паинте рисунок 16000х16000 и пытаться вставить это в юнити одной текстурой. Я делаю уровень из тайлов-спрайтов как ты и горовишь. Но для левелдизайна мне захотелось сделатъ скриншот всего уровня в целом. Мать твою в кренделя, тебе понатно?
#490 #198341
Юнитидевочки ругаются и стучат кулачками по клавиатуре. Милота :3
120 Кб, 500x505
#491 #198353
>>198337
Ты подебил, порвался еще сильнее.
И ты же не сказал, зачем тебе надо хуеву тучу тайлов сшивать в один растр, а учитывая уровень большинства юнитидетей можно было предположить только то что ты хочешь тупо сделать этот растр фоном игры.
#492 #198423
>>198353
Но ведь ты не будешь отрицать тот факт, что ты даун, метающий говно до того как разберется в ситуации?
мимо
#493 #198426
>>198337
Просто сбилдить игру с камерой, которая охватывает весь уровень, запустить в максимальном разрешении и сделать принтскрин?
>>198353
>>198423
Может вам отдельный тред сделать для тралов?
#494 #198462
Ладно такой вопрос.
Есть функция. В ней делаются 3 действия. Если их поменять местами, то они перестают работать. Почему? Так и должно быть или я что-то упустил?
Всё работает
if (colliders.gameObject != gameObject)
{
myAnimator.ResetTrigger("jump");
myAnimator.SetBool("land", false);
return true;
}
Не работает ресеттригер.
if (colliders.gameObject != gameObject)
{
return true;
myAnimator.ResetTrigger("jump");
myAnimator.SetBool("land", false);
}
Олсо видел, как в аниматоре при проигрывании какой-либо анимации под ней крутилась синяя полоска. Где настраивать, что бы она появлялась/исчезала?
#495 #198463
>>198462
Ты совсем аутист? после return true код не будет выполняться так как это возврат из процедуры. Во втором варианте операции над myAnimator не производятся.
#496 #198464
>>198463
А если написать просто true?
Нет, простоне знаю си шрапа вообще. По гайдикам стараюсь что-то сделать.
#497 #198465
>>198464
Ретурн во всех ЯП делает одно и то же. Для усвоения шарпа Шилдта покури штоле.
#498 #198466
>>198465
Я нихачу учить япы, я хочу делать игорей!!
для моей говноигры сгодится и тупое повторение за туториалом, а кинжку, начинал раз 10, но так и не осилил, всё равно спасибо.
#499 #198495
>>198465
Кстати, насколько хорошо нужно знать шарп, чтоб делать игори в юнити (не особо сложные)? Есть мануалы более краткие, даже скорее тезисные, типа "int это ... , дает это: ... , примеры использования: ...", "bool это ... , дает это: ... , примеры использования: ...", ну и содержащие основные принципы языка?
#500 #198500
>>198495
Настолько же, насколько нужно уметь владеть молотком чтобы построить дом.
#501 #198518
>>198230

> никто не добавил

#502 #198523
>>198495

>Кстати, насколько хорошо нужно знать шарп, чтоб делать игори в юнити



Ну вот смотри, например >>197823 нихуя шарп не знает а что-то делает. Так что ты как раз попадаешь в целевую аудиторию йунити.
#503 #198524
>>198523
Зачем ты сидишь в треде столь нелюбимого тобой движка?
#504 #198527
>>198495
В принципе можешь пройти несколько туториалов и узнать как писать то или иное стандартное действие (прыжок, движение, атака и прочее). Для запила игры этого хватит. Потом будешь обрастать другими кусками скриптов, потом научишься в инглишь и вауля=- ты знаешь си шарп. хотя после первого- второго туториала ты забьёшь на всё это дело и полетишь в доточку мидовать
122 Кб, 1280x983
#505 #198532
>>198524

Обдвачевался совсем видать, раз хуюнитиговном обмазываюсь. Страдай, хуле.
#506 #198533
>>198532
Тебе не стыдно такие скрины показывать, пускай даже в этом треде?
2132 Кб, 400x226
#507 #198534
>>198533

>фейспалмититред


>стыдно



Ты какой-то ебанутый. Впрочем, вы тут все такие.
#508 #198602
https://www.youtube.com/watch?v=hrKx5KdG4oA
Этот человек расписывает как из 2х боксколайдов и скрипта построить платформу. Но я нашёл Platform Effector 2D, который делает тоже самое без скрипта. В них есть принципиальная разница? Типа платформ эффектор больше грузит систему?
#509 #198774
Я одного понять не могу. Почему юни-дауны до сих пор не сделали систему бэкапа? Это просто пиздец. Работаешь себе спокойно, а потом бац Юнити крашится и ты теряешь все изменения на сцене и новые префабы. Вообще охуительно. Блять, так трудно раз в пять минут делать копию?
#510 #198775
Пиздец, аниматор контроллер тоже не сохранился. Ебать их в ротешник. Охуеть вообще, сука.
#511 #198888
>>198017
Можно-то можно, но рецепта я тебе подсказать не могу. Это гуглить надо, а мне лень.
#512 #207371
>>197682
играешь в игры -> думаешь как сделать лучше -> делаешь лучше... если не знаешь, что можно улучшить в уже существующей игре - придумываешь свою механику -> делаешь прототип и попутно решаешь встречающиеся проблемы... Если ни на что из перечисленного ты не способен, тогда иди вообще на хуй и не возвращайся блядь.
#513 #207372
>>198532
ты понимаешь что ты поехавший? всё, пиздец
Тред утонул или удален.
Это копия, сохраненная 4 февраля 2016 года.

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

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