Войти
Unity

Unity

Создание игр на движке Unity

СтатьиФорумИнфо

Статьи

Контент-ориентированная генерация уровня в Unity в конкурсе «Храм Хаоса»
Контент-ориентированная генерация уровня в Unity в конкурсе «Храм Хаоса»
Я, как и обещал, делюсь своими идеями насчет процедурной генерации уровней. Все то, что я опишу далее, ни в коем разе не претендует на истину, новаторство и, тем более, на что-то амбициозно-гениальное. Все это родилось лишь из непонимания общепринятых принципов современной процедурщины и математики, а также жгучего желания облегчить себе жизнь.

Читать | Комментарии [8]
15 мая 2020

Unity Character Motor
Unity Character Motor
Когда-то давно, еще во времена Unity 3, мне стало интересно как работает физика персонажа. И я заглянул в класс CharacterMotor. Класс был написан на JavaScript, был огромный, страшный и непонятный. Я решил переписать его на C#, попутно отрефакторив. Недавно я вспомнил про свой старый CharacterMotor, решил еще немного подправить его и поделиться им. Тем более, тема физики персонажа не очень популярная (я вообще не видел никакой информации), хотя довольно интересная.

Читать | Комментарии [61]
29 июня 2016

Реализуем multi-touch жесты самостоятельно
Реализуем multi-touch жесты самостоятельно

В этой статье будет рассмотрена реализация pan (перемещения) и pinch zoom (масштабирования двумя пальцами) изображения. В результате получится некий аналог приложения для просмотра фотографий.

Читать | Комментарии [2]
20 окт. 2012

Простая машинка в Unity
Простая машинка в Unity
Урок по созданию простой машинки в среде Unity при помощи компонента WheelCollider. Описаны базовые настройки этого компонента. Для понимания урока необходимы базовые знания среды Unity.

Читать | Комментарии [15]
19 июля 2011

Блог

На Stackoverflow добавлена community-документация
На Stackoverflow в рамках проекта Documentation создан раздел для Unity.
Это позволяет пользоваться документацией к Unity, созданной сообществом.

У такой документации есть преимущества:

  • Любую недоработку в документации может исправить кто угодно.
  • В любой момент можно добавить недостающую информацию.
  • Карма, полученная в рамках этого проекта, идёт в общую карму stackoverflow.

Есть и недостатки:

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

Запросы на добавление недостающей документации можно добавлять через кнопку "Request Topic".
Также можно голосовать за добавление недостающих разделов на главной странице тега Unity.

Ссылка
24 июля 2016

В Unity 5.4 будет прекращена поддержка WebPlayer
Согласно Unity 5.4.0b1 release notes и Роадмап Unity Web Player, в Unity 5.4, выпуск которого запланирован на март 2016 года, будет прекращена поддержка платформы WebPlayer.

Официальный блог Unity3D рекомендует переводить игры, использовавшие WebPlayer, на платформу WebGL.
Тем не менее, сами Unity признают, что WebGL всё ещё накладывает серьёзные ограничения на некоторые игры, изначально создаваемые для WebPlayer.

Чтобы помочь разработчикам сориентироваться в новой технологии WebGL, на форуме Unity была создана специальная тема WebGL Roadmap, которая помогает понять, какие ограничения есть у WebGL и как их можно обойти. Тема была создана полгода назад, поэтому рекомендуется следить за Unity roadmap и официальным блогом, чтобы быть в курсе изменений платформы WebGL.

Ссылка | Комментарии [10]
14 янв. 2016

Редактор Unity появится на Linux
Unity Technologies планируют портировать редактор Unity на Linux.
Он обязательно будет поддерживать Ubuntu версии не менее 12.04 и будет настолько же функциональным, как и его версии для Mac OS и Windows, кроме сборки игр под iOS.
В данный момент редактор существует в виде отдельной экспериментальной ветки внутри компании. Unity Technologies планируют в скором времени собрать экспериментальную сборку редактора и представить её публике.

Ссылка | Комментарии [9]
12 июля 2015

Видеоуроки по программированию на C# Unity для начинающих
Программирование на C# под Unity.
Смотрим на Ютубе.

Ссылка | Комментарии [2]
29 июня 2015

Вышел Unity 4.6
Сегодня вышла новая версия Unity 4.6. Главным нововведением в этой версии стала новая система создания пользовательского интерфейса, которая позволяет легко настраивать интерфейс игры в редакторе.
Подробнее…

Ссылка
27 ноя. 2014

Открытая бета Unity 4.6 доступна для скачивания
Unity4.6 Open Beta | Открытая бета Unity 4.6 доступна для скачивания

Стала доступной открытая бета-версия Unity 4.6: http://unity3d.com/unity/beta/4.6
Главное новшество в ней - новая система UI, которая наконец-таки соответствует современным стандартам.

Приятным бонусом также является исходный код встроенных в Unity шейдеров, который можно скачать на той же странице. Это является следствием инициативы Unity по открытию исхдных кодов своих компонентов: http://blogs.unity3d.com/2014/08/20/more-open-source-initiatives-from-unity/

Ссылка | Комментарии [9]
21 авг. 2014

Visual Studio Tools for Unity стал бесплатным
29 июля в блоге Microsoft без лишнего шума появилась новость о том, что официально выпущен бесплатный плагин для Visual Studio под названием Visual Studio Tools for Unity, ранее известный как UnityVS.
Его ключевой особенностью является возможность отладки проекта Unity в Visual Studio. Без этого плагина отладка возможна только с помощью MonoDevelop.

Ссылки на скачивание:


Инструкция по установке

Ссылка | Комментарии [3]
12 авг. 2014

Unity про поддержку Metal
Изображение
На недавней WWDC компанией Apple был представлен новый графический API под названием Metal, отличительной особенностью которого стала высокая эффективность, низкий уровень издержек и оптимизация под чип A7. Metal предоставляет разработчикам возможность воспользоваться всеми преимуществами устройств на iOS и добиться намного большего уровня реалистичности, детализации и интерактивности в играх, чем когда бы то ни было.
Unity очень скоро добавит поддержку Metal в свой инструментарий. Новая запись в блоге поможет узнать подробности о новой технологии, и разъяснит, почему это очень хороший вариант для разработчиков.

Ссылка
7 июля 2014

Форум

Как включить Fog?22 янв. 20210:03Dakon
Unity 2020.1.2. Не могу включить туман. Раньше просто галку ставил в разделе Lightning, и все работало. Сейчас все перерыл, никак туман не включается. В чем может быть проблема?
ComputeShader19 янв. 202121:30DrMaS
Добрый день!
Решил опробовать скорость математических решений на GPU, с моими нулевыми познаниями в этой области...
При запуске, программа либо вылетает либо зависает.
в общем алгоритм таков:
передаю массив данных в GPU
там делаю математические вычисления
далее пытаюсь прочитать (передать) массив обратно

код "шейдера"

+ Показать
[numthreads(1, 1, 1)]
void ForWards(uint3 id : SV_DispatchThreadID)
{
     w_x = input_Length;
     w_y = output_Length;
     w_w = w_Length;

    for (int y = 0; y < w_y; y++) 
     {
         Buffer_output_neron[y].input = 0;
         for (int x = 0; x < w_x; x++)
         {
             temp_adr = (x * w_y) + y;
              Buffer_output_neron[y].input += Buffer_input_neron[x].output * Buffer_weight[temp_adr].w_;
         }
        Buffer_output_neron[y].output = 1 / (1 + pow(2.71828175, -Buffer_output_neron[y].input)); 
     }                                                                          
}

И код . запускается практически каждый цикл.

            gpu_comp.SetInt("input_Length", temp_nerons_input.Length);
            gpu_comp.SetInt("output_Length", temp_nerons_output.Length);
            gpu_comp.SetInt("w_Length", temp_weight.Length);

            Buffer_input_neron.SetData(temp_nerons_input);
            Buffer_output_neron.SetData(temp_nerons_output);
            Buffer_weight.SetData(temp_weight);

            gpu_comp.SetBuffer(kiCalc, "Buffer_input_neron", Buffer_input_neron);
            gpu_comp.SetBuffer(kiCalc, "Buffer_output_neron", Buffer_output_neron);
            gpu_comp.SetBuffer(kiCalc, "Buffer_weight", Buffer_weight);

            gpu_comp.Dispatch(kiCalc, 1, 1, 1);
        
            Buffer_output_neron.GetData(temp_nerons_output,0,0, temp_nerons_output.Length);
     //Buffer_output_neron.GetData(temp_nerons_output);
ну и инициализация:
void Start()
    {
        kiCalc = gpu_comp.FindKernel("ForWards");
        Buffer_input_neron = new ComputeBuffer(2800, 4 * 4);
        Buffer_output_neron = new ComputeBuffer(2800, 4 * 4);
        Buffer_weight = new ComputeBuffer(6720000, 4 * 3);
как я понимаю, зависает при выполнении .GetData.
Куда копать? что делать?

     

Где можно купить анимации?16 янв. 202117:34AleksSat
Доброго времени суток!

Подскажите пожалуйста, где можно приобрести анимации для персонажей кроме Asset Store, Marketplace, Mixamo?

Быстро считать текстуру13 янв. 202118:22Increaser
Задача - быстро считывать с диска текстуры размером 512х512.
Быстро должно работать и на телефоне. При этом основной поток блочится не должен.

Что пробовал:

UnityWebRequestTexture.GetTexture
медленно
texture.LoadImage
достаточно быстро, но фризит main, потому не годится
texture.LoadRawTextureData
идеально по скорости, но сами файлы слишком большие получаются.

https://codeberg.org/matiaslavik/unity-async-textureimport
обертка над FreeImage. Не сказать что по скорости сильно лучше метода номер 1.

Пробовал сжимать файлы для LoadRawTextureData, слишком медленно.

Может кто еще какие-то методы подскажет?

Правка: 18:24

Как убрать этот неестественный синий блик?12 янв. 202120:10Walk
Кто-то может подсказать, из-за чего присутствует такой неестественный синий блик на объектах?
Изображение

В сторону каких настроек смотреть?

Distortion(Displacement?) texture shader11 янв. 202117:39Vogd2
Привет!
Кто знает, как сделать эффект волны на картинке?
Хочу во время взрыва сделать скриншот экрана, наложить на него круговой distortion с увеличением радиуса, а поверх уже рисовать частички взрыва.

Все что смог найти в сети это distortion через grabpass, что не подходит, так как ресурсоемко для мобилок.
А может это называется Displacement?

Может кто-то идею понимает, как это делается?

Спасибо!

Правка: 18:02

Что лучше для фпс - один большой меш или много маленьких?9 янв. 202115:49CTPEJIOK22
Добрый день, делаю гонки на unity, сразу решил загнаться с вопросом оптимизации, упрощаю все, что только можно. Дело в том, что хочу сделать небольшой проект на ps vita, которая довольно слабенькая, но можно что-то выжать. Помимо этого запускал проект на nintendo switch и xbox one, оптимизация там в тему.

Что сделал - традиционно объединил статичные меши по материалам, в итоге static batching отрабатывает на ура, сцена может занимать 5-7 батчей. Динамического батчинга на вите нет, лишь на других платформах, но можно пережить, примерно 90 батчей будут давать еще 60-70 фпс. Пробую еще сделать сами машины skinned mesh с одним-двумя материалами, снизив батчи с 15 до 5 и тут есть еще что упростить.

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

Но тут меня смутил следующий момент, есть плагин Mesh Combine Studio ( https://assetstore.unity.com/packages/tools/modeling/mesh-combine… udio-2-101956 ), который занимается тем, что объединяет объекты в один, можно делать это как в редакторе, так и в рантайме. Тема тоже старая и вполне известная, на некоторых сценах прирост фпс просто огромный, но тут я что-то подвис - а есть ли смысл в такой оптимизации на большой карте или вообще в открытом мире? Все объекты уровней очень лоупольные, сейчас делаю набор для трасс, чтобы можно было префабами соединять и делать что-то большее. И первоначально мне казалось, что много мелких префабов (трасса, столбы, ящики, дома, итд) - это хорошо, но чем больше читаю, тем больше сомнений, а не лучше ли сделать какой-то кусок уровня в том же 3д максе, объединить и грузить целиком? Но тогда будет вставать вопрос про кулинг.

Подскажите, пожалуйста, да наставьте на путь истинный. И если кто может подсказать еще какие варианты оптимизации - буду рад услышать.

Сам проект можно глянуть тут:

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

Не работает OnCollisionEnter2D8 янв. 202119:13Shark's_Game
Не работает OnCollisionEnter2D

void OnCollisionEnter2D(Collision2D other){
  if(other.gameObject.tag == "Enemy"){
    //Смерть
  }
}

Тег на другом объекте есть, колайдер есть на всех объектах, скрипт на герое есть

Мучаюсь с этим уже несколько дней


ПОМОГИТЕ!!!!!!!!!!

Кнопка появляется под указтелем мыши - как удобней поймать?8 янв. 20214:00kkolyan
Есть меню (скиллбар). При наведении мышки на скилл появляется попап с описанием. В игре есть "смена стойки", при которой все скиллы на скиллбаре меняются. Если мышка при этом неподвижна - попап остается со старом описанием.

Использую IPointerEnterHandler/IPointerExitHandler для отловки мышки над иконкой скилла. При появлении новой кнопки под курсором, IPointerEnterHandler не срабатывает, пока мышку не сдвинуть. Знает ли кто как можно зафорсить событие движения мышки без его движения? Ну или может подскажете более удачное решение :)

Вопрос на unity/answers (на который я не рассчитываю, по известным причинам)

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

Правка: 7:42

Что должен знать Junior программист на Unity?7 янв. 202116:51WasTabon
Есть же минимальные требования, там табличка какая нибудь?