为游戏过程中的文创内容建立一层独立承载能力,不把内容弹窗、图文卡片、讲解信息散落在:
这层的目标是:
一句话:
把“中途内容体验”从临时弹窗提升为正式能力层。
当前项目已经具备一部分基础:
control.displayContentUiEffectDirector.showContentCard(...)contentCardVisible / contentCardTitle / contentCardBody这说明:
短反馈仍然属于:
文创体验属于更重的一层,应与 FeedbackDirector 区分。
规则层只负责:
规则层不负责:
以后不同活动、不同地图、不同玩法需要不同内容。
所以这层必须可配置:
建议增加一层:
ContentExperienceLayer放在概念上与这些层并列:
MapPresentationHUDFeedbackResultScene职责:
type ExperienceTrigger =
| 'control_completed'
| 'zone_entered'
| 'session_finished'
| 'manual'
type ExperienceDisplayMode =
| 'content-card'
| 'full-panel'
| 'audio-guide'
| 'unlock-card'
interface ExperienceEntry {
id: string
trigger: ExperienceTrigger
controlId?: string
zoneId?: string
title: string
body: string
imageRef?: string
audioRef?: string
displayMode: ExperienceDisplayMode
once: boolean
priority: number
}
interface ExperienceRuntimeState {
activeEntryId: string | null
dismissedEntryIds: string[]
consumedEntryIds: string[]
}
建议在配置中增加一段:
{
"resources": {
"contentEntries": {
"cp-3-story": {
"title": "校史地标",
"body": "这里是校园历史演变的重要节点。",
"imageRef": "content/campus-history-01.png",
"displayMode": "content-card"
}
}
},
"game": {
"experience": {
"entries": [
{
"id": "cp-3-story",
"trigger": "control_completed",
"controlId": "control-3",
"once": true,
"priority": 10
}
]
}
}
}
这意味着:
第一阶段建议支持 3 种触发:
最适合当前项目,价值最高。
例如:
适合后续:
适合后续与结算页联动:
第一阶段先做最小闭环,不追求复杂视觉。
支持:
content-card再支持:
负责:
不负责:
继续负责:
负责:
负责:
建议第一阶段只做:
control_completed -> experience entrycontent-card 展示once 语义不要一上来做:
ExperienceEntrygame.experience.entriescontent-card这层建好后,后续可以自然承接:
它不只服务当前顺序赛/积分赛,而是服务整条产品体验链。
当前最正确的方向不是继续在页面里零散补内容弹窗,而是:
把游戏中途的文创与故事体验正式抽成一层独立的 ContentExperienceLayer。
第一阶段先用“控制点完成触发内容卡”跑通最小闭环,后面再逐步扩成完整体验系统。