Skip to content
QiuHanWen edited this page Mar 21, 2024 · 4 revisions

创建Item场景

点击Item Manager窗口的Create Scene按钮,会弹出来一个Select Template窗口,这里提供了常用的Item模板场景,任选一个然后点击Create按键,一个新的Entry.unity场景文件及相关资源将会被克隆并存储在[Item根目录]/Scenes目录下。

image

一旦场景创建完成,你可以点击Item Manager窗口的Edit Scene来重新打开它。

编辑Item场景

在Hierarchy窗口,你可以看到以下两个场景:

image

AliveCursorHub_Simulator场景

该场景模拟了运行时环境,因此你不需要打包Item也可以进行测试。如果找不到该场景,你可以点击菜单的Alive Cursor/Add Simulator Scene按钮叠加打开该场景。

image

注意该场景资源默认存储在只读的Pacakge文件夹下,你需要先在PacakgeManager窗口导入或更新相关的Simulator资源才能正常打开。

以下是该场景中较为重要的游戏对象介绍,如果你觉得无聊可以跳过这一段:

SystemManager Group (处理系统数据及事件)

  • SystemAudioManager: 进行系统音频采样,主要用于音频可视化。该物体有一个AudioSource组件,你可以设置不同的音频源进行调试。此外如果你想在运行时播放/暂停音频,可以单击Hierarchy窗口中该物体右侧的开关UI进行切换。

  • SystemInputManager: 管理系统输入。

  • SystemCursorManager: 管理系统光标的外形及位置信息。

SettingManager Group (处理用户设置)

  • CommonSettingManager: 管理躁动光标的通用设置(如光标大小或状态设置)。当程序运行后,如果你更改了AC_CommonSettingManagerSimulator组件的相关字段,那么程序将会发送对应的事件。

CursorManager Group (处理程序数据及事件)

  • EnvironmentManager: 管理相机及环境设置。

  • PostProcessingManager: 管理PostProcessing设置。

  • TransformManager: 管理光标变换。

  • StateManager: 管理光标状态。在AC_StateManagerSimulator组件有一个[Debug]折叠菜单,里面有便于测试状态的相关字段。

  • SceneManager: 管理场景变换。

AssistantManager

该物体组主要辅助你按照规范摆放Item,以及通过UGUI显示光标状态,你可以通过修改Assets/Resources/Threeyes/SteamworksEditorSetting.asset配置文件来开关其辅助功能。默认它会使用Gizmo显示光标的默认原点以及边界:

image

Entry 场景

该场景包含了Item的模型以及逻辑。

image

游戏对象及组件

该场景可能包含以下游戏对象:

AliveCursor [必要]:控制光标的行为,光标所用模型(如光标指针)可以作为其子对象。它有以下组件:

  • AC_AliveCursor[必要]: 标记该物体为AliveCursor单例。
  • AC_DefaultTransformController (或AC_TransformControllerBase的子类) [可选]:复写AliveCursor的移动行为。
  • AC_DefaultStateController (或AC_StateControllerBase的子类) [可选]:复写AliveCursor在不同状态的行为。

EnvironmentController [可选]:管理环境设置。它有以下组件:

  • AC_DefaultEnvironmentController (或AC_EnvironmentControllerBase的子类) [必要]: 复写环境设置(如灯光、天空盒或反射)。

PostProcessingController [可选]: 管理PostProcessing设置。它有以下组件:

  • AC_DefaultPostProcessingController (或AC_PostProcessingControllerBase的子类) [必要]: 复写PostProcessing设置。

PD Group [可选]: 如果你想为用户提供可配置/存储的数据,你需要在该物体下增加带指定PersistentData组件的子物体:

image