For the complete documentation index, see llms.txt. This page is also available as Markdown.

Step Customization

Editing the generated steps.

为了通用使用,将 Interaction 设置为 Manually Call,并将 Step Start 设置为 Manually Call。将所有必需的提示分配到步骤的视觉元素,通过脚本触发步骤,并在需要时通过脚本完成步骤。

在 ATM 中打开 Step Sequence 列表。

Step

该列表包含项目——玩家需要执行的步骤。最初,这些步骤按顺序记录,一个步骤在另一个步骤之后激活。在此可编辑每个步骤的逻辑。

  • Step Name字段用于输入步骤名称,以便通过字符串而不是索引进行手动引用。

  • Step Replay(Reusable / Play Once / Play Once Per Session)——确定此提示可以显示多少次的字段。

  • Manually Call Template - 如果启用,将步骤简化为手动调用条件而不是自动触发。此类步骤可以从脚本手动调用或通过触发器设置。请参见下面的步骤启动逻辑。

  • Step State字段为只读,显示运行时的步骤状态(Done - 已完成,Displaying - 活跃,Not Done Yet - 尚未完成)。

  • Blocked By Time Delay字段为只读。如果设置了Start Delay,该步骤在存在指定时长之前不会启动。这是用于启动步骤的附加功能,例如通过"Tag"搜索对象。因为同时运行时,生成的对象可能未被找到。

  • Blocked By Time字段为只读。如果设置了Min Time Amount,该步骤在存在指定时长之前不会完成。这是防止误点击意外关闭步骤的附加功能。

  • Blocked By Button字段为只读。如果步骤包含带确认按钮的图形,只有按下该按钮才能解锁步骤,使执行继续。

请根据需要编辑每个步骤。

Start condition
Completion condition
Target details
Additional methods

要更改步骤的启动逻辑:

  • 要防止步骤自动启动,请将Start Step设置为Manually Call。步骤将等待脚本触发或按钮点击。可使用TutorialSceneReferences脚本中的公共方法,例如StartTutorialStep(0);来启动步骤编号0。请参阅Manual Step Calls

  • 或者,勾选Manually Call Template复选框。这将提供一个用于播放步骤的触发器模板。默认情况下,Trigger字段等待来自对象的外部调用,但您也可以配置提示通过与对象的Hover/Click/ScreenCenter交互来触发,例如,任何标记为InteractiveObject的对象(Check Object = By Tag,Compare Tag = 'InteractiveObject')。

  • 如果希望步骤在前一步完成后立即启动,请将Start Step保持为Auto After Previous Step。如果设置为Element 0,则在Start()时初始化。

  • 要启用序列中多个步骤异步启动,请将组中每个步骤的Execute In Parallel复选框勾选为true,并为它们分配相同的Parallel Group ID。这样,组内所有步骤会同时启动,但每个步骤仅在满足其特定条件时完成。

  • 设置Start Delay时间,例如0.5f,以延迟启动步骤。推荐用于"By Tag"和"By Layer"交互。Min Time Amount——提示在响应完成所需的输入之前存在的时间。Min Existence Time——提示在可以被禁用之前存在的时间。

要更改步骤被视为完成的逻辑:

  • 要修改玩家预期执行的操作类型,请从支持列表中选择Interaction类型。请参阅Supported Input。例如,Click——玩家必须左键点击或触摸目标。KeyCode——玩家必须按下KeyCodes列表中列出的所有目标键,顺序不限。

  • 要更改玩家交互目标的定义方式,请从支持列表中选择Check Interaction类型。例如,Click+ByGameObject = 玩家必须点击场景中的特定对象。Click+ByTag = 玩家必须点击场景中具有该标签的任意对象。Click+ByLayer = 玩家必须点击场景中具有该图层的任意对象。Click+AnyTarget = 玩家可以点击任意位置以完成步骤。这适用于不需要目标的情况,例如键盘输入。Click+ByType将等待点击指定类型(2D、3D、UI)的任意对象。

  • 要直接设置目标及其类型,可使用多个列表。例如特定的GameObject、标签、图层、键盘按键,以及用于指定对象类型(2D、3D、UI)的列表。使用这些列表以补充Check Interaction。例如,如果选择ByTag,请确保Tags列表中包含将使用的标签。

  • 如果设置了Min Time Amount,步骤在指定时长过去之前不会记录用于完成的输入。这是防止误点击意外关闭步骤的附加功能。

  • 如果设置了Min Existence Time,步骤在指定时长过去之前无法完成。这是防止误点击意外关闭步骤的附加功能。

要为步骤添加额外逻辑,请使用 Additional step behaviour 字段。在教程步骤开始时添加触发的方法。在步骤完成时添加触发的方法。适合添加到这些字段的方法包括:

  • 通过脚本暂停/恢复游戏时间

  • 收集完成情况分析数据

  • 应用/移除背景模糊

  • 禁用除必需输入以外的所有其他输入,并在之后重新启用

  • 触发额外动画,例如步骤完成时的指针上升效果

  • 显示整体学习进度,例如填充进度条

  • 通过触觉振动提供反馈

要更改视觉呈现,请在 Visual Tips 和 Localization Reference 字段中填写预制件和文本字符串。不同类型的提示互不排斥,使用独立设置。该资源包含可在此处附加或作为参考创建自定义提示的各种预制件。请参阅 Visual Prefabs

Adding visuals
Fields
  • 要用“UI Pointer”提示说明步骤,请将所需指针预制件分配到 Pointer Prefab 字段。要为指针附加文本,请填写 Pointer Text 字段。

  • 要用“UI Graphic”提示说明步骤,请将所需图形预制件分配到 Graphic Prefab 字段。要为图形附加文本,请填写 Graphic Text 字段。

  • 要额外指示最终目标对象,例如拖放步骤的终点,请将 hover 预制件分配到 Hover Prefab 字段。这是另一个标准 UI Pointer,作为步骤的补充。

  • 要用“World Pointer”提示说明步骤,请将所需指针预制件分配到 World Pointer Prefab 字段。要为指针附加文本,请填写 World Pointer Text 字段。

  • 要用“World Graphic”提示说明步骤,请将所需图形预制件分配到 World Graphic Prefab 字段。要为图形附加文本,请填写 World Graphic Text 字段。

  • 要额外指示最终目标对象,例如拖放步骤的终点,请将 hover 预制件分配到 World Hover Prefab 字段。这是另一个标准 World Pointer,作为步骤的补充。

要通过遮罩阻止除必需对象外的所有射线检测,请将通用 UI Transparent Mask 预制件分配到 Hover Prefab 字段,并在 IrisCutoutMask 组件中设置合适的剪裁尺寸和形状。

要更改PointerText、GraphicText、WorldPointerText、WorldGraphicText中的文本值:

  • 在TSR > InputTextStrings对象中编辑文本值,其中存储了所有提示文本。

  • 要保存当前文本值,请使用专用按钮将其导出为CSV文件。

  • 使用内部本地化系统时,在步骤中启用Use CSV Table Keys,并输入翻译表中的键而不是直接文本。这可确保会话期间自动翻译。

  • 默认情况下,步骤使用英语,每个视觉元素使用单个输入字段。要实现更灵活的文本自定义和本地化,请参阅Localization(用于翻译)或Manual Calls(用于在执行期间简单替换文本)。

要添加额外的工具提示元素或文本,只需将其添加到预制体中。如果您需要不依赖ATM的自管理本地化文本,请使用LocalizedTooltip组件,如Graphic Popup Skip Tutorial示例所示。

要暂停或恢复教程,例如在游戏暂停或打开设置时,使用TSR中的辅助方法:HideTutorial()和ContinueTutorial()。

请勿忘记保存更改。建议解包 ATM 预制件,并为每个场景使用独立实例。

Last updated