Table of Contents

创建脚本

初级 程序员

你可以使用 Game Studio 或 Visual Studio 等 IDE 创建脚本。

在 Game Studio 中创建脚本

  1. 在**资产视图(Asset View)**中,点击 Add asset > Scripts,然后选择一种脚本类型。

    选择脚本类型窗口

    Note

    有关不同脚本类型的信息,请参阅脚本类型。

    **New script(新建脚本)**对话框将打开。

    新建脚本

  2. 为脚本指定类和命名空间(namespace),然后点击 Create script。

  3. 要使用该脚本,你需要保存它。默认情况下,Game Studio 会提示你现在就保存脚本。

保存脚本后,你可以在资产视图中看到它。

Note

虽然脚本也是一种资产,但它们不会保存在 Assets 文件夹中,而是保存在相应的程序集(assembly)文件夹中。更多信息请参阅项目结构。

你也可以在 Visual Studio 中看到新脚本。

资产视图选项卡中的新脚本

Tip

要在 Visual Studio 中从 Game Studio 打开解决方案,请点击 Game Studio 工具栏中的 在 IDE 中打开(Open in IDE)图标。

using System;
using System.Text;
using System.Threading.Tasks;
using Stride.Core.Mathematics;
using Stride.Input;
using Stride.Engine;

namespace MyGame
{
	public class BasicAsyncScript : AsyncScript
	{	
		public override async Task Execute()
		{
			while(Game.IsRunning)
			{
				// 每帧执行一些操作
				await Script.NextFrame();
			}
		}
	}
}

在 Visual Studio 中创建脚本

  1. 打开 Visual Studio。

    Tip

    要在 Visual Studio 中从 Game Studio 打开解决方案,请点击 Game Studio 工具栏中的 在 IDE 中打开(Open in IDE)图标。

    游戏解决方案由多个项目组成:

    • 以 .Game 结尾的项目是主项目,应该包含你的所有游戏逻辑和脚本。

    • 其他项目(例如 MyGame.Windows、MyGame.Android 等)包含平台专有的代码。

    更多信息请参阅项目结构。

  2. 向 .Game 项目添加一个新的类文件。为此,右键单击该项目并选择 Add > New Item。

    **Add New Item(添加新项)**对话框将打开。

  3. 选择 Class,为脚本输入一个名称,然后点击 Add。

    Visual Studio 会向你的项目添加一个新类。

  4. 在你创建的文件中,确保该脚本是 public 的,并且继承自 AsyncScript 或 SyncScript。

  5. 实现必要的抽象方法。

    例如:

     using System;
     using System.Text;
     using System.Threading.Tasks;
     using Stride.Core.Mathematics;
     using Stride.Input;
     using Stride.Engine;
    
     namespace MyGame
     {
     	public class SampleSyncScript : SyncScript
     	{			
     		public override void Update()
     		{
     			if (Game.IsRunning)
     			{
     				// 每帧执行一些操作
     			}
     		}
     	}
     }
    
  6. 保存项目和脚本文件。

  7. 由于你修改了脚本,Game Studio 需要重新加载程序集以显示更改。

    确认消息

    点击 Yes。

你可以在资产视图中看到该脚本。

资产视图选项卡中的新脚本

Note

虽然脚本也是一种资产,但它们不会保存在 Assets 文件夹中,而是保存在相应的程序集文件夹中。更多信息请参阅项目结构。

另请参阅