跳转到内容

C# 独立应用集成

本页遵循 Ktory 设计原则,实现边界与长期目标以该原则及其权威文档为准。

Ktory.Core 目标框架为 netstandard2.1,无外部 NuGet 依赖。宿主需提供兼容运行时;仓库的控制台式示例与 Web 工具使用 .NET 9。其他引擎可以探索接入,但核心可移植不代表对应适配已经交付。

完整的手动控制台程序见 快速上手。核心调用契约如下:

操作 API 与结果
解析 KtoryParser.Parse(source) 返回 KtoryFile
创建 new KtorySequencer(file)
启动 Start(requestedLocale: "zh") 已执行到首个输出
普通推进 Step(currentPayload.PresentationId)
提交当前菜单 SubmitChoice(option.Id, currentChoice.PresentationId),已执行到分支首个输出
语言切换 SetLanguage("en"),重新读取当前载荷或菜单
输出 Status、CurrentPayload、CurrentChoice
演出意图通知 OnTagsDispatched

IExpressionEvaluator 是连接宿主条件、插值和操作的扩展接口。当前默认求值器用于基础试读,未知条件默认放行;正式游戏应提供自己的实现,不能将试读的宽松结果当作背包或任务状态。核心维护会话内选择消耗,不接管游戏世界状态。

原始点击、计时结束与核心推进是不同操作。控制台例子只做手动停止;要采用 .next、.wait、.skippable,需接入表现时序。配套 PresentationController 的事件与调用顺序见 Unity 接入中的时序表,这些接口本身不依赖 Unity。

PresentationId 用于将输入关联当前输出,不是永久内容 ID 或存档格式。重启会话时宿主必须取消旧回调。格式错误、非法选择和控制流错误应捕获并显示源码位置;收到未知外部能力与剧本语法错误不是同一种情况。

真实 Web 试读器 使用共享 C# 核心。官网首页的互动展示是示意模拟,不能用于验证语义或宿主演出。