DevOps s aplikacemi Unity

Vývoj aplikací pro moderní platformy zahrnuje mnoho dalších aktivit než jenom psaní kódu. Tyto aktivity, označované jako DevOps (vývoj a operace), využijte celý životní cyklus aplikace a zahrňte plánování a sledování práce, návrh a implementaci kódu, správu úložiště zdrojového kódu, spouštění sestavení, správu průběžných integrací a nasazení, testování (včetně jednotkových testů a testů uživatelského rozhraní), spouštění různých forem diagnostiky ve vývojovém i produkčním prostředí a monitorování výkonu aplikací a chování uživatelů v reálném čase prostřednictvím telemetrie a analýz.

Visual Studio společně s Azure DevOps Services a Team Foundation Server poskytuje celou řadu funkcí DevOps. Mnohé z nich se vztahují na projekty pro různé platformy, včetně her a moderních grafických aplikací vytvořených pomocí Unity, — zejména při použití jazyka C# jako skriptovacího jazyka. Vzhledem k tomu, že Unity má své vlastní vývojové prostředí a modul modulu runtime, není množství DevOpsch funkcí použito, protože by to bylo pro jiné druhy projektů sestavené v aplikaci Visual Studio.

Následující tabulky popisují, jak se DevOps funkce v aplikaci Visual Studio používají nebo nepoužívají při práci s Unity. Podrobnosti o samotných funkcích najdete v odkazované dokumentaci.

Agilní nástroje

Referenční odkaz: informace o agilních nástrojích a agilním řízení projektů (pomocí Azure boards nebo TFS, včetně Team Explorer Everywhere)

Obecný komentář: všechny funkce plánování a sledování jsou nezávislé na typu projektu a jazycích kódování.

Funkce Podporováno s Unity Další komentáře
Správa nevyřízených položek a sprintů Ano
Sledování práce Ano
Spolupráce v týmové místnosti Ano
Kanbanové desky Ano
Sestavování a vizualizace průběhu Ano

Modelování

Referenční odkaz: Analýza a architektura modelu

Obecný komentář: i když tyto funkce návrhu jsou nezávislé na jazyku kódování nebo pracují s jazyky .NET, jako je C#, pracují na tradičním paradigmatu aplikace s hierarchiemi objektů a vztahy tříd. Návrh hry v rámci Unity zahrnuje zcela jiné paradigma, konkrétně vztahy grafických objektů, zvuků, shaderů, skriptů a tak dále. Z tohoto důvodu nástroje diagramu modelování sady Visual Studio nejsou obzvláště důležité pro celý projekt Unity. Mohly by být použity ke správě vztahů v rámci skriptů jazyka C#, ale je to pouze jedna část celého.

Funkce Podporováno s Unity Další komentáře
Sekvenční diagramy No
Grafy závislostí No
Hierarchie volání No
Návrhář tříd No
Průzkumník architektury No
Diagramy UML (případ použití, aktivita, třída, komponenta, sekvence a DSL) No
Diagramy vrstev No
Ověření vrstvy No

Kód

Funkce Podporováno s Unity Další komentáře
Použít Správa verzí Team Foundation (TFVC) nebo Azure Repos Ano Projekty Unity jsou jednoduše kolekcí souborů, které lze umístit do systémů správy verzí, jako je jakýkoli jiný projekt, ale existuje několik zvláštních doporučení popsaných po této tabulce.
Začínáme s Git v Azure Repos Ano Viz poznámky za tabulkou.
Zlepšení kvality kódu Ano
Nalezení změn kódu a další historie Ano
Použití map kódu k ladění aplikací Ano

Zvláštní požadavky na správu verzí s Unity:

  1. Unity sleduje metadata o herních prostředcích v jediné neprůhledné knihovně, která je ve výchozím nastavení skrytá. Aby se soubory a metadata udržovaly synchronizované, je nutné, aby se metadata zobrazovala a ukládala v blocích s více spravovatelnými. Podrobnosti najdete v tématu použití externích systémů správy verzí s Unity (dokumentace k Unity).

  2. Ne všechny soubory a složky v projektu Unity jsou vhodné pro správu zdrojového kódu, jak je popsáno dále v odkazu. Měly by se přidat složky assets a ProjectSettings, ale knihovna a dočasné složky by se neměly. Další seznam generovaných souborů, které nepatří do správy zdrojového kódu, naleznete v tématu diskuze o použití Gitu pro správu zdrojového kódu Unity3D? v StackOverflow. Mnoho vývojářů se také blogged na tento subjekt nezávisle.

  3. Binární prostředky v projektu Unity, jako jsou textury nebo zvukové soubory, můžou zabrat velký objem úložiště. Různé systémy správy zdrojového kódu, jako je git, ukládají jedinečnou kopii souboru pro každou změnu, která se provedla, a to i v případě, že změna ovlivní jenom malou část souboru. To může způsobit, že se úložiště Git stane bloated. V takovém případě se vývojáři Unity často rozhodnou přidat do svého úložiště pouze konečné prostředky a použít jiný způsob uchování pracovní historie jejich prostředků, jako je OneDrive, DropBox nebo Git-příloha. Tento přístup funguje, protože tyto prostředky obvykle nemusí být ve verzi společně se změnami zdrojového kódu. Vývojáři také obvykle nastavují režim serializace Asset Editor projektu, aby vynutila ukládání souborů scény v textu, nikoli v binárním formátu, který umožňuje sloučení ve správě zdrojového kódu. Podrobnosti najdete v tématu nastavení editoru (dokumentace Unity).

Sestavení

Odkaz na odkaz: Azure Pipelines

Funkce Podporováno s Unity Další komentáře
Místní Team Foundation Server (TFS) Provést Projekty Unity se vytvářejí prostřednictvím prostředí Unity, a ne prostřednictvím systému sestavení sady Visual Studio (sestavení v rámci Visual Studio Tools for Unity zkompiluje skripty, ale nevytvoří spustitelný soubor). Projekty Unity je možné vytvořit z příkazového řádku (dokumentace Unity), takže je možné nakonfigurovat proces MSBuild na serveru TFS, aby prováděl příslušné příkazy Unity za předpokladu, že je v tomto počítači nainstalovaná jednota Unity.

Unity taky nabízí cloudové sestavení Unity, které monitoruje úložiště Git nebo SVN a spouští pravidelná sestavení. V současné době nefunguje s TFVC nebo Azure DevOps Services.
Místní sestavovací Server propojený s Azure DevOps Services Provést Vzhledem k tomu, že jsou uvedené stejné podmínky jako výše, je dále možné směrovat sestavení aktivované prostřednictvím Azure DevOps Services pro použití místního počítače TFS. Pokyny najdete v tématu agenti sestavení a vydání .
Služba hostovaného kontroleru služby Azure DevOps Services No Sestavení Unity se v současnosti nepodporují.
Definice buildu s využitím předzálohovacích skriptů Ano Vlastní definice sestavení, která používá příkazový řádek Unity pro spuštění sestavení, se dá nakonfigurovat taky pro skripty spouštěné předem a po sestavení.
Průběžná integrace včetně ověřovaných vrácení se změnami Ano Ověřované vrácení se změnami pro TFVC jenom v případě, že Git funguje na modelu žádosti o přijetí změn, a ne vrácení se změnami.

Test

Funkce Podporováno s Unity Další komentáře
Plánování testů, vytváření testovacích případů a organizování testovacích sad Ano
Manuální testování Ano
Test Manager (testy záznamů a přehrávání) Jenom zařízení s Windows a emulátory pro Android
Pokrytí kódu Není k dispozici Nedá se použít jako testování částí v Unity a ne v sadě Visual Studio, viz níže.
Testování částí kódu V Unity, ale ne v sadě Visual Studio Unity poskytuje vlastní testovací architekturu jednotek jako součást testovacích nástrojů Unity (úložiště assetů Unity). Výsledky testování částí jsou hlášeny v rámci Unity a nebudou se v sadě Visual Studio rozplochy.
Použití automatizace uživatelského rozhraní k otestování kódu No Programové testy uživatelského rozhraní spoléhají na čitelné ovládací prvky v uživatelském rozhraní aplikace. Aplikace Unity jsou grafické, takže obsah není čitelný pomocí nástrojů programového testu uživatelského rozhraní.

Zlepšení kvality kódu

Odkaz na odkaz: vylepšení kvality kódu

Funkce Podporováno s Unity Další komentáře
Analýza kvality spravovaného kódu Ano Může analyzovat kód skriptu jazyka C# v sadě Visual Studio.
Hledání duplicitního kódu pomocí zjišťování klonování kódu Ano Může analyzovat kód skriptu jazyka C# v sadě Visual Studio.
Měření složitosti a udržovatelnosti spravovaného kódu Ano Může analyzovat kód skriptu jazyka C# v sadě Visual Studio.
Nástroje pro měření výkonu No Používejte Profiler Unity (Web Unity).
Analýza problémů s pamětí rozhraní .NET Framework No Nástroje sady Visual Studio se nepřipojily k rozhraní Mono (jak je používáno v Unity) k profilaci. Použijte Profiler Unity (dokumentace Unity).

Správa vydaných verzí

Odkaz na odkaz: sestavení a vydání v Azure Pipelines a TFS

Funkce Podporováno s Unity Další komentáře
Správa procesů vydaných verzí Ano
Nasazení na servery pro souběžné načítání prostřednictvím skriptů Ano
Nahrát do App Storu Částečné K dispozici jsou rozšíření, která mohou tento proces automatizovat pro některé obchody s aplikacemi. Viz rozšíření pro Azure DevOps Services; například rozšíření pro Google Play.

Monitorování pomocí HockeyApp

Odkaz odkaz: monitorování pomocí HockeyApp

Funkce Podporováno s Unity Další komentáře
Analýza selhání, telemetrie a distribuce beta verzí Ano HockeyApp je primárně užitečná pro zpracování distribuce beta verzí a získání hlášení o chybách.

Pro telemetrii z skriptů jazyka C# je možné použít libovolné analytické rozhraní, které je k dispozici ve verzi rozhraní .NET, kterou používá Unity. To ale umožňuje analýzám jenom v rámci herních skriptů a ne i v jádru Unity. V současné době není k dispozici žádný modul plug-in pro Application Insights, ale moduly plug-in jsou k dispozici pro jiná analytická řešení, jakoje třeba Analýza Unity Služby, jako je analýza Unity, které rozumí povaze projektu Unity, samozřejmě poskytují mnohem smysluplnější analýzu než obecná rozhraní.