Tworzenie prostego projektu cloud Scripting
W tym artykule utworzysz i opublikujesz prosty projekt przy użyciu usługi Mesh Cloud Scripting. W tym artykule założono, że w systemie skonfigurowano już tworzenie skryptów w chmurze. Zalecamy zapoznanie się z bieżącą listą znanych problemów z zestawem narzędzi mesh przed rozpoczęciem programowania za pomocą usługi Mesh Cloud Scripting.
Dowiedz się więcej o infrastrukturze i zarządzaniu usługą Mesh Cloud Scripting.
Tworzenie sceny za pomocą skryptów chmury usługi Mesh
Poniższe instrukcje pokazują, jak utworzyć proste środowisko za pomocą modułu, który obraca się po kliknięciu go przez użytkownika.
Przejdź do artykułu o nazwie Utwórz nowy lub zaktualizuj istniejący projekt. Jeśli tworzysz nowy projekt, upewnij się, że wykonasz wszystkie kroki opisane w sekcji Tworzenie nowego projektu. Jeśli aktualizujesz istniejący projekt, wykonaj to samo w sekcji o nazwie Aktualizuj istniejący projekt.
Utwórz nową scenę.
Zapisz scenę i nadaj jej nazwę. W tym przykładzie użyjemy nazwy MyFirstCloudScripting.
Na pasku menu wybierz pozycję GameObject>Mesh Toolkit>Set-up Cloud Scripting (Konfigurowanie skryptów w chmurze).
Należy pamiętać, że w hierarchii jest wyświetlany obiekt gry o nazwie Mesh Cloud Scripting. Jeśli klikniesz przycisk Otwórz folder aplikacji w inspektorze ...
... Zobaczysz w Eksplorator plików systemu Windows, że spowoduje to również utworzenie nowego projektu ASP.NET Core o nazwie MyFirstCloudScripting.csproj w pliku Assets > . MeshCloudScripting > MyFirstCloudScripting folder.
Modyfikowanie sceny
Konfigurowanie trybu odtwarzania za pomocą emulacji siatki. Upewnij się, że do sceny dodano obiekt GameObject, który może działać jako podłoga i ustawić go na warstwę GroundCollision .
Po skonfigurowaniu trybu odtwarzania za pomocą emulacji siatki dodaje prefab MeshEmulatorSetup[NoUpoload] do sceny zawierającej aparat, którego będziesz używać od tego momentu. Nie potrzebujesz już domyślnej głównej kamery GameObject; usuń ją.
Na pasku menu wybierz pozycję GameObject>3D object>Cube.
W hierarchii przeciągnij moduł do obiektu Mesh Cloud Scripting, aby moduł był elementem podrzędnym tego obiektu.
Po wybraniu modułu w inspektorze przejdź do składnika Przekształć, a następnie zmień wartości Pozycji i Obrotu modułu na następujące:
Pozycja: X = 0,1, Y = 1,5, Z = 3,3.
Obrót: X = -15, Y = 0,8, Z = 0,1
Porada: Aparat w prefabcie MeshEmulatorSetup[NoUpload] jest obiektem podrzędnym AvatarHead.
W inspektorze kliknij pozycję Dodaj składnik, a następnie wybierz pozycję Konfiguracja z możliwością interakcji z siatką.
Zapisz scenę.
Modyfikowanie projektu w języku C#
W hierarchii wybierz obiekt Mesh Cloud Scripting.
W inspektorze przejdź do składnika Mesh Cloud Scripting, a następnie kliknij przycisk Otwórz folder aplikacji. Spowoduje to otwarcie Eksplorator plików i wyświetlenie widoku zawartości projektu.
App.cs
Otwórz skrypt w edytorze kodu.Należy pamiętać, że w klasie App istnieją dwie zmienne:
private readonly ILogger<App> _logger; private readonly ICloudApplication _app;
Dodaj następującą zmienną jako trzecią:
private float _angle = 0;
Metoda StartAsync zawiera pojedynczy komentarz: "Dodaj tutaj kod uruchamiania aplikacji". Zastąp element poniższym kodem, aby metoda StartAsync wyglądała następująco:
public Task StartAsync(CancellationToken token) { // First we find the TransformNode that corresponds to our Cube gameobject var transform = _app.Scene.FindFirstChild<TransformNode>(); // Then we find the InteractableNode child of that TransformNode var sensor = transform.FindFirstChild<InteractableNode>(); // Handle a button click sensor.Selected += (_, _) => { // Update the angle on each click _angle += MathF.PI / 8; transform.Rotation = new Rotation { X = 1, Y = 0, Z = 0, Angle = _angle }; }; return Task.CompletedTask; }
Zapisz swoją pracę.
Uruchamianie aplikacji lokalnie
- W środowisku Unity kliknij przycisk Odtwarzania edytora aparatu Unity.
- W oknie Gra kliknij moduł. Za każdym razem, gdy klikniesz, moduł obraca się na osi "X".
- Po zakończeniu zamknij tryb odtwarzania.
Debugowanie aplikacji przy użyciu programu Visual Studio (opcjonalnie)
W hierarchii upewnij się, że wybrano obiekt Mesh Cloud Scripting.
W inspektorze przejdź do składnika Mesh Cloud Scripting, a następnie wybierz pozycję Włącz debugowanie aplikacji.
Wprowadź tryb odtwarzania i wybierz debuger.
Otwórz plik App.cs, a następnie dodaj punkt przerwania, a następnie kontynuuj wykonywanie.
W środowisku Unity kliknij moduł.
Uwaga
Domyślnie aplikacja zostanie przekroczona po dwóch minutach braku aktywności. Aby zwiększyć to okno, ustaw "debugTimeoutSecs"
wartość w pliku manifestu (na przykład: "debugTimeoutSecs": "240"
).
Kompilowanie i publikowanie środowiska
Aby skompilować i opublikować środowisko, postępuj zgodnie z instrukcjami w artykule Kompilowanie i publikowanie środowiska .
Nawiązywanie połączenia z usługą Cloud Scripting Service z poziomu aparatu Unity
Uwaga
Jest to dostępne tylko wtedy, gdy właściwość ServiceMode jest ustawiona na Wartość Dev.
- W hierarchii upewnij się, że wybrano obiekt Mesh Cloud Scripting.
- W inspektorze przejdź do składnika Mesh Cloud Scripting, a następnie otwórz listę rozwijaną Ustawienia dewelopera.
- Usuń zaznaczenie pozycji Uruchom serwer skryptów w chmurze lokalnej.
- Kliknij przycisk Odtwórz edytor aparatu Unity.
Tworzenie zdarzenia i dołączanie go z poziomu aplikacji Mesh
- Utwórz zdarzenie przy użyciu właśnie utworzonego i opublikowanego środowiska. Jeśli potrzebujesz wskazówek, zobacz, jak utworzyć zdarzenie w portalu usługi Mesh.
- Dołącz do zdarzenia w aplikacji Mesh.
Pokaż błędy usługi Mesh Cloud Scripting Service w aplikacji Microsoft Mesh (opcjonalnie)
Komunikaty o błędach z usługi Cloud Scripting Service domyślnie nie są wyświetlane w aplikacji mesh w celu zminimalizowania zakłóceń użytkownika. Jeśli chcesz wyświetlić te komunikaty do celów debugowania, wykonaj następujące kroki:
Otwórz aplikację usługi Mesh.
Kliknij przycisk Menu, a następnie wybierz pozycję Ustawienia.
Na pasku menu po lewej stronie wybierz pozycję Dla deweloperów.
Przełącz przycisk Pokaż błąd skryptu usługi Mesh na "włączone".