共用方式為


建立簡單的雲端腳本專案

在本文中,您將使用 Mesh Cloud Scripting 來建立和發佈簡單的專案。 本文假設您已 在系統上設定雲端腳本。 建議您先熟悉目前的 Mesh 工具組已知問題清單,再開始使用 Mesh 雲端腳本進行開發。

深入瞭解 Mesh 雲端腳本基礎結構和管理

使用 Mesh 雲端腳本建立場景

下列指示示範如何建立具有 Cube 的簡單環境,並在使用者按兩下 Cube 時旋轉。

  1. 移至名為 建立新的或更新現有專案的文章。 如果您要建立新的專案,請務必遵循名為 建立新專案一節中的所有步驟。 如果您要更新現有的專案,請針對名為 Update 現有專案的 區段執行相同的動作。

  2. 建立新場景。

  3. 將移動點新增至場景

  4. 儲存場景並命名它。 在此範例中,我們將使用名稱 MyFirstCloudScripting

  5. 在功能表欄上,選取 [GameObject>Mesh 工具組>設定雲端腳本]。

    [設定雲端文稿] 選單項的螢幕快照。

    請注意,名為 Mesh Cloud Scripting 的遊戲物件會出現在 [階層] 中,並已選取。 如果您按下 [偵測器] 中的 [開啟應用程式資料夾] 按鈕...

    Unity 中 [開啟應用程式資料夾] 按鈕的螢幕快照。

    ...您會在 Windows 檔案總管 中看到,這也會在 Assets 中建立名為 MyFirstCloudScripting.csproj 的新 ASP.NET Core 專案。>MeshCloudScripting > MyFirstCloudScripting 資料夾。

    Windows 中資料夾結構的螢幕快照,其中顯示腳本專案。

修改場景

  1. 使用網格模擬設定播放模式。 請務必將 GameObject 新增至可以做為地板的場景,並將其設定為 GroundCollision 層次。

  2. 當您使用 Mesh 模擬設定播放模式時,它會將 prefab MeshEmulatorSetup[NoUpoload] 新增至場景,其中包含您從這個點開始使用的相機。 您不再需要預設 的主相機 GameObject;請將其刪除。

    作為 Mesh Cloud Scripting 子系的 Cube 螢幕快照。

  3. 在功能表欄上,選取 [GameObject>3D 物件>Cube]。

  4. 在 [階層] 中,將 Cube 拖曳至 Mesh Cloud Scripting 物件,讓 Cube 成為該物件的子系。

    作為 Mesh Cloud Scripting 子系的 Cube 螢幕快照。

  5. 選取 Cube 之後,在 Inspector 中流覽至 [轉換] 元件,然後將 Cube 的 [位置] 和 [旋轉] 值變更為下列專案:

    位置:X = 0.1、Y = 1.5、Z = 3.3。

    旋轉:X = -15、Y = 0.8、Z = 0.1

    提示MeshEmulatorSetup[NoUpload] prefab 中的相機是 AvatarHead子物件。

    階層中相機遊戲對象的螢幕快照,以及放置於場景檢視中的 Cube。

  6. 在偵測器中,按兩下 [新增元件],然後選取 [Mesh Interactable Setup]。

    [新增元件] 搜尋列的螢幕快照,其中已選取 Mesh Interactables 安裝程式。

  7. 儲存場景。

修改 C# 專案

  1. 在 [ 階層] 中 ,選取 [網格雲端腳本] 物件。

  2. 在偵測器中,流覽至 Mesh Cloud Scripting 元件,然後按兩下 [開啟應用程式資料夾] 按鈕。 這會開啟 檔案總管,並顯示專案內容的檢視。

    網格雲端腳本元件的螢幕快照,其中已醒目提示 [開啟應用程式資料夾] 按鈕。

  3. 在程式 App.cs 代碼編輯器中開啟文稿。

  4. 請注意,在 App 類別中,有兩個變數:

    private readonly ILogger<App> _logger;
    private readonly ICloudApplication _app;
    

    將下列專案新增為第三個變數:

    private float _angle = 0;
    
  5. StartAsync 方法包含單一批注:「在這裡新增您的應用程式啟動程序代碼」。將 取代為下列程序代碼,讓 StartAsync 方法看起來如下:

    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;
    }
    
  6. 儲存您的工作。

在本機執行您的應用程式

  1. 在 Unity 中,按兩下 [Unity 編輯機播放] 按鈕。
  2. 在 [ 遊戲] 視窗中,按兩下 [Cube]。 每次按兩下時,Cube就會在其 「X」 軸上旋轉。
  3. 當您完成時,請結束播放模式。

使用 Visual Studio 對應用程式進行偵錯 (選擇性)

  1. 在 [ 階層] 中,確定您已 選取 Mesh Cloud Scripting 物件。

  2. 在偵測器,流覽至 Mesh Cloud Scripting 元件,然後選取 [啟用應用程式偵錯]。

    網格雲端腳本元件的螢幕快照,其中已選取並醒目提示 [啟用應用程式偵錯] 屬性。

  3. 輸入播放模式,然後選取調試程式。

    可用調試程式的螢幕快照。

  4. 開啟App.cs檔案,然後新增斷點,然後繼續執行。

    已新增斷點之 app cs 檔案的螢幕快照。

  5. 在 Unity 中,按兩下 [Cube]。

    按兩下 Cube 之後,Unity 中意見反應的螢幕快照。

注意

根據預設,應用程式會在閑置兩分鐘后逾時。 若要增加此視窗,請在指令清單檔案中設定 "debugTimeoutSecs" 值(例如: "debugTimeoutSecs": "240")。

Windows 檔案總管的螢幕快照,其中已醒目提示 mesh cloudscripting 指令清單 json 檔案。

建置及發佈環境

若要建置和發佈環境,請遵循建置和發佈環境一文中的指示。

從 Unity 連線到雲端腳本服務

注意

只有在 ServiceMode 設定為 Dev,才能使用此功能。

  1. 在 [ 階層] 中,確定 已選取 Mesh Cloud Scripting 物件。
  2. 在偵測器中,流覽至 Mesh Cloud Scripting 元件,然後開啟 [開發人員設定] 下拉式清單。
  3. 取消選取 [執行本機雲端腳本伺服器]。
  4. 按兩下 [Unity 編輯機播放] 按鈕。

建立事件並從 Mesh 應用程式加入

  1. 使用您剛才建置和發行的環境建立事件。 如果您需要指引,請參閱如何在 Mesh 入口網站中建立事件。
  2. 加入 Mesh 應用程式中的事件。

在 Microsoft Mesh 應用程式中顯示 Mesh 雲端文稿服務錯誤 (選擇性)

  1. Cloud Scripting Service 的錯誤訊息預設不會顯示在 Mesh 應用程式中,以將使用者中斷降到最低。 如果您需要針對偵錯目的顯示這些訊息,請使用下列步驟:

  2. 開啟 Mesh 應用程式。

  3. 按兩下 [ 功能表] 按鈕,然後選取 [ 設定]。

    Mesh 應用程式介面的畫面,其中已醒目提示 [功能表] 按鈕。

  4. 在左側功能表欄中,選取 [適用於開發人員]。

    Mesh 應用程式介面的螢幕快照,其中已醒目提示 [設定] 選項。

  5. 將 [ 顯示網格文稿錯誤] 按鈕切換為 [開啟]。

    Mesh 應用程式 [設定] 頁面的螢幕快照,以及顯示網格腳本錯誤的設定。

下一步