Что нового в unity 2020.1?

Содержание:

Введение

Inversion of Control (IoC) и Dependency Injection (DI)

википедии*Сразу же хотелось оговориться, что мне больше по душе не употреблять для IoC русскоязычного перевода, но всё же если меня заставят это сделать, что я употреблю его, как «инверсия управления»википедииКлассический примерFactory, Registryсписок .NET DI/IoC контейнеров

  • Castle Windsor
  • StructureMap
  • Spring.NET
  • Autofac
  • Unity
  • Puzzle.NFactory
  • Ninject
  • S2Container.NET
  • PicoContainer.NET
  • LinFu

Aspect-oriented programming (AoP)

википедииDecoratorрус.

  • PostSharp
  • Aspect.NET
  • LOOM.NET
  • Puzzle.NAspect
  • AspectDNG
  • Aspect#
  • Encase
  • Compose*
  • Seasar.NET
  • DotSpect (.SPECT)
  • Как чаcть функциональности The Spring.NET Framework

О Microsoft Enterprise Library

Enterprise Library до 4.1Unity Application Block до версии 1.2patterns & practices

  • Caching Application Block. Разработчики могут использовать этот блок для реализации кэширования в своих приложениях. Поддерживает так же подключаемые кэш провайдеры.
  • Cryptography Application Block. Разработчики могут использовать этот блок для реализации хеширования и симметричного шифрования в приложениях.
  • Data Access Application Block. Разработчики могут использовать этот блок для реализации стандартных действий с базой данных в своих приложениях.
  • Exception Handling Application Block. Разработчики и редакторы правил могут использовать этот блок для реализации последовательной стратегии обработки исключений, которые происходят на всех архитектурных слоях корпоративных приложений.
  • Logging Application Block. Разработчики могут использовать этот блок для реализации стандартных функций логирования.
  • Policy Injection Application Block. Разработчики могут использовать этот блок для реализации политик перехвата для того, чтобы насытить приложение такими возможностями, как логирование, кеширование, обработка исключений и валидация на уровне всего приложения.
  • Security Application Block. Разработчики могут использовать этот блок для реализации механизма авторизации и безопасности приложений.
  • Unity Application Block. Разработчики могут использовать этот блок, как легковесный, расширяемый dependency injection контейнер с поддержкой внесения зависимостей в конструктор, свойство и вызов методов, таким же образом, как и реализация перехвата, через расширения.
  • Validation Application Block. Разработчики могут использовать этот блок для реализации правил валидации для бизнес-объетов, используемых в приложении.

О Unity Application Block

  • Вы можете использовать Unity Application Block как автономный механизм внесения зависимостей, не нуждаясь в установленной EntLib.
  • Unity Application Block может быть сконфигурирован как с помощью спецализированных файлов конфигурации, так и в run-time режиме с помощью вашего кода.
  • Unity Application Block независим от ядра EntLib, ровно как от системы конфигурации EntLib. Он содержит свой собственный механизм для конфигурирования, хотя, при желании вы можете использовать механизм конфигурации EntLib.

Требования

  1. Установленный .NET Framework 3.5 SP1
  2. Ваша любимая IDE (Notepad..Visual Studio 2008 SP1)
  3. Установленный
  4. 15-20 мин времени и немного интереса

Процесс

  • Microsoft.Pratices.ObjectBulder2
  • Microsoft.Pratices.Unity
  • Microsoft.Pratices.Unity.Interception.

нового атрибута

Материалы

  • Написание это статьи было инициировано просмотром небольшого скринкаста от David Hayden. Примеры кода с небольшими поправками позаимствованы из него.
  • При написании статьи, в основном, я руководствовался базовыми знаниями, почерпнутыми когда-то из замечательной книги “Applying Domain-Driven Design and Patterns” by Jimmy Nilsson.
  • Так же замечательной кладезью знаний Википедия.

Введение

Для всех инструкций, предоставляемых Unity ( , , и другие) базовым является ничем не примечательный класс (docs):

Под капотом, корутины — обычные перечислители ((docs)). Каждый кадр вызывается метод . Если возвращаемое значение равно — выполнение откладывается до следующего оператора, если же — останавливается.

Для кастомных инструкций Unity предоставляет одноименный класс (docs).

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

Пример из документации:

Согласно ей же, геттер выполняется каждый кадр после и перед .

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

Исследование шейдера песка игры Journey

Перевод

Начало серии статей здесь

Часть 4: зеркальное отражение

В этой части мы сосредоточимся на зеркальных отражениях, благодаря которым дюны напоминают океан песка.
Один из самых интригующих эффектов рендеринга песка Journey заключается в том, как дюны сверкают в лучах света. Такое отражение называется зеркальным (specular). Название произошло от латинского слова speculum, означающего «зеркало». Specular reflection — это «зонтичное» понятие, объединяющее в себе все типы взаимодействий, при которых свет сильно отражается в одном направлении, а не рассеивается и не поглощается. Именно благодаря зеркальным отражениям и вода, и отполированные поверхности под определённым углом выглядят сверкающими.
В Journey представлено три типа зеркальных отражений: свечение краёв (rim lighting), зеркальное отражение океана (ocean specular) и отражение отблесков (glitter reflections), показанные на схеме ниже.

Unity for Linux

Unity is described as a ‘flexible and powerful development platform for creating multi-platform games’.

Unity Technologies offer the editor free though software purists should note that it is not open source.

The decision of whether the preview passes beyond this technical preview and into something the company can ‘sustain as an official port alongside Mac and Windows editors’ depends on several factors: how well the Linux community receive the preview, the number and scale of issues they unearth while using it, and, ultimately, how big the support burden to maintain it is.

It’s worth noting that the Unity 3D run-time, the bit that allows games made with the editor to run, launched on Linux back in 2012 (initially as a preview). The ‘support burden’ for this, Unity say, was low.

Based on Unity 5.1.0f3, the native Unity Linux editor allows developers to export to the following run-times:

  • Windows, Mac, Linux Standalone (Unity-based)
  • WebGL
  • WebPlayer
  • Android
  • Tizen
  • SamsungTV

The launch of the Unity Linux build marks a significant moment in the viability of Linux, not just as a gaming platform but a more encompassing development one.

That said, it should be noted that the Unity editor is but one part in a wider development workflow. Without Linux versions  of an ancillary software, be it native ports or open-source alternatives, not all developers will be upping their proverbial sticks to switch to Linux full-time.

System Requirements and Support

The Unity 3D editor officially supports Ubuntu 12.04 LTS or later but only on 64-bit versions. A modern Nvidia, AMD, or Intel graphics card is required and proprietary graphics drivers must be installed.

Installing using the official .deb will pull in all the necessary dependencies, however you will need to install Monodevelop manually (it’s available in the Ubuntu Software Center).

The editor may also run just as well on other (modern) Linux distributions, so long as they meet the system requirements above. A ‘platform agnostic installer‘ is available to help though it should be considered ‘unsupported’.

In short: if you want the best experience you should use it on Ubuntu.

Feedback can be left on the Unity3D forums.  This will serve as the primary port-of-call for Linux users looking to hear the latest news.

To download Unity for Linux hit the button below to grab the .deb installer (roughly 900MB).

Thanks to Liam Dawes/GOL
Image credit: Unity Technologies

Unity Editor Adventures: Сериализованная Матрёшка

Из песочницы

Краткое вступление

Как правило, для того чтобы добраться до интересующего нас поля сериализованного свойства, мануальная терапия советует нам использовать метод FindPropertyRelative(), в который прокидывается название переменной.
По определённым причинам такой подход не всегда удобен. Причины могут быть самыми разнообразными. Например, название переменной может смениться, нам кровь из носу нужен доступ к несериализованному свойству, нам необходимо иметь доступ к геттерам-сеттерам или вообще методам сериализованного объекта. Не будем задавать вопросов «зачем вам это вообще нужно» и «почему вы не могли обойтись традиционными путями»

Положим, нужно – и всё тут.
Итак, давайте же разберёмся как из сериализованного свойства получить объект, с которым мы работаем, а также все его родительские объекты, и не навернуться по дороге сериализации, полной подводных камней.Внимание. Данная статья подразумевает, что вы уже умеете работать с UnityEditor’ом, хотя бы раз писали кастомные PropertyDrawer’ы и хотя бы в общих чертах понимаете, чем сериализованное свойство отличается от сериализованного объекта.

Adding existing instances of the Editor to the Hub

You can add instances of the Editor to the Hub that you installed outside of the Hub.

  1. Click the Installs tab.

  2. Click the Locate button to find existing installations of the Editor.

  3. In the file dialog, navigate to the location of the Editor installation and select the Unity executable. On MacOS this is Unity.app. On Windows this is Unity.exe.

    On Windows, the typical location of the Unity.exe is:

    Or

    On macOS, the typical location of the Unity.app is:

    On Linux, the typical location of the Unity executable file is:

  4. Click the Select Editor button.

To remove the Editor from the Hub, click the three dots next to the Editor version. Removing an Editor that you added in this manner does not uninstall it or modify it in any way.

Installing individual Unity components on Windows from the command line

Use the following options when installing the Editor and other components from the command line on Windows.

Note: Installer command line arguments are case-sensitive.

Unity Editor install

Command Details
/S Performs a silent (no questions asked) install.
/D=PATH Sets the default install directory. Useful when combined with the silent install option. The default folder is C:\Program Files (x86)\Unity (32-bit) or C:\Program Files\Unity (64-bit).

Example:

This example installs Unity silently to a E:\Development\Unity folder, which becomes the root of the Unity installation. In this case, the Editor executable is installed in E:\Development\Unity\Editor\Unity.exe. The default install directory must be the last argument on the command line. The supplied path must not be surrounded by quotes, even if the path contains spaces.

Unity Editor uninstall

To perform a silent uninstall, run from the command line or a script.

Note: Although the process finishes right away, there is a delay before the files are actually removed. This is because the uninstaller is copied to a temporary location to enable it to remove itself. Make sure that the working directory is not inside the Unity install location. If it is, the uninstaller is unable to remove the folder.

Standard Assets install

To silently install Standard Assets:

Note: If specifying a folder, use the Unity root folder (that is, the folder containing the Editor folder, and not the folder in which Unity.exe is installed.)

Блендинг террейна и меша в Unity

Перевод

Сегодня мы поговорим о том, как делать блендинг меша с террейном (или с другими мешами) в Unity. Это руководство довольно продвинутое, но я постарался разбить его на отдельные этапы. Предполагается, что у вас есть общие навыки работы с Unity и базовое знание С#. Руководство разработано для amplify, но я думаю, что его можно также применить и к Shader Graph. Это мое первое руководство, поэтому надеюсь, что оно получится достаточно понятным. Если вы захотите что-то добавить, дайте знать. Я включил сюда стартовый набор, в котором есть некоторые дополнительные шейдеры для этого проекта, а также базовый комплект для начала работы. Все файлы проекта из сегодняшнего руководства доступны моим патронам за $5, но в ближайшем будущем, они будут доступны всем желающим.

Testing precompiled code

Below is an example of how to use the precompiled code. It prints a message that depends on the platform you have selected for your target build.

First of all, select the platform you want to test your code against by going to File > Build Settings. This displays the Build Settings window; select your target platform from here.

Build Settings window with PC, Mac & Linux selected as the target platforms

Select the platform you want to test your precompiled code against and click Switch Platform to tell Unity which platform you are targeting.

Create a script and copy/paste the following code:

To test the code, click Play Mode. Confirm that the code works by checking for the relevant message in the Unity console, depending on which platform you selected — for example, if you choose iOSApple’s mobile operating system. More infoSee in , the message “Iphone” is set to appear in the console.

In C# you can use a attribute which is a more clean, less error-prone way of stripping out functions. See ConditionalAttribute Class for more information.
Note that common Unity callbacks (ex. Start(), Update(), LateUpdate(), FixedUpdate(), Awake()) are not affected by this attribute because they are called directly from the engine and, for performance reasons, it does not take them into account.

In addition to the basic compiler directive, you can also use a multiway test in C#:

Главное меню — Dash

Dash это специальное меню, через которое можно искать и открывать приложения, файлы и каталоги, а также выполнять другие полезные действия. Чтобы открыть меню Dash необходимо просто кликнуть по кнопке с логотипом Ubuntu на Лаунчере (она назвается Ubuntu Button или Home Button) или нажать клавишу Win на клавиатуре (клавиша с логотипом Windows).

Основные элементы Dash это: строка поиска, рабочая область в которой выводятся результаты (кнопки, иконки приложений, файлов и так далее), переключатель линз (Lens bar).

Строка поиска предназначена для поиска файлов и приложений по названию. Поиск осуществляется сразу по мере ввода символов.

Функциональность Dash постоянно расширяется. Поэтому поиск это только малая часть того, что будет уметь Dash в будущем. Уже сейчас через Dash можно, например, просматривать изображения, слушать музыку.

Линзы — Lenses

В нижней части меню Dash располагаются иконки для переключения Линз. Линзы представляют собой дополнительные вкладки для меню Dash. Каждая Линза имеет свою функциональность. Но в целом все они нацелены на то, чтобы осуществлять поиск определенных типов файлов и документов или приложений. Например, доступна линза для поиска приложений (Applications), линза для поиска файлов и каталогов (Files & Folders), линза для поиска музыки (Music Collection), линза для поиска видео (Videos). Также доступна основная линза Home.

Фильтры — Scopes

Линзы могут иметь фильтры, называемые Scopes. Фильтры предназначены для расширенного поиска, они позволяют фильтровать результаты и делать дополнительные выборки.

Например, линза для поиска видео содержит меню, через которое можно отфильтровать результаты поиска. Можно искать видео-файлы на локальном компьютере или же вывести результаты, найденные в интеренете. Линза для поиска приложений позволяет отфильтровать результаты по типу приложения.

How to Install Unity3D on Linux Ubuntu 18.04 LTS/ 19.04/ 19.10- Clear Steps:

  • Let us get into the process right away.
  • After the download, let us make it as an executable file using the following command.

$ Copy

Syntax: chmod +x /filepath/filename

Note: The above file path will vary as per your download file location. Please replace it with your file location path.

Nextly, let us add the required library files(library files, modules, etc).

$ Copy

We will run the Linux Download Assistant installer using the following command.

$ Copy

  1. Now the Unity Installer Assistant will run. Click on Forward on the first step.

  2. Accept the terms and Forward.
  3. Choose the required components such as Android build support, iOS build support, Mac build support and more. Click Forward. By default, Unity 2018.2.7f1 and the Documentations will be selected.
  4. The next step is to specify the location of files downloaded during installation. I prefer to keep downloaded files on the Downloads folder and then click Forward.
  5. The downloading Unity process will start now. Please wait until the download completes.
  6. After the download, Unity will be installed.Note: The download file size will be a minimum of 800 MB and as maximum as 10 GB depending upon the components you select.
  7. As Documentation is selected by default, it will also be installed.
  8. After the complete installation of Unity, click on Finish. Make sure that the Launch Unity checkbox is checked to launch the unity3D application.
  9. Before working with Unity, there are a couple of steps remaining and let us complete them. The following are them.
  10. Open Terminal and execute the following commands.

$ Copy

$ Copy

Note: The above command will take 5 to 15 minutes to process completely. Hence Kindly wait.

$ Copy

After executing the above commands, Unity3D is ready to operate now. You can open Unity3D via terminal.

$ Copy

Unity opening for the first time

Logging into Unity3D:

  • You need to login with your Unity credentials or via Gmail or Facebook.
  • When you are using Unity for the first on your system, you will be asked to accept the Software License Agreement.
  • Nextly, you need to check up with your Product License.
  • Configure your Profile.
  • That is it. You are now into Unity.

Installing several versions at once

You can install multiple versions of Unity on the same computer.

On a Mac, the installer creates a folder called Unity, and overwrites any existing folder with this name. To install more than one version of Unity on your Mac, rename the existing Unity folder before installing another version.

On a PC, the install folder is always named Unity X.Y.ZW, where the f is for an official release, and p is used to mark a patch release.

We strongly recommend that if you rename a Unity folder, you name the new folder logically (for example, add the version number to the end of the name). Any existing shortcuts, aliases and links to the offline docs might no longer point to the old version of Unity. This can be particularly confusing with the offline docs; if you suddenly find that browser bookmarks to the offline docs no longer work, then check that they have the right folder name in the URL.

  • Installation advice updated in Unity 2017.2
  • Installation advice updated in Unity 2017.4

Adding modules to the Unity Editor

Installing Unity offline without the Hub

Идеальные карты нормалей для Unity (и других программ)

Перевод

… и как разобраться, что не так с вашим конвейером создания контента.

Допустим, у вас есть потрясающая высокополигональная модель, над которой поработал художник, и вы хотите поместить её в игру. Художник показывал скриншоты модели в своей программе и они выглядят потрясающе. Даже после запекания карт нормалей для низкополигональной версии она всё равно выглядит отлично.Узрите величие этой традиционной модели для тестирования карт нормалей!
Затем художник помещает её в игру, и она выглядит… немного не так.Разве эти грани не должны быть плоскими?
Поверхности, которые должны быть плоскими, всё равно немного скруглены, некоторые даже вдавлены, и хуже того, по ним идут странные полосы. Знакомая ситуация? Некоторые из вас вероятно с ней сталкивались, думали: «ну ладно, наверно, лучше уже не получится», и двигались дальше. Возможно, накладывали немного грязи, чтобы замаскировать самые тяжёлые случаи.
Но на самом деле что-то не так в вашем конвейере создания контента. Это не всегда очевидно, но проблему можно решить!**Если считать, что в некоторых случаях вы можете вносить изменения в конвейер контента.

Установка Unity 8 Ubuntu 16.04

Вы можете установить предварительную версию Unity 8 в Ubuntu 16.04 с помощью изолированных контейнеров параллельно с используемой Unity 7 чтобы не просто посмотреть обзор Unity 8, но и попробовать ее самому. Затем нужно просто выбрать сеанс входа в систему в менеджере ввода пароля.

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

Сначала не забудьте обновить систему до самой новой версии:

$ sudo apt full-upgrade

Если вы уже установили Ubuntu 16.04, вы можете установить последнюю, предварительную версию Unity 8 прямо из официальных репозиториев Ubuntu. Просто откройте терминал и наберите команду:

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

А теперь непосредственно установка Unity 8 Ubuntu 16.04. Для запуска мастера наберите:

В терминале во время установки могут выводиться сообщения об ошибках или AUTH уведомления. После завершения установки рекомендуется перезагрузить компьютер, поскольку был изменен LightDM.

После перезагрузки просто выберите сеанс Unity 8 на экране приветствия Untiy и войдите в систему, как обычно.

Установка Mir ubuntu 16.04 будет выполнена автоматически, поскольку он находится в зависимостях Unity 8. Обновить Unity 8 до последней версии можно тоже через терминал. Для этого используется специальная утилита:

Вам необязательно использовать изолированный контейнер для установки. Можно сразу же установить Untiy 8 и дисплейный сервер Mir в вашу систему. Установка Unity 8 Ubuntu 16.04:

После завершения процесса, завершите сеанс, а затем выберите сеанс Unity 8 также как и в предыдущем варианте.

Убедится в том,что установлена именно нужна версия можно, выполнив в терминале:

Заметьте, что Unity 8 и Mir, скорее всего, не будут работать на VirtualBox, вам придется установить систему на реальный компьютер. Также могут возникнуть проблемы с проприетарным драйвером от NVIDIA, в таком случае используйте nouveau.

Удалить Unity 8 в Ubuntu 16.04 установленную таким способом можно открыв терминал (Ctrl+Alt+F1) и выполнив там команду:

$ sudo apt remove unity8-desktop-session-mir

Еще несколько скриншотов:

Инди-проект Tenebris, или геймдев без бюджета

Из песочницы

Друзья, меня зовут Пётр и хочу рассказать вам о своем опыте в разработке инди-игры  —  Tenebris. Работа над проектом началась с мая 2019 года, именно тогда, имея в голове лишь приблизительный концепт и дикое желание, начал собирать команду.
Довольно скоро ко мне присоединился приятель и вместе мы стали продумывать механики. 

С чего все началось

На сегодняшний день, в жанрах RPG и RTS сложилась специфическая ситуация. Талантливые студии, в свое время завоевавшие любовь игроков, благодаря созданию качественных и как следствие коммерчески успешных проектов, были поглощены крупными издателями. Компании полностью переориентировалась на более молодую аудиторию, значительно упрощая свои игры в угоду мнению маркетологов и тенденций мобильного рынка. 
Из за проблем с правообладателями, такие серии как HoMM и Disciples сильно испортились и потеряли популярность. Среди современных игр, сложно найти что то сравнимое с ними по глубине и механикам. Мне самому очень бы хотелось поиграть в игру, схожую с Disciples 2 но с современными механиками и возможностями. Но к сожалению, такой игры не было.
Говоря проще — мы устали ждать новую классную игру, поэтому решили сами ее сделать.

Как отбивают желание делать игры и вообще что-либо

Параллельно, я пошел на курсы геймдизайна. По мере прохождения обучения я получил обратную связь в виде утверждения — «идея классная, но у вас все равно ничего не получится» (дальше шел больший список перечисления почему не получиться). 
Впрочем, переубеждать в обратном я никого не собирался, чего и Вам советую.

Как перенести шейдер из игрового движка в Substance Painter

Tutorial

Меня зовут Тарас Улейский, я Technical Artist в Plarium Kharkiv. Для оптимизации графики нашей Survival RPG на мобильных устройствах мы использовали свои кастомные шейдеры. Они предполагают использование уникальных текстур и карт, которые не похожи на текстуры и карты в других популярных способах шейдинга. В результате 3D-художникам не совсем понятно, как создавать эти текстуры для ассетов в игре. Чтобы сразу можно было увидеть, как 3D-модель будет выглядеть в движке игры на этапе текстурирования, я перенес шейдер в Substance Painter. Материалов по API в Substance Painter на данный момент практически нет, я изучил эту тему самостоятельно, поэтому решил поделиться своими наработками.

Оптимизация 3D-моделей для игровой сцены

Эта статья завершает цикл публикаций от краснодарской студии Plarium о разных аспектах работы с 3D-моделями в Unity. Предшествующие статьи: «Особенности работы с Mesh в Unity», «Unity: процедурное редактирование Mesh», «Импорт 3D-моделей в Unity и подводные камни», «Пиксельные отступы в текстурной развертке».
Почти 2 года назад мы написали статью, в которой рассказали о варианте оптимизации 3D-геометрии в сцене с ограничениями на ракурс камеры и поворот соответствующих объектов. Не то чтобы много воды утекло с тех пор, однако возможность усовершенствовать решение, рассмотреть разные подходы и подглядеть за другими не дает покоя умам разработчиков. В этой статье мы опишем улучшенный вариант алгоритма, основанного на покраске полигонов, а также расскажем о попытках перенести часть такой работы в 3D-пакет.

Troubleshooting

Crash logs are available at

Unity crashes on first launch before/while signing in

This is a rare bug where Unity’s configuration gets created wrongly. You can try resetting it by:

$ rm -rf ~/.config/unity3d/{*.prefs,*.log,Preferences} 

Unity crashes if ~/.config/user-dirs.dirs is missing

In unity 2019 and newer, if you see a message along the lines of:

, try installing AUR.

Minor stuttering while playtesting (NVIDIA)

Vsync does not seem to work correctly with NVIDIA graphics cards / drivers. Solution: In go to «OpenGL Settings» and turn off «Sync to VBlank».

The behaviour occured/noticed when used «transform.Rotate» in combination with «Input.GetKey».

Error: Multiple Unity instances cannot open the same project

Unity probably did not shutdown properly, in this case you should navigate to your project folder and delete Temp folder.

Try this workaround :

  1. Close Unity.
  2. Shutdown adb daemon with
  3. Plug in the android device.
  4. Find your device ID with
  5. Use replacing with the correct one.

That’s it now you can open unity and test it, an error «socket bind failed» will appear that you can safely ignore.

Реализация шаблона «Состояние» в Unity

Перевод

В процессе программирования внутриигровых сущностей возникают ситуации, когда они должны действовать в различных условиях по-разному, что наводит на мысль об использовании состояний.
Но если вы решите применить способ грубого перебора, то код быстро превратится в запутанный хаос со множеством вложенных операторов if-else.
Для изящного решения этой задачи можно воспользоваться шаблоном проектирования «Состояние» (State design pattern). Ему-то мы и посвятим этот туториал!
Из туториала вы:

  • Научитесь основам шаблона «Состояние» в Unity.
  • Узнаете, что такое конечный автомат, и когда его использовать.
  • Узнаете, как использовать эти концепции для управления движением персонажа.

Сказ о разработке амбициозного проекта 16-ти летним парнем (file547)

Из песочницы

Итак, приветствую всех, кто читает этот пост, который для меня является первым на этой площадке. Сегодня я расскажу вам о том, как 16-ти летний парень (Moony Games… то есть я!), увлеченный разработкой игр, решил шагнуть на качественно новый уровень и немного помечтать, заодно поговорим и о том амбициозном проекте, подающем лично для меня большие надежды на успех. Что ж, приступим!
Это случилось, когда я учился в 8-ом классе. Мы с моим горячо любимым приятелем обсуждали за завтраком в школьной столовой проблему озонового слоя Земли, упоминая негативное влияние наработок Илона Маска на него. Недолго подумав, я как сказанул: «Ну, раз этот самый слой защищает от космической радиации, может ли быть такое, что при его разрушении, люди станут превращаться в ужасных мутантов под её влиянием». На такую мысль я получил следующий ответ: «А что, неплохой сюжет для игры типа Fallout!». Так мы и начали разработку проекта The Sun Was Really Bright (TSWRB), назвав себя DExit Games.

Блендинг и Unity Terrain: как избавиться от пересечений и перестать делать глазам больно

Для того, чтобы получить реалистичный мир внутри игры, необходимо учитывать взаимодействие различных форм рельефа между собой и с другими моделями. И если видимые линии пересечения между 3D-моделями портят органичность изображения, стоит задуматься над тем, как их устранить. Самый распространенный случай таких линий, который может быть знаком многим, — пересечение билбордов частиц с непрозрачной геометрией.
Другой пример — нарушающие естественность композиции пересечения скал и растительности с поверхностью ландшафта в сценах «на открытом воздухе».
Помимо разнообразных методов сглаживания (SSAA, MSAA, CSAA, FXAA, NFAA, CMAA, DLAA, TAA и др.), которые пусть и смягчают вызывающий внешний вид таких линий пересечений, но не исправляют ситуацию в полной мере, существуют и более действенные приемы. Их мы и рассмотрим.

Как анализатор PVS-Studio стал находить ещё больше ошибок в проектах на Unity

Разрабатывая статический анализатор PVS-Studio, мы стараемся развивать его в различных направлениях. Так, наша команда работает над плагинами для IDE (Visual Studio, Rider), улучшением интеграции с CI и т. д. Увеличение эффективности анализа проектов под Unity также является одной из наших приоритетных целей. Мы считаем, что статический анализ позволит программистам, использующим этот игровой движок, повысить качество своего исходного кода и упростить работу над любыми проектами. Поэтому хотелось бы увеличить популярность PVS-Studio среди компаний, занимающихся разработкой под Unity. Одним из первых шагов в реализации данной задумки стало написание нами аннотаций для методов, определённых в движке. Это позволяет контролировать корректность кода, связанного с вызовами аннотируемых методов.

Лаунчер — Launcher

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

Кнопки на Лаунчере можно перемещать (они перетаскиваются мышкой) и добавлять новые. Сверху находится специальная кнопка с логотипом Ubuntu, которая предназначена для вызова меню Dash (Главного меню).

Чтобы запустить приложение необходимо один раз кликнуть по кнопке левой кнопкой мыши. Когда приложение запуститься, то слева от кнопки появится маленькая стрелочка. Если в данный момент вы работаете именно с этим приложением (окно активно), то справа от кнопки появится еще одна стрелочка. И наконец, если вы откроете еще одно окно этого приложения, то слева будут две стрелочки.

По каждой кнопке на Лаунчере можно кликнуть правой кнопкой мыши, чтобы вызвать контекстное меню. Через данное меню можно быстро закрыть приложение или выполнить другое действие. Набор данных действий каждого приложения может быть разным. Например, для LibreOffice Writer через контекстное меню можно сразу создать новый документ, а для проигрывателя Totem переключать треки.

Unity — Enable Multidex или слишком много методов

Из песочницы

С чего все началось

Всем привет. На определенном этапе разработки игры под Android на движке Unity я столкнулся с одной проблемой при билде. После добавления в проект таких плагинов как Appodeal и Google Play Games количество используемых методов превысило 65K и во время билда появилась следующая ошибка:

Почитав документацию Appodeal, понял что надо включить Multidex. Решил это сделать. На сайте была ссылка с инструкцией для Android Studio. А мы то с вами на Unity, что же делать?
А все довольно просто надо сделать всего три действия:

Включить систему сборки Gradle

Чтобы в своем проекте на Android включить систему Gradle в Unity выполним пару действий

  1. В Unity откройте Build Settings (File >> Build Settings)
  2. Если вы еще не выбрали платформу, то пора сделать это (Platform >> Android)
  3. В списке Build System выбираем Gradle (Build System >> Gradle )
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector