Это копия, сохраненная 14 июня 2015 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
http://unity3d.com/
Торренты:
http://cgpeers.com/torrents.php?searchstr=unity
Сохранение форматирования кода:
не работает, сука, жаловаться можно здесь:
https://2ch.hk/d/res/194351.html
Предыдущий тред:
https://2ch.hk/gd/res/155190.html
Почему в юнити поверхность земли(ландшафта) делают из тонкого прямоугольника а не из квадратной площадки? При скреплении ландшафта из нескольких плит, нужно оставлять небольшой прорез между деталями или можно его как то заполнить?
>прямоугольника
Ты хотел сказать ПАРАЛЛЕЛЕПИПЕД? Для того чтоб коллайдер был потолще. Но коллайдер можно настроить самому и для плоскости. Короче забей, делай как хочешь.
>При скреплении ландшафта из нескольких плит, нужно оставлять небольшой прорез между деталями или можно его как то заполнить?
Заполни все дырочки ландшафта своим большим ассетом. Не нужно никаких прорезей, кирилл.
Список всех пост-эффектов, которые я повесил на камеру -
на скриншоте.
Это камера "из глаз", плюс у персонажа источник света исполняет роль фонарика,
с тенями.
+На уровнях также есть несколько пойнтов, тоже с тенями.
+Есть несколько самодельных шейдеров из шейдерфордж.
+В одной из комнат уровня есть зеркало - камера+плейн с рендер ту текстур .
Так вот, теперь уровень адаво тормозит, лол.
1
Проблема в пост-эфектах?
Их нельзя навешивать так много, или как?
2
Проблема в том зеркале?
3
Проблема в том, что на уровне много всякого контента?
Нужно ли делать костыль, отключающий предметы вне видимости камеры и/или юнити делает это само на лету?
Я могу конечно всё это по очереди отключать, это даст некий прирост фпс, но мне интересно ваше мнение.
Первая попытка гугления к успеху не привела - все статьи то про Motion Blur, то начинаются со слов "Информация устарела". Буду благодарен, если кто-нибудь подскажет правильные теги для гугла, ну и расскажет в паре слов, что к чему.
пост-эффект же есть ну
Я их тоже до чёртиков вешал и не влияло.
> Проблема в том зеркале?
Вполне может быть
> Нужно ли делать костыль, отключающий предметы вне видимости камеры и/или юнити делает это само на лету?
В юнити есть occlusion culling, а вот делать в нём просчёт автоматом по мешам или самому настраивать порталы - от тебя зависит. Прирост производительности есть.
А вообще есть курс Digital Tutors - Game Optimization Techniques in Unity, он на час всего, посмотреть полезно
мимо-юичезависимый
Ясно, спасибо.
Пока не додуплил как работать с occlusion culling,
в смысле, он работает только с камерой,
которая выбрана (выделена) в окне иерархии при активном окне occlusion-visualisation.
Ну а статичные типа нужно запекать?
Нихуя пока не понял, короче.
Первое, в окне игры нажми stats и обрати внимание на параметр batches http://prntscr.com/6i04z7 Это сбатченные draw calls, чем больше - тем хуже производительность. Не знаю, как сейчас в пятерке, раньше рекомендации по dc были такие: 30-50 под мобильные устройства, до 400 - для веб-сборок, 1000-4000 для стэндалона.
Второе, открой профайлер (Window->Prifiler)
и посмотри подробно и детально кто, чего и сколько http://prntscr.com/6i05xq
Третье, конечно же документация на офсайте, посвященная оптимизации http://docs.unity3d.com/ru/current/Manual/OptimizingGraphicsPerformance.html
И помни, постэффекты - это как специи, добавишь слишком много и блюдо будет испорчено.
> он работает только с камерой,
которая выбрана (выделена) в окне иерархии
Он работает со всей сценой, если переключаться по камерам в игре, видно что он действует для всех. Но я лично не знаю что затратнее, зеркало камерой, или зеркало шейдером
4.0.1
Асет забыл докупить)
В 2д ковыряюсь. При драг-н-дропе какая-то херь с координатами. В разных точках экрана обьект отдаляется от курсора (при чем на разные расстояния!). И при чем когда отпускаю мышь, бывает, не могу ее снова схватить.
Как я понял, это из-за того, что там координаты камеры, а чтобы не прыгало, то надо с мировыми координатами играться.
Так ли это? И если да, то поясните детально как лучше это сделать. Только доступно, как для первокурсника политеха.
У меня образовался клетка-прямоугольник вокруг основной игровой области, но есть ещё этажи выше и ниже. Это нужно крутить occlusion areas да?
Всё-таки не понимаю пока что именно тормозит, вроде проверил по всем рекомендациям вышенаписанным,
и всё-равно - когда запускаю игру на весь экран - тормозит до 25фпс с просадками.
В общем окне нормально - 100-200 с небольшими просадками.
сейчас вот тупо сравнил средние показатели с этим набором эффектов >>159840 и без них:
fps 33 против 66
в ёбаных два раза.
И что прикажете делать?
http://technlogic.com/news/2013/10/23/why-unity-is-a-shitty-one/
Кстати, действительно - нахуя в плейне 200 треугольников?
Ваш унрыал точно такое же гавно. Sad but true.
>Хватит божественной юнити обмазываться. Гавно теперь бесплатно. БЕСПЛАТНО БЛЕАТЬ!!!
Пофиксил
Вероятно чтобы текстуры натягивать можно было по разному. В любом случае эта инфа уже протухла и сейчас есть квад с двумя треугольниками.
Уж лучше юич юзать, там хотя бы за высокие требования предоставляют фотореализм.
>Художники и 3D артисты («моделлеры») часто называют говном 3D Studio Max
Сразу нахуй и в пизду. Моделеры и художники не бегают, обзывая соседние программы письками и каками, как это делают на дваче школьники. Взрослый и адекватный человек объяснит почему ему нравится работать в той или иной среде, а не наоборот почему все остальные плохие. Рачок какой-то писал статью.
> за высокие требования предоставляют фотореализм
И дохуя тут кто в контент под фотореализм может ?
Ага, журит третью версию за то, что ней гуй новый не завезли и школотронство выпячивает своё.
>что за говнодвиг фаерлайт он пиарит
Ололо, эти три с половиной фичи может реализовать любой школьник, фич нет, графен не завезли, исходников нет. Стиль автора сохранён.
>>159935
Так юич вообще хуже говна. Открой стандартный тхирд персон и посмотри на тени, на самозатемнение объектов. Что это, блядь? Это пбр? Это ссанина собачая, нахуй, а не освещение.
Думал заменить им мои самоделки из шейдер фордж.
А вот хуй, у слота main maps нельзя изменить канал (а их по-прежнему только два, пиздец) развертки
а у слота secondary maps только два слота для текстур - мультиплай дифузки и дополнительный нормал.
И хули в слотах превьшки текстур такие маленькие?
Пиздец дауны.
зачем тебе менять "канал развертки", наркоман? понаделают говна, а юнити виноват лол. в UE4 точно так-же
Это понятно, это я могу, но зачем они бросают задумку на пол-пути?
Это как высрать какаху наполовину и надеть штаны. Ленивые уёбки.
Почему ноды до сих пор не сделали?
Или вообще - выкупили бы их у Шейдер Фордж.
>у слота main maps нельзя изменить канал
В импортере меша чекни swap uvs, если уж каким то хуем развернул модель во втором канале
>а их по-прежнему только два, пиздец
Теперь их 4
>И хули в слотах превьшки текстур такие маленькие?
Нажми на превьюшку с зажатым контролом
>Почему ноды до сих пор не сделали?
А вот тут поддвачну, можно и в блокноте шейдеры писать, но нативный нодовый редактор понаглядней будет.
Они сделали средство для подавляющего большинства задач. В этом идея.
>нодовый редактор понаглядней будет
это в каком месте наглядней? те-же функции, только не буквами в строчку, а квадратами размазанными по всему экрану. hlsl даже не смог осилить? элементарнейший язык же.
они одинаковые. но cg дропнутый. поэтому лучше учи hlsl
Где почитать про шейдинг режимы вьюпорта?
Я для прикола закинул какой-то лоу-поли кал,
две модельки - за 2 и 5 долларов.
чистых (без налога юнити) 14 баксов за пол-года накапало.
О, кстати пофиксили страницу - теперь я не должен покупать собственный ассет, чтобы скачать.
1. Выбери интересную для тебя тему.
2. Найди самые крутые (отзывы/звезды)
БЕСПЛАТНЫЕ примеры этой темы в ассетсторе, проанализируй.
3. Стремись сделать чуть-чуть круче.
Всё что ты хочешь сделать, уже уделано тысячи раз десятками способов. Идёшь в ассет стор, ищешь что тебе нужно, качаешь фриверсию этого, пытаешься разобраться как скрипты работают.
https://www.assetstore.unity3d.com/en/#!/content/21813
Проще всего это анимациями сделать.
Проще всего менять трансформ.позишн.у. Скорее всего, в уроке меняется трансформ.ротейшон.х. Меняй функцию да и делов. Ах да, не забудь лимит установить, чтобы дверь не улетела к аллаху.
проще всего это шейдерами сделать.
А можешь подсказать? Я только начал Уолтера Савича читать, пока никак в языки не могу.
http://rghost.ru/92P29G8TN
вот тут скрипт на дверь, тут всё работает, но я так и не смог сделать, чтобы она поднималась, а не поворачивалась. Пробовал менять на трансформ.позишн и так далее, определенно что-то не так выходит. Где там что в коде нужно изменить? Я от градусов никак не могу избавиться.
Тут это анимацией сделано, причем очень кривой, например, если выйти из колайдера и резко опять в него зайти, анимация прервется и дверь телепортируется в исходную точку, выглядит ужасно!
Проще всего это сделать не уече.
Пилю я свою первую головоломку на Unity. Каждый уровень у меня - отдельная сцена. Как сделать так, чтобы во всех уровнях мои элементы интерфейса (кнопка паузы, например) были одинаковы?
Попробовал сделать Canvas со скриптом, который вызывает функцию DoNotDestroyOnLoad(), но упёрся в то, что на каждом новом уровне у меня новая камера, а задать Render Camera для Canvas из кода невозможно. Теперь думаю, толи камеру тоже сделать неуничтожаемой, толи запилить Canvas-префаб, который буду ручками добавлять в каждую сцену.
Энивэй, изобретать велосипед мне не хочется, так что интересно узнать, есть ли рекомендованный подход к решению этой задачи, и как это делают другие разработчики.
А какие настройки Render Mode прописать, чтобы всё нормально скейлилось под любые экраны?
Я раньше использовал Screen Space - Camera, но способа задать Render Camera из кода не нашёл. Можно задать только World Camera, но это настройка для режима World Space - в этом режиме скейлинг не работает.
>способа задать Render Camera из кода не нашёл
ищи лучше. для начала поищи в официальной документации
Нужно выпилить градусы, кватернионы и т.д. Книги можешь нихуя не читать, это не фундаментальная задача. Основная твоя задача решается через
transform.position.y += 10f;
Красивости вроде сглаживания и т.д сам делай, мне лень.
я тут в 18ом треде спрашивал,
почему у меня хуёвые мягкие тени в Юнити 5.
Оказалось, что они хуёвые только у поинт лайта.
Вот, сохранил тестовый проект.
Посмотрите, пожалуйста, у кого-как тени отображаются
и не делаю ли я какую-то ошибку.
Проект в архиве всего 64кб, без - 3мб.
http://rghost.ru/private/8gqbtcWDc/a9f98b8ed4b60ade9474afc7f705286f
пробовал - не получается, там как-то нужно вообще это всё с углами менять, а как - я не знаю
Заебло это дрочево, что нельзя обращаться напрямую ни к чему.
>>160162
Создай скрипт, добавь эту шнягу в апдейт, кинь скрипт на дверь.
this.transform.position = new Vector3(this.transform.position.x, this.transform.position.y+10f, this.transform.position.z);
Подводные камни - твоя дверь улетит в самые ебеня нахуй, к аллаху. Сам фикси.
>нужно вообще это всё с углами менять
Я тебе очередной раз пишу. Углы надо выпилить нахуй, безжалостно.
using UnityEngine;
using System.Collections;
public class DoorScript : MonoBehaviour {
\tpublic bool open = false;
\tpublic float smooth = 2f;
\tvoid Start ()
\t{
\t\t
\t}
\t
\tpublic void ChangeDoorState()
\t{
\t\topen = !open;
\t\tGetComponent<AudioSource>().Play ();
\t}
\tvoid Update ()
\t{
\t\tif(open) //open == true
\t\t{
\t\tthis.transform.position = new Vector3(this.transform.position.x, this.transform.position.y+10f, this.transform.position.z);
\t\t}
\t\telse
\t\t{
\t\t\tthis.transform.position = new Vector3(this.transform.position.x, this.transform.position.y-10f, this.transform.position.z);
\t\t\t\t\t}
\t}
}
так, чтоли? А сейчас минутка рейджа.
СУКА ЧТО ЗА ЕБУЧИЕ КОДЫ ПИЗДЕЦ Я ЕБАЛ ЭТУ ДВЧЕРЬ НАХУЙ ВО ВСЕ ЩЕЛИ БЛЯДЬ НЕ МОГЛИ СДЕЛАТЬ НОРМАЛЬНУЮ СИСТЕМУ ПЕРЕМЕЩЕНИЯ ОБЪЕКТОВ КАК В ЛЮБОМ ДРУГОМ ЕДИТОРЕ НА ДРУГОМ ДВИЖКЕ СУКА Я ХОЧУ СДЕЛАТЬ ВСЕГО ЛИШЬ ОДНУ СРАНУЮ Е Б У Ч У Ю ДВЕРЬ, НАХУЯ МНЕ НУЖНО ЕБАТЬСЯ С КОДОМ? ЭТО БЛЯДЬ ДВЕРЬ, НА СУРСЕ СУКА ЗА СЕКУНДУ МОЖНО СДЕЛАТЬ ТАКОЕ, НА SERIOUS ENGINE БЛЯДЬ ЭТО МОГ ЛЮБОЙ РЕБЁНОК СДЕЛАТЬ А ПОЧЕМУ НА ЮНИТИ Я ДОЛЖЕН СТРАДАТЬ И ИГРАТЬ В ШАРАДЫ НА ЯЗЫКАХ ПРОГРАММИРОВАНИЯ Я НИХУЯ ЖЕ НЕ ЗНАЮ ИХ ПИЗДОС ТТРИ ДНЯ Я ЕБУ УЖЕ ЭТУ ДВЕРЬ ТРИ ДНЯ
using UnityEngine;
using System.Collections;
public class DoorScript : MonoBehaviour {
\tpublic bool open = false;
\tpublic float smooth = 2f;
\tvoid Start ()
\t{
\t\t
\t}
\t
\tpublic void ChangeDoorState()
\t{
\t\topen = !open;
\t\tGetComponent<AudioSource>().Play ();
\t}
\tvoid Update ()
\t{
\t\tif(open) //open == true
\t\t{
\t\tthis.transform.position = new Vector3(this.transform.position.x, this.transform.position.y+10f, this.transform.position.z);
\t\t}
\t\telse
\t\t{
\t\t\tthis.transform.position = new Vector3(this.transform.position.x, this.transform.position.y-10f, this.transform.position.z);
\t\t\t\t\t}
\t}
}
так, чтоли? А сейчас минутка рейджа.
СУКА ЧТО ЗА ЕБУЧИЕ КОДЫ ПИЗДЕЦ Я ЕБАЛ ЭТУ ДВЧЕРЬ НАХУЙ ВО ВСЕ ЩЕЛИ БЛЯДЬ НЕ МОГЛИ СДЕЛАТЬ НОРМАЛЬНУЮ СИСТЕМУ ПЕРЕМЕЩЕНИЯ ОБЪЕКТОВ КАК В ЛЮБОМ ДРУГОМ ЕДИТОРЕ НА ДРУГОМ ДВИЖКЕ СУКА Я ХОЧУ СДЕЛАТЬ ВСЕГО ЛИШЬ ОДНУ СРАНУЮ Е Б У Ч У Ю ДВЕРЬ, НАХУЯ МНЕ НУЖНО ЕБАТЬСЯ С КОДОМ? ЭТО БЛЯДЬ ДВЕРЬ, НА СУРСЕ СУКА ЗА СЕКУНДУ МОЖНО СДЕЛАТЬ ТАКОЕ, НА SERIOUS ENGINE БЛЯДЬ ЭТО МОГ ЛЮБОЙ РЕБЁНОК СДЕЛАТЬ А ПОЧЕМУ НА ЮНИТИ Я ДОЛЖЕН СТРАДАТЬ И ИГРАТЬ В ШАРАДЫ НА ЯЗЫКАХ ПРОГРАММИРОВАНИЯ Я НИХУЯ ЖЕ НЕ ЗНАЮ ИХ ПИЗДОС ТТРИ ДНЯ Я ЕБУ УЖЕ ЭТУ ДВЕРЬ ТРИ ДНЯ
> if(open) //open == true
Можешь подробнее комментарий расписать, а то я не понял, что в этой строчке происходит?
это не я комментарий оставлял, это я стырил код
этот http://rghost.ru/92P29G8TN, и попытался его переделать под трансформ.позишн ДО СИХ ПОР БОМБИТ ПУКАН СУКА НУ ПОЧЕМУ ТАК ТРУДНО БЫЛО РЕАЛИЗОВАТЬ СИСТЕМУ ПЕРЕМЕЩЕНИЯ ОБЪЕКТОВ
>НАХУЯ МНЕ НУЖНО ЕБАТЬСЯ С КОДОМ?
Ну прискинь дверь к скелету, сделай анимацию, лол. Код, вроде, правильный, одно "но", при открытии дверь улетает нахуй в небеса, при закрытии улетает нахуй под почву. Но ты в любом случае будешь страдать, любой будет страдать, если не почитает справку по движку. И это правильно, ты и должен страдать.
Vector3 Pos_1 = new Vector3(this.transform.position.x, this.transform.position.y+10f, this.transform.position.z);
this.transform.position = Vector3.Slerp(transform.position, Pos_1, 2f * Time.deltaTime);
Вот так вот эта хуйня должна плавно подняться вверх на 10f со скоростью 2f. Но код может не заработать, меня анон уже ловил, что пишу на коленке. Лол. Но ты это. Страдай.
Держи с барского плеча. Суперкод оптимизированный хакерами. Один знакомый писал для меня.
http://pastebin.com/K99Y7Y70
Что это?
Погуглил на инглише - он там тоже в недоумении, т.к. эта хуйня отжирает мс независимо от состояния v sync
у тебя много имидж эффектов на камере? отключи и посмотри если есть гфксвейт.
Это места где у тебя проц за видюхой не поспевает или обгоняет относительно частоты экрана, и они друг друга ожидают. Иногда это вообще проблема чисто запуска из редактора, и в сбилженой версии этих скачков нет.
Алсо, оптимизация Юнити в слайдах и на костылях: http://www.slideshare.net/AlexanderDolbilov/google-i-o-2014
Спасибо, няша! Просто тысячи тон нефти тебе!
Сейчас вот с нихуя съело 4+ гига памяти.
Откуда такие утечки?
А если в профайлере включить логирование GPU - то фпс увеличивается в два раза.
И при этом увеличение производительности не наблюдается.
Что за цирк с конями, сука?
Как такое может быть?
Так есть предупреждение об возможном overhead,
но не на 6 же гиг, блядь.
Ох и пиздец.
код и правда работает, только теперь дверь обезумела, и я не могу с ней совладать - при старте уровня она сразу же летит к хуям в небо, как её остановить?
>при старте уровня она сразу же летит к хуям в небо
Наркоман, у тебя открытие двери при запуске уровня, триггер дописывай на рейкаст с дверью, или хотя бы на пересечение зоны
Art Biko|Horror - ISO 14%
Игра уже идет в разработке и начата с 01.12.2014.
В нашем команде состоит 3 человека.
Мы как пытаемся создать нечто вероятный хорор и ужас.
За вами будет ходить на двоих ногах одноглазый волк по имени Wog.
p.s.
У них тридешник называется 3d fashion
Пятую
В 5ке стали доступны все возможности про, такшта выбор очевиден,
но она (у меня) пиздец какая нестабильная.
История студии:
Один человек создал группу UNIMA.Нас было 8 чел но команда распалось.И за нехватки опыта все учились но плохо было все.Как не странно есть один человек Никита Кокшаров он вернулся в нашу команду.Начали создавать игру BATTLETEAM но все напрасно.
Не получалось потом я решил сделать закрытие студии.Прошол ровно год я открыл Art Biko.
Сейчас идет набираемость людей в студию. Ты можешь открыть мир в студии.
https://www.assetstore.unity3d.com/en/#!/content/29140
кул)
Пятую лучше не ставь пока. Хуйня какая-то у них с окном сцены, добавил террейн и юнити сдохла. Оказалось, что лаги из-за кпу 100. Поставил лайтмаппинг он деманд, кпу разгрузился, а юнь всё равно лагает, фпс 1-2. Поспешили они с пятёркой.
Это ужасно, видимо спешили влезть одновременно с Анрилом.
Нету никаких новостей/слухов о фиксах/апдейтах?
>Нету никаких новостей/слухов о фиксах/апдейтах?
Ну так-то я уверен, что уже давно всё пытаются пофиксить и все проблемы только из-за смены лайтмаппера на элигхтенхгтенгтенген. Язык сука сломаешь. В общем, закинул сцену из 4.5 в пятёрку, заебца, лагов нет. Странно это всё, но хуй знает.
Как блять?
~150 на моем конфиге. Правда, вблизи оно как-то ублюдочно смотрится, хоть и настройки на максимум выкрутил.
Надеюсь ты потом понял какую хуйню спизданул и закрыл двач. Постоянно так делаю.
Скорей всего он говорил про 60 юнитсей. Тип нельзя открывать слишком много копий юнитси. Ну или о фпс, зачем ты смотришь на английском, если ничего не понимаешь?
>>160328
>МЕШ ПРЕФАБЫ ПЛЕЙНЫ ТОППМЕНЕДЖЕР
Тебя кто разговаривать учил?
https://www.youtube.com/watch?v=EbJa5ij6brY&t=1687
Вот, спасибо за инфу.
Мне бы освежить железо, наверное? :
ATI hd4870 1gb
AMD Athlon II X4 620, (2600 MHz)
ram 4 gb
Или для юнити норм?
Потому что большие сцены с тенями и пост-эффектами тормозят у меня в юнити, как оказалось.
И gfx.WaitForPresent гроб гроб кладбище юич
>Есть один меш
Для террейна используй террейн. Не можешь даже траву по своему йоба-террейну раскидать? Нахер он тогда не нужен.
>И gfx.WaitForPresent гроб гроб кладбище юич
Это может быть баг, связанный с "DX11 on DX10 GPU". Либо тебе нужно убрать всинк с "эври секонд вбланк" на "эври вбланк".
>>160320
> чувак что то бурлил про ограничение 60 units
Когда тестил, на скольки поликах у меня юнь сдохнет, писал скрипт, который инстансил топор в цикле, дошло, вроде, до 40кк поликов. И там было гораздо больше шестидесяти топоров.
>Это может быть баг, связанный с "DX11 on DX10 GPU".
Галочка в плеер сетингс?
Убрал, не помогло вроде.
Ну, может чуть-чуть плавнее стало,
но судя по фпс - нет.
Во, тогда понятно, почему бревна настолько уебищные с торцов. А отсутствие водички - это тоже фича пака? Я взлетел камерой на деревушкой и охуел, бухта запилена, а воды нет.
У меня есть, только некрасивая.
using System.Collections;
public class CloseCombatSys : MonoBehaviour {
\tpublic int Life;
\tpublic Animation Death_Animation;
\t// Use this for initialization
\tvoid Start()
\t{
\t\t}
\tvoid OnTriggerEnter (CharacterController body);//Столкнувшийся коллайдер
\t{
\t\tLife = Life - 1;
\t\tif (Life <= 0) {
\t\t\tGetComponent<Animation>().Play("Death_Animation");
\t\t\t}
\t}
\t}
Что я делаю не так? Скрипт ближнего боя.
using System.Collections;
public class CloseCombatSys : MonoBehaviour {
\tpublic int Life;
\tpublic Animation Death_Animation;
\t// Use this for initialization
\tvoid Start()
\t{
\t\t}
\tvoid OnTriggerEnter (CharacterController body);//Столкнувшийся коллайдер
\t{
\t\tLife = Life - 1;
\t\tif (Life <= 0) {
\t\t\tGetComponent<Animation>().Play("Death_Animation");
\t\t\t}
\t}
\t}
У них там отсутствует
>BANK OF BENEFICIARY:
>INTERMEDIARY BANK:
это ничо, приходят деньги?
>>Тебя кто разговаривать учил?
Я и не отрицаю, что я у мамы аутист. Но какое отношение это имеет к тому, что мне надо запилить?
>>160356
Но блять, вся суть в том, что мне нужна точная копия тестового уровня (grass_test.bsp) из одного говнодвижка, совместимого с первохалфом. Просто чтоб автор движка полюбовался. Именно по этому террейн не подходит.
Есть ли в юнити возможность множественного расставления префабов?
Или, если я сделаю один префаб с несколькими кустиками, какая точка будет считаться pivot’ом? Есть ли возможность применить части префаба align to mesh?
Хуйнул цикл, в цикле хуйнул меши по террейну. Цикл желательно хуйнуть в какую-нибудь корутину, чтобы юнь не зависла. Расстояние до "террейна" вычисляй райкастом. И инстанси хоть до усрачки. Хотя лучше этот меш перегнать в карту высот и применить к террейну юнити.
>Есть ли в юнити возможность множественного расставления префабов?
можно легко самому написать редактор. переводишь координаты клика мышки в мировые, делаешь raycast по нормали направления камеры и получаешь точку на земле. можешь туда ставить что угодно и как угодно.
могу написать скрипт за 9.90$
Вся суть в том, что я - гуманитарий-трехмерщик. Так что я тебя нихуя не понял.
>как они это делают
>два параметра в pbr покрутили
Хоть бы почитал как собственно ассеты клепают
Тебе хороший совет дали, но ты не сможешь им воспользоваться по прчинам. Это печально.
Вобще да, конкретно на этом шлеме из карт только нормал и ао
Официальные туториалы и документация тебе в помощь.
Напишите уже в шапке чтобы первым делом ньюфаги осваивали оф доки туториалы.
чем больше будешь смотреть, тем больше будешь понимать. заодно и английский подтянешь.
Это не оправдание.
На, у меня валялось почти то что ты хотел. Минут 20 посидел, дописал.
http://rghost.ru/8jpb4Pcfb
Тягаешь за квадратики, жмешь кнопочку, если не понравилось жмешь вторую кнопочку, ползунки и циферки делают всякое, если выкрутить нойс скейл то о пиздец клево.
Можешь продавать на ассет сторе за десять долларов.
1. инстансируй префабами.
2. создавай геймобжект, добавляй компоненты.
добавляй child'ом на канвас
Пиздец ёбань галимая. Лучше уж на старом апи гуй хуярить, чем так.
Короче пришла мне в голову идея сделать ММОРПГ с tile-based террейном. Выбрал для этого юнити и решил с самого начала запилить собственно редактор тайлового террейна. И вот скажу вам честно, анончики, такого лютого баттхерта давно не испытывал. Все в Юнити сделано через сраную анальную жопу.
Ну ок, с чего бы нам начать? Вероятно для террейн будет игровым объектом. Как задавать тайлы? Первый и самый тупой способ (для нубов) - это задавать каждый тайл с помощью дочернего пустого игрового объекта, координаты которого будут соответствовать узлу сетки, в котором опеределн тайл. Но с таким подходом заебешься поддерживать всю ту орду объктов, тем более, что у террейна будут реальные дочерние игровые объекты. Второй способ, пологичнее, создать скрипт, в котором хранить коллекцию тайлов, и присобачить его к объекту террейна. В режиме редактирования заполняем коллекцию тайлов в скрипте, сериализуем, в режиме игры десериализуем и генерим меш. Круто, идем дальше. Какой самый логичный способ хранить тайлы? Конечно hash map (ключ - вектор позиции тайла, значение - данные тайла)! И тут сукаблядский Юнити делает первый подсрачник, не поддерживая сериализацию хеш-мапов. Бля. Ну ок, тогда используем для хранения тайлов сраный vector. Теперь надо создать собственно редактор тайлов, который по клику в окне сцены добавляет-удаляет соответствующий тайл в коллекции тайлов в скрипте.
Ну ок, создаем для нашего скрипта кастомный инспектор (класс, наследуемый Editor). Ок. Теперь надо, чтобы эдитор реагировал на клик в редакторе сцены. В официальной документации инфы 0. Лезем на форумы и узнаем кучу интересных вещей. Оказывается, есть такой класс SceneView, описание которого в блядской документации начисто отсутствует. Какой-то мудозвон-официальный представитель Юнити на форуме говорит, что документации нетути, потому что класс предназначен для внутреннего использования. Ну ёб твою мать. Ок. Добавляем в SceneView делегат onSceneGUIDelegate, что ессно не задокументировано и поэтому как оно работает - хуй знает. Но как-то работает, видать. Едем дальше. В делегате ловим событие о клике, потом помечаем событие как использованное, чтобы оно не обрабатывалось самим редактором сцены. Вроде все норм. Но если юзер кликнул левой кнопкой мыши на какой-нибудь объект помимо редактируемого террейна, то фокус переносится на кликнутый объект. Какого блять хуя?! Неужели недостаточно того, что я пометил событие, как использованное?! Оказывается, нет. А знаете, что нужно сделать, чтобы это исправить? Вот это: HandleUtility.AddDefaultControl(GUIUtility.GetControlID(FocusType.Passive)); Мне кто-нибудь скажет, что делает этот код? В документации есть инфа о каких-то контролах, но инфа эта предоставлена на отъебись, так что невозможно понять, что это за контролы такие, что это у них на ID. Но как-то оно вроде работает. Через жопу. Потому что если кликнуть правой кнопкой мыши, курсор мышки изменится как будто бы какая-то часть события все-таки проходит. Блять.
В итоге получилось соорудить некоторое подобие редактора, но это просто пиздец. Пиздец, анончики.
Еще подгорает пердак от того, что нельзя удалить transform у игрового объекта (ок, можно возразить, что там идет неявный рассчет мировой трансформации объекта во время рендеринга, но это тоже пиздец). Что в скрипте можно написать Transform.Transform.Transform.Transform.Transform из-за косячной архитектуры игровых объектов. Что нельзя явно задать порядок исполнения методов скриптов (есть какой-то сраный список порядка исполнения скриптов, но это пиздец). Что нельзя добавить несколько компонент одного типа в игровой объект. Список можно продолжать.
Я реально не понимаю, анончики, почему Юнити все хвалят и говорят, что это пиздатый движок? Бля, да в этом движке сограть игру можно, только анально изнасиловать себя в жопу.
Дискасс.
Короче пришла мне в голову идея сделать ММОРПГ с tile-based террейном. Выбрал для этого юнити и решил с самого начала запилить собственно редактор тайлового террейна. И вот скажу вам честно, анончики, такого лютого баттхерта давно не испытывал. Все в Юнити сделано через сраную анальную жопу.
Ну ок, с чего бы нам начать? Вероятно для террейн будет игровым объектом. Как задавать тайлы? Первый и самый тупой способ (для нубов) - это задавать каждый тайл с помощью дочернего пустого игрового объекта, координаты которого будут соответствовать узлу сетки, в котором опеределн тайл. Но с таким подходом заебешься поддерживать всю ту орду объктов, тем более, что у террейна будут реальные дочерние игровые объекты. Второй способ, пологичнее, создать скрипт, в котором хранить коллекцию тайлов, и присобачить его к объекту террейна. В режиме редактирования заполняем коллекцию тайлов в скрипте, сериализуем, в режиме игры десериализуем и генерим меш. Круто, идем дальше. Какой самый логичный способ хранить тайлы? Конечно hash map (ключ - вектор позиции тайла, значение - данные тайла)! И тут сукаблядский Юнити делает первый подсрачник, не поддерживая сериализацию хеш-мапов. Бля. Ну ок, тогда используем для хранения тайлов сраный vector. Теперь надо создать собственно редактор тайлов, который по клику в окне сцены добавляет-удаляет соответствующий тайл в коллекции тайлов в скрипте.
Ну ок, создаем для нашего скрипта кастомный инспектор (класс, наследуемый Editor). Ок. Теперь надо, чтобы эдитор реагировал на клик в редакторе сцены. В официальной документации инфы 0. Лезем на форумы и узнаем кучу интересных вещей. Оказывается, есть такой класс SceneView, описание которого в блядской документации начисто отсутствует. Какой-то мудозвон-официальный представитель Юнити на форуме говорит, что документации нетути, потому что класс предназначен для внутреннего использования. Ну ёб твою мать. Ок. Добавляем в SceneView делегат onSceneGUIDelegate, что ессно не задокументировано и поэтому как оно работает - хуй знает. Но как-то работает, видать. Едем дальше. В делегате ловим событие о клике, потом помечаем событие как использованное, чтобы оно не обрабатывалось самим редактором сцены. Вроде все норм. Но если юзер кликнул левой кнопкой мыши на какой-нибудь объект помимо редактируемого террейна, то фокус переносится на кликнутый объект. Какого блять хуя?! Неужели недостаточно того, что я пометил событие, как использованное?! Оказывается, нет. А знаете, что нужно сделать, чтобы это исправить? Вот это: HandleUtility.AddDefaultControl(GUIUtility.GetControlID(FocusType.Passive)); Мне кто-нибудь скажет, что делает этот код? В документации есть инфа о каких-то контролах, но инфа эта предоставлена на отъебись, так что невозможно понять, что это за контролы такие, что это у них на ID. Но как-то оно вроде работает. Через жопу. Потому что если кликнуть правой кнопкой мыши, курсор мышки изменится как будто бы какая-то часть события все-таки проходит. Блять.
В итоге получилось соорудить некоторое подобие редактора, но это просто пиздец. Пиздец, анончики.
Еще подгорает пердак от того, что нельзя удалить transform у игрового объекта (ок, можно возразить, что там идет неявный рассчет мировой трансформации объекта во время рендеринга, но это тоже пиздец). Что в скрипте можно написать Transform.Transform.Transform.Transform.Transform из-за косячной архитектуры игровых объектов. Что нельзя явно задать порядок исполнения методов скриптов (есть какой-то сраный список порядка исполнения скриптов, но это пиздец). Что нельзя добавить несколько компонент одного типа в игровой объект. Список можно продолжать.
Я реально не понимаю, анончики, почему Юнити все хвалят и говорят, что это пиздатый движок? Бля, да в этом движке сограть игру можно, только анально изнасиловать себя в жопу.
Дискасс.
Ёбань галимая у тебя в голове. Зачем дрочить вприсядку когда можно парой кликов мыши сделать себе нужный гуй?
смысл в том, чтобы сохранить префабом какое-нибудь меню, окно как форму в обычных ЯП, и просто инстансировать ее.
>Бля, да в этом движке сограть игру можно, только анально изнасиловать себя в жопу.
С этого места поподробнее.
Вот именно, что теперь тебе надо дрочить вприсядку. Нет, я не спорю, если ты даун и не можешь пользоваться апи - соси хуй, тягай мышкой префабы. Но когда именно что отнимают реальную возможность и дают кривой костыль - на, развлекайся. Это как-то не радует.
>>160581
Ага. И прощай удобный динамичный гуй, получай деревянное уёбищное нечто. Лучше бы апи допилили, чем такой хуйнёй страдать.
Тебе зачем юнити то вообще? Если ты даун и не можешь писать все без визуальных редакторов, то и возмущаться нечего.
Это я от переизбытка чувств перестал по нужным клавишам попадать.
>Бля, да в этом движке создать игру можно, только анально изнасиловав себя в жопу.
Вот так получше будет.
А по существу поста коменты есть? Я правильно это делаю или есть более правильный способ?
думаешь не справится?
>>160577
новый зато скейлится красившие.
>>160578
бгг. кстати обычный террэйн тоже через жопу сделан в юнити. там даже по моему у сплат карт(текстурки сверху) X-Y попутано.
а для сериализации-десериализации проще всего писать хуйню в онэнейбл ондисэйбл и когда ты щемишься куда надо то оно выгружает из нужного массива нужную информацию в удобный формат.
для сериализации/десериализации, кстати, один мудак показал мне простой костыль http://www.everfall.com/paste/id.php?2jcaian91c26
и да. у юнити документация о том как копошится в окне сцены пиздец.
с другой стороны у многих других здесь тоже не очень.
Можешь смеяться, но мне от юнити только рендер нужен. Ну и планировалось, что некоторая часть апи будет полезной. В итоге апи обозвали устаревшим и скоро, наверное, вообще к хуям уберут. Для возможности нормально работать с новым гуем придётся городить ещё тонну ёбаного кода.
>>160586
>новый зато скейлится красившие.
А нахуя? Мне, допустим, вообще скейл не нужен. Рисовал себе N полосок задника + верхний и нижний леблы с рюшечками. Их скейлить вообще нельзя, иначе всё превратится в кашу и говно. Как мне запретить скейл? Задать явный размые размеры в метрах. И разделить метры на пиксели. Что за хуйня, блядь.
говорили что оставят старый гуи. да и всякую хуйню для инспектора и хуйни в старом проще писать.
ну, лол, это уже твои потребности, ты и ебись с ними. новый гуи можно вот еще красиво крутить и освещение на него делать и рамочки и хуямочки.
В бетах 4.6 было апи к гуи. В девятой бете его выпилили к хуям. Нахуя, блядь?
>можно вот еще красиво крутить и освещение на него делать
Кому это надо было, тот легко и просто хуярил это всё плашками. А теперь создавай триллион префабов, пили свитчи и прочие костыли. Шоб как у людей, шоб освещение было. Вместо трёх строчек кода.
Tween же - помагают работать с "анимированием" объектов. Плавное появление элемента из-за экрана, упрогий подскок объекта и вот это вот всё
Вот, к примеру - сейчас дрочу настольную лампу, осталось 19 812 треугольников.
1
А сколько оптимально для второстепенного предмета в Юньке?
2
Может ЙОБУ оставить как нулевой ЛОД?
Их кстати завезли в 5ку?
Все, что переведено, прочитал. Но хочется большего.
Делаю драгндроп в своём 2D игрое. Так как спрайтаы относительно стандартного вида камеры были мелкими, увеличиваю size камеры.
В объекте пишу "transform.position = Input.mousePosition" и всё бы ничего, но объект начинает жутко пидорасить, так как у мышки то значения адекватные, а вот объекты, относительно камеры значительно перемещаются даже при изменении позиции на одну единицу.
Ясен хуй нужно как-то всё это дело подогнать под увеличение камеры или что-то вроде того. Но вот что именно куда блядь тыкать, что смотреть это я х.з.
КАК СДЕЛАТЬ ЧТОБЫ ЗАРАБОТАЛО ?!
чего лол. ты как переводишь координаты мыши в мировые координаты относительно камеры?
Возможно ты хотел https://docs.unity3d.com/ru/current/ScriptReference/Camera.ScreenPointToRay.html ?
Да-да, втом то и проблема что нихуя никак не перевожу.
Хмм - тут ведь просто написано как луч вывести? Как мне можно перевести координаты с учётом всего того дерьма что настроено в камере, няша ?
Там принципиально чтоли? координату в мире можешь брать из рэйкаст хит. на тебе экзампл.
http://rghost.ru/6HlXnlHQW
Бля, анон, ты охуительный! Добра тебе и твоим игорям.
Ты какой-то странный
>Размер кнопки не равен изображению кнопки.
Выделяешь кнопку, Image Type = Simple -> Set Native Size
>Панель у нас в уголке экрана, а заливка - нахуй на весь ебучий экран.
Внешний вид панели определяет компонент Image. Для изменения его размера надо выбрать соответствующий инструмент слева вверху.
>на панели может быть только одно изображение
На панели может быть хоть миллион изображений. Просто нужно добавлять новый объект, у которого панель будет родителем.
Ты видимо даже хуже даунов. Даже мышкотаскательство для тебя слишком сложно.
>Type = Simple -> Set Native Size
Вот нахуя такое дрочение вприсядку?
>Внешний вид панели определяет компонент Image.
И нахуя было разделять скейл картинки и самой панели? Нет, я понимаю, что юнитеки ебанутые, это давно было ясно. Но нахуя?
> Просто нужно добавлять новый объект, у которого панель будет родителем
Это и так понятно. Не понятно нахуя такая панель нужна вообще. Точно так же я могу хуйнуть картинку или ещё какую-то ёбань.
>Даже мышкотаскательство для тебя слишком сложно.
Я не писал, что это сложно. Я писал, что из удобного и очевидного гуя сделали какую-то херню, в которой половина компонентов отсутствует. А то, что есть - работает через жопу.
>Вот нахуя такое дрочение вприсядку?
Потому что чаще всего требуется резиновый интерфейс и Sliced очень в этом помогает.
>И нахуя было разделять скейл картинки и самой панели?
Скорее всего ты изменял размеры не самой панели, а тягал якори. Серьезно, сначала бы посмотрел хоть один урок "для даунов", а потом уже кукарекал.
>Точно так же я могу хуйнуть картинку или ещё какую-то ёбань.
Можешь. Если внимательно посмотришь, то панель по компонентам == картинке.
1. Какой лимит полигонов/трисов на объекты (декорации, предметы инвентаря и т.д.) в Юнити?
2. Делаю, например лампу, плафон из стекла - обязательно ли моделить ему толщину?
Это ведь в два раза больше поликов.
Шейдер будет "стекляный"
3. У лампы есть дырки декоративные,
сквозь которые видно внутренность корпуса - обязательно ли моделить внутренность или приделать к шейдеру бекфейс?
Или бекфейс шейдер будет грузить в два раза больше геометрии?
Ну вот, а мне теперь кажется, что я действительно пишу как псих.
Блять, Два.. Нет, три чая тебе.
Моя проблема в том, что я начал изучать js по документации из юнити. Так что - я не знал до вчерашнего дня о return`е, все хуярил приравниваниями.
Это из того что я юзал для интерьеров.
Применён модификатор сглаживания, приходится вручную чистить.
Сейчас на скрине уже 14 186
До скольки примерно резать?
1. Лимит поликов на один объект около 65к, вроде. И это лимит ДХ, а не самого юнити. Лимита поликов на окружение тупо нет. Всё упирается в твой комп, можно хуярить миллионами.
2. Толщину лучше не делать.
3. В юнити 5, кажется, есть галочка в стандартном шейдоре "двухсторонний". Двухсторонний шейдор криво сделанный грузит гораздо меньше, чем геометрия. Нормальный - примерно столько же.
>>160739
Лол. А ты сделай намёками и без ебли. Вроде, квестов, провести девочку домой так, чтоб не запалили.
Количество полигонов, которые вам следует использовать, зависит от требуемого уровня качества и целевой платформы. Для мобильных устройств, где-то от 300 до 1500 полигонов на меш обеспечат хорошие результаты, в то время как для настольных платформ идеальный диапазон - примерно от 1500 до 4000. Возможно вам придётся понизить количество полигонов на меш, если в игре будет видно большое количество персонажей в один момент времени. Для примера, в Half-Life 2 использовалось 2500–5000 треугольников на персонаж. В современных AAA играх, работающих на PS3 или Xbox 360, у персонажей обычно 5000–7000 треугольников
http://docs.unity3d.com/ru/current/Manual/ModelingOptimizedCharacters.html
сделал кастомный шейдер на основе нового стандартного (тупо добавил в SubShader строку Cull Off лёл) - из плюсов :
у карт теперь нормальные превьюшки и у каждой свои параметры тайлинг/офсет,
из минусов - если делать материал "металлическим",
то фейковая сторона почему-то светлая и какая-то бледная.
aaaaanpcaabaaaacaaaaaaegaobaaaacaaaaaaegiocaaaacaaaaaaafaaaaaa
aceaaaaaaaaaiadpaaaaiadpaaaaiadpaaaaiadpaoaaaaakpcaabaaaacaaaaaa
aceaaaaaaaaaiadpaaaaiadpaaaaiadpaaaaiadpegaobaaaacaaaaaadiaaaaah
pcaabaaaabaaaaaaegaobaaaabaaaaaaegaobaaaaeaaaaaadeaaaaakpcaabaaa
abaaaaaaegaobaaaabaaaaaaaceaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
diaaaaahpcaabaaaabaaaaaaegaobaaaacaaaaaaegaobaaaabaaaaaadiaaaaai
hcaabaaaacaaaaaafgafbaaaabaaaaaaegiccaaaacaaaaaaahaaaaaadcaaaaak
hcaabaaaacaaaaaaegiccaaaacaaaaaaagaaaaaaagaabaaaabaaaaaaegacbaaa
acaaaaaadcaaaaakhcaabaaaabaaaaaaegiccaaaacaaaaaaaiaaaaaakgakbaaa
abaaaaaaegacbaaaacaaaaaadcaaaaakhcaabaaaabaaaaaaegiccaaaacaaaaaa
ajaaaaaapgapbaaaabaaaaaaegacbaaaabaaaaaadiaaaaahicaabaaaabaaaaaa
bkaabaaaadaaaaaabkaabaaaadaaaaaadcaaaaakicaabaaaabaaaaaaakaabaaa
adaaaaaaakaabaaaadaaaaaadkaabaiaebaaaaaaabaaaaaadiaaaaahpcaabaaa
acaaaaaajgacbaaaadaaaaaaegakbaaaadaaaaaabbaaaaaibcaabaaaadaaaaaa
egiocaaaacaaaaaacjaaaaaaegaobaaaacaaaaaabbaaaaaiccaabaaaadaaaaaa
egiocaaaacaaaaaackaaaaaaegaobaaaacaaaaaabbaaaaaiecaabaaaadaaaaaa
egiocaaaacaaaaaaclaaaaaaegaobaaaacaaaaaadcaaaaakhcaabaaaacaaaaaa
egiccaaaacaaaaaacmaaaaaapgapbaaaabaaaaaaegacbaaaadaaaaaaaaaaaaah
hccabaaaagaaaaaaegacbaaaabaaaaaaegacbaaaacaaaaaadgaaaaaficcabaaa
agaaaaaaabeaaaaaaaaaaaaadiaaaaaiccaabaaaaaaaaaaabkaabaaaaaaaaaaa
akiacaaaabaaaaaaafaaaaaadiaaaaakncaabaaaabaaaaaaagahbaaaaaaaaaaa
aceaaaaaaaaaaadpaaaaaaaaaaaaaadpaaaaaadpdgaaaaafmccabaaaahaaaaaa
kgaobaaaaaaaaaaaaaaaaaahdccabaaaahaaaaaakgakbaaaabaaaaaamgaabaaa
abaaaaaadoaaaaa
В сириус бизнесе теперь полигоны ограничены только здравым смыслом, и то весьма условно. Один хуй потом ТЕССЕЛЯЦИЯ ГРОБ ПИДОР и оказывается, что поликов в сцене не миллион, а три десятка. Но всё равно - никаких мешсмус, никаких турбосмус. Как вручную полики нарезал - так пусть и будет. Зебродаунам вообще сложно, наверное, из говна лоупольку вымесить.
От лампы можно оставить треть полигонов и качество не пострадает.
>>160791
Устарело, по сути. В том же дефферед режиме уже похуй, сколько поликов вообще. Да и для пк полигонаж не так страшен. Ну и современное ААА давно уже не запускается на хуящике360, ибо не тянет. Года так с 2007-2005.
Пока юнитеки не заявили что устарело, считается актуальным, а вообще, ты прав, всегда как-то похуй было на поликаунты, на глаз в максе заебись, значит и в юньке заебись.
Но как написать отдельные строки кода editor only? Зачем мне лишний раз грузить игру всякими выводами текста в консоль? Компилятор же отсеивает комментарии, как это провернуть с остальным?
хочу чтобы у меня был класс который бы хранил в себе все свои методы как делегаты, но при этом чтобы отдельно был список полезных делегатов и остальных. Подскажи как можно легко поделить методы на эти две категории?
легко. http://docs.unity3d.com/Manual/PlatformDependentCompilation.html
#if UNITY_EDITOR
код только для эдитора
#endif
полезно если в классе есть например описание гуи в котором ты редактируешь его поля.
Из-за особенностей отрисовки. Там, по сути, более изъёбистый алгоритм, который грузит меньше, чем форвард. Есть свои минусы, конечно.
>мустор в шейдорах
В душе не ебу. Видел такое, вроде, в скомпилированных шейдорах, но толком не разбирался.
>>160836
> юнитеки не заявили что устарело
Ну, так-то приоритет у справки очень низкий, а у русской ветки вообще пиздец. Да и писать, что полигоны не важны, это провоцировать кучу вопросов "но ведь есть разумные лимиты... а мне бы на ведроид.. а хуле тормозит.." и так далее. Юнитеки это решили и им заебись. Но, опять же, в современной йобе на персонажах гораздо больше, чем 5к трисов. И они это наверняка знают.
Используй атрибуты. При помощи атрибутов помечай полезные методы. А вообще, ты хуйню какую-то пишешь. Почитай про паттерны, может увидишь полезные конструкции.
private List<GameObject> _towers {get; set;} //делаю раз
_towers = new List<GameObject>(); //делаю два
\t\t \t_towers.Add(GameObject.FindGameObjectWithTag("Tower")); //делаю три
На нахуй!
NullReferenceException: Object reference not set to an instance of an object
должно работать. смотри где создаешь лист, и где добавляешь. может у тебя второе вызывается перед первым
Разобрался с этим. Когда всё в одном скрипте - работает, но когда я пытаюсь реализовать взаимодействие между скриптами - начинается вот эта хрень.
Вот есть у меня префаб gameObject1 со скриптом script1 и gameObject2 со скриптом script2. Нужно чтобы при создании префаба gameObject1 в скрипте script2 в коллекцию List<GameObject> добавлялась ссылка на gameObject1. Ну и при уничтожении gameObject1 эта ссылка из коллекции удалялась. Как это сделать?
А. Спасибо за совет.
На самом деле я хорошо подумал что пишу. Мне надо иметь возможность совать куда надо нужный метод который возвращает только да/нет к которому я могу обращаться по индексу, или по имени(для гуи). И сначала я все это держал в классах, но по мере рефакторинга все что осталось это один метод, имя и то полезен ли он. забил хуй, решил хранить это в одном классе как словарь с делегатами, а потом и сделал так чтобы оно само набивалось в словарь при создании инстанса.
указание полезности не столь важно, просто сэкономит мне время немного.
>>160871
где ты вызываешь третью строчку то? проверь правильность написания тега, проверь регистр.
алсо странно держать лист ради одной переменной, проще уж _towers.AddRange(GameObject.FindGameObjectsWithTag("Tower"))
и нулл у тебя towers == null, или towers[0] == null?
gameObject1 должен сам себя добавлять в script2. Коллекция public. В script1
void Start(){
FindObjectOfType<script2>()._towers.add(gameObject);
}
удалять так же,
void OnDestroy(){
бла бла, не помню как там метод удаления объекта из листа обзывается, но он там есть.
}
Бекфейс шейдер не учитывает освещение для внутреннней стороны полигона. То есть у тебя внутри лампы будет так-же светло как и снаружи. Хуярь внутренности, хотя бы упрощенные.
Лимит поликов - поняти условное. Зависит от важности предмета и положению его перед камерой. Лампа которую ГГ несет в руке в фпс не то же самое что лампа висящая на потолке 5 метрах от камеры. Стандартный ответ, добавляй поликов столько, чтобы читался и хорошо просматривался контур модели. остальное лишнее, удаляй их.
Модель внутреннюю полость стеклянного плафона. Будет заебись, отвечаю.
Еще совет, экономь не полики, а количество отдельных мешей и материалов. Вот это важно. На примере лампы - не нужно делать винтики, ручки, выключатель отдельными объектами. Все смерживай в один. По-хорошему у тебя должно быть два объекта и материала на лампу - один на корпус, один на стеклянный плафон. Потому-что у них шейдеры различаются.
В идеале вообще один объект, с одним полупрозрачным шейдером.
Порядок вызовов метода Awake не определён. Создавай список в конструкторе или прямо при объявлении поля класса.
ты это, очередность то учитывай.
создаешь лист и добавляешь в него ты на Awake. лучше уж напиши
private List<GameObject> list = new List<GameObject>();
чтобы лист создавался при создании инстанса, а не при Awake
Алсо для хранения листа который нужен штучно и отовсюду проще пользоваться конструкцией вроде
public class MyClass{
public List<хуйня> Data = new List<хуйня>();
static MyClassinstance;
public static Data GetMyClass(){
if(instance == null)instance = new Data ();
return instance;
}
и при первом обращении писать что-то вроде
MyClass class;
void Awake(){
class = MyClass.GetMyClass();
}
а дальше по коду class.Data.делайкакяхочу
меньше писать. да и поиск в сцене глобально не очень хорошо работает в юнити.
Awake вызывается сразу после создания объекта. Start - после того как уже все объекты были созданы (короче, Start выполняется в следующем фрейме после инстанса объекта). Естестественно, у тебя работает если GameController создается перед Cube, и не работает если наоборот.
Гугли очередность событий короче.
>Бекфейс шейдер не учитывает освещение для внутреннней стороны полигона.
Это если ты мудак и сэкономил один лишний проход. Если сделать два прохода, сначала отрезать бэк, а потом фронт - то всё заебись. Минусы - один полигон превращается, по сути, в два. Но при этом экономится память, экономится время на модель и т.д.
>экономь не полики, а количество отдельных мешей и материалов
Актуально для железа с говёной производительностью. То есть, пк с видяхами старше нолевых, все консоли и мобильники. Я бы посоветовал просто не делать много сложных материалов. Та же прозрачность, альфаналожение, вода и т.д. Объекты один хуй если делать по уму будут минимум на 50% заменяться лодами, а это существенно разгрузит рендер ведь лоды куда проще и более низкополигональны.
>В идеале вообще один объект, с одним полупрозрачным шейдером.
Нахера? В 3д редакторе кидаешь на разные полигоны разные материалы. Думаю, даже говномиксер так умеет уже. Потом экспортишь, меш один, а материалов несколько, настраиваешь в юнити и вуаля.
>Модель внутреннюю полость стеклянного плафона
Ну хуй знает, чаще всего это даже в 3д пакетах выглядит, как говно. Потому что получается две плоскости, между которыми ничего нет и это никак не скрыть из-за прозрачности.
Ты дурной какой-то. И злой как мамкин школьник.
>Если сделать два прохода, сначала отрезать бэк, а потом фронт - то всё заебись. Минусы - один полигон превращается, по сути, в два.
Зачем два прохода, если можно в один, к тому-же ты сам написал что "один полигон превращается, по сути, в два". А если нет разницы? В моем случае профит в том, что имеешь полный визуальный контроль над моделью. К тому-же текстурку на внутренней поверхности можно сделать отличной от внешней. А сделать банальный shell в 3dsmax - секундное дело.
>Актуально для железа с говёной производительностью.
>Я бы посоветовал просто не делать много сложных материалов.
Привет drawcall-ам передавай. Создай 100 мешей с одним материалом, и 100 мешей со 100 простыми материалами. Посмотрим. Батчинг конечно спасает иногда, но на него тоже ресурсы тратятся. На твои любимые лоды, кстати, тоже. Считать расстояния до камеры ведь тоже нужно, причем часто.
>В 3д редакторе кидаешь на разные полигоны разные материалы.
Читай про те же drawcalls.
>Ну хуй знает, чаще всего это даже в 3д пакетах выглядит, как говно.
Не вопрос, как говно. Но это самый простой способ. Иначе выглядит еще хуже. И опять-же можно нарисовать, например копоть на внутренней стороне стекла, если это вдруг керосинка.
Школьником я был очень добрым. Но однажды стрела попала мне в колено и я поел с ножа.
>Зачем два прохода, если можно в один
Зачем ебаться с десятком моделей, прихуяривая лишнюю геометрию, если можно хуйнуть десять строк кода один раз? Трава, листья у тебя тоже геометрией? Надо хорошенечко ебануться, чтобы так делать.
>drawcall
Актуально если делаешь не на пекарню. У меня террейн генерит что-то около ляма дк, и это далеко не такой охуенный террейн, как хотелось бы. И знаешь что? Нихуя. Это мобильник вздорвётся от ляма дк, у меня в сцене было и три ляма и нихуя. Если учесть, что у меня устаревшая видяха со слабым чипом, то на новых вообще до пизды дк. Батчинг в юнити работает хуй знает как, инстансил десяток мешей без скейлов, с одним материалом и нихуя не сбатчилось. Батчится только трава на террейне, лол. Физически собирается в один меш потому что. Но на производительность это особо не влияет.
>У меня террейн генерит что-то около ляма дк
Скрин пили.
>Трава, листья у тебя тоже геометрией?
Билборды это вообще другая херня, зачем смешивать теплое с мягким.
Террэйн у него на лям дк. Охуеть просто.
Ясно короче. Советы по оптимизации он еще раздает.
>Скрин пили.
Выдави из террейна гору. Это уже 1к дк. Экспортни хейтмапу, нарисуй на ней эррозийные разводы, засунь обратно. Это уже 2-3к. Добавь деревья и траву. Лям. Правда, пока что без лодов, с ними, по идее, подсократится. И да, деревья это террейн. Как и камни, и трава. Потому что детейл меши. Сосируй.
>Билборды это вообще другая херня
Одно и то же говно, те же самые дк. Ну сэкономишь ты один дк. Охуеть просто. Зато проебёшь час-два, пока подгонишь меши.
>GetChild
Оно самое, спасибо.
P.S. А если не городить безумных конструкций из GetChild, можно как-нибудь по имени объекта найти?
>Одно и то же говно, те же самые дк. Ну сэкономишь ты один дк. Охуеть просто. Зато проебёшь час-два, пока подгонишь меши.
Что я там подгонять должен? Ты что несешь вообще.
>Выдави из террейна гору. Это уже 1к дк
46 дк.
Просто признай что ты обосрался.
По прежнему жду скрина террэйна с 1кк дк.
>Правда, пока что без лодов, с ними, по идее, подсократится.
С лодами у него дк подсократятся. Охуеть просто.
Ты не путаешь поликаунтом, поехавший?
То есть у тебя вместо одной модели в сцене сменяют друг-друга две разные, и при этом количество дк падает? Ебать ты девелопер
Да бля, я же сказал
>>на глаз хуяришь, если в Максе заебись, то и в юньке заебись.
Нормальный тридэшник умеет выбрать копромис между количеством полигонов и видом модели. Если нет - пиздуй учиться прекрасному, хули.
>У меня террейн генерит что-то около ляма дк
>около ляма дк
Лол, минимально комфортный предел на современом железе 10к, школьник. Товарищи из ЕА в какомт-то из последних бугурдфилдов умудрились и все 50к выжать, тех у кого тормозит объявили еретеками и призвали абгрейдить пекарню.
Бывает.
It is a common thought that the lower the polygons in a model, the faster it will be rendered. This is really relative and depends on many factors.
On a modern PC and consoles, vertex cost is low. Very low. GPUs originally only rendered triangles, so all the vertices:
-Had to be transformed by the CPU (including clipping).
-Had to be sent to the GPU memory from the main RAM.
Nowadays, all this is handled inside the GPU, so the performance is extremely high. 3D artists usually have the wrong feeling about polycount performance because 3D DCCs (such as Blender, Max, etc) need to keep geometry in CPU memory in order for it to be edited, reducing actual performance. Truth is, a model rendered by a 3D engine is much more optimal than how 3D DCCs display them.
On mobile devices, the story is different. PC and Console GPUs are brute-force monsters that can pull as much electricity as they need from the power grid. Mobile GPUs are limited to a tiny battery, so they need to be a lot more power efficient.
To be more efficient, mobile GPUs attempt to avoid overdraw. This means, the same pixel on the screen being rendered (as in, with lighting calculation, etc) more than once. Imagine a town with several buildings, GPUs don't really know what is visible and what is hidden until they draw it. A house might be drawn and then another house in front of it (rendering happened twice for the same pixel!). PC GPUs normally don't care much about this and just throw more pixel processors to the hardware to increase performance (but this also increases power consumption).
On mobile, pulling more power is not an option, so a technique called "Tile Based Rendering" is used (almost every mobile hardware uses a variant of it), which divide the screen into a grid. Each cell keps the list of triangles drawn to it and sorts them by depth to minimize overdraw. This technique improves performance and reduces power consumption, but takes a toll on vertex performance. As a result, less vertices and triangles can be processed for drawing.
Generally, this is not so bad, but there is a corner case on mobile that must be avoided, which is to have small objects with a lot of geometry within a small portion of the screen. This forces mobile GPUs to put a lot of strain on a single screen cell, considerably decreasing performance (as all the other cells must wait for it to complete in order to display the frame).
To make it short, do not worry about vertex count so much on mobile, but avoid concentration of vertices in small parts of the screen. If, for example, a character, NPC, vehicle, etc is far away (so it looks tiny), use a smaller level of detail (LOD) model instead.
https://github.com/okamstudio/godot/wiki/tutorial_3d_performance
It is a common thought that the lower the polygons in a model, the faster it will be rendered. This is really relative and depends on many factors.
On a modern PC and consoles, vertex cost is low. Very low. GPUs originally only rendered triangles, so all the vertices:
-Had to be transformed by the CPU (including clipping).
-Had to be sent to the GPU memory from the main RAM.
Nowadays, all this is handled inside the GPU, so the performance is extremely high. 3D artists usually have the wrong feeling about polycount performance because 3D DCCs (such as Blender, Max, etc) need to keep geometry in CPU memory in order for it to be edited, reducing actual performance. Truth is, a model rendered by a 3D engine is much more optimal than how 3D DCCs display them.
On mobile devices, the story is different. PC and Console GPUs are brute-force monsters that can pull as much electricity as they need from the power grid. Mobile GPUs are limited to a tiny battery, so they need to be a lot more power efficient.
To be more efficient, mobile GPUs attempt to avoid overdraw. This means, the same pixel on the screen being rendered (as in, with lighting calculation, etc) more than once. Imagine a town with several buildings, GPUs don't really know what is visible and what is hidden until they draw it. A house might be drawn and then another house in front of it (rendering happened twice for the same pixel!). PC GPUs normally don't care much about this and just throw more pixel processors to the hardware to increase performance (but this also increases power consumption).
On mobile, pulling more power is not an option, so a technique called "Tile Based Rendering" is used (almost every mobile hardware uses a variant of it), which divide the screen into a grid. Each cell keps the list of triangles drawn to it and sorts them by depth to minimize overdraw. This technique improves performance and reduces power consumption, but takes a toll on vertex performance. As a result, less vertices and triangles can be processed for drawing.
Generally, this is not so bad, but there is a corner case on mobile that must be avoided, which is to have small objects with a lot of geometry within a small portion of the screen. This forces mobile GPUs to put a lot of strain on a single screen cell, considerably decreasing performance (as all the other cells must wait for it to complete in order to display the frame).
To make it short, do not worry about vertex count so much on mobile, but avoid concentration of vertices in small parts of the screen. If, for example, a character, NPC, vehicle, etc is far away (so it looks tiny), use a smaller level of detail (LOD) model instead.
https://github.com/okamstudio/godot/wiki/tutorial_3d_performance
Понятно, не дочитал до слешей и передавала в Find сразу искомый объект, поэтому он мне налл возвращал.
http://docs.unity3d.com/Manual/script-MotionBlur.html
почему ИС в игре взлетает на метр от свей позиции в редакторе?
В упдате последняя строчка. Vector.up это как раз метр вверх, ты к сгенерированной позиции прибавляешь этот метр. Нахуя ты это делаешь?
Просто не люблю эти бездушные формулы. Иногда добавляю случайные красивые числа в них, чтоб было подушевней. Ну к примеру взятъ и с нихуя поделить на число ейлера там. Не кодить же всегда по правилам пытаясь выдрочить алгоритм до швейцарских часов. Тогда ФАН пропадает.
>Что я там подгонять должен?
Дополнительная геометрия не с куста берётся.
Могу дать скрин с уёбищной горой за пять секунд на 1к дк. Полную сцену кидать не буду.
>>160924
Поликов тоже поменьше будет, но я именно о дк. Более простые материалы, меньше текстур, билборды вместо мешей. Дк падает существенно, как и полигонаж.
>>160928
ДК не на столько ресурсоёмкая операция. БФ тормозит не поэтому.
А потом
>Двач, помоги, я мудак11
Ты бы сначала без своих экспериментов добился нормальной работы, а потом уже смотрел к чему приводят твои действия. В таком случае откат все исправит.
Сделал облачка. Вроде мелочь, а приятно.
Изза фрапса же глючит.
http://docs.unity3d.com/Manual/DeactivatingGameObjects.html
А тут вообще скрипты написаны жавадебилом на шарпе, поэтому второй вообще не работает.
http://docs.unity3d.com/Manual/InstantiatingPrefabs.html
А на русском там вовсе ад какой-то. Я бы и за бесплатно исправлял документацию немножко, пока листаю её.
мне нужно управлять скоростью (плавностью) мерцания с помощью значения PulsationSpeed,
но на ноле всё-равно продолжает мерцать
а значения в границах 0 -1 (типа 0.0001) почему-то не работают, только целые.
m_Light.intensity = PulsationPower умн Mathf.PerlinNoise(m_Rnd + Time.time, m_Rnd + 1 + Time.time умн PulsationSpeed);
>значения в границах 0 -1 (типа 0.0001) почему-то не работают, только целые
Почитай про типы данных. Ты используешь int, а тебе нужен float.
а чекбокс для его параметров?
Ты вообще совой код читаешь?
Mathf.PerlinNoise(0) != 0 - проверь, блядь!
Если хочешь плавного затухания
Mathf.PerlinNoise(Хуnta) х PulsationSpeed;
охуенчик. нагар на втором слое дает эффект. пимпочку побольше, добавить фитиль и сделать огонь ровней и будет заебись.
Текстура металла очень равномерная.
Она не могла заржаветь по всей поверхности одинаково. Потертости на острых гранях добавь.
А вообще - тебе дорога в td/, там обосрут помогут, а не здесь.
>unity 5
>убрали добавление компонента по строке
>теперь вместо одной строчки нужно две: t = Type.GetType("name"); AddComponent(t);
Но если ты знаешь лучший способ как выбрать какой компонент добавить из скрипта, то можешь рассказать.
я брутфорсом. встал и пошел. без знаний о том как писать код.
начал с того что друган предложил делать игру, код пишу я, а он артист. потом он стал артист-пидор и ушел от меня, а меня уже поперло и понравилось.
>>161063
AddComponent(Type.GetType("name"));
нахер ты еще отдельную переменную под тип заводишь? один хер писать сразу нужный тип проще чем искать его по строке.
>>161069
ты чего с энамом ебешся? получай сразу нужные типы из рефлекшена.
List<Type> MyTypes = new List<Type>();
foreach (var type in System.Reflection.Assembly.GetAssembly(typeof(MyClass)).GetTypes())
if(type.IsClass && !type.IsAbstract && type.IsSubclassOf(typeof(MyClass)))
MyTypes.Add(type);
>получай сразу нужные типы из рефлекшена
Мне надо в инспекторе выбрать тип компонента. Я сделал public ComponentType component; и там уже выбираю какой надо.
ну так классы компонентов то хоть что-то разумное обьединяет? наследование там, интерфейс?
ну тогда чего мешает то? схватил список всех типов, перевел попутно в массив стрингов, вывел через http://docs.unity3d.com/ScriptReference/EditorGUILayout.Popup.html а дальше хватаеш нужный тип на нужном индексе. и не надо каждый раз лезть в энам.
Это надо собственный редактор писать. Слишком хардкорно для меня.
Потому что даже в 2д играх используется ось Z, и ее значение не всегда равно 0.
Потому что 3д ничем от 2д не отличается на уровне движка.
>vector2 легче гораздо
и вестор3, и вектор2 обычно реализованы как float[4] для процессорной векторизации
1) Как отобразить все это графически, визуализировать. Юнити знаю не очень, поэтому и начал делать игру, дабы подучиться.
2) Как можно сделать в одном скрипте классы и методы и их передавать в основной скрипт?
Пик-рандом.
Тогда все в порядке. А то я мимо подумал, что в треде отсталых начали появляться умные посты.
Вроде большое комьюнити и т д,
но блядж как сделать что бы по клику на объект открывался его гуи.
Ну и у многих объектов похожие гуи, т.е надо заюзать шаблон на сишарпе, а отдавать какую-то обертку списка.
Как это сделать на юнити? что бы в итоге хранить только список объектов с параметрами
>Как это сделать на юнити?
Элементарно. Только причем здесь коммунити и твоя глупость?
Создай префаб UI, повесь на него скрипт. Проще всего сделать синглтон с твоим интерфейсом. в скрипте объекта по клику вызывай что-то MyUI.intance().ShowUI(this);
там уже что хочешь то и дело, ссылка на объект есть.
Что предлагаешь? В текстовом редакторе уровни ебашить?
Кстате бамп вопросy: как запилить в юнити теаловый редактор уровня? Есть какие-нить гайдлайны? Кто делал подобное?
Гугли.
Куда все сдриснули?
У лампы появилась подружа,
и управление "дрожалками".
Я думал, а чего у меня метал не получается?
Оказывается потому,
что я его настраивал в тёмных помещениях.
На открытом пространстве збс выглядит,
как по мне.
Изменить прокрутку на построчную, лол?
Спасибо за линк, его уже читал перед тем, как пилить свой редактор. Таки ущербный способ: ну добавил я объект со скриптом Грида на сцену, но получается, что он будет экспортирован в игру? Ок, OnDrawGizmos не будет вызываться в рантайме, но этот ненужный объект будет торчать в сцене. Сука пздц. Впрочем, я не удивлен, юнити такой юнити.
>добавил я объект
>этот ненужный объект будет торчать в сцене
Не добавляй объект, в чем проблема? Если тебе нужно просто прилипание к сетке, то делай EditorWindow и там рисуй настройки, меняй положение объектов в Selection.
Это да, может и так.
Кстати, есть ли какой-нибудь способ проверить состояние сцены на предмет косяков перед ее сохранением/экспортом? Типа если криворукий дизайнер поместил перса наполовину в стене так, что в игре он будет застрявшим в текстурах, то при экспорте круто было бы это проверить и выдать ошибку. Возможно ли это в юнити?
http://rghost.ru/private/8gqbtcWDc/a9f98b8ed4b60ade9474afc7f705286f
Скачай этот проект и посмотри.
У меня тени есть,
но если мягкие, то страшные какие-то.
Приходится довольствоваться жёсткими.
но тут снизу постучал >>161480. слишком туп, чтобы выучить полпарадигмы и простейший язык, слишком жаден, чтобы купить написанное до него.
>вхождения в индустрию
Не пердани там от своей охуенности.
Планка на месте, база расширилась - прирост самородков увеличился вдвое.
http://answers.unity3d.com/questions/205391/how-to-get-list-of-child-game-objects.html
и это в ЛУЧШЕМ НА СВЕТЕ движке?
А еще в скриптах можно делать такие супер-комбо: transform.transform.transform.transform.transform.transform.transform.transform.transform.transform
Что это? В юнити нет обычной иерархии. Там только можно указать родительский компонент (матрицу) трансформации. В редакторе это и рисуется как иерархия.
>инженера
Всмысле архитектора юнити? Здесь соглашусь.
>>161630
С этим все через жопу как всегда в юнити. Тут идет размытие концепций. С одной стороны да, связь между родительским и дочерним объектом в том, что трансформация дочернего объекта определена в пространстве, заданном трансформацией родительского объекта. А как быть с владением? Владеет ли родительский объект дочерним? Здесь хуй поймешь. Но если ты удаляешь родительский объект, то удаляются все дочерние, то есть родительский объект определяет время жизни дочерними объектами -> родительский объект владеет дочерними -> по логике у родительского объекта должен быть список дочерних объектов, доступный извне. Но его нетути.
танцор, ты?
как вы не поймете, что в юнити всё создано для домохозяюшек, которые ведь могут и собрать свой крэппи берд так, что потребуется 20 этажей трансформов - а в юнити это уже есть, вот это удача! ЦА довольна, профит есть.
Нужно запилить распадение 2d объекта на части (к примеру на кубики). По каким тэгам искать ?
>танцор, ты?
Танцора нет, я вместо него.
>в юнити всё создано для домохозяюшек
В чем была проблема запилить удобный и простой движок без такой ужасной архитектуры? Помешали скорее всего руки из жопы.
С другой стороны достойных альтернативных движков для инди игр нет (Bitsquid подавал надежды https://www.youtube.com/watch?v=yU6lkhjcOp4 , но его зохавал Autodesk), так что приходится колоться, но жрать кактус.
Чем тебе не нравится архитектура? Тем, что destroy удаляет все дочерние объекты? А если бы не удалял? В 99% с объектом нужно удалить и дочерние. Это удобнее. В юнити делают как удобнее, лучше, эффективнее, а не с абстрактной точки зрения какой-то "правильной" архитектуры, которую ты себе придумал.
Чем не нравится архитектура отписались ананы выше, нет смысла их повторять. Архитектура ну то и архитектура, чтобы все было логично и предсказуемо, а не "здравствуй жопа новый год".
Я поверю, что в Юнити нормальная архитектура, а не набор антипаттернов, если ты объяснишь мне, что делает вот эта строчка кода HandleUtility.AddDefaultControl(GUIUtility.GetControlID(FocusType.Passive)); пиздец, два синглтона в одной строчке кода
во-первых, ты притащил что-то из построения кастомных контролов с нуля, что вызывает минимум поднятие одной брови.
во-вторых, ты только что назвал статику/хелпер синглтоном, так что про паттерны я тебя от всей души прошу не рассуждать.
>HandleUtility
Helper functions for Scene View style 3D GUI.
>GetControlID
Add the ID for a default control. This will be picked if nothing else is.
>GUIUtility
Utility class for making new GUI controls.
>GetControlID
Get a unique ID for a control, using an integer as a hint to help ensure correct matching of IDs to controls.
>FocusType.Passive
This control can never recieve keyboard focus.
Крч, установить по-умолчанию контролл который будет выбран если пустой клик по 3д-виду.
Ты объясни какая архитектура должна быть. Да, иногда не хватает функции получить лист из чилдов, но это решается одним расширением на ~8 строчек, которое можно использовать сколько угодно раз в виде transform.GetChildren().
Я например считаю не логичным, что удаление родителя не должно повлечь за собой удаление детей. Ты очевидно идеалист и пихаешь 10 уровней абстракций в свои программы считающей 2+2 лишь бы все по паттернам. Не волнуясь при этом о производительности. Но движок обязан волноваться об этом и порой приходится идти на компромиссы.
Ну и опять же, жду описания "нормальной" архитектуры.
В тот момент, когда должен произойти распад, подменяешь объект на заранее подготовленный префаб этого объекта состоящий из кубиков.
List<GayObject> getChidren() там transorm-у дали еще такой костыль с итератором. На самом деле разрабы юнити, если вы это читаете, спасибо вам что это делаетсйя не через getColor() или не через getShader(). Так было бы еще запутанней.
Только я не вкурил, там даже списка чтоле в GameObject нету чтоли? Даже ПРАЙВАТ? Так откуда тогда трансформ его берет. Где-тож этот список храниться в итоге. Почему для него просто нету обычного геттера? Сука ебал вашу юнити, его кто проектировал вообще. Этож не какой-то заумный дизайн. Это блядь просто очевидная хуйня. Пусть исправляют. Я сказал.
Причем тут забота о перформансе обхода списка? Список дочерних объектов так и так нужен. Хуевая отмаза. Реальность это то что писали по ходу школьники.
Через 5 часов гуру из юнити будут вещать.
>Где-тож этот список храниться в итоге.
в трансформе и хранится.
>Почему для него просто нету обычного геттера?
есть.
>Причем тут забота о перформансе обхода списка?
какого списка? там по дочерним трансформам ничего не обходится.
>Где-тож этот список храниться в итоге.
В обычном массиве
>Почему для него просто нету обычного геттера?
Чтобы ты своими шаловливыми ручонками не испортил внутренности.
>какого списка? там по дочерним трансформам ничего не обходится.
[code]
foreach (Transform t in transform) {
GameObject go = t.gameObject;
}
[/code]
>спасибо вам что это делаетсйя не через getColor() или не через getShader()
получить список дочерних объектов можно используя любой тип компонента - если этот компонент есть у всех потомков. Трансформ есть у всех.
Ну и если теоретизировать. Допустим была бы возможность получить список геймобджектов. И что бы ты с ними стал делать? Работать с компонентами конечно же.
Функция эта возможно где-то есть в ядре, а в апи она не попала по причине ненужности, я предполагаю так.
>ты притащил что-то из построения кастомных контролов с нуля
И што?
>ты только что назвал статику/хелпер синглтоном
Статику-хуятику, я так подозреваю, что по крайней мере в классах HandleUtility и SceneView cодержит состояние (state, хз как это по-русски), так что статика пролетает.
И вообще,
>статику/хелпер
это по-твоему паттерны? Кто бы кукарекал.
>Ты очевидно идеалист и пихаешь 10 уровней абстракций в свои программы считающей 2+2 лишь бы все по паттернам.
Ну хз, с работы пока не выгоняют. Впрочем, мои работодатели тоже видать идеалисты, так ведь?
>Ты объясни какая архитектура должна быть.
У нас следующая ситуация: есть множество игровых объектов, у каждого объекта по умолчанию есть компонент Трансформ.
У нас есть 2 случая.
1й случай: трансформации игрового объекта можно определить в пространстве трансформации другого (не родительского, а любого) объекта. Когда программа устанавливает родительский трансформ у трансформа объекта (метод Transform.setParent), она подразумаевает, что выполняется только это действие. Т.е. трансформ данного объекта определен в пространстве вот этого трансформа. Все. Как в линупсе - каждая утилита должна выполнять только то, для чего она предназначена, но не больше.
2й случай: один объект может определять время жизни другого. Для этого определяем методы GameObject.addChild, GameObject.removeChild, GameObject.getChildren, GameObject.getParent. Когда программа добавляет один объект в другой с помощью GameObject.addChild, она подразумевает, что выполняется только это действие. То есть родительский объект владеет дочерним, и когда родительский объект удаляется, удаляется и дочерний. Все. Ни больше, ни меньше.
В каноничных движках и в типичных gui-фреймворках первый случай прозрачно вкладывают во второй (вроде и в Unreal так же): если добавляешь один объект в другой (GameObject.addChild), то это так же подразумевает, что дочерний объект определен в пространстве родительского. Тоже чревато косяками, но терпимо. Связей между трансформами нет.
В компонентных движках вероятно всегда есть второй случай, чтобы было удобнее определять время жизни объектов. Первый случай лучше решать байндингами: у компонента MeshRenderer есть свойство transform (скажем, матрица), в которую можешь записывать умножение компонента transform (скажем, типа SRT) этого объекта с компонентом transform "родительского" объекта. Вообще, можешь писать в трансформ рендерера что угодно, матрицу, полученную из кватерниона, из SRT, собранную из замысловатых базисных векторов в скрипте, да что угодно. Вот здесь хорошо написано про трансформы в компонентных движках http://bitsquid.blogspot.de/2014/10/building-data-oriented-entity-system.html
Но в юнити... одно только недоумение этого анончика >>161613 чего стоит. Я тоже не сразу допер, как оно все там устроено с родительско-дочерними отношениями, и до сих пор подозреваю, что там есть какой-нить побочный эффект, который начнет творить хуйню в один прекрасный момент. Я даж не знаю, как это можно в человеческий вид привести.
Впрочем, это все флуд и оффтоп, думаю, не стоит мне продолжать кукарекать, ну если только по запросу анончика.
>Ты очевидно идеалист и пихаешь 10 уровней абстракций в свои программы считающей 2+2 лишь бы все по паттернам.
Ну хз, с работы пока не выгоняют. Впрочем, мои работодатели тоже видать идеалисты, так ведь?
>Ты объясни какая архитектура должна быть.
У нас следующая ситуация: есть множество игровых объектов, у каждого объекта по умолчанию есть компонент Трансформ.
У нас есть 2 случая.
1й случай: трансформации игрового объекта можно определить в пространстве трансформации другого (не родительского, а любого) объекта. Когда программа устанавливает родительский трансформ у трансформа объекта (метод Transform.setParent), она подразумаевает, что выполняется только это действие. Т.е. трансформ данного объекта определен в пространстве вот этого трансформа. Все. Как в линупсе - каждая утилита должна выполнять только то, для чего она предназначена, но не больше.
2й случай: один объект может определять время жизни другого. Для этого определяем методы GameObject.addChild, GameObject.removeChild, GameObject.getChildren, GameObject.getParent. Когда программа добавляет один объект в другой с помощью GameObject.addChild, она подразумевает, что выполняется только это действие. То есть родительский объект владеет дочерним, и когда родительский объект удаляется, удаляется и дочерний. Все. Ни больше, ни меньше.
В каноничных движках и в типичных gui-фреймворках первый случай прозрачно вкладывают во второй (вроде и в Unreal так же): если добавляешь один объект в другой (GameObject.addChild), то это так же подразумевает, что дочерний объект определен в пространстве родительского. Тоже чревато косяками, но терпимо. Связей между трансформами нет.
В компонентных движках вероятно всегда есть второй случай, чтобы было удобнее определять время жизни объектов. Первый случай лучше решать байндингами: у компонента MeshRenderer есть свойство transform (скажем, матрица), в которую можешь записывать умножение компонента transform (скажем, типа SRT) этого объекта с компонентом transform "родительского" объекта. Вообще, можешь писать в трансформ рендерера что угодно, матрицу, полученную из кватерниона, из SRT, собранную из замысловатых базисных векторов в скрипте, да что угодно. Вот здесь хорошо написано про трансформы в компонентных движках http://bitsquid.blogspot.de/2014/10/building-data-oriented-entity-system.html
Но в юнити... одно только недоумение этого анончика >>161613 чего стоит. Я тоже не сразу допер, как оно все там устроено с родительско-дочерними отношениями, и до сих пор подозреваю, что там есть какой-нить побочный эффект, который начнет творить хуйню в один прекрасный момент. Я даж не знаю, как это можно в человеческий вид привести.
Впрочем, это все флуд и оффтоп, думаю, не стоит мне продолжать кукарекать, ну если только по запросу анончика.
>если этот компонент есть у всех потомков. Трансформ есть у всех.
Это кстати тоже фейспалм. Нужно заиметь скрипт в сцене, единственный способ - создать объект с твою мать трансформом, и в него запихать скрипт. Ну ок, есть там какой-то способ добавить скрипт без объекта, но хз как его использовать.
Щас тебе ответят, что
>В юнити делают как удобнее, лучше, эффективнее
И именно поэтому все существующие релизы на юнити тормозят, лагают и сыпят багами.
>Это кстати тоже фейспалм. Нужно заиметь скрипт в сцене, единственный способ - создать объект с твою мать трансформом, и в него запихать скрипт.
Это весьма разумное решение, т.к. 98% скриптов и других компонентов используют трансформ.
Сам трансформ - пара десятков байт в памяти и ноль процессорного времени. Не думаю, что голый трансформ используется где-то в Update внутри движка.
>>161846
>И именно поэтому все существующие релизы на юнити тормозят, лагают и сыпят багами.
ДЖОННИ, ЭТО ТЫ? ДЖОННИ, ДОПИЛИВАЙ ОКУЛУС РИФТ, КИРИЛЛЫ ЗАЖДАЛИСЬ БЛЯДЬ
мимо велосипедировал такую же систему
>Ну хз, с работы пока не выгоняют. Впрочем, мои работодатели тоже видать идеалисты, так ведь?
Такой подход вероятно отлично работает и легко поддерживается в энтерпрайзе, но в геймдеве опять же надо уметь задействовать максимум ресурсов. Пусть даже в ущерб идеалам.
>В каноничных движках если добавляешь один объект в другой, то это так же подразумевает, что дочерний объект определен в пространстве родительского. Связей между трансформами нет.
Эээээ? Если дочерний объект определен в пространстве родительского, то это и значит, что трансформ дочернего зависит от родительского. Явно это указано или прописано в алгоритме обновления не играет никакой роли.
>Первый случай лучше решать байндингами ...
Усложнение работы ради "чистоты"
Я довольно долго пытался придумывать компонентную архитектуру движка с прферансом и распутными женщинами, но в итоге скатился к тем же решениям, которые приняли в Юнити.
>И што?
и хде тебе это надо? какие твои потребности стандартные контролы юнити 4 не удовлетворяют?
>это по-твоему паттерны?
где я это сказал, м?
а вообще ты не сделаешь из хелпера синглтон, просто добавив в него поля. хоть стейком его назови.
>я так подозреваю
ты слишком уверен в себе для подозреватора, не находишь?
а вообще продолжай, мне пока нравится с тобой общаться.
>пара десятков байт в памяти и ноль процессорного времени
Вот этот дядечка тебе пояснит по хардкору, что такое процессорный кэш и как пара десятков там и здесь может похерить производительность https://www.youtube.com/watch?v=WDIkqP4JbkE
Бля, остановите меня кто-нить, у меня сегодня месячные, охота на кого-то сорваться.
>а вообще продолжай, мне пока нравится с тобой общаться.
Вот после этого ты идешь нахер. Дорогу показать?
>Я довольно долго пытался придумывать компонентную архитектуру движка с прферансом и распутными женщинами, но в итоге скатился к тем же решениям, которые приняли в Юнити.
Потому что ты типичный 95% быдлокодер, как и вся команда Юнити. Вы неспособны написать красиво, у вас нет знаний и нет врожденной способности учиться.
>>161860
>какие твои потребности стандартные контролы юнити 4 не удовлетворяют?
Потребность не бугуртить от быдлокода. Юнити полна быдлокода, быдлорешений и антипаттернов.
>Потому что ты типичный 95% быдлокодер, как и вся команда Юнити. Вы неспособны написать красиво, у вас нет знаний и нет врожденной способности учиться.
И тут ты такой залетаешь с примерами движков где все "по канону".
>и хде тебе это надо? какие твои потребности стандартные контролы юнити 4 не удовлетворяют?
>>160578
> В делегате ловим событие о клике, потом помечаем событие как использованное, чтобы оно не обрабатывалось самим редактором сцены. Вроде все норм. Но если юзер кликнул левой кнопкой мыши на какой-нибудь объект помимо редактируемого террейна, то фокус переносится на кликнутый объект. Какого блять хуя?! Неужели недостаточно того, что я пометил событие, как использованное?! Оказывается, нет. А знаете, что нужно сделать, чтобы это исправить? Вот это: HandleUtility.AddDefaultControl(GUIUtility.GetControlID(FocusType.Passive));
>Вот после этого ты идешь нахер. Дорогу показать?
Спасибо, не хочу. Но я верю тебе, что ты хорошо знаешь туда дорогу. Видимо, часто бываешь.
ну что не везет-то мне? в кои-то веки собеседник не говнокодер, а какой-то намек на инженера, и тот ебнутый попался.
Может уже сам нагуглишь инфу по архитектурам и движкам? Скорее всего ты прочитаешь статейку от быдлокодера на первой ссылке гугла, ведь способности найти и пару лет поизучать умные книги у тебя нет. Зачем мне тратить время на объяснение сложных вещей человеку, заведому неспособному их понять? Продолжай сидеть на юнити.
я конечно извиняюсь, но это выглядит как нытье в стиле: "мне подарили машину, а она не того цвета как я хотел!"
>намек на инженера
Они все ебнутые. С ними бесполезно спорить. Зануды. Все равно переспорят. Самое смешное - это наблюдать со стороны за срачем ДВУХ инженеров.
"Дареному (бесплатному) коню в зубы не смотрят". Ты это хотел сказать. Согласен - не смотрят. Никто не жалуется на цвет машины. Просто факт - у коня зубы гнилые, машина ржавая, а Юнити написана левой пяткой. Но никто не жалуется и не смотрит. Бесплатно же. Посмотри вокруг - едят говно, нахваливают, ложками гремят! Красота! Зачем рассматривать альтернативный ресторан? Вот же тут - нормальное бесплатное говно!
У тебя где-то проблема с определением эмоций и смыслов. Скорее всего просто читать не умеешь.
Я знаю, это игра такая, кто скажет последнюю фразу, я в школе лет 15 назад в такую игру играл.
>А нахуя хранить объект целиком, вместе с трансформом, в процессорном кэше?
Я даже не знаю чем тебе помочь. Напрочь нет понимания что такое кэш. Тут парой обучающих постов и роликов не обойтись. Тут пробелы в знаниях серьезные такие.
Такова реальная жизнь. Даже в твоем организме есть врожденные косяки и убогая архитектура. И ничего, живешь ведь как-то.
А кто нарушает? Тут юнити фанаты всех нахуй посылают. А люди просто зашли конструктивно обсудить существующие проблемы архитектуры двигателя.
>наблюдать со стороны за срачем ДВУХ инженеров.
Действительно, что за придурки, даром же штуки четыре баксов в месяц получают.
В моем - нет такого! Это у тебя походу еще и организм ущербен. (Заметно кстати по уровню интеллекта в сообщениях). Но так не у всех.
>А нахуя хранить объект целиком, вместе с трансформом, в процессорном кэше?
Посмотри это видео, там чел хорошо про то рассказывает.
Сам пидор. У вас всегда тут так. Только скажешь что в юнити хуево работает (обоснованно, с примерами, неизлечимо) - как тут же "пидор", "пошел нахуй", "бесплатно же". Вся суть юнити фаната. За отсутствием у вас конструктива (а так же способности нормально общаться) - вынужден принять вашу капитуляцию и уйти спать, зная то, что архитектуру Юнити оправдать невозможно. ТАКУЮ кривизну Юнити-двигателя даже самые преданные фанаты не в состоянии объяснить и оправдать.
Все равно не могу понять. Вот смотрю на описание GuiUtility.GetControlID https://docs.unity3d.com/ScriptReference/GUIUtility.GetControlID.html , смотрю там на пример, и все равно не понимаю, что эта функция делает. Если она возвращает айди контрола, то почему параметр функции - enum? Контрол - это типа кнопка или чекбокс или что-то иное?
Умелый тралл может творить чудеса с любым тредом.
Вот в юнити невозможно сделать тряпку, а в юиче с апекс тулом запросто.
>>161916
и отдельно еще валялась хуйня специально для тряпок на персонажах которая работает получше.
unreal engine
Своими умными книгами можешь подтереться. Я прошу тебя назвать хоть один каноничный движок к которому у тебя нет притензий. Не можешь назвать? Тогда для чего весь этот фарс? Можешь взять путеводитель и проследовать нахуй из треда.
Такого количества обосрамсов я конечно давно не видел. Хоть в этом плане повеселил.
>Не можешь назвать?
Могу. Но ТЕБЕ - не скажу.
>Такого количества обосрамсов я конечно давно не видел. Хоть в этом плане повеселил.
Не сработает так отмыться, не сработает. обсирался тут только ты. Это видно в постах выше. Иди спи.
>Я прошу тебя назвать хоть один каноничный движок к которому у тебя нет притензий.
OGRE - архитектура безупречна, но он староват, у него нет редактора и чтобы разобраться в нем, нужно быть хардкорным программером.
Unreal 4 - практически идеал, но пилить на нем инди-хуинди для мобилочек как-то черезчур.
В целом, у Юнити нет конкурентов в нише инди, поэтому все охуевают, по пользуются им.
развелось пидоров с паттернами в этом случае. я вот знаю одного ужасного пидора который пишет шейдеры и он тоже кудахчет "паттерны, ООП, прототипирование, да я в гейдеве миллиард лет". а как спросил у него что он делает такого что принципиально отличается от того что делаю я, так он замялся.
а хуй его знает как оно работает. мне не нужно, я не задаю такие вопросы и в управление в сцене не лезу.
>>161925
и правда. хотя написали что они там хорошо поколдовали.
>Порой бывает так сложно объяснить идиоту простые вещи.
потом то он напрыгнул конечно в ответ, но я выдержал оборону, так как его главным аргументом было "ты кирилл и у тебя ничего нет", а я тот кирилл который уже кучу времени периодически спамит сприншотами с генератором террэйна и с недавних пор ИИ. в итоге он не смог показать член больше чем мой и перестал меня тревожить.
>Я таки и не ожидал иного ответа.
ну а хули? я хуй простой который стал писать код чтобы развлечь себя. до тех пор пока я с этим не взаимодействую, совершенно не важно существует ли оно.
и похоже что те люди которые придумали шарп и юнити тоже не очень то от меня этого хотели.
Я просто спать пошёл, зачем мне столько времени сраться на форумах для школьников.
Знаешь, иногда скорость разработки гораздо важнее, чем скорость работы игры. Хотя ты этого не поймёшь, зачем мне годная архитектура, когда кеш процессора!!!1 олололо
А что тут ещё делать? ГД и так полон тупых анскилловых детей без игор.
Создаю empty object, на него навешиваю LineRender с определёнными параметрами (в том числе и материал) и в скрипте в функции SetupLine задаю параметры:
shootLine = gameObject.GetComponent<LineRenderer> ();
startColor = new Color(225,225,225);
endColor = new Color(225,225,225,143);
shootLine.SetColors(startColor,endColor);
shootLine.SetWidth(0.03f,0.03f);
shootLine.SetVertexCount(2);
shootLine.SetColors(startColor,endColor);
Ну и в Update прописываю позиции
shootLine.SetPosition(0,enemyYPos);
shootLine.SetPosition(1,baseXPos);
Всё вроде бы ок, линия создаётся, но цвет у неё белый - что в начале что в конце, хотя цвет я прямо таки явно указываю и применяю.
ЧТО Я ДЕЛАЮ НЕ ТАК !?
дала им родина префабы, нет, не хочу, хочу жрать говно!
материал на рендерере поставь/поменяй.
shootLine.material = new Material(Shader.Find("Diffuse")); или любую другую хуйню.
>endColor = new Color(225,225,225,143);
вот это
альфа в Color меняется от 0 до 1, по умолчанию 1
На будущее: для тестов используй явно отличающиеся друг от друга параметры, например в случае с цветами синий и красный. Так будет легче разобраться. По крайней мере ты бы понял, что SetColors работает как надо, а с альфой что-то не так. И скорее всего сам бы разобрался.
Вместо Color используй Color32, для того чтобы задавать значения в RGB-палитре.
В простом Color значения цветов задаются в диапазоне от 0 до 1.
ты опять выходишь на связь? тебе еще вчера сказали - продолжай жрать юнити, необучаемый. у тебя нет других вариантов.
(С,D) содержит отвертку и гаечный ключ. Допустим подбираем ключ, что нужно прописать в сцене? Просто поменять значение переменной "Ключ" с 0 на 1 и запретить дальнейшее изменение переменной ?
То есть весь квест это изменение переменных, модификация сценой других сцен и перемешение между ними. Стало быть навыков программирования требуется совсем мало?
Слышал что на c# все пишется.
Учит его кто? Сильно помогает?
Например, стану гуру с#, но не смогу в графику. Какой шанс сделать что-то интересное?
>Конепилровал в WEBGL свою маленькую сцену.
>Конпелировалось минут 10.
>Получлось 150 мегабайт.
>Внутри javascript на 100 мегабайт(!).
Ну не 99, но бОльшая часть по сути да. Да и неважно сколько там процентов, без графена игра никому не нужна.
Обосрался. Там, в общем разберешься.
Шанс нулевой. Интересные игры делают не программисты, а гей дизайнеры. Хорошее знание c# лишь сократит время на реализацию придуманной игры. То есть ты выпустишь готовый проект не через год, а спустя ~9 месяцев.
делай через аниматор
Я вообще мимо проходил, но не мог не пнуть, потому что когда человек говорит, что все вокруг едят жидкое говнецо, и предлагает в качестве альтернативы чуть более сухое говно, такого человека хочется только обоссать. В огре отвратительная архитектура, и приводить её в пример может только человек, который в архитектуре движков не смыслит нихуя. Я нихуя не разбираюсь в архитектурах, но ты понимаешь даже меньше меня. Ну, либо ты архитектурный астронавт из интерпрайза, для которого десять слоёв AbstractSingletonProxyFactoryBean'ов является вершиной гениального дизайна. Так что залезь обратно под шконку и не кукарекай.
если ты станешь гуру-кодером, найти графику проблемы не составит. Либо найдешь себе ручного художника, либо как-нибудь сам все процедурно нагенерируешь, либо вообще без заморочек все пейнт-графикой сделаешь, а то и ascii, а все равно интересно будет. Вариантов много.
Не, меня разрывает от подгорания. Это каким надо быть поехавшим, чтобы на полном серьезе заявлять
>Я нихуя не разбираюсь в архитектурах
и тут же
>В огре отвратительная архитектура
Или это первое апреля?
Ты думаешь тебя кто-то послушает после такого? Слушайте меня. Я - разбираюсь в архитектурах. В огре и уеч - почти идеал. В юнити - маняшконка.
>В огре и уеч - почти идеал. В юнити - маняшконка.
Хорошо, хорошо, конечно, безусловно. Выговорился, излил душу перед убогими. Теперь иди в свои треды, пожалуйста!
>cлушайте петуха с параши
>у юнити закрытый код, но он мне не нравится
>хороший код у говна, писанного жопой
>у этого "хорошего кода" тысяча багов в час находится, но он хороший
Поссал на блядка.
Но Юнити и есть - говно писанное жопой. Ошибка парадокса и ты должен бомбануть.
Дебил ты малолетний, тот факт, что юнити говно и написан жопой никак не отменяет факта, что огр ещё большее говно.
Огр - не такое уж и говно. Их вообще сравнивать смысла мало. Тут его привели как пример архитектуры и не более.
>>162149
Есть еще поведение программы и есть многое, что видно через реализацию. Хорошему программисто большое число говна видно и без исходников. Но ты плохой программист, тебе не понять.
Короче тут бесполезно о чем либо разговаривать. Финально съехавшие сектанты. Только огнем исцелятся. Скрыл, пока по мамкам не пошли.
>поведение программы
>юнити, ты странно себя ведёшь, ты пьян?
>программисто большое число говна видно
Ну точно ванга. Ванго.
>Скрыл, пока по мамкам не пошли.
Поздно. Как только ты притащил сюда своё ничем не подкреплённое хейтерство - твоё лицо было обоссано, а мамка выебана.
>Тут его привели как пример архитектуры
Как пример безупречной архитектуры. А это важно, потому что даже хорошей архитектуру огра может назвать только оопблядок, который молится на паттерны и кроме ооп своего нихуя больше не знает. Я тебе выше теги дал, ты бы хоть постарался их в адресную строку вбить, по ним всё элементарно ищется. Потом мог бы пройтись по критике ооп, возможно даже применительно к геймдеву. Ёб твою мать, статьям десяток лет уже. Но нет, ты же самый умный и знаешь, как оно есть и должно быть.
>Финально съехавшие сектанты
>Я обосрался, но это вы все мудаки
>Скрыл
Надеюсь не напиздел. Ещё бы весь раздел скрыл, было бы вообще хорошо.
То есть даже ты, апологет, признаешь, что ue4 - говно, хотя и считаешь его говном сортом повыше?
Че хоть ты к паттернам и ооп прицепился, больше ни одного умного слова из программирования не знаешь? И то, и другое - просто инструменты, они не плохие и не хорошие. Можешь без них движок написать? Ну молодец тогда. Можешь с твоими нелюбимыми абстракциями и ооп быстрый движок написать? Тоже молодец. Применение того же ооп не означает, что в итоге производительность похерится, если ты знаешь кое-что например о статическом полиморфизме и cache locality. Пиздец, развели тут срач.
>Потом мог бы пройтись по критике ооп, возможно даже применительно к геймдеву
Ну давай, критикуй, мы послушаем.
Чувак, у тебя походу с логикой проблемы.
>зачем жрать говно, когда можно сожрать конфетку
>конфетка == говно
Так по-твоему штоле?
Я имел дело с обоими движками и авторитетно заявляю, что unity лучше, удобнее, эргономичнее, красивее, с ним просто приятно иметь дело.
Я имел дело с обоими языками (c++ и c#) и авторитетно заявляю, что C# лучше.
http://www.twitch.tv/rikukitty
>авторитетно заявляю
>авторитетно
Проиграл.
Ты самый толстенный тролль в итт треде. Человек, реально знающий C++ и С#, не станет кукарекать, какой из этих языков лучше, ибо у кждого из них своя ниша. Но пердачок-то я тебе немного подпалю, держи http://blogs.unity3d.com/2014/05/20/the-future-of-scripting-in-unity/
Шлюха делает РПГ на UE4 (сейчас оффлайн)
http://www.twitch.tv/celplays/b/644351231
выбираем богиню /gd/.
И чем же ты собрался подпаливать ему пердак? Трансляция кода - это всего лишь трансляция, никто не заставляет ебаться с крестами же.
>Человек, реально знающий C++ и С#, не станет кукарекать, какой из этих языков лучше, ибо у кждого из них своя ниша
Авторитетно заявляю, что для игрового скриптинга C# лучше в миллионы раз.
>тебе годков-то сколько
Скорее всего, больше чем тебе, лол. Указатели у него в логике луче гц, ну просто пизданись об асфальт.
Тяночка с юнити то поадекватнее будет. Анрил даже здесь умудрился соснуть. Это еще раз доказывает, что адекватны выбирают юнити.
>Скорее всего, больше чем тебе, лол.
Тогда у меня для тебя плохие новости. В таком возрасте и с таким интеллектуальным развитием, как у тебя, это попахивает клиническим дебилизмом.
Ну а по делу сказать есть что, или только слюной брыжжать можешь?
>бессмысленный поток оскорблений в попытке спровоцировать ответную агрессию, попытки интеллектуально доминировать благодаря прочтению 1,5 статей с говнохабры
Тебя еще не заебало кормиться здесь? Уебывай в /б, ты и так всех кармаков тут распугал. Не, ты конечно можешь еще повыебываться, но ты уже честно доебал. Лучше попробуй левелапнуться и иди тралируй протекающих сюда уечепидоров с их несобирающимся без бубна редактором, крашами при билде и тормозящем на йобах хелловорлде.
>>162321
>>162323
Ожидаемый полыхандр типичных Кириллов.
https://youtu.be/eMF1Th5HK9A
Хочешь выигрывать конкурсы на гейдеве - Юнити, для игр UE4.
Из триплета как из арбалета. Всё по делу. Аптека, улица, фонарь.
А вот это уже толще жопы моей бабули. На юнити 3 полигона "летают" с той же скоростью, что и тысячи с постпроцессингом, физикой, освещением, объёмным звуком на анриле.
Либо ты действительно не имел дело с UE4, тогда сказал глупость.
Но ведь Кирилл это ты. Тут обсуждается лучший движок в конексте /gd/ и возможностей простых Кириллов. Тут никого не волнует, что могут сделать с UE4 профессиональные студии. Это бесконечно далеко от возможностей любого в этом треде.
Я тут тащемта общаюсь. Траллируешь тут только ты со своей немотивированной агрессией.
>несобирающимся без бубна редактором
А у в юнити-то редактор запросто можно собрать, благо, что исходники открыты, азаза.
Вместо защитных мантр полезнее было бы взглянуть в перспективу, а будущее у юнити - скорая смерть и забвение.
Зависит от игр, которые делаешь. Для браузерок - C#, для графонистых 60фпс игорей очевидные кресты.
>общаюсь
>второй тред подряд нерелейтед про то, что всем срочно нужно уебывать на усрил, а юнити закопать к хуям
>>162355
А нахуя тебе вообще открытые исходники? Тебе они вообще ни к чему.
>>162352
>тысячи с постпроцессингом, физикой, освещением, объёмным звуком на анриле
О да. Стартовая сцена с обосранными кубами, пушкой с шариками которые исчезают через пару секунд после выстрела выжирают 30% i4790. Да и физика в уе4 нихуя не лучше того, что предлагают в юнити, что ж так все лагает?
Что ты в игровой логике даже ААА-шутана настолько йобистое рассчитываешь, что тебе не хватает скорости скриптов? Ты делаешь что-то очевидно не так.
И что, ты наконец-то съебешь?
Тебе только что тыкнули в прямые трансляции где тни и прочий скам лепит игры на UE4, не умея программировать. Блупринты, поддержка мобильных платформ, директ икс 12 потенциал (я надеюсь ты слашал про него и почему это революция как в свое время 9-ый), физ икс, ткани, искусственный интеллект и всё что может потребоваться, включая кучи готовых примеров и игр. К тому же совершенно бесплатен.
Юнити отличает его непрофессиональность и недоделанность. Игры получаются второго сорта и явно уступают в производительности и в картинке сделанным на ue4.
Моё дело провести на светлую сторону силы, чтобы геймдев преобразился и отсюда выходили действительно хорошие игры. Мне кажется, не за горами этот момент, когда на дристню, выдавленную из Юнити будут смотреть с омерзением и укором как я сейчас.
Но в том-то и дело что они лепят говно, в котором все Features движка не используются, а то что используется - уступает юнити. При том-же уровне и времязатратах на юнити получается гораздо лучше.
>скам лепит игры на UE4, не умея программировать
Ну вот один скам и лепит. Понимаешь, игры на юнити получаются хуевые не оттого, что движок дерьмо - да, в нем есть косяки, херово сделаны многие вещи и т.д. - а потому что те, кто на нем делают игры, это мелкостудии без бюджетов, и тем не менее они умудряются делать весьма и весьма годные вещи. Глянь на Endless Legend, конфетка же.
Профит юнити перед анрилом как раз в его простоте. Нет сотен йоба-эффектов, добавленных заранее, не нужно проебать десяток лет жизни на изучение крестов до достойного уровня или десяток лет жизни на реализацию логики с помощью блупринтов, в юнити все изначально проще. Этим она и хороша.
UE4 же явно заточен под воркфлоу с Maya, что явно непозволительно простым Кириллам и вообще контент-пайплайн там не очень дружелюбный. Вообще не дружелюбный. Проще говоря хуевый.
Дрочить на шейдеры и графон от ААА-студий конечно замечательно, но непрактично.
Импортировать меши из блендера в анриал проще простого, какие проблемы?
Между тем. Как сделать так, чтобы скрипт исполнялся только в редакторе юнити, но не в игре? Интернет говорит: используй #if UNITY_EDITOR! На дворе шел 21й век...
Серьезно, я не вижу ни одной причины почему кто-то в gd ставит UE, а не юнити. UE настолько не пригоден для простых энтузиастов и Кириллов, насколько это вообще возможно.
Это все равно что поставить фотошоп чтобы обрезать картинки с мемсами. Или PostgreSQL для хранения текстовых файлов. Или как линукс на домашнем ПК.......
>Импортировать меши из блендера в анриал проще простого
Нихуя не проще простого. Много ебли. Просто - это когда ты открыл файл в блендере, редактировал, сохранил - и меши уже есть в проекте - не нужно никаких лишних движений.
>Как сделать так, чтобы скрипт исполнялся только в редакторе юнити, но не в игре
придираешься к какой-то ерунде, а на серьезные проблемы закрываешь глаза.
При чем тут плюсы? Какой бы язык ни был, но предлагать пользователю решение задачи с помощью макросов... это... монументально.
Знаешь, мне кажется, что тут толстит один ну ладно, может и не один несчастный кирилл, которому попросту скучно сидеть в почти безлюдном юич-треде.
Но ты предлагаешь съебать на юич, где царствую плюсы, а в плюсах поебаться с препроцессором - это более чем норма, это нахуй ЖИЗНЬ.
>придираешься к какой-то ерунде, а на серьезные проблемы закрываешь глаза.
Какие серьезные проблемы-то?
Короче у меня уже полночь, пойду я спать что ли, мне завтра на работу, походу в отличие от тебя. Завтра продолжим какашками кидаться.
А мог бы скачать юнити и начать делать игры.
Я не говорю, что макросы - это плохо. Они очень даже хорошо, но для внутреннего использования. Предлагать их пользователю как решение - это пиздец, что на шарпе, что на плюсах.
Ну и что ты тогда предлагаешь, коль и плюсы юича, и шарп юнити пердолятся с препроцессингом? Смысл тогда вообще бугуртить.
В юнити создается 2 проекта: один для скриптов редактора, другой для игровых. Не засовывай в игру скрипты редактора. Это во первых. А во вторых, как ты предлагаешь решить эту проблему? В билде игры нет UnityEditor либы, а у тебя в коде она есть - код не компилируется. Что ты сделаешь иначе как убрать код препроцессором, а? Ничего ты не сделаешь. Вот и не кукарекай.
>шарп юнити пердолятся с препроцессингом
>одна единственная команда в 99% вообще никогда не используемая
>пердолятся
ты что-то путаешь. пердолиться с препроцессором - это норма C++. На макросах написана половина УЕЧа.
p.s. сейчас юзаю очередь Action'ов, которых вызываю в Update()
>Как сделать так, чтобы скрипт исполнялся только в редакторе юнити, но не в игре?
if (Application.platform != RuntimePlatform.WindowsEditor) Destroy (this);
Постой, паровоз, не стучитеее колеса.
using UnityEngine;
using UnityEditor;
[CustomEditor(typeof(MyClass))]
public class MyClass : Editor{
public override void OnInspectorGUI()
{
if(GUILayout.Button("Do something!"))
{
Method();
}
}
\tprivate void Method ()
\t{
\t
\t}
}
>авторитетно
>авторитетно
>>162337
>авторитетно
А ты нам не авторитет. Хуй простой.
>>162322
Но не зелень. Просто больше нигде в мире нет такой реакции. Даже в двадцатилетнем сраче винда/линукс. Даже в пятилетнем сраче андроид/айфон. В любом другом сраче мира нет такого бомбометания, как тут у вас в юнити. Причем бомбит вроде как у довольно взвешенно мыслящих людей. Чего по идее быть не должно. Это либо комплексы, либо реально нездоровый фанатизм. Смотри че будет:
C# - НЕ ЯЗЫК, UNITY - НЕ ДВИЖОК. C++ - ЯЗЫК, UE4 - ДВИЖОК.
:)
Ты тут давно или недавно? Как мод вот заявился - конструктива стало процентов на 90 меньше. Я удивлён, как вообще твг взлетел. Но хорошо, что взлетел. А потом вообще уе4 бесплатным сделали и эти нищеброды с их нерабочим говном заполонили раздел.
>>162324
Вот, кстати да. Может тоже посоциоблядствовать, завести бложек инди-гей-девелопера где-нибудь в жж или другом болоте и постить процесс разработки. И фидбек будет.
>>162382
Поддвачну этого, всё правильно расписал.
Все это ложь. ВРЕТИ ВРЕТИ ВРЕТИ НЕ БЫЛО НЕ ПИЗДИ МУДАК
[ContextMenu ("Do Something")]
void DoSomething (){}
и "вручную" запустить функцию в редакторе из контекстного меню.
А какая разница? Камхорить один хуй никто не будет.
Что-то с новым гуем такое чувство, что много заложено, но недопилено. Хочу ловить клики по картинке, вешаю евент триггер на эту шнягу. Добавляю поинтер клик, туда вызов ф-ции из скрипта. И каким хуем мне потом определить из какой именно кнопки идёт вызов? Параметр передать нельзя, this возвращает имя гейобждекта, на котором висит скрипт (он-то один для всех кнопок). Не хотелось бы ебаться с разной хуйнёй, вроде райкастов до гуя и получения имени кнопки. Есть чё в апи, ананасы? Я, конечно, ещё погуглю, но заебало, что ищется нгуи и старый гуй.
>На макросах написана половина УЕЧа.
Имеешь в виду UPROPERTY и прочие макросы для рефлексии? Ну тут пользователю даж и не видно, что это макросы.
Бля. Короче нихуя умнее, чем убрать нахуй эвент триггер и написать свои события - в голову не пришло. При этом придётся вешать на каждую кнопку скрипт. Ну и хуй с ним.
Я вообще не понимаю как работает это говно. Туда нужно перетащить объект со сцены, и нужно выбрать какую-то функцию. Еще там появляется bool'еаны всякие. Короче хуита какая-то.
Я думал если добавить скрипт на, например, InputField и добавить туда функцию, то событие в эту функцию передаст строку. Но оно нихуя не передает. Зачем вообще нужны эти ебанутые события? Почему там в скобочках написано (string), типа там параметр передается? Но нихуя там не передается.
А то пилю пошаговую стратегию, и на маленьких разрешениях она показывает лишь часть поля боя.
>Туда нужно перетащить объект со сцены, и нужно выбрать какую-то функцию.
Функцию не какую-то, а любую паблик из скриптов, которые висят на этом объекте. Для удобства завёл для себя пустышку чисто под эти нужды. Булеаны и прочее говно - это "типовые задачи", лол. Но можно и свои булеаны хуйнуть, главное не перепутать.
>Почему там в скобочках написано (string), типа там параметр передается
Хуй знает, я когда сделал функцию со входящим параметром "стринг" мне стало писать, что функция миссинг (пропала). Разбираться надо, но я погуглил и решение своей проблемы не нашёл. А тебе скорее всего, надо обраться к Text.text. Или я хуй знает.
когда столкнулся с такой задачей, сделал так:
http://pastebin.com/AgB5mFp1
скрипт на камеру, target - объект-пустышка-вешка, который по стоит справа от камеры и обозначает край экрана. 1.1 и 1.13 - магические числа, подобрал опытным путем.
При изменении разрешения меняется и расстояние от камеры до вешки в координатах вьюпорта и угол обзора корректируется в зависимости от всего этого.
Наверное жутко коряво, был бы рад узнать про другие методы тоже.
Не ссы. Если закроют - поломается куча ассетов со стора и тонны бугурта, на такое юнитеки не пойдут. Да и класс этот исправно работает с 3й версии минимум, никто его в интернал не прячет, всем похуй. Ну и в крайнем случае всегда можно воспользоваться рефлекшеном и ебать редактор в любой приватный метод.
Мы стали забывать...
Я вот в детстве как-то дизайнил карты для варкрафта третьего, получалось один-в-один как у близзардов, так что чужие годные идеи копипиздить я умею, и рука в этом деле вполне набита.
Но сейчас мне нужно как-то постимулировать процесс, так как больше хочется погромировать, а не заниматься префаботаскательством, вот и подумываю обратиться за помошью к веществам.
кофе или чай
всегда использовал кусок кода из справки, что то вроде:
void Update (){
float verticalAxis = Input.GetAxis("Vertical");
verticalAxis = Time.deltaTimespeed;
transform.Rotate(verticalAxis, 0, 0);}
никаких проблем не было, что там у тебя берется 8 раз?
Ты совершенно ничего не понимаешь в модоблядстве.
Сделать карту так, чтобы нельзя было понять, официальная она, или от васяна про - это тоже искусство.
В итоге, каждая кнопка знает, что ей нужно делать, имеет ссылку на родительский объект, функцию, переменные, идентифицирующие кнопку и ссылки на другие объекты. При этом родительский класс не может чётко идентифицировать, какую кнопку нажали - кнопка об этом сообщает сама и указывает, что основному классу делать. Господи, до чего же омерзительно.
>>162551
В кратце, это эмуляция дополнительного потока, который "запускается" через определённые промежутки времени. Скажем, раз в секунду или две.
http://docs.unity3d.com/Manual/Coroutines.html
Хотя эта хуйня вызывает привыкание - очень уж дохера всего удобно делать в корутинах.
Функция Update вызывается у скрипта каждый фрейм в игре, так? Получается, что у тебя 8-9 фреймов в секунду? Звучит странно. Как ты измерял, сколько раз у тебя вызывается функция Update? Кстати, что плохого в том, чтобы брать это значение каждый раз при вызове функции Update()? Разве это тяжелая операция? Можешь кстати код скинуть, что у тебя там происходит?
>>162574
Корутина все равно вызывается вроде как в главном потоке, как это поможет тому анончику?
Не очень понятно. Трансформация объекта, включая ее "ось вращения" задается с помощью компонента Transform у объекта.
Короче скриншот в студию.
Камера по умолцанию всегда должна показывать одну и ту же область сцены, вне зависимости от разрешения экрана. Область показываемой сцены может изменяться в зависимости от отногения ширины экрана к его высоте.
Какую графику ты рендеришь, 2дэ или 3дэ? Какую камеру используешь, перспективную или ортогональную? Можешь доставить 2 скриншота жкранов, которые демонстрируют твою проблему?
>Корутина все равно вызывается вроде как в главном потоке
Я же и говорю, что это эмуляция. Но относительно рабочая. Пишешь в корутине
yield return new WaitForSeconds(10f);
И корутина "спит". Работает нормально, я так в шейдор матрицу передаю раза четыре в секунду. Лол. Говнокод-говнокодик, но чем заменить не знаю.
>>162581
Уточняй тогда, что у гуи объекта. Есть где-то в апи доступ к этой хрени, менять, как я понимаю, можно только скриптом.
А, понятно. Создай пустой игровой объект, и помести его там, где ты хочешь чтобы ось вращения была. Сделай свой игровой объект дочерним объектом пустого объекта и передвинь свой объект как тебе надо. Теперь вращай пустой объект, и твой объект будет вращаться вокруг оси пустого объекта.
Хотя погодь, только что проверил в юнити, и оно не работает. Сраный блять юнити, какого хуя он творит? Он вращает объекты вокруг центра объекта включая все дочерние объекты, если даже они не выделены? Что это за хуйня блять? сорри, не сдержался
Сыр обязательно с плесенью. Чтоб побольше плесени.
И как я до этого сам не додумался. Спасибо.
А, погодь анончик, оно работает. Тебе надо дополнительно кликнуть на кнопку с надписью Center слева от кнопок выбора гизмо, чтобы надпись сменилась на Pivot. Тогда выделаешь пустой объект, вращаешь его, и все дочерние объекты будут вращаться около его центра.
Разобрался, спасибо.
Продолжая еблю с новым гуём. Встроенного тултипа нет, но это даже не плохо - легко и просто пилится на событиях свой собственный. Из минусов - если сделать в канвасе канвас - то его нельзя драг-н-дропать, иначе в процессе драга всё содержимое дочернего канваса пропадёт нахуй. Лечится выключением-включением любого компонента на канвасе или вообще всего дочернего канваса, но, опять же, если опять потянут - опять надо включать-выключать. Хуй знает, почему. Ещё есть ощущение, что компоненты работают только по одному, даже если не ругается, что компонент вешаешь второй. Например, если панель указана, как скролл ареа - на ней маска уже не работает, нужно больше панелей. При этом на панели даже скрипт скролл ареа не висит, он на другой панели. Немного странно, но нас учат, что дохуя объектов и дк - это норма. Не удивительно, что розраб нгуи съебал из команды югуя в самом начале разработки.
Вы что, всё многопоточное программирование свели до уровня ебли с таймерами? Вы совсем ебанутые? И еще гордятся этим.
>городить целый поток, чтобы получить значение оси
>при том, что доступ к апи есть только в основном потоке
Вот вечно так. Прибегает "мегагурутрупрограммир", жиденько обделывает свои ляхи и убегает, потому что его мамку уже ебут, а ему самому в лицо бьёт тугая струя, а то и не одна.
>розраб нгуи съебал из команды югуя в самом начале разработки
откуда инфа, есть ссылки? Вроде когда-то читал, что нгуйщики активно участвовали в создании новой системы, а оно вон как обернулось
Я ничего не понял из того, что ты сказал. Серьезно, петушок, ни одного слова. А более всего мне непонятно к кому ты обращаешься. Или ты про себя рассказываешь? Это ты там обосрался и мамку свою выебал? Петушок, съеби с доски, пока пиздянок не отхватил.
>жиденько обделывает свои ляхи и убегает, потому что его мамку уже ебут, а ему самому в лицо бьёт тугая струя, а то и не одна.
Взвешенное и беспристрастное мнение разработчика-профессионала.
>откуда инфа, есть ссылки?
Cойдут слова розраба нгуя?
http://www.tasharen.com/forum/index.php?topic=7567.msg35939#msg35939
>нгуйщики активно участвовали
Пиздёж хотя бы потому, что "гнуйщики" не существуют во множественном числе.
>Надо вообще хуем по лбу стучать за бездумное и бессмысленное прихуяривание потоков.
Такие эмоции недопустимы для bрофессионала.
Вполне могло показаться, что я эмоционален и излишне резок. Но я просто констатировал факты. Причём моя позиция сродни аксиомам и не требует излишнего обоснования. Хотя оно и было в гринтексте. А хуём по лбу можно стучать совершенно спокойно и без злости, исключительно в воспитательных целях.
>>162633
Совершенно очевидно, что у тебя есть набор констант, которые игрок изменяет. Количество очков, жизней, его текущие координаты и прочее. Берёшь это всё запихиваешь в файл, при загрузке читаешь. Зачем тебе мануалы и примеры? Банальное чтение-запись в файл.
Что сохранять будешь определись, а дальше наверни статей про сериализацию, бонусом BinaryWriter/BinaryReader (простейшие примеры в MSDN или вот http://www.dotnetperls.com/dictionary-binary).
Если хочется %таскать ассеты%готового решения, то http://whydoidoit.com/unityserializer/
Спс, второй вариант - то что надо.
>Вполне могло показаться, что я эмоционален и излишне резок. Но я просто констатировал факты. Причём моя позиция сродни аксиомам и не требует излишнего обоснования. Хотя оно и было в гринтексте. А хуём по лбу можно стучать совершенно спокойно и без злости, исключительно в воспитательных целях.
Сразу было нельзя так сказать?
Чекер для проверки корректности текстурных координат на модели. Помогает определить нет ли искажений-потянутостей, везде ли одинаковый скейл (тексельная плотность будущей текстуры), буквы\цифры что бы видеть где куски развертки отзеркалены.
http://wiki.polycount.com/wiki/TextureCoordinates#UV_Map_Grids
Ну или в blender можно нагенерить таких произвольного размера.
Ясно, спасибо.
Ох, надо палитру годную для космоса на 6 цветов, а я в них нихуя в них не понимаю. Сейчас все техноцветами покрашено..
Очевидно, что нет. Подобной манерой письма я преследовал сразу несколько целей - крайне пренебрежительное и неуважительное отношение к собеседнику, например. К тому же, я всего лишь простой аноним и не могу чтить традиции гд и не помянуть матушку заскочившего в тред убогого. Конечно, пытаться облагородить раздел, чтобы всякие эстеты вроде тебя не искали здесь "b/", это дело хорошее. Но не выполнимое, а посему нечего и мечтать.
>>162658
А меж тем, в "например" я описал переменные и имел ввиду именно их.
Да, и много других вкусностей
Посоветуйте годных примеров.
Сразы вопросы: объекты 2дэ или 3дэ? Камера перспективная или ортогональная?
Спрашиваешь ли ты, как нарисовать рамку или как реализовать собственно выделение юнитов?
Рамку можно рисовать с помощью 9 patch image (загугли эту фразу если не знаешь, что такое) или ессно линиями.
Как выделять объекты (если объекты 3дэ и камера перспективная): у тебя даны координаты углов рамки в экранных координатах. Для каждого угла вычисляешь луч в пространстве сцены, который идет из камеры через вершину рамки и получаешь 4 луча, которые исходят из камеры. Эти 4 луча определяют view frustum - пирамиду, внутри которой содержатся все объекты, видимые на экране. Дальше у каждого объекта, который можно выделить, берешь bounding sphere (ограничивающая сфера) в пространстве сцены и тестируешь, входит ли эта сфера во view frusum. Если входит, то значит объект выделен.
Луч от камеры, проходящий через экранные координаты вычисляется этим http://docs.unity3d.com/ScriptReference/Camera.ScreenPointToRay.html
Получение ограничивающей сферы должно быть где-то у игрового объекта или у Transform.
Теcт на вхождение сферы в пирамиду может быть где-нить в Юнити API, или тебе придется реализовать это самому, сделать это самому относительно несложно.
Это если решать в лоб. Если у тебя юнитов много и в итоге выделение будет тормозить, можно много чего тут наоптимизировать.
Спасибо за ответ. Мне нужно реализовать построение самой рамки, сами объекты в 3D. Камера перспективная. Спасибо что объяснил ка реализовать выделение объектов.
>самый примитивный алгоритм размытия в шейдоре
Если ты про размытие как post-process effect, то рендери сцену в текстуру, рендери полноэкранный текстурированный квад на кране и в шейдере для этого квада бери сэмпл из текстуры сцены для текущей позиции и для окружения и находи среднее, делов-то. Но жрать эту будет дофига времени. Я б посоветовал сначала сделать проход горизонтального размытия, а затем вертикального.
Тебе кстати для чего это надо? Размытие должно быть анимированным? Насколько размывать должно? В зависимости от ситуации можно навертеть кучу крутых оптимизаций.
>Эти 4 луча определяют view frustum - пирамиду, внутри которой содержатся все объекты, видимые на экране.
Бля, только сейчас увидел, что хуйню написал. Эти 4 луча определяют пирамиду, в которой находятся все объекты сцены, которые можно выделить текущей рамкой.
>ты про размытие как post-process effect
Если бы было так, я бы перетащил стандартный ассет на камеру и успокоился. Ведь лучше, чем они - всё равно не запилю, с нулевым-то знанием шейдоров.
>В зависимости от ситуации
Самый примитив - нужно просто замылить плашку. Без анимаций и всего с одним цветом плюс альфа. Ну ладно, фиг с ним, за три дня до релиза допилю. То есть впереди у меня целая вечность.
Это копия, сохраненная 14 июня 2015 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.