Это копия, сохраненная 2 мая 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
СКАЧАТЬ: http://unity3d.com/ru/get-unity
УРОКИ: http://unity3d.com/ru/learn
прошлый тред >>208042 (OP) (OP)
Какой движок мне выбрать для создания 2D/3D игры?
Unity твой выбор. У него огромное комьюнити, много уроков, много готовых решений и он прост в освоении.
Unity бесплатный?
Да. Для всех платформ. Если вы заработаете на игре более 100 тысяч долларов, то обязаны будете купить Pro-лицензию.
Двач, хочу что бы по нажатию на кнопку, она меняла свой спрайт. Вот я хочу так. Хочу и всё. Как?
Кнопка UI, конечно же.
Это мне UI курить? Есть ли приблуда, что б все это облегчить, ну и где об этом почитать?
Год не сидел в юнити, а тут уже анальную регистрацию завезли? Чё за хуня.
На работе интернета нет. Дома есть. Я грабером скачал, но ведь есть другой способ?
А если дело спрайтами?
так вот, физон я запилил, но помимо этого еще запилил свое освещение
прирост производительности просто охуенный, но теперь встал вопрос: нахера мне вообще юнити?
>я тот мудак
И правда мудак, пока ты тут вопросы глупые задаешь, люди уже по несколько миллионов заработали на гуглплеях и гринлайтах.
Скрипт должен каким-то образом собрать всю информацию об уроне.
Например:
1)Урон от оружия
2)Бонус от навыков
3)Бонус от магического кольца
4)Временный бонус от выпитого зелья
Как правильно собирать всю эту информацию?
Есть ли какое-то красивое решение?
Ну и для чего тебе юнити тогда? Бери ренпай и делай. Или ты это в 3д решил?
Instantiate(laser, new Vector3(posX, posY, 0), this.transform.rotation
в ней
this.transform.rotation - угол под которым вылетает лазер, нужно добавить к нему рандомное значение, как это сделать? я пробывал так:
Instantiate(laser, new Vector3(posX, posY, 0), this.transform.rotation + this.transform.rotation.z(Random.RandomRange(-1f, 1f)
но qaterion z не может біть использован как метод говорит мне вижувл студия.
Может потому что z это переменная а не метод? Созданный лазер крутани laser.transform.Rotate(...)
Попытаюсь по-другому задать вопрос.
1.Я делаю некий метод УвеличитьУрон(х) в скрипте, который контролирует персонажа
2.Все что увеличивает урон во время апдейта дергает увеличение урона на х.
3.Получается итоговое значение урона, которое везде используется.
4.В конце апдейта в скрипте, который контролирует персонажа, обнуляю суммарный бонус к урону.
Такой вариант будет работать?
Ну я не совсем понимаю, я просто делаю свои первые шажки в програмировании и мне многое непонятно, ты так имеешь в виду:
void ShootLaser()
{
// Высчитываем позицию корабля
float posX = this.transform.position.x;
float posY = this.transform.position.y;
// Создаём лазер на этой позиции
Instantiate(laser, new Vector3(posX, posY, 0), this.transform.rotation
);
laser.transform.Rotate(0, 0, Random.RandomRange(-1f, 1f)
);
}
если да то чет не выходит...
// Создаём лазер на этой позиции
GameObject laser2 = Instantiate(laser, new Vector3(posX, posY, 0), this.transform.rotation) as GameObject;
laser2.transform.Rotate(0, 0, Random.RandomRange(-1f, 1f));
Если не видишь что крутится то ось кручения поменяй.
Дайте помощи для написания шейдеров. Стараюсь 2D свет написать, есть где-нибудь годные статьи?
У меня раньше на старте заходило в пустой стейт, а из него уже по инту в нужный. Решил тут обновить юньку и ХУЯК! Теперь все стейты проигрываются по очереди до соответствующего текущему инту.
Может кто знает что это за хрень? А если подскажите как пофиксить, может даже отсосу.
На 3:46 он добавляет смещение к нормали и у него появляются тени от directional light. А у меня они почему-то не появляются! Причем что характерно от point light они есть.
Почему так?
Серьезную игру с такой заставкой сделать нельзя.
Продолжу доебывать всех в треде дальше
Есть много классов (заклинание, экипировка, навык), которые влияют на одну и ту же переменную персонажа.
Как красиво и просто сделать так, чтобы информация о влиянии собиралась каждый апдейт?
Нету 75 бачинских на лицензию. Собирается делать серьезную игру. Ты ее 10й год делаешь, или собираешься еще 10 лет делать? Во втором случае подожди скидок или денег заработай пока.
Самый популярный движок, 11 лет на рынке. Нет, мань, нет ничего, все самому нужно смотреть и изучать. Иди лучше гамак спирать.
Чтобы не запаиваться с моментом, когда что-то произошло.
Например: предмет надет - каждый апдейт сообщает о том, на сколько меняется стат.
Бафф действует: постоянно сообщается на сколько он сильный.
В конце как только бафф перестает действовать во время апдейта он просто не сообщает о том, что он действует.
В противном случае нужно в начальной и конечной точке передавать изменение стата, а восстанавливать все во время загрузки и сохранении.
Серьезная игра уровня /b/ же.
Я медленно достаю болт и сикаю тебе на лицо, визгливая порватка, после чего твоя мамка слизывает остатки урины с моего конца. Спасибо.
Решил свою проблему.
В юнити есть возможно настройки порядка исполнения апдейта всех скриптов.
Очень полезное знание.
Нихуя у тебя не получится, если тебе не похуй на сраную заставку и ты собираешься делать "серьёзную игру".
я практически не шарю в шейдерах. Как, что, куда - хз
Я скачал юнити. я зарегался.
я скачал ассет анимированного парня.
Чё теперь? как заставить его двигаться в юньке и всё такое?
Ткните мордой в видеогайд
Деньги для быдла
Юнитаны, такой вопрос: пилю щас 3д - модельки для игры одной, есть у меня модель корабля, от которого должна отвалиться кабина (с героем внутри) и упасть. Правильно ли я понимаю, что мне нужно запилить кабину отдельным объектом от остальной кораблю, в юнити же сделать между кораблем и кабиной жесткую связь, которую в какой-то момент скриптом отключить? Как это реализовывается обычно?
Я бы так и сделал, наверное. Но есть же какая-то хуйня, типа модель разрушения и всё такое.
В 3д не шарю, поэтому два "типа соединенных куска" для меня был бы идеальный вариант.
Но это мож сочтут костыльным методом, не знаю
Поясняю в чем проблема:
1) Красные паралелепипеды с коллайдерами типа "Куб", вид сверху. Они у меня ограничивают дороги, и не видны во время игрового процесса.
2) Настройки красных паралелепипедов в инспекторе.
3) Моделька машинки с коллайдером капсулы
4) Настройки машинки в инспекторе
5) Как это все выглядит в игре: машинка спокойно съезжает с дороги, иногда застревая и подергиваясь в невидимых стенах
Лаовай! А зачем тебе rigidbody на статичесих стенах? Ясен хуи, они куда-то у тебя сьебываются. Убери к хуям rigidbody
Они не съебываются, т.к. зафиксированы по все осям. А без rigidbody коллайдеры не работают же вроде бы
А вот и работают. Ригидбоди нужен, чтобы физику твердого тела симулировать, падения, крушения, хуения. Убирай давай, показывай, что вышло.
https://youtu.be/e3viFgc2JgY
Чуть лучше, но не идеально. Возможно, стоит убрать инерцию машины? Но как же кататься без инерции?
Мне хватило using myLib;
По некоторым данным, юнити не может схавать либы не на шарпе, если хочешь на крестах - пиши прослойку на шарпе. Но это не проверенно, у меня либа на шарпе. Ещё проверь, во что ты компилишь, если в вебплеер - иди нахуй.
Можно поподробнее? Это первая херня, которую пишу на # и unity. У меня была библиотека под кресты, я переделал её под шарп, скомпилировал в VS в dll под unity v3.5 full base. В проекте добавил её через add reference, в начале кода сослался на неё. Что я должен ещё сотворить? Бубен имеется
В папку Assets/Plugins либу засунь
Ты её в плагины добавил? c# файл с неймспейсом и объявлеными экстернал функциями есть?
для тех, у кого нет таких благосклонных формучаней. спасибо
А я в плагины не добавлял. Просто кинул в папку проекта, даже не через редактор. И всё завелось. А нет, переделал таргет фреймворк, кстати. Было под 4.5, сделал толи два, толи три и заебись. Всё равно ретроград, новые фичи не юзаю. Да и как, если моно, ебать его в сраку.
Зашквар делать что-то для геймдева.
http://pastebin.com/aDQg1sPk
Кстати, ещё есть ошибка "HLAPI CRC channel count error local: 0 remote: 1". Погуглил, говорят что это от различия нетворкбехейвиоров на клиенте и на хосте. НО ЭТО НИХУЯ НЕ ТАК, ЖЕ!
transform.Find("HeightTexture").gameObject.transform.GetComponent<MeshRenderer>();
хотя может без
>.tranform.
Премного благодарен, пофикшено
72 строка
Как пофиксить и избегать этой ошибки в будущем?
Я всё равно определённо не понимаю, о чём ты. Можешь, пожалуйста, скинуть целиком строку?
Создай материал, повесь на него Sprites-Diffuse. Потом этот материал кинь на спрайт рендерер.
Описался значит в названии или чет такое попробуй через print вывести просто файнд его, без геткомпонента. Если тоже нуль получишь - проблема в названиях. Алсо, предложил бы перекатиться в вк, авось решим твою проблему
Го перекатимся, но сразу предупрежу, что я школьник(хоть и адекватный)(Много тут предвзятых) и совершенный профан.
Блядь, чего-то на всех досках стали появляться предложения создать КОНФУ В ТЕЛЕГРАММЕ. Мне кажется, эта конторка проплатила абулику за пиар.
Пишу удаленный пост.
Раньше чаго-то никто не говорил, а с прошлой недели как прорвало.
Действительно странно. Давайте создадим конфу в телеграме и обсудим это явление?
Не, давай лучше в токсе или вибере.
Насколько я понимаю, за стиль этого окна отвечает "android:theme" в AndroidManifest.xml. Вот три манифеста, импортированные разными плагинами в мой проект:
http://pastebin.com/6L2MdWz8
http://pastebin.com/rhcfEDH4
http://pastebin.com/N1SGm852
Неплохо, но эти какие-то слишком ОБЫЧНЫЕ игры. Они бы ещё тетрис закодили и выложили.
Господа, в чем может быть причина: делаю 3D-модель в блендере, экспортирую в .fbx, перекидываю в юнити, и вуаля, некоторые плоскости становятся невидимы, но только с одной стороны. Проблема блендера, юнити, кривого моделирования? Сталкивался ли кто-то с таким?
Пикрелейтед - взгляд на один и тот же пол сверху и снизу. С одной стороны прямоугольная дырка в полу, с другой - треугольная в другом месте, и это тем более странно что пол не из одной плоскости состоит а из двух, как можно разглядеть, стены модели имеют толщину.
я уж не говорю о том что натянутая в блендере текстура пропала, но это мелочи, видно их сразу в юнити надо делать.
и почему всегда все выглядит так предсказуемо и просто, а начнешь делать - миллион неясных проблем вылезет?
Где можно скачать без регистрации и смс рантайм libmono.so для amd64?
>в юнити обратная сторона полигонов прозрачна
Благодарю вот нахуя они прозрачные блять, какого хуя у полигонов вообще стороны различаются, пиздос
Ебантяй, открывай шейдер и убирай кулинг фейсов. Насколько помню, только фронты рендерятся.
Тупица, пойми ты наконец, что юнити -- это компонентная система. Вешай на объект что хочешь и все just works or something.
Какие-нибудь онлайн рпг.
гхм. чисто так, интересно. а как это связанно с возможностью видеть невидимые коллайдеры террейна юнити?
Даже твою! Даже небо.
>>227341
С тем, что у тебя террейн небось нескольки километров, а коллайдер 1 метр.
да как бы какая нахуй разница то? куда без коллайдера если он нужен?
Есть префаб с набором звуков, моделей и т.п.
Мне нужно по нажатию кнопки спавнить этот префаб и двигать на 10 юнитов. Но чтоб движение было плавным, будто он подъезжает. Заранее спасибо!
ну так делай, хули ты
чтобы видеокарте не пришлось рисовать никому невидимые внутренности объектов почем зря. Если ты ебланские модели делаешь, то это твоя проблема.
Задаёшь положение объекта и точки, куда подъехать. И из расстояния берёшь скорость.
умно, а я об этом как раз беспокоился.
причем это фича не юнити а 3д графона воопше.
Ищу нормальных пацанов по Unity SDK на постоянную основу в фирму.
Резюме высылайте на sanyAFmpsiniANUSg]uSmailPUNCTUMc;\yom
Оплата высокая. возможен переезд по месту работы.
Но если убрать кулинг, то тогда для бекфейсов всё равно не будет рассчитываться освещение.
Ты какой-то даун, если тебе Summoners War показалась оригинальной. Играй в Покемонов, Shin Megami Tensei и не выделывайся.
Задача реализовать то, что бы объект понимал , что на него светят спотлайтом, вопрос: как бв вы это реализовали?
рейкастом
Мне не показалась оригинальной она. Мне просто нравится такая концепция игорей. Да, да. Покемоны тащемта не были основоположниками таких игорей.
Меня интересует чисто техническая сторона игры. Код и т.д.
Сообщением: "Эй, пидор, в твою сторону повернулся свет".
Хотел спросить. Пилю игрушку платформер. Надо задний фон/землю/небо/Аллаха сделать (кирпичи).
Как правильно?
Первое что приходит в голову сделать объект. В него накидать спрайтов кирпичей и передвигать его за игроком.
Но наверника все это можно сделать с помощью текстур?
гугли quad
Для начала просто открыл текстовым редактором файлик Hearthstone_Data/sharedassets0.assets и сразу же наткнулся на пикрелейтед.
Полез гуглить, первая же ссылка - ассет стор:
https://www.assetstore.unity3d.com/en/#!/content/368
Мало того, что близзард используют чужой движок (против этого ничего не имею, экономия времени колоссальная), но плагины для вижуал скриптинга... У них там квалифицированных программистов не хватает, или что? Может резюме им отправить?
Речь не о том, насколько секретная эта инфа, а о том, почему такая компания как близзард юзает всякие парашные плагины, вместо того чтобы взять на работу нормального программиста вместо безрукого артиста, который чекбокс "всегда глушить эмоции противника" в меню уже 2 года добавить не может
Дурачок, как раз тулза для программистов и подходит. Очень удобный инструмент, ускоряющий проект немыслимо. Если ты привык везде всё хардкодить, то как я уже скзал, ты дурачок.
Обозначил тебе за щеку, пхп-макака
Сколько времени тебе понадобится, чтобы написать такую тулзу? А теперь простая математика. Эта хрень стоит 65$. Час работы программиста - 60$. Час работы тестера - от 25 до 40$. Вот поэтому.
Прикидывай так, за 20$/час ты возьмешь джуниора, который может тупить и надолго подвисать над некоторыми задачами, будет везде вставлять тупейшие костыли, но с должными пинками сможешь получить результат. За 30-40$/час ты найдешь хорошего разработчика который всё сделает как надо, но вполне могут впоследствии выплыть какие-то архитектурные боттл-неки, которые хуй исправишь не переписав всё с нуля. За 50-60$/час получишь профи, который всё сделает быстро и качественно, с документацией и возможностью спокойной дальнейшей доработки. Объем работ - смотри аналогичные проекты, сколько у них разработчиков, сколько делался проект и накинь 25%.
>За 50-60$/час получишь профи, который всё сделает быстро и качественно, с документацией и возможностью спокойной дальнейшей доработки
Типа он ошибиться не сможет при проектировании. Какой-то радужный мир из книжек. Все люди ошибаются кроме таких профи - пиздец.
А я могу за 50-60$ в час быстро всё сделать, всё будет работать, но как только ты полезешь в код - ты нахуй поседеешь, позовёшь батюшку освятить комп, разобьёшь жесткий диск своим ебалом и осознаешь тщету бытия.
50-60$ это как то слишком. я планировал около 10к хотя бы на 10 часов, а тут только на 1,5 хватит.
буду тогда ассеты таскать из стора
Да, ошибаются все. Но шансы вчерашнего около-ООПшного PHPшника, сегодня севшего за юнити и C# (где юнити в компонентной парадигме работает, а C# очень хорош именно в ООП), который ни про паттерны, ни про сборку, ни про GIT, ни про юнит/функциональное тестирование и кучу прочей околоразработнической херни не знает, натворить пиздеца, крайне велика. Всё будет вроде даже запускаться и работать, но если через месяц захочется что-то поправить, то всё пойдёт пиздой.
Есть еще вариант понизить fixed timestep, но это же пиздец как на производительность повлияет
Я понимаю, что это из-за того, что колллизия просто не успевает сработать, но еб твою мать, неужели даже, чтобы сделать выстрел, надо пердолиться?
ну как бы тебе помягче
дело в том, что в юнити нету графона.
Графон ты рисуешь в 3д редакторе.
о еще один манюнька.
Ну вот я нарисовал пропс, запек нормалки, нарисовал в сабстансе текстурки.
Вот так выглядит в уе 4, прикладываю пик.
Сейчас буду настраивать шейдер и освещение в юнити, но уже знаю, что там этот же пропс будет смотреться как говно
Дело в том, что юнити рассчитан на игры, а не на бечмарки, в которых один пропс сжирает гигабайт видеопамяти.
Для мобилок больше и не надо
>в которых один пропс сжирает гигабайт видеопамяти
лол, что? Это обычный мидл поли пропс, все по ААА стандарту. Или ты до сих пор в 90-х застрял, где на перса или пропс 80-100к это охуеть как много?
Юзай уе4, долбоеб, в чем проблема? Если можешь себе позволить в одно рыло пилить игры с ААА графеном - тут вопрос выбора движка даже не стоит.
Очевидно, что для ААА нужно брать либо лицензию на край, либо лицензию на край.
материалы настраиваю в точности как в уе 4. Использую металнесс воркфлоу. Только с учетом того, что для юнити надо рафнес мапу сувать в металнес текстуру через зеленый канал вроде (лень щас смотреть). Но все равно в уе 4 освещение и сам шейдер лучше отрабатывает физические свойства, блеск, то как материал играет на освещении, вот это вот всё.
Ну не юнити это уж точно. Вообще не понимаю, откуда берутся олигофрены, которые врываются в тред и требуют от этого движка ААА графен. Где они вообще прочитали, что он должен быть?
А то спрайты здоровые выходят, если отталкиваться от максимального разрешения. Подумал может вектор спасёт
Любая c# библиотека
Глаза текут от странного шрифта, как минимум.
Купи про.
По-моему, проблема именно в этих самих олигофренах и им сочувствующих. Прочитать про ааа-графен можно прямо на сайте юнитеков уже лет несколько. То, что юнити давно уже может в ааа графен - состоявшийся факт. Другое дело, что в нём нет полутора настроенных пресетов, при которых всё выглядит пластиком, но школьникам нравится. Пока что нет, но наверное, всё идёт к этому. Здесь же надо учитывать специфику, юнити - он больше для мобилок. Да, можно выжать графен, но по умолчанию все акценты на производительности. Сравнивая с тем же уе4 - все акценты на пластмассу и графон, но вот производительностью и оптимизацией там и не пахнет, с этим надо было бы ебаться, если бы хоть один из местных уёбков смог допилить игру хотя бы до играбельного демо.
Посмотри блексмит демо. Очевидный ааа, приятная графика без хроматических аберраций и лишнего мыла, достоверный пбр, качественные текстуры. И рендерилось, если не ошибаюсь, всего в 30 фпс - стандарт ААА.
они пытались... но все равно выглядит как говно, сириусли
То ли дело уеч
http://www.youtube.com/watch?v=MK64twSZrA0
А уровень блэксмита для Кирилла не оверкилл?
Все эти шойдеры ты можешь скачать и перетащить себе в проект.
>>230961
Пластиковая кхалиси. В статике. Без анимаций. С качеством картинки хуже блексмита раза в два. В следующий раз - будь ещё толще.
>>230970
Не оверкилл, а селфовн. Вон, в твг пришёл с уечем полуёбок. Ни графена, ни стабильной работы, а у половины вообще не запустилось. Нахуй такое счастье?
Очко твоей мамаши я через ворд ковыряю, ебаное быдло
https://www.youtube.com/watch?v=sFVfLVtOoUY
Бесплатные ассеты из их магазина прямо бесплатные? Можно юзать и выкладываться с ними?
Да, но на всякий прочитай описание. Если там никакой хуйни нет. То смело юзай.
>Можно юзать и выкладываться с ними?
Если нельзя, то перед скачиванием вылезает лицензионное соглашение, как у unity-chan, к примеру.
Привет. Хотел спросить про текстуры.
Как сделать что бы Quad всегда покрывался текстурами и они (текстуры) не масштабировались (кроме как создать дохрена материалов)?
Грубо говоря есть два Quada разного размера (по scale) на обоих одна и та же текстура и материал. НО на обоих текстура выглядит одинаково.
Как вариант
scaleMaterial();
function scaleMaterial() {
//создадим новый материал и изменим его масштаб
GetComponent.<Renderer>().material.mainTextureScale.x = transform.localScale.x2;
GetComponent.<Renderer>().material.mainTextureScale.y = transform.localScale.y2;
}
Но тут сильно увеличивается количество drawCalloв
Это потому, что я свободный от задротства человек. Зачем мне пердолиться со стандартными шейдерами, если можно пердолиться со своими? О, рассчитаю глубину ещё раз, глубина сама себе не рассчитает. Пришло время перемножить ргб, ргб сам себя не перемножит!
Написать свой шейдер
>>233411
>есть какая то функция которая принимает 2 геймобджекта и возвращает тру или фолс взависимости от того пересекаються ли они
gameObject1.getComponent<Collider2D>().IsTouching(gameObject1.GetComponent<Collider2D>())
Есть куб, который в компонентах имеет следующий скрипт:
[code]
using UnityEngine;
using System.Collections;
public class PillarTestScript : MonoBehaviour {
public float speed = 1.8f;
Vector3 movePosition;
public void Starter ()
{
movePosition = transform.position + new Vector3 (0f, 0.0f, -1.6f);
}
void Update()
{
if (Input.GetMouseButton(0))
{
//Куб двигается только при нажатии и удержании мыши. Как сделать так, чтобы можно было клацнуть один раз, и объект сам доехал до цели? Rigidbody в моих целях не катит.
Vector3 newPos = Vector3.MoveTowards (transform.position, movePosition, speed * Time.deltaTime);
transform.position = newPos;
}
}
}
[/code]
Есть куб, который в компонентах имеет следующий скрипт:
[code]
using UnityEngine;
using System.Collections;
public class PillarTestScript : MonoBehaviour {
public float speed = 1.8f;
Vector3 movePosition;
public void Starter ()
{
movePosition = transform.position + new Vector3 (0f, 0.0f, -1.6f);
}
void Update()
{
if (Input.GetMouseButton(0))
{
//Куб двигается только при нажатии и удержании мыши. Как сделать так, чтобы можно было клацнуть один раз, и объект сам доехал до цели? Rigidbody в моих целях не катит.
Vector3 newPos = Vector3.MoveTowards (transform.position, movePosition, speed * Time.deltaTime);
transform.position = newPos;
}
}
}
[/code]
Помогите разобраться, я в кодинге нуб, только учусь.
Есть куб, который в компонентах имеет следующий скрипт:
using UnityEngine;
using System.Collections;
public class PillarTestScript : MonoBehaviour {
public float speed = 1.8f;
Vector3 movePosition;
public void Starter ()
{
movePosition = transform.position + new Vector3 (0f, 0.0f, -1.6f);
}
void Update()
{
if (Input.GetMouseButton(0))
{
//Куб двигается только при нажатии и удержании мыши. Как сделать так, чтобы можно было клацнуть один раз, и объект сам доехал до цели? Rigidbody в моих целях не катит.
Vector3 newPos = Vector3.MoveTowards (transform.position, movePosition, speed * Time.deltaTime);
transform.position = newPos;
}
}
}
Не знаю, что это за куб такой, которому без rigidbody хорошо живётся.
Делаешь объект "корабль". Внутрь объекта корабль пихаешь корпус и кабину, потом просто двигаешь кабину отдельно из скрипта корабля, а когда корпус тебе не будет нужен — отключаешь его. Остальные действия производи со скриптом объекта кабина.
Мне намного комфортнее самому написать велосипеды, например, чем заниматься непонятным FMW ASFM MWP MLG этого плеймейкера.
Гуманитарий, написавший свою физику для платформера.
Если сможешь заинтересовать проггера и пообещать процент с продаж, то он тебе за 10 может месяц по 4-6 часов в неделю делать.
Купи Эпл-пекарню.
Да поздно. Меня это заебало и я уже взял чужой шейдер. Недопиленный пиздецки, но смотрится неплохо. Пусть пока так, в принципе, я могу допилить, чего мне не хватает.
Если просто заменить getmousebutton на getmousebuttondown он пройдет 0.1с или весь путь?
http://pastebin.com/bH8R2rUz
Есть такой код. Он создаёт массив клеток для игрового поля и возвращает запрошенную клетку по координатам. Два вопроса:
1) Какого созданные клетки имеют passable = false, если я чётко указал
tiles[x, z] = new Tile(this, x, z, true); четвёртый параметр
2) Код возвращающий клетку неизменно выдаёт null, хотя параметры клетки - координаты, например - передаёт верно
Как быть?
ID должен быть постоянным даже когда игру выключили/включили
Попробуй GetHashCode();
Или GetInstanceID();
http://pastebin.com/payEVbKk
Перепроверено всё по десять раз. Я, конечно, невнимательный, но блядь
Подозреваю что проблема в этом:
>tiles[x, z] = new Tile(this, x, z, true); // TODO Add a Z depth
Возможно, ты передаешь класс как параметр еще до того, как он инициализировался. Попробуй вынести цикл в метод за пределы конструктора.
Спасибо, запилю так
У меня так и было. Была отдельная функция с запилом сетки
На самом деле мне бы и насрать на то, что она null (параметры-то все на месте), если бы не dictionary для связки внутреннего представления игровых объектов (массив) и внешнего (клетки и фигурки юнитов)
Ебанутая привычка сначала написать потом подумать.
Ключом в словаре как раз таки и служит получаемая клетка которая в null. Может, взять другой ключ?
Объясни подробней пожалуйста, вот такую физику, как в этой игре, на видео, можно ли реализовать на юнити так, чтобы на экране было 20-30 болванчиков и всё это не сильно тормозило?
https://www.youtube.com/watch?v=AyyZWFajij4
Если ты про то что при стрельбе пуля не успевает считываться, то дело в частоте проверки колайда и скорости пули, это можно либо настроить где то гугли где но это увеличит выделение оперативки или сделать по уму : луч по направлению полета пули который не виден и по которому считать коллайд.
Сделай своей ебаной пуле коллайдер подлиннее и не еби нам мозги, заебал
не делай ты столкновения через коллайдеры. пуля маленькая и быстрая, колижены не успевают проверятся же. делай рейкаст вперед пули и так определяй где она, выйдет гораздо лучше.
В апдейте у скрипта высчитывается стоимость.
1.Делаем скрипт который наследует все от здания
БОЛЬНИЦА : ЗДАНИЕ.
2.Вешаем больницу на геймобджект.
3.В итоге стоимость не рассчитывается.
Так и должно быть? Почему не исполняется из апдейт куска скрипта ЗДАНИЕ?
Наследственность проебал? Скрипты-то покажи
У меня таких нету
и не будет. у юнити довольно нелепый метод вызова методов наследуемых от монобихейвора. насколько помню оно щемится в рефлекшены и смотрит эти методы по стрингу в самом дальнем наследовании, после чего исполняет. нахуй оно нужно? а хуй его знает.
можешь написать
Верно, но к ним нет доступа у потомков
Сделай отдельный лист для каждого типа \ сделай 2 отдельных счётчика и меняй их при добавлении(удалении)
Иначе без циклов никак
Аноны, поясните, если я хочу делать многопользовательскую игрушку, можно ли не брать и сразу писать интернетокод, в который я ещё не до конца доехал, а заняться сначала непосредственно написанием механа, и там уже, в процессе дописывать, чтобы получить клиент/сервер? Не выйдет ли так, что всё рефракторить придётся?
>Не выйдет ли так, что всё рефракторить придётся?
Выйдет. Если планируешь мультиплеер, надо сразу с ним делать.
как и советовали - самый простой метод это счетчик. заведи себе Dictionary<Type, int> и методы добавляющие хуйню в листы, которые заодно бы смотрели тип и лезли в словарик этот увеличивая счетчик.
>Причем тут компонентый подход? Для каждого здания будешь писать функцию?
Напиши все нужные функции в скрипте "здание", и управляй ими с помощью компонентов
Спасибо, я лучше наследую.
Например, мне надо чтобы больница лечила, а завод строил. Все функции напишешь стеной кода в одном классе, а потом будешь писать if (this.type == bolnica) lechit(); else if...
С таким подходом твой госпиталь может быть и казармой одновременно, и фабрикой танков. Как ты это будешь наследованием реализовать?
И теперь более наглядно, для самых маленьких.
Одновременно, даун. Разве что ты аутист, который унаследует фабрику танков от казармы.
Ну попробуй так сделать в реальной игре.
Это работает только на самых простых примерах уровня я зашел в коллайдер. Слишком много подводных камней и конфликтов.
Извини, я плохой учитель и не понимаю как вам еще объяснять. Буду закидывать наводящими картиночками.
>>238491
>Ну попробуй так сделать в реальной игре.
А я и сделал.
>Слишком много подводных камней и конфликтов.
При правильном проектировании их вообще не будет.
Box Collider наследуется от Collider.
Тебе бабка наследство не отписала или что?
В одних случаях наследование лучше, в других компоненты
Я раньше так думал, пока не пришлось дропнуть проект с ~2k юзерами, который мне было впадлу развивать и добавлять новый контент из-за ебаной архитектуры, где каждое говно наследовалось чуть ли не от аллаха, с компонентами же работать банально проще, они как модули, которые можно отсоединять, безопасно править и переписывать, не боясь наебнуть всю систему целиком
Просто ты неосилятор.
Компоненты еще хуже. И вообще любой код который ты не контролируешь лично - говнокод. В компонентах over9000 такого дерьма: порядок выполнения объектов, порядок выполнения скриптов на них, порядок выполнения самих скриптов, порядок выполнения сообщений.
Есть слайдер в приложении, рассчитанном на тачскрин. При отпускании пальца с движка слайдера он должен возвращаться в заданное положение
Как это лучше сделать? Пробовал костыльно, сделав слайдер неинтерактивным, и по попаданию пальца в район движка высчитывать смещение и соответственно менять value слайдера, но это костыль, причем на слабом гнусмасе еще и откровенно тормозной. Можно ли как-то прикрутить к движку слайдера событие типа ontouchended?
В канвасе делаешь скроллист, в нем инстанцируешь нужное количество дочерних баттонов
Все равно спасибо.
Есть же
public virtual void OnPointerUp(PointerEventData ped)
{
inputVector = Vector2.zero;
Slider.rectTransform.anchoredPosition = inputVector;
}
Никакие.
Оно не может в мультитач, если на экране будет еще один палец-фейл
Зачем ресайзить, если можно включить usebestfit?
Но ведь это недоязык.
повесил на слайдер скрипт с
public void OnPointerUp(PointerEventData data){
Debug.Log ("PointerUp");
Debug.Log (data.pointerEnter);
}
В логе хуй
IPointerUpHandler
Вешай на спрайт движка слайдера EventTrigger, в нем забивай сендмесседж по pointerup или вызов функции из скрипта
если (тайм больше х и меньше у)
текст.текст="идинахуйдвачер" ;
иначе
если (тайм больше к и меньше м)
текст.текст="хелловорлдщик ебаный";
иначе
текст.текст="пидарсдохни";
Анон, ты изобрел ХАРКАЧСКРИПТ
открытая доска б {
скрыто логика новый_тред;
скрыто харкачер постер;
открыто доски.пост текстпоста;
открыто пикчи пикрелейтед;
открыто б(харкачер запостил, доски.пост сообщение, пикчи пикча) {
если (запостил==харкачер.ОП) треды.добавитьтредж;
иначе {
треды.добавитьпост(запостил, сообщение, пикча);
}
}
не особо то проблема с коллайдерами будет, а вот если ты проебешь столько сделанного за тебя у тебя действительно будут проблемы. иди и тыч в террейн юнити, хули ты тут спрашиваешь? и копай в его направлении, всё в дырах выкопай.
а что тебе еще надо? СУПЕРЙОБААССЕТ, который САМ ЗА ТЕБЯ ВСЕ СДЕЛАЕТ?
На первой сцене есть кнопка которая переключает на вторую. На первой сцене игрок набирает очки и по нажатию кнопки должен перейти на вторую. Как сделать так чтобы все заработанные очки перенеслись на вторую?
>>239356
Зашел в тред по юнити. Задал вопрос. Два петуха высрали два реплая не по теме. Найс. Кажется я начинаю догадываться из-за кого харкач считается зашкваром.
если ты настолько долбоеб, счто не знаешь хотя бы в статические объекты, то тебе нужно курить школьные учебники по информатике, а не игрульуки пытаться писать. Как, блять, можно что-то писать, нихуя не умея в программирование?
Вот она, харкачерская помощь. Одно чсв быдло, которое не может помочь ньюфагу, зато себя показать это да, это всегда.
То был не я, дурачок.
>На первой сцене игрок набирает очки и по нажатию кнопки должен перейти на вторую
если ты МАСТЕР ПО КОНТЕНТУ, то тебя это и не должно ебать.
Нашел где спрашивать. Если б они че то сами умели, то игори бы делали, а не здесь хуйню писали.
можно посущественней помощи? пожалуйста
Поясните за размер текстур и соотношение между различными объектами на сцене.
Например. Есть спрайт, 1000х1000 px., но на сцене занимает вот столько места (см. пик). В итоге некоторые мелкие детали теряются. Как этого не допустить?
Рисовал бы векторами, но плагин для поддержки SVG в Unity мне не по карману.
Мб ты машину через position двигаешь (надо AddForce). А может колалайдеры плоскими сделал вместо кубов?
Очень понравился визуальный стиль твоей игры, и выбор музыки (я знаю что она не для игры), идея тоже неплохая. Заведи бложек в гд.
>AddForce
Вот за это спасибо, я использовал трансформ и вектор3, ибо в уроках нашел их.
Музыка случайно записалась, а сама игра вряд ли будет доделана до конца, это приложение к диплому на тему "как делать игры", лол.
Создавал юнитов через Instantiate префаба. В скрипте юнита Start() находил нужный скрипт на сцене через FindObjectOfType<Map>() для дальнейшей работы.
Но дальнейшие попытки обратиться к Map выдавали ошибку Null referense.
Пофиксилось ручным присваиванием при создании юнита, но не пойму, почему изначальный способ с поиском не работал.
Алсо, при запуске в инспекторе было видно, что скрипт Map найден и присвоен.
заебал монодевелоп, ебаное контл-с не работает через раз
нахер этот вс15. я его на два дня стаивл - никакого прогресса, только юзлесс файлы на компе появились, которые нельзя удалить. качай пиратский 13 и не тужи
а почему пиратский?
алсо почему она весит 20гб? как уменьшить размер если я буду использовать минимум функций?
когда скачавал эту хню, у меня начинал устанавливаться вс15. почему? не знаю. если хочешь использовать минимум функций, то оставь монодевелоп, либо качай более ущербную версию вс
ну скажем так я просто не знаю как им пользоваться
мне нужно чтоб оно позволяло писать код как в любом редакторе, подсвечивало разноцветным всякие штуки, и подчеркивало красным ошибки, только и всего.
Качаю 12 с торрентов, 13-ю чет не нашел в размере меньше 16 гигов.
Даже так - лучше, чем ставить десятку. Да что угодно лучше, чем десятка, лол.
я вообще восьмерку люблю, нас в универе на ней учили
>В скрипте юнита Start() находил нужный скрипт на сцене через FindObjectOfType<Map>() для дальнейшей работы.
нахуя дрочить вприсядку, если для обращения к объекту, к которому прикреплен скрипт, есть this?
Есть еще классная Consulo на основе божественной Intellij IDEA. Баги в наличии конечно, но на данный момент редактора лучше просто не существует. Через годик JetBrains выпустят IDE для шарпа и тогда настанет рай для разработки на юнити.
Кстати её разработчик оперативно откликается на гитхабе и быстро правит баги если ему зарепортить.
Нужный скрипт на другом объекте сцены
Ты пытаешься обратиться не к компоненту, а к классу.
GetComponent<Rigidbody>().Addforce() используй.
А еще и скобку закрывающую после Start() проебал. Первые потуги в программировании?
eto pishesh v start()
nu ili v main()
var rigid = getcomponent<rigidbody>();
rigid.AddForce(blablabla);
v update pishi
rigid.addforce(batya, sret);
Ну тип того.
И ведь он сделает игру и станет успешным, в то время как другие считают байты и пишут велосипеды.
Ну я просто помню, что новость недавно только появилась и показалось, что скорый выпуск ждать не надо. Но если будет намного раньше, то я буду просто счастлив.
>>239777
>>239852
Уж лучше в VS Code писать чем в monodevelop дрисне. Как у вас глаза не вытекают от этих ужасных белых бэкграундов? 2016 на дворе и все нормальные IDE имеют в своем арсенале нормальную темную тему, но нет, хотим жрать дерьмо.
плохому танцору и яица мешают, ага? я вот сидел и на том и на том, но от моно ушел потому что у него шорткаты только в английской раскладке работали.
Для тебя трудился коллектив профессионалов разных умений, сделал отличный продукт. За две недели можно сделать игорь с рафоном уровня ААА. И теперь ты не хочешь отблагодарить авторов ни оплатой, ни простым упоминанием?
Проблема монодевелоп не в теме оформления, а о том, что ёбаные шорткаты не работают вообще нихуя.
Русикопроблемы
Для 2д сдл юзай, для 3д опенгл, ну ты понял кароче.
клево че. напомнил мне недавно какой-то нелепый баг юнити когда я пытался сделать Graphics.DrawMeshNow в SceneView.onSceneGUIDelegat и вместо нужного получил какую-то мешанину из гизмоса солнышка.
Как видите, колеса у меня отдельными объектами, и я назначил им свои меш коллайдеры. Но выбрать ни их меши ни коллайдеры в настройках скрипта не могу.
А еще, мне не совсем ясно как привязать их к машине, нужен ли машине риджитбади, и нужен ли риджитбади колесам. Посоветуй, анон.
> я назначил им свои меш коллайдеры
Меняй на вилколайдеры. Ригидбади возможно нужен самому кузову, но скорее всего тебе он нахуй не нужен.
Для машинок Wheel Collider используются. Rigidbody машине нужен. Колесам - нет.
А в настройки зайти и выбрать\настроить самому другую тему оформления религия не позволяет?
Но он прав, ты ленивое хуйло и мамкин геймдев
Анон, напилил вот такое, заебись работает, теперь мне нужно чтобы трансформ как-то поворачивал направление приложенной к объекту силы, а не только сам объект.
Что-то я передумал делать тайлы. Слишком сложно. Это вот сколько нужно для каждого типа. И еще их надо как-то автоматически правильно расставлять, чтобы на границах были переходы.
Или я что-то не так понял?
Это для тайлов земли, если что.
всё правильно понял
>Или я что-то не так понял?
Нехватает ещё группы тайлов. С такими, как у тебя, не сделать поле шириной в один тайл.
>а этот ваш unity3d пойдёт на моём windows xp
Я тебе adobe flash рекомендую. Скоро в твоем времени он будет пиздец как популярен. Первая половина двухтысяных - его.
Давай, покажи нам скриншот "настроенной" темы. Кроме лютого пиздеца там ничего настроить невозможно.
смехуечки - смехуёчки за 300
и вы ответили не верно
у меня нетбук, норм нетбук но шиндовс 7 на нём чутка думает, зато ХП летает, поэтому и спрашиваю
>>240254
Как-ты на таком калькуляторе собрался делать игры? Если мазохист, попробуй лучше game maker. Он вроде не сильно ресурсов требует.
с чего ты взял что это шейдер
это короче сурфейс рисуется с тем слоем что над игроком, и вот твоя альфа что кружок черный из него вычитается
> Как это реализовывается в 3D
отрисовка идёт в render path, отличный от игрового, потом накладывается маска, потом выводится уже на ecran
>Не >по >нял
ну в общем, гляди
к примеру у тебя есть камера, она рисует пол
и у тебя есть такая же камера, которая отрисовывает ТОЛЬКО стены
так вот, обе камеры на выходе в конечном итоге дают 2д картинку из пикселей
примерно это (но не конкретно это) называется render path
так вот, твоя задача получить изображение с камеры как 2д рисунок, а потом уже отрисовывать его с учетом маски
То есть мне нужно вынести стены,пол, потолок,объекты, на отдельный слой, сделать для каждого слоя отдельную камеру, рендерить сних в текстуру на которой применять маску? звучит как бред.
>>240299
http://docs.unity3d.com/ScriptReference/Camera.Render.html
смотри пример
пример возвращает 2dtexture
это то что тебе нужно (если я не ошибаюсь, я не ЮНИТИ)
> звучит как бред.
в твоем фоллаче именно так
и тебе всего-то две камеры нужно
Был шейдер на вики, но мне нужно с помощью нодов, либо в ShaderForge, либо в Strumpy
при чем тут 2д, я именно про 3д затираю, ты вообще не слушаешь?
как по-твоему шейдер нахй сам что ли разделяет стены и пол? в фоллаче то 2д картинки, а тут именно с камерой секс нужен и с мамкой
В общем, как человек недюжинной смекали, я решил не пилить тайловый велосипед (СЛОЖНА), и использовать дефолтный terrain для генерации уровня (вообще я хотел генерировать тайловую землю как в don't starve, но кому они нужны эти тайлы в 2016 году!), где задавать значения через terrainData.
Пока что пилю perlin noise
Защита от Кириллов. Попробуй удалить /gd/ из истории браузера.
Прикольно, продолжай.
Ассетотаскателя забыли спросить
Последний тест и спать
Ну, вообще-то, когда ты ебнул destroy -- объект продолжает висеть в памяти. Основная зачистка идет в момент смены сцен. Бахни пустую сцену и грузи ее аддитивно, чтобы тригерить чистку говна.
Думаю, она не едет потому что когда я запускаю игру, wheelколлайдеры не подключаются к скрипту, на второй картинке видно. В чем проблема?
Вот код:
[CODE]
using UnityEngine;
using System.Collections;
public class move : MonoBehaviour {
public float speed = 5000f;
public float rotation = 300f;
public WheelCollider wh1;
public WheelCollider wh2;
public WheelCollider wh3;
public WheelCollider wh4;
// Use this for initialization
void Start () {
wh1 = GetComponent<WheelCollider>();
wh2 = GetComponent<WheelCollider>();
wh3 = GetComponent<WheelCollider>();
wh4 = GetComponent<WheelCollider>();
}
// Update is called once per frame
void Update () {
if (Input.GetKeyDown (KeyCode.W))
{
wh1.motorTorque = speed;
wh2.motorTorque = speed;
wh3.motorTorque = speed;
wh4.motorTorque = speed;
}
if (Input.GetKeyUp (KeyCode.W))
{
wh1.motorTorque = 0;
wh2.motorTorque = 0;
wh3.motorTorque = 0;
wh4.motorTorque = 0;
}
if (Input.GetKeyDown (KeyCode.S))
{
wh1.motorTorque = -speed;
wh2.motorTorque = -speed;
wh3.motorTorque = -speed;
wh4.motorTorque = -speed;
}
if (Input.GetKeyUp (KeyCode.S))
{
wh1.motorTorque = 0;
wh2.motorTorque = 0;
wh3.motorTorque = 0;
wh4.motorTorque = 0;
}
if (Input.GetKey (KeyCode.A))
{
transform.Rotate (0, -rotation Time.deltaTime, 0);
}
if (Input.GetKey (KeyCode.D))
{
transform.Rotate (0, rotation Time.deltaTime, 0);
}
}
}
[/CODE]
Думаю, она не едет потому что когда я запускаю игру, wheelколлайдеры не подключаются к скрипту, на второй картинке видно. В чем проблема?
Вот код:
[CODE]
using UnityEngine;
using System.Collections;
public class move : MonoBehaviour {
public float speed = 5000f;
public float rotation = 300f;
public WheelCollider wh1;
public WheelCollider wh2;
public WheelCollider wh3;
public WheelCollider wh4;
// Use this for initialization
void Start () {
wh1 = GetComponent<WheelCollider>();
wh2 = GetComponent<WheelCollider>();
wh3 = GetComponent<WheelCollider>();
wh4 = GetComponent<WheelCollider>();
}
// Update is called once per frame
void Update () {
if (Input.GetKeyDown (KeyCode.W))
{
wh1.motorTorque = speed;
wh2.motorTorque = speed;
wh3.motorTorque = speed;
wh4.motorTorque = speed;
}
if (Input.GetKeyUp (KeyCode.W))
{
wh1.motorTorque = 0;
wh2.motorTorque = 0;
wh3.motorTorque = 0;
wh4.motorTorque = 0;
}
if (Input.GetKeyDown (KeyCode.S))
{
wh1.motorTorque = -speed;
wh2.motorTorque = -speed;
wh3.motorTorque = -speed;
wh4.motorTorque = -speed;
}
if (Input.GetKeyUp (KeyCode.S))
{
wh1.motorTorque = 0;
wh2.motorTorque = 0;
wh3.motorTorque = 0;
wh4.motorTorque = 0;
}
if (Input.GetKey (KeyCode.A))
{
transform.Rotate (0, -rotation Time.deltaTime, 0);
}
if (Input.GetKey (KeyCode.D))
{
transform.Rotate (0, rotation Time.deltaTime, 0);
}
}
}
[/CODE]
Решено: написал маленькие скриптики для вращения каждого колеса, и кинул на каждое колесо. Работает.
>>240412
У тебя есть небольшая такая проблема. Ты ёбнутый. Назначь коллайдеры перетаскиванием. Твой скрипт висит на корпусе машине, на корпусе же машины он и ищет колёсный коллайдер. Ищет один коллайдер (один и тот же) на корпусе машины. Когда их 4 штуки на колёсах.
Там очень не интуитивно работает теперь вся эта штука с колесами.
Почитай вот это http://docs.unity3d.com/Manual/class-WheelCollider.html
Так скрипт я сам писал. Два колеса решил сделать фальшивыми, зачем на них распыляться? Впрочем запилю 6 сейчас ради интереса, хотя это вряд ли заметно изменит физику машины.
>>240430
> Ищет один коллайдер (один и тот же) на корпусе машины
Да, спасибо, я уже понял. Надо было, назначить 4 вилколлайдера на один корпус, и потом задать им координаты там где нарисованы колеса? Вполне логично, я сделал это более костыльно, создав 4 сферы, назначив им коллайдеры, поместив сферы в центре графических колес, расположив их как потомки корпуса, ну и чутка подумав понял почему это все не работает, сейчас буду переделывать нахуй.
>>240433
Спасибо, я как раз по этому гайду делал
>Не поворачивайте и не вращайте WheelCollider объекты для управления машиной - объекты с WheelCollider всегда должны оставаться в фиксированном положении относительно машины. Однако, вы можете поворачивать и вращать визуальные представления колёс. Лучший способ это сделать - разделить объекты с Wheel Collider’ами и видимыми колёсами
>Надо было, назначить 4 вилколлайдера на один корпус, и потом задать им координаты там где нарисованы колеса?
Блядь, какого хуя? Ты бухой? Нет. Надо искать 4 разных вилколайдера там, где они находятся. И нет, им не надо быть на корпусе машины.
>вряд ли заметно изменит физику машины
На грузовике в своё время очень сильно сказалось, даже если не подавать крутящий момент на одну из задних осей. Но там момент подаётся.
Так норм? Крутящий момент подаю на задние, машинка ездит.
подробный коллайдер корпуса потом сделаю.
Я так и не понял, нахуй тебе сферы. Но ладно. Ездит? И заебись.
Годно.
Да. Расскажи как генерируешь.
Ничего не понятно. Переведите на Кирилльский.
видимо на анриле это непозволительная роскошь.
>как же ты в этом месиве что-то делать собрался? логически генерить надо же.
Я пока еще сам не знаю, чего хочу, пока просто балуюсь и пристреливаюсь.
Алсоу, глядя на твой пик, пришла в голову идея онлайн-дрочильни с личным островом для каждого игрока. Угадал идею?
Я локализацию запилил двумерным массивом. Каждый объект с определенным тегом заноситься в лист (текстовые поля) - Далее в цикле для каждого объекта ищу совпадение в другом массиве, где храню сам перевод, когда нахожу, меняю значение элемента. Типа, текстовое поле "NewGameK". В цикле ищу совпадение, нашел элемент [0,0], и заменяю на [0,1] - если инглиш, [0, 2] - если русский. Надеюсь смог объяснить
Вторая неделя с Юнити, соре.
Животное, зачем ты дышишь?
Понимаю, но главная цель - закончить первый проект, хоть и наполненный говнокодом.
да особых сложностей то и нет. тут все крутится вокруг диаграммы вороного. просто она ещё дополнительно поделена на воду/сушу, а высота каждой вершины это дистанция до ближайшего берега. примерно так-же и определяется тип суши.
http://simblob.blogspot.ru/2010/09/polygon-map-generation-part-1.html можешь тут почитать, у меня не так много отличий.
у меня ещё клевая хреновина написана которая генерирует по маскам биом всякую рандомную хуйню на этот террейн. всякий pelrin noise, worley noise, рандомные точки на примерно одинаковом удалении.
в итоге пылится в дальнем ящике, пока я пишу навмеш своей мечты. (дырки от деревьев я уже, кстати, пофиксил)
>>240695
не. даже не близко. остров генерируется так чтобы его потом было удобно использовать для ИИ, поэтому дележка на конкретные локации и граф для их соединения. чтобы вот например негры там ходили между разными локациями, дрались за бананы, динозавры там в кустах сидели. хорошо чтобы было в общем.
кстати на самом деле негры уже ходят по этому острову. просто из-за того что нет навигации, они довольно абстрактные. да и занимаются они в основном только тем что едят и спят.
>>240696
какой-то невероятно странный метод. но с точки зрения производительности похуй.
Ну почему же странный, Вместо текста - ключ, который потом просто заменяешь на нужный тебе элемент из массива. Первый способ, который в голову пришел. Просто у меня игра - пошаговая стратегия (типа Football Manager), где нету больших сюжетных диалогов и тд.
Нет, долбоеб.
да, пожалуй уже давно. учитывая что сел то я за юнити пару лет назад с нихуя вместо знаний, у меня куча времени ушла на рефакторинг уже сделанного. навмеш пишу с конца лета с перерывом на пару месяцев. ещё есть клевый контролер (как для капсулы, так и для нормального человечка с дрожаниями-болтаниями камеры, инверсивной кинематикой и хуйней), стопитцот раз переписанный инвентарь на манер JA2, сорт GOAP для ИИ. а ещё у меня пушечки примерно как в receiver, только они сделаны как rigidbody и можно потерять пестик в траве, если настойчиво таранить им на что-то. за минусом времени что потратил на рефакторинг по незнанию наверно делаю год-полтора.
жато все как я хочу!
>>240709
не ну ключ то разумеется логично, но вроде как должен быть просто метод "на ключ, давай текст" который должен произойти один раз. а не каждый же кадр!
>>240711
тю. навмеш у меня адовый велосипед, а на скриншотике просто гуи для манипуляции всякой хуйни для террейна. примерно как в этом вашем шейдер фордж, только он повелевает int[][], float[][], bool[][] и результат это не сорта шейдера, а всякая хуйня для террейна, такая как трава, текстурка на террейне, или там позиции деревьев. ещё где-то там помоему отдельно лежала нода специально чтобы копировать участки с одного террейна на другой.
как-то само собой вышло, после того как я охуел от адовых конструкций которые делали то-же самое в виде кода. когда я увидел ~15 закрывающих брекетов в конце функции, я решил что ну нахуй, лучше гуи сделать.
недели две то может и потратил на него.
кстати на тему генерации террейна. накопал в закромах то как определялся шанс создания речки. по разнице между высотами у примыкающих нод. если склон большой, то и речка там могла появится. клево наблюдать такое.
мог бы. но я недостаточно артист чтобы так приоритизировать свои действия.
>>240733
сначала тебе надо человеческим языком объяснить что ты под ним подразумеваешь.
>ь что ты под ним подразумеваешь
Вот же >>240337
Вот еще нашел, но там нет диагональных тайлов http://www.saltgames.com/article/awareTiles/
че в итоге то хочешь чтобы глупая машина делала за тебя? мягкие переходы между квадратиками? если да то почитай про marching squares, например у этого хрена они очень клево разжеваны. http://catlikecoding.com/unity/tutorials/ кажется уже не первый раз эту ссылку тут оставляю.
У меня сцены разные, на них разные текстовые поля, а объект, в котором у меня происходит проверка "глобальный". И поэтому если выполнить метод лишь один раз - при переходе не другую сцену ничего не получится, ибо новые текстовые поля не будут в листе.
Едрить вы бестолочь. Text это обычный MonoBehaviour. Сделай свой LocaleText наследованый от текста и в start() поменяй чтроку, например.
>че в итоге то хочешь чтобы глупая машина делала за тебя?
Блджад, ты вообще ссылки смотрел? Я рисую вот такой тайлсет, как на первом пике. Например, тайлсет травы. А потом говорю, хочу чтобы в x и y был тайл травы, и в зависимости от соседей, выбирается тайл, и сами соседние тайлы тоже меняются.
Лучше конечно не наследовать, а повестить на текст простейший скрипт который поменяет строку.
ТОчняк, спасибо, антоша. (._.')
Мне просто было бы лень постоянно очищать список и пополнять его при каждом переходе на новую сцену. Но тут анон решение полегче придумал.
Отбой, надо было скрипт загрузки настройки в Awake ебануть, а не в Start, хуй знает почему.
*настроек - самофикс
Ванговать надо было, бич
> А проблемно-ли начинать вообще играться с юнити
Тащем-та ничего сложного, просто берешь и играешь. Можно сделать 3D-шутер просто перетаскивая ассеты мышкой.
Но учти, сделать проект уровня хотя бы 2003 года потребует от тебя впилиться в области 3D-моделирования, разобрать сотни, тысячи строк кода из примеров, чтобы написать свой, ты будешь постоянно переделывать лучше одни и те же вещи по мере познания нового, будешь учить С#и ООП за 21 день для чайников, искать бесплатного художника, читать сотни статей по автогенерации листьев на деревьях, разработка затянется на годы, и короче вот твоё будущее: >>240719
Но это забавно, да.
1) Делать террейн из кучи мелких кусков(чанков), с достаточно большой плотностью вертексов, а потом через скрипт менять позицию вертексов когда это нужно. Сам понимаю что этот способ практически 100% провал, так как перевычислять позиции вертексов всей меши(/ей, когда деформация происходит на стыке чанков) и аплаить это все каждый кадр будет супер затратно, и получу я 1 фпс.
2) Использовать более низкополигональную меш, к которой будет применена тесселяция, которая в свою очередь будет использовать heightmap тексуру. Эту текстуру нужно изменять скриптом, то есть делать тоже самое, что и в способе 1, но вычислять меш заново каждый кадр уже не придется, из-за чего этот способ должен быть в разы быстрее(?)
Для этого способа нужно писать шейдер, чем я особо не занимался, поэтому был бы рад туторам по написанию шейдеров к пятому юнити.
В целом моей целью стоит сделать таким способом следы и ветер на песке, возможно вообще не стоит быть таким жестким, а просто сделать декали и эффекты?
Что скажешь, в каком направлении лучше рыть?
> Делать террейн из кучи мелких кусков(чанков), с достаточно большой плотностью вертексов
Игры отличаются от реальной жизни тем что там не копируют физические процессы со 100% точностью, а реализуют графические изыски обходными путями и расчетами. И моделировать песок из песчинок - это какой-то верх наркоманства просто. Так что лучше учи шейдеры, да.
Первый способ в принципе чисто теоретически годится, если не ошибаюсь, одним чуваком даже реализовывался, но у него на небольшом уровне пять или шесть десятков террейнов - чтобы они были минимального размера с минимальной детализацией. Это меньше грузит пересчёт коллизий. Если тебе нужен настоящий терраморфинг - это единственный вариант. Во втором варианте можешь забить хер на тесселяцию и рисовать просто в нормалку. И кстати, тебе не нужно пересчитывать всё каждый кадр.
1) Делаешь массив карты.
2) Заполняешь случайными числами в любом диапазоне.
3) Выбираешь точку поближе к центру.
4) Вокруг этой точки создаёшь 8-10 других точек на случайном расстоянии.
5) От каждой из этих точек запускаешь алгоритм поиска пути до каждой другой.
6) В твоём случае ещё Н раз запускаешь поиск пути от случайной точки до выхода.
7) Опционально запускаешь пару итераций клеточного автомата, чтобы слегка сгладить углы (только проверь потом, чтобы коридоры не перекрылись).
Шаги 3 и 4 можно менять по своему желанию.
Аватаркодауна спросить забыли.
Удивление.
Потыкался я в этот ваш DX11, заделал стандартный юнити плейн, который деформируется через рендер текстуру, дабы не возиться.
В видео сначала мацаю без тесселяции, потом выкручиваю ее, и получаю вполне гладкую яму.
Последняя фигня, которую не знаю как решить, это обновление текстуры в большом террейне. Я планирую делать большие открытые пространства, которые естественно не будут обновляться каждый кадр, а только кусками и при необходимости. Почитав скрипт референс, понял что SetPixel крайне хуев. Как еще можно перерисовывать текстуру height map'а?
У меня теперь эта музыка прочно с Бесконечным заводом ассоциироваться будет
>тайлить трехмерный меш вместо того чтобы использовать шейдор для блендинга
Вот уж действительно уровень /gd/
Ты не понял что я хочу. Я хочу именно тайлы как в don't starve или как в warcraft 3.
Ты видимо имел ввиду дефолтный шейдер terrain'а, который смешивает несколько текстур. Так только хуйня получается.
А, ну тогда звиняй.
хуй даже знает в чем твоя проблема. ты же понимаешь что то какой тайтл будет определяется вершиной квадрата, а не центром?
обводку*
что твоя мать шлюха.
Ты вообще нормальные интерфейсы в глаза видел?
Отступов нет потому что в юнити их тоже "нельзя сделать"?
Отступов у кнопок от краев? Спецом же для красоты. И я уже говорил, не могу в дизайн.
Как в варике всё равно не сделаешь, там смешивание до шести текстур в тайле. Близы боги.
я понимаю, просто решил воспользоваться стандартным вариком, ибо вполне годно выглядит, вроде
Хьюстон, у нас проблемы.
Я не пойму, это автор http://www.codeproject.com/Articles/106884/Implementing-Auto-tiling-Functionality-in-a-Tile-M особсрался с порядком тайлов, или я что-то не так понял?
ты совсем наркоман чтоли. принцип увидел? имплементируй как понял. это не автор обосрался, это ты обосрался. и у него расположение байтов
12
48
валенок ты. вот смотри. для наглядность включи например виндовный калькулятор погромиста, там байтики пишут.
1 = 0001
2 = 0010
4 = 0100
8 = 1000
у него в статье положение байтов начинается слева-направа, сверху-вниз.
тоесь первый байт тайла находится в левом верхнем углу, последний в правом нижнем.
тайл 0:
00
00
тайл 1:
10
00
тайл 2:
01
00
тайл 3:
11
00
понимаешь?
потому что 0011 = 3
а перечисление идет как
12
48
8421
теперь понял?
валенок ты. вот смотри. для наглядность включи например виндовный калькулятор погромиста, там байтики пишут.
1 = 0001
2 = 0010
4 = 0100
8 = 1000
у него в статье положение байтов начинается слева-направа, сверху-вниз.
тоесь первый байт тайла находится в левом верхнем углу, последний в правом нижнем.
тайл 0:
00
00
тайл 1:
10
00
тайл 2:
01
00
тайл 3:
11
00
понимаешь?
потому что 0011 = 3
а перечисление идет как
12
48
8421
теперь понял?
если слева направо, сверху-вниз, то тайл 3 будет 1100 = 8. А 0011 = 3 - это справо налево, снизу вверх!
да я его ещё вчера послал про marching squares читать, а он видимо даже википедию не открыл.
>>240976
слева направа, сверху вниз байты идут В КОНЕЦ числа. понимаешь? поэтому то я и написал
12
48
8421
это значит что чтобы получит первый тайл, надо написать
10
00
а чтобы восьмой
00
01
первый байт в перечислении соответствует единице.
радость то какая. у меня например в навмеше >>240757 почти то-же самое, только первый байт в правом нижнем углу, так как ты это сначала подумал. и вообще чего ты с байтами то возишься? битмап то дело паршивое, только память экономит. лучше тип тайла указывай, а не "зеленый, или не зеленый". например смотри, у меня такая-же хуйня в целом, но не битмап.
кстати, дам тебе загадку про байты. поймешь что написано - будешь лучше понимать байты и шарп. что делает этот структ?
>и вообще чего ты с байтами то возишься?
Так в этом суть метода. Чтобы номера соседних тайлов получить автоматически. Я бы сделал проще, если бы можно было проще.
>>240989
>что делает этот структ?
Понятия не имею лол.
суть метода в хранении и том как переводить биты в числа. например смотри - тип тайла указывается например ЧИСЛОМ, вместо бита. у меня оно указывается int в котором хранится хеш, который там комбинируется из хеша зоны и проходимости зоны и хуйни-муйни, который я потом при желании могу хватать. но в итоге это просто int, а не bit. карту можно хранить в int[,].
и например вместо битмапа
01
00
использовать интмап
01
02
где слева например песок, в правом верхнем обосаное сено, а в правом нижнем там картошка навалена. и то есть ли там нужный тебе бит определяется не == 1, а == нужное число.
>>240990
а вот догадайся. подумай вот о том почему Debug.Log(1 | 2); напишет тебе 3.
Это теперь стандартная музыкальная тема /gd/?
Верстаешь окно на UnityUI и через контроллер этого окна меняешь переменные в твоих контролах. Возможно эти переменные придется тогда сделать [NonSerialized].
Окно "параметры" это лаунчер? Все его настройки ограничиваются включением выключением и по мелочи.
Спасибо
Лучший вариант
если ты про старый то на http://wiki.unity3d.com/index.php?title=DrawLine что-то вроде этого. только вместо растягивания и кручения скейли как надо и рисуй где хочешь.
>похоже придется делать омский тридэ рогалик
я пробовал начинать писать пикрилейтед многолетназад, но забил сразу как сделал генеранор деревьев (не юнити)
дерево - из веток состоит а не из сдутого гандона на палке
Возможно что то сверху перекрывает кнопку
Чуток допилить и очередная игра по слендер мену готова.
Зашел посмотреть что здесь такое и охуел.
Господи, вы ебанутые, вы все на голову блядь ебанутые. Навмеш своей мечты блядь, какая-то совершенно ебанутая черная говнокодерская магия, ебать, что вы вообще со своей жизнью делаете? Пиздец, просто пиздец, я такой ад вижу нахуй впервые.
мимокун из геймдева irl
Внутри:
/library/
Не работает.
Посмотрел видос https://www.youtube.com/watch?v=SkKPlfUoyu8
Сделал .hgignore
Внутри:
syntax: glob
.sln
syntax: regexp
^Library/*
Всё равно нихуя не работает. В каком месте я криворукий долбаёб?
P.S. В тырнетах ваших нихуя не нашёл даже у пиндосов, выходит бабка была права - "он и нахуй нам не нужон, интернет ваш"
марс
да хочу сделать именно так, есть идеи, куда копать? или примеры?
Это копия, сохраненная 2 мая 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.