Udostępnij za pośrednictwem


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

Zapoznaj się z omówieniem skryptów w chmurze 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 tworzeniem skryptów w chmurze usługi Mesh i narzędziami MonoBehaviours:

  • Usługi Cloud Scripting Services są zapisywane w interfejsie 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ć usługę Mesh Cloud Scripting, 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 sceny za pomocą interfejsu API grafu sceny usługi Mesh Cloud Scripting.

Diagram architektury skryptów w chmurze.

Wykres sceny skryptów usługi Mesh w chmurze jest automatycznie synchronizowany z chmury do wszystkich połączonych klientów. Każdy klient ma identyczną kopię wykresu sceny usługi Mesh Cloud Scripting (oznaczonego jako "B" na diagramie), który jest synchronizowany z autorytatywną wersją chmury. Gdy usługa Mesh Cloud Scripting Service wprowadza zmiany w grafie sceny 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 sceny obsługi skryptów usługi Mesh w chmurze i aktualizuje scenę aparatu Unity, aby odzwierciedlała jej stan. Mimo że interfejs API grafów sceny usługi Mesh Cloud Scripting i interfejs API wykresu sceny aparatu Unity są różne, są one mapowane blisko siebie i mają taką samą lub podobną strukturę.

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

Obiekty, które ostatecznie pojawią 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 jest ich świadoma.

Tworzenie sceny

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

Zrzut ekranu składnika 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 usługi Mesh Cloud Scripting GameObject można znaleźć w artykule Create a simple Cloud Scripting project (Tworzenie prostego projektu tworzenia skryptów w chmurze ) i bardziej szczegółowych informacji na temat skryptów w sekcji Przewodnik programisty .

Wykres sceny tworzenia skryptów usługi Mesh w chmurze jest ograniczony do obiektów GameObject, które są dodawane do sceny w obiekcie GameObject, który zawiera składnik Mesh Cloud Scripting. Mimo że usługa Mesh Cloud Scripting nie może bezpośrednio zobaczyć hierarchii sceny pozostałej części sceny, może uzyskiwać dostęp do interfejsów API, które udostępnia aplikacja Mesh, na przykład może uzyskać listę użytkowników w scenie lub reagować na wybrany obiekt.

Składniki i wykres sceny skryptów w chmurze mesh

Na poniższym diagramie zwróć uwagę, że hierarchie sceny aparatu Unity i sceny skryptów usługi Mesh w chmurze 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 usługi Mesh w chmurze. 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 skryptów usługi Mesh w chmurze 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 skryptów w chmurze usługi Mesh; będą one po prostu niewidoczne dla usługi Mesh Cloud Scripting. Na diagramie składnik o białym kolorze ma odpowiedni węzeł na wykresie sceny skryptów usługi Mesh Cloud Scripting; składnik w kolorze zielonym nie jest. Wykres sceny skryptów w chmurze usługi Mesh nie ma węzła systemu cząstek, więc w naszym przykładzie składnik systemu cząstek w scenie aparatu Unity nie będzie widoczny w odpowiedniej scenie tworzenia skryptów w chmurze usługi Mesh. Jednak jego otaczające składniki i obiekt gry są na wykresie sceny Mesh Cloud Scripting. Oznacza to, że usługa Mesh Cloud Scripting będzie mogła przenieść system cząstek wokół sceny, przenosząc własne obiekty gry, mimo że sam system cząstek jest niewidoczny dla skryptów w chmurze.

Interfejs API skryptów usługi Mesh w chmurze umożliwia klonowanie węzłów. Jeśli aplikacja tworzy klon "A" (który odpowiada węzłowi "A", GameObjectParent, w scenie aparatu Unity), sklonuje to całe pod drzewo GameParentObject, w tym system cząstek Mesh Cloud Scripting nie może zobaczyć.

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 artykule Tworzenie prostego projektu skryptów w chmurze i przewodniku 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 jako pogrubione):

  • Projekt aparatu Unity
    • Elementy zawartości
      • Sceny
        • MyScene.unity
      • . MeshCloudScripting
        • MyScene
          • MyScene.csproj
          • Program.cs
          • scene.map
          • App.cs

Każda scena w projekcie aparatu Unity zawierająca 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 będą kompilowane do pełnej pracy, choć pustej, usługi Cloud Scripting Service. Niektóre pliki początkowe są wyświetlane powyżej. Program.cs zawiera kod kociołowy, który zajmuje się:

  • konfigurowanie programu IHostBuilder w celu uruchomienia Appusługi.

  • tworzenie wystąpienia IHost .

  • uruchomienie wystąpienia do ukończenia IHost .

App.cs to klasa, która hostuje logikę aplikacji. Implementuje interfejs IHostedService , więc ma dwa punkty wejścia: StartAsync i StopAsync. StartAsync jest wyzwalany raz, gdy IHost 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 wewnętrzny szczegół, ale warto to zrozumieć. Po ręcznym wyzwoleniu w interfejsie użytkownika lub gdy scena aparatu Unity jest odtwarzana w Redaktor, składnik Mesh Cloud Scripting zapisuje plik scene.map w odpowiednim folderze Mesh Cloud Scripting. Jest to reprezentacja sceny jako hierarchii sceny skryptów w chmurze 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 oryginalnej sceny aparatu Unity do uruchomienia. Zamiast tego ładuje plik scene.map , który definiuje hierarchię początkowej sceny. Gdy klient usługi Mesh łączy się z usługą Mesh Cloud Scripting Service, odbiera hierarchię skryptów usługi Mesh Cloud Scripting i aktualizuje scenę aparatu Unity tak, aby była zgodna. Aby to umożliwić, dodatkowo przechowujemy identyfikatory w powiązaniach skryptów w chmurze 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 zostaną one wykonane — na przykład w wyniku 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 w chmurze 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ąć klawisz 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 Zapewnianie szczegółów tworzenia i publikowania skryptów w chmurze dla artykułów dotyczących kompilacji i publikowania .

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 to całkowicie niejawne, 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ą w weryfikacji tokenu uwierzytelniania. Można to zrobić w ustawieniu Konfiguracja środowiska w interfejsie użytkownika usługi Przekazywania usługi Mesh.

Usługa Microsoft Mesh: odpowiedzialne za wystawianie tokenu. Bez tokenu użytkownicy nie mogą wchodzić w interakcje z usługą Cloud Scripting.

Microsoft Mesh: punkt wejścia umożliwiający interakcję użytkowników z usługą Mesh Cloud Scripting. 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