创建简单的云脚本项目

在本文中,你将使用网格云脚本创建和发布一个简单的项目。 本文假定已在 系统上设置云脚本。 建议先熟悉当前网格工具包已知问题列表,然后再开始使用网格云脚本进行开发。

详细了解网格云脚本基础结构和管理

使用网格云脚本创建场景

以下说明演示如何创建具有多维数据集的简单环境,该多维数据集在用户单击时旋转该多维数据集。

  1. 转到名为 “新建”或更新现有项目的文章。 如果要创建新项目,请确保按照名为 “创建新项目”部分的所有步骤进行操作。 如果要更新现有项目,请对名为 “更新现有项目”的部分执行相同的操作。

  2. 创建新场景。

  3. 向场景添加旅行点。

  4. 保存场景并将其命名。 对于此示例,我们将使用名称 MyFirstCloudScripting

  5. 在菜单栏上,选择 GameObject>Mesh Toolkit>设置云脚本。

    “设置云脚本”菜单项的屏幕截图。

    请注意,名为 Mesh Cloud Scripting 的游戏对象显示在层次结构,并且已选中。 如果单击检查器中的打开应用程序文件夹”按钮...

    Unity 中“打开应用程序文件夹”按钮的屏幕截图。

    ...你将在 Windows 文件资源管理器中看到,这会在 Assets 中创建名为 MyFirstCloudScripting.csproj 的新 ASP.NET Core > 项目。MeshCloudScripting > MyFirstCloudScripting 文件夹。

    Windows 中文件夹结构的屏幕截图,其中显示了脚本项目。

修改场景

  1. 使用网格仿真设置播放模式。 请确保向场景添加一个 GameObject,该场景可以充当地板并将其设置为 GroundCollision 层。

  2. 使用网格仿真设置播放模式时,它会将 prefab MeshEmulatorSetup[NoUpoload] 添加到场景,其中包含你将从此开始使用的相机。 不再需要默认 的主相机 GameObject;请将其删除。

    作为网格云脚本子级放置的多维数据集的屏幕截图。

  3. 在菜单栏上,选择 GameObject>3D 对象>多维数据集。

  4. 在层次结构,将多维数据集拖动到网格云脚本对象,使多维数据集成为该对象的子对象。

    作为网格云脚本子级放置的多维数据集的屏幕截图。

  5. 选中多维数据集后,在检查器中导航到转换组件,然后将多维数据集的位置旋转值更改为以下内容:

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

    旋转:X = -15,Y = 0.8,Z = 0.1

    提示MeshEmulatorSetup[NoUpload] prefab 中的相机是 AvatarHead子对象。

    层次结构中的相机游戏对象的屏幕截图,以及放置在“场景”视图中的多维数据集。

  6. 在检查器中,单击“添加组件,然后选择“网格可交互设置”。

    “添加组件”搜索栏的屏幕截图,其中选择了“网格交互设置”。

  7. 保存场景。

修改 C# 项目

  1. 在层次结构,选择网格云脚本对象。

  2. 在检查器,导航到网格云脚本组件,然后单击“打开应用程序文件夹”按钮。 这将打开文件资源管理器,并显示项目内容的视图。

    网格云脚本组件的屏幕截图,其中突出显示了“打开应用程序文件夹”按钮。

  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. “游戏 ”窗口中,单击“多维数据集”。 每次单击时,多维数据集都会在其“X”轴上旋转。
  3. 完成后,退出“播放模式”。

使用 Visual Studio 调试应用程序(可选)

  1. 在层次结构,确保已选择网格云脚本对象。

  2. 在检查器中,导航到网格云脚本组件,然后选择“启用应用程序调试”。

    网格云脚本组件的屏幕截图,其中已选中并突出显示“启用应用程序调试”属性。

  3. 输入“播放”模式并选择调试器。

    可用调试器的屏幕截图。

  4. 打开App.cs文件,然后添加断点,然后继续执行。

    添加了断点的应用 cs 文件的屏幕截图。

  5. 在 Unity 中,单击多维数据集。

    单击多维数据集后 Unity 中反馈的屏幕截图。

注意

默认情况下,应用程序将在处于非活动状态的两分钟后超时。 若要增加此窗口,请在清单文件中设置一个 "debugTimeoutSecs" 值(示例: "debugTimeoutSecs": "240") 。

Windows 资源管理器的屏幕截图,其中突出显示了网格云标清单 json 文件。

生成和发布环境

若要生成和发布环境,请按照生成和发布环境文章中的说明进行操作。

从 Unity 连接到云脚本服务

注意

仅当 ServiceMode 设置为 Dev,才可用。

  1. 在层次结构,确保已选择网格云脚本对象。
  2. 在检查器,导航到网格云脚本组件,然后打开“开发人员设置”下拉列表。
  3. 取消选择 运行本地云脚本服务器
  4. 单击“Unity 编辑器播放”按钮。

创建事件并从网格应用加入该事件

  1. 使用刚生成和发布的环境创建事件。 如果需要指导,请参阅如何在 网格门户中创建事件。
  2. 在网格应用中加入事件。

在Microsoft网格应用程序中显示网格云脚本服务错误(可选)

  1. 默认情况下,云脚本服务中的错误消息不会显示在网格应用中,以最大程度地减少用户中断。 如果需要出于调试目的显示这些消息,请使用以下步骤:

  2. 打开网格应用。

  3. 单击“菜单”按钮,然后选择“设置”。

    网格应用界面的屏幕,其中突出显示了“菜单”按钮。

  4. 在左侧菜单栏中,选择“ 面向开发人员”。

    网格应用界面的屏幕截图,其中突出显示了“设置”选项。

  5. “显示网格脚本”错误 按钮切换为“打开”。

    网格应用设置页面的屏幕截图,以及显示网格脚本错误的设置。

后续步骤