Udostępnij za pośrednictwem


Podstawowe pojęcia dotyczące tworzenia skryptów w chmurze

Zapoznaj się z omówieniem skryptów chmury usługi Mesh i tworzenia skryptów wizualnych usługi Mesh

Różnice między skryptami chmury mesh i monoBehaviours

Istnieje kilka głównych różnic między usługą Mesh Cloud Scripting i monoBehaviours:

  • Usługi Cloud Scripting Services są zapisywane względem interfejsu API tworzenia skryptów w chmurze usługi Mesh (w przeciwieństwie do interfejsu API aparatu Unity).
  • Usługi cloud Scripting Services działają w chmurze w osobnym procesie (w przeciwieństwie do klienta), a ich skutki są automatycznie synchronizowane ze wszystkimi połączonymi klientami.

Omówienie architektury

Aby włączyć obsługę skryptów w chmurze usługi Mesh, usługa aplikacji o nazwie Mesh Cloud Scripting Service jest wdrażana w określonej podanej grupie zasobów platformy Azure. Skrypty w chmurze są uruchamiane na zapleczu platformy Azure i składają się z zestawu skryptów języka C# serwera działających w kontenerze z punktem końcowym, z którym łączą się klienci. Na poniższym diagramie widać, że istnieją dwa klientów łączących się z usługą Cloud Scripting Service. Usługa Cloud Scripting Service ma własny autorytatywne wykres sceny (oznaczony jako "A" na diagramie). Usługa Cloud Scripting Service współdziała z tym grafem scen za pośrednictwem interfejsu API grafu sceny skryptów usługi Mesh Cloud Scripting.

Diagram architektury skryptów w chmurze.

Wykres sceny skryptów chmury usługi Mesh jest automatycznie synchronizowany z chmury do wszystkich połączonych klientów. Każdy klient ma identyczną kopię wykresu sceny Skrypty chmury usługi Mesh (oznaczonego jako "B" na diagramie), który jest synchronizowany z autorytatywną wersją chmury. Gdy usługa Mesh Cloud Scripting Service wprowadza zmiany w grafie scen w chmurze, te zmiany są propagowane do kopii na wszystkich klientach.

Na każdym kliencie środowisko uruchomieniowe usługi Unity Mesh reaguje na zmiany w wystąpieniu klienta grafu sceny skryptów w chmurze usługi Mesh i aktualizuje scenę aparatu Unity w celu odzwierciedlenia jego stanu. Mimo że interfejs API wykresu sceny tworzenia skryptów w chmurze usługi Mesh i interfejs API grafu sceny aparatu Unity są różne, mapują się ściśle na siebie i mają taką samą lub podobną strukturę.

Mesh Cloud Scripting, Game Objects i Mesh Cloud Scripting Scene Graph

Obiekty, które ostatecznie pojawiają się w zdarzeniu w aplikacji Mesh, można podzielić na dwie kategorie:

  1. Obiekty dodawane do środowiska w środowisku Unity.

  2. Obiekty, za pomocą których można dostosować zdarzenie . Ponieważ nie były one częścią środowiska, usługa Mesh Cloud Scripting nie zna ich.

Tworzenie sceny

Aby włączyć obsługę skryptów w chmurze usługi Mesh, scena musi mieć składnik Mesh Cloud Scripting .

Zrzut ekranu przedstawiający składnik Mesh Cloud Scripting dołączony do obiektu GameObject.

Składnik jest odpowiedzialny za zarządzanie utworzonymi skryptami i powiązanie ich ze sceną aparatu Unity zarówno w czasie edycji, jak i w czasie wykonywania w aplikacji Mesh. Mesh Cloud Scripting to autonomiczna technologia, ale ma ścisłą integrację z aparatem Unity. Instrukcje dotyczące dodawania obiektu GameObject tworzenia skryptów w chmurze usługi Mesh można znaleźć w artykule Tworzenie prostego projektu skryptów w chmurze i bardziej szczegółowe informacje na temat skryptów w sekcji Przewodnik programisty.

Wykres sceny Tworzenia skryptów w chmurze usługi Mesh jest ograniczony do obiektów GameObject, które można dodać do sceny pod obiektem GameObject zawierającym składnik Mesh Cloud Scripting. Mimo że obsługa skryptów chmury usługi Mesh nie może bezpośrednio wyświetlać hierarchii sceny pozostałej części sceny, może ona uzyskiwać dostęp do interfejsów API zapewnianych przez aplikację usługi Mesh, na przykład może uzyskać listę użytkowników w scenie lub zareagować na wybrany obiekt.

Składniki i wykres sceny skryptów chmury usługi Mesh

Na poniższym diagramie zwróć uwagę, że hierarchie sceny aparatu Unity i sceny tworzenia skryptów w chmurze usługi Mesh są identyczne. Niebieskie węzły w sekcji Scena aparatu Unity reprezentują obiekty GameObjects; każdy obiekt GameObject ma odpowiedni węzeł TransformNode w grafie sceny skryptów chmury usługi Mesh. Po zaktualizowaniu węzła TransformNode powoduje przekształcenie obiektu gry, który odpowiada w scenie aparatu Unity, aby zaktualizować ją do tej samej wartości.

Hierarchie scen aparatu Unity i siatki

Interfejs API tworzenia skryptów w chmurze usługi Mesh zawiera typy mapujące tylko na podzbiór pełnego zestawu składników aparatu Unity. Nadal ważne jest utworzenie sceny aparatu Unity ze składnikami, do których nie można mapować interfejsu API tworzenia skryptów w chmurze usługi Mesh; będą one po prostu niewidoczne dla usługi Mesh Cloud Scripting. Na diagramie składnik w kolorze białym ma odpowiedni węzeł na wykresie sceny obsługi skryptów w chmurze usługi Mesh; składnik w kolorze zielonym nie jest. Wykres sceny Skrypty chmury siatki nie ma węzła układu cząstek, więc w naszym przykładzie składnik układu cząstek w scenie aparatu Unity nie pojawi się w odpowiedniej scenie siatki Cloud Scripting. Jednak jego otaczające składniki i obiekt gry są w grafie sceny Mesh Cloud Scripting. Oznacza to, że mesh Cloud Scripting będzie w stanie przenieść układ cząstek wokół sceny, przenosząc własne obiekty gry, mimo że sam układ cząstek jest niewidoczny dla Cloud Scripting.

Interfejs API tworzenia skryptów w chmurze usługi Mesh umożliwia klonowanie węzłów. Jeśli aplikacja sklonuje element "A" (który odpowiada węzłowi "A", GameObjectParent, na scenie aparatu Unity), sklonuje całe drzewo podrzędne GameParentObject, w tym nie widać skryptów w chmurze siatki cząstek.

Tworzenie skryptów w chmurze usługi Mesh

Szczegółowe instrukcje dotyczące tworzenia skryptów w chmurze usługi Mesh można znaleźć w artykułach Tworzenie prostego projektu cloud Scripting i Przewodnik programisty. W tym miejscu przedstawimy krótkie omówienie.

Typowy projekt aparatu Unity zawierający scenę ze skryptami usługi Mesh Cloud Scripting wygląda następująco na dysku (foldery są wyświetlane pogrubioną):

  • Projekt aparatu Unity
    • Zasoby
      • Sceny
        • MyScene.unity
      • . MeshCloudScripting
        • MyScene
          • MyScene.csproj
          • Program.cs
          • scene.map
          • App.cs

Każda scena w projekcie aparatu Unity, która zawiera składnik MeshCloudScripting, ma odpowiedni folder o tej samej nazwie zawartej w elemencie ". Folder MeshCloudScripting" w katalogu Assets. Składnik Mesh Cloud Scripting tworzy ten folder i jego początkowy zestaw plików, które skompilują się do w pełni działającej, choć pustej usługi Cloud Scripting Service. Niektóre pliki początkowe są wyświetlane powyżej. Program.cs zawiera standardowy kod, który zajmuje się:

App.cs to klasa, która hostuje logikę aplikacji. Implementuje interfejs IHostedService , dlatego ma dwa punkty wejścia: StartAsync i StopAsync. StartAsync jest wyzwalany raz, gdy IHost element jest gotowy do uruchomienia App usługi. Ponadto jest wyzwalany, StopAsync gdy IHost program wykonuje bezproblemowe zamknięcie.

Reprezentacja sceny

Zanotuj plik scene.map na powyższej liście. Jest to szczegóły wewnętrzne, ale warto je zrozumieć. Po ręcznym wyzwoleniu w interfejsie użytkownika lub gdy scena aparatu Unity jest odtwarzana w Edytorze, składnik Mesh Cloud Scripting zapisuje plik scene.map w odpowiednim folderze Mesh Cloud Scripting. Jest to reprezentacja sceny jako hierarchia sceny skryptów chmury usługi Mesh; typy aparatu Unity są konwertowane na typy skryptów w chmurze usługi Mesh. Gdy usługa Mesh Cloud Scripting Service jest wdrażana w chmurze, nie wymaga uruchomienia oryginalnej sceny aparatu Unity. Zamiast tego ładuje plik scene.map , który definiuje początkową hierarchię scen. Gdy klient usługi Mesh łączy się z usługą Mesh Cloud Scripting Service, otrzymuje hierarchię skryptów w chmurze usługi Mesh i aktualizuje scenę aparatu Unity tak, aby była zgodna. Aby to umożliwić, dodatkowo przechowujemy identyfikatory w powiązaniach skryptów chmury usługi Mesh, które są używane do mapowania na odpowiednie obiekty aparatu Unity w scenie.

Uwaga: aby powyższe elementy działały, plik scene.map i scena aparatu Unity muszą być zgodne. Jeśli z jakiegoś powodu nie są one na przykład wynikiem błędu eksportu — zostanie to wykryte, a usługa Mesh Cloud Scripting Service i klient usługi Mesh nie połączy się.

Środowiska publikowania za pomocą skryptów chmury usługi Mesh

Po opublikowaniu środowiska za pomocą usługi Mesh Cloud Scripting opublikuje usługę Environment and Mesh Cloud Scripting Service na platformie Azure. Przedstawiono to na poniższym diagramie:

Przekazywanie szablonu środowiska i skryptów w chmurze do chmury

Po zmianie sceny należy nacisnąć Play in Unity, aby wyświetlić podgląd sceny przy użyciu nowo utworzonej i lokalnie uruchomionej usługi Mesh Cloud Scripting Service. Następnie opublikuj zmodyfikowane środowisko przy użyciu usługi Mesh Uploader. Publikowanie zostało szczegółowo opisane w artykule Kompilowanie i publikowanie środowiska oraz Podawanie szczegółów tworzenia i publikowania skryptów w chmurze na potrzeby artykułów dotyczących kompilacji i publikowania .

Auth in Mesh Cloud Scripting Service (Uwierzytelnianie w usłudze Mesh Cloud Scripting Service)

Usługa Cloud Scripting Service może przechowywać listę użytkowników. Po uwierzytelnieniu użytkownika usługa Cloud Scripting Service ma trwały identyfikator użytkownika w wielu sesjach.

Oznacza to, że przepływ uwierzytelniania w usłudze Mesh Cloud Scripting Service nie wymaga dodatkowego nakładu pracy. Jest ona całkowicie niejawna, a strony zaangażowane pracują nad uzyskaniem tokenu i automatycznym zweryfikowaniem go.

Oto strony zaangażowane w przepływ uwierzytelniania:

Zestaw narzędzi mesh: jako narzędzie, za pomocą którego usługi Cloud Scripting Services są wdrażane w chmurze, możesz wybrać Service Mode usługę Cloud Scripting Service używaną podczas walidacji tokenu uwierzytelniania. Można to zrobić w ustawieniu Konfiguracja środowiska w interfejsie użytkownika przekazywania usługi Mesh.

Usługa Microsoft Mesh: odpowiedzialna za wystawianie tokenu. Bez tokenu użytkownicy nie mogą wchodzić w interakcje ze skryptami w chmurze.

Microsoft Mesh: punkt wejścia umożliwiający interakcję użytkowników z obsługą skryptów w chmurze usługi Mesh. Klient usługi Microsoft Mesh jest odpowiedzialny za żądanie tokenu dostępu z usługi Microsoft Mesh w imieniu użytkownika.

Usługa Mesh Cloud Scripting Service: weryfikuje token odbierany z żądań połączenia z usługą Microsoft Mesh, a następnie wybiera trwały identyfikator użytkownika z tokenu.

Strony współpracują ze sobą, jak pokazano poniżej:

Przepływ uwierzytelniania

Następne kroki