{ "_comment": "由 projects/Game_Surface_3/save/Layer*.xml (GB18030 编码) 全量解析生成。供 legacy-layer-migration 脚本逆向 gameabc.min.js 与交叉映射 YouleNexus prefab 使用。生成时间 2026-09-02。", "summary": { "total_layers": 68, "total_distinct_groups": 81, "spirit_types_found": ["0", "1", "3", "4", "5"], "spirit_type_distribution": { "0": {"layers_count": 44, "likely": "Sprite"}, "1": {"layers_count": 38, "likely": "Text/Label"}, "3": {"layers_count": 45, "likely": "ProgressBar"}, "4": {"layers_count": 15, "likely": "unknown - need reverse gameabc.min.js (Particle?)"}, "5": {"layers_count": 39, "likely": "unknown - need reverse gameabc.min.js (Button/Group?)"} } }, "all_layers": [ {"file": "Layer00001.xml", "id": "1", "name": "Logo_Layer", "spirits": 5, "types": ["0","1","3"], "groups": ["1","32"]}, {"file": "Layer00002.xml", "id": "2", "name": "Login_Layer", "spirits": 18, "types": ["0","1","3","5"], "groups": ["2"]}, {"file": "Layer00004.xml", "id": "4", "name": "MainMenu_Layer", "spirits": 32, "types": ["0","1","3","5"], "groups": ["3"]}, {"file": "Layer00006.xml", "id": "6", "name": "Layer6", "spirits": 53, "types": ["0","1","3","4","5"], "groups": ["103","3"]}, {"file": "Layer00007.xml", "id": "7", "name": "ewm_Layer", "spirits": 30, "types": ["1","3","4","5"], "groups": ["0","104","105"]}, {"file": "Layer00008.xml", "id": "8", "name": "Notice_Layer", "spirits": 9, "types": ["1","3","5"], "groups": ["3","95"]}, {"file": "Layer00009.xml", "id": "9", "name": "Feedback_Layer", "spirits": 34, "types": ["0","1","3","4","5"], "groups": ["12","42","74","98"]}, {"file": "Layer00010.xml", "id": "10", "name": "Protol_Layer", "spirits": 4, "types": ["0","5"], "groups": ["37"]}, {"file": "Layer00011.xml", "id": "11", "name": "ChargeInfo_Layer", "spirits": 4, "types": ["0","1"], "groups": ["20"]}, {"file": "Layer00012.xml", "id": "12", "name": "CombatLayer", "spirits": 27, "types": ["0","1","3","4","5"], "groups": ["7","8","9"]}, {"file": "Layer00013.xml", "id": "13", "name": "Layer13", "spirits": 6, "types": ["0","3"], "groups": ["7","8"]}, {"file": "Layer00014.xml", "id": "14", "name": "Pay_Layer", "spirits": 43, "types": ["0","1","3","4","5"], "groups": ["53","54"]}, {"file": "Layer00015.xml", "id": "15", "name": "JoinRoom_Layer", "spirits": 26, "types": ["0","3","4","5"], "groups": ["5"]}, {"file": "Layer00016.xml", "id": "16", "name": "Bind_Layer", "spirits": 7, "types": ["0","1","3","5"], "groups": ["80"]}, {"file": "Layer00017.xml", "id": "17", "name": "MenuPlayerInfo_Layer", "spirits": 15, "types": ["0","1","3","5"], "groups": ["18"]}, {"file": "Layer00018.xml", "id": "18", "name": "Auth_layer", "spirits": 9, "types": ["0","1","3","5"], "groups": ["57"]}, {"file": "Layer00019.xml", "id": "19", "name": "WorldRoomList_Layer", "spirits": 34, "types": ["0","1","3","4","5"], "groups": ["82","96","97"]}, {"file": "Layer00021.xml", "id": "21", "name": "rankList_Layer", "spirits": 20, "types": ["0","1","3","5"], "groups": ["84"]}, {"file": "Layer00022.xml", "id": "22", "name": "Share_Layer", "spirits": 6, "types": ["0","3","5"], "groups": ["11"]}, {"file": "Layer00024.xml", "id": "24", "name": "NeighborLayer", "spirits": 7, "types": ["0","3","5"], "groups": ["88"]}, {"file": "Layer00025.xml", "id": "25", "name": "wareHouseLayer", "spirits": 68, "types": ["0","1","3","4","5"], "groups": ["91","92","93","94"]}, {"file": "Layer00026.xml", "id": "26", "name": "Task_Layer", "spirits": 46, "types": ["0","1","3","5"], "groups": ["10"]}, {"file": "Layer00027.xml", "id": "27", "name": "CreateRoom_Layer", "spirits": 19, "types": ["0","1","3","5"], "groups": ["4"]}, {"file": "Layer00028.xml", "id": "28", "name": "SeniorOptions_Layer", "spirits": 56, "types": ["0","1","3","4","5"], "groups": ["83"]}, {"file": "Layer00029.xml", "id": "29", "name": "phoneInfo", "spirits": 38, "types": ["0","1","3","4","5"], "groups": ["106","108"]}, {"file": "Layer00050.xml", "id": "50", "name": "MainScene_Layer", "spirits": 11, "types": ["0","1","3","4","5"], "groups": ["21"]}, {"file": "Layer00202.xml", "id": "202", "name": "Player_Head_Score_Layer", "spirits": 60, "types": ["0","1","3","5"], "groups": ["43","44","45","46","47"]}, {"file": "Layer00402.xml", "id": "402", "name": "GameNoticeLayer", "spirits": 2, "types": ["1","5"], "groups": ["56"]}, {"file": "Layer00403.xml", "id": "403", "name": "Layer403", "spirits": 1, "types": ["3"], "groups": ["81"]}, {"file": "Layer00404.xml", "id": "404", "name": "MainSceneButton_Layer", "spirits": 6, "types": ["0","1","3"], "groups": ["28"]}, {"file": "Layer00405.xml", "id": "405", "name": "MainButton_Layer", "spirits": 6, "types": ["1","3","5"], "groups": ["21"]}, {"file": "Layer00408.xml", "id": "408", "name": "Interact_Layer", "spirits": 21, "types": ["0","3"], "groups": ["21","39"]}, {"file": "Layer00409.xml", "id": "409", "name": "Chat_Voice_Layer", "spirits": 20, "types": ["3","5"], "groups": ["76"]}, {"file": "Layer00410.xml", "id": "410", "name": "Chat_Text_Layer", "spirits": 20, "types": ["1","5"], "groups": ["75"]}, {"file": "Layer00411.xml", "id": "411", "name": "Layer411", "spirits": 6, "types": ["3","4"], "groups": ["81"]}, {"file": "Layer00413.xml", "id": "413", "name": "btnPannelLayer", "spirits": 18, "types": ["1","3","5"], "groups": ["100","21","81","99"]}, {"file": "Layer00416.xml", "id": "416", "name": "MainScene_PlayerInfo_Layer", "spirits": 16, "types": ["0","1","5"], "groups": ["38","77"]}, {"file": "Layer00418.xml", "id": "418", "name": "ChatPannel_Layer", "spirits": 54, "types": ["0","1","3","5"], "groups": ["30"]}, {"file": "Layer00420.xml", "id": "420", "name": "CheckFree_Layer", "spirits": 7, "types": ["0","1","3","5"], "groups": ["36"]}, {"file": "Layer00601.xml", "id": "601", "name": "Layer601", "spirits": 5, "types": ["1","3","5"], "groups": ["102"]}, {"file": "Layer00602.xml", "id": "602", "name": "inputPannel", "spirits": 19, "types": ["0","1","3","4","5"], "groups": ["87"]}, {"file": "Layer00603.xml", "id": "603", "name": "Layer603", "spirits": 3, "types": ["0","3"], "groups": ["107"]}, {"file": "Layer00606.xml", "id": "606", "name": "Apply_Layer", "spirits": 31, "types": ["0","1","3","4","5"], "groups": ["29","32"]}, {"file": "Layer00607.xml", "id": "607", "name": "Cal_Layer", "spirits": 20, "types": ["0","3","4","5"], "groups": ["78","79"]}, {"file": "Layer00608.xml", "id": "608", "name": "Help_Layer", "spirits": 7, "types": ["0","1","3","5"], "groups": ["19"]}, {"file": "Layer00609.xml", "id": "609", "name": "Setting_Layer", "spirits": 15, "types": ["0","3","5"], "groups": ["6"]}, {"file": "Layer00612.xml", "id": "612", "name": "Tips_Layer", "spirits": 5, "types": ["0","1","5"], "groups": ["32","89"]}, {"file": "Layer00613.xml", "id": "613", "name": "updateRoomCard_Layer", "spirits": 3, "types": ["0","1"], "groups": ["34"]}, {"file": "Layer00614.xml", "id": "614", "name": "Loading_Layer", "spirits": 2, "types": ["0","3"], "groups": ["40"]}, {"file": "Layer00615.xml", "id": "615", "name": "Reconnect_Layer", "spirits": 4, "types": ["0","3"], "groups": ["35"]}, {"file": "Layer00616.xml", "id": "616", "name": "Kick_Layer", "spirits": 3, "types": ["0","1"], "groups": ["33"]}, {"file": "Layer00617.xml", "id": "617", "name": "iMessage_Layer", "spirits": 4, "types": ["0","1"], "groups": ["41"]}, {"file": "Layer00618.xml", "id": "618", "name": "Layer618", "spirits": 2, "types": ["0"], "groups": ["85","86"]}, {"file": "Layer00619.xml", "id": "619", "name": "BackHall_Layer", "spirits": 1, "types": ["3"], "groups": ["55"]}, {"file": "Layer00620.xml", "id": "620", "name": "recordLayer", "spirits": 3, "types": ["0","3"], "groups": ["101"]} ], "youle_nexus_prefab_mapping": { "Login_Layer.prefab": {"target_layer": "Layer00002.xml", "name": "Login_Layer", "groups": ["2"]}, "views/PlayerInfoView.prefab": { "resolved": "Layer00017.xml", "name": "MenuPlayerInfo_Layer", "groups": ["18"], "spirits": 15, "decision_note": "用户拍板 A (2026-09-02)" }, "templates/ListItem_Room.prefab": {"status": "NO_MATCH", "hypothesis": "ListItem_Room 可能是跨 Layer 复用的 widget 子模板(不在任何 Layer 顶层),或者是 YouleNexus 新加组件"}, "widgets/Btn_Primary.prefab": {"status": "NO_MATCH", "hypothesis": "通用按钮 widget,可能是 YouleNexus 新加的 UI 基础组件,原项目 Layer 中以 Spirit 形式内嵌而非独立 Layer"}, "widgets/Group106_PhoneVerify.prefab": {"target_layer": "Layer00029.xml", "name": "phoneInfo", "groups": ["106","108"]}, "widgets/IconButton.prefab": {"status": "NO_MATCH", "hypothesis": "通用图标按钮 widget,可能 YouleNexus 新加"}, "widgets/Layer10_Protocol.prefab": {"target_layer": "Layer00010.xml", "name": "Protol_Layer", "groups": ["37"], "spirits": 4, "types": ["0","5"]}, "widgets/Layer609_Setting.prefab": {"target_layer": "Layer00609.xml", "name": "Setting_Layer", "groups": ["6"], "spirits": 15, "types": ["0","3","5"]}, "widgets/Layer612_Tips.prefab": {"target_layer": "Layer00612.xml", "name": "Tips_Layer", "groups": ["32","89"], "spirits": 5, "types": ["0","1","5"]}, "widgets/Layer613_RoomCardUpdate.prefab": {"target_layer": "Layer00613.xml", "name": "updateRoomCard_Layer", "groups": ["34"], "spirits": 3, "types": ["0","1"]}, "widgets/Layer614_Loading.prefab": {"target_layer": "Layer00614.xml", "name": "Loading_Layer", "groups": ["40"], "spirits": 2, "types": ["0","3"]}, "widgets/Layer615_Reconnect.prefab": {"target_layer": "Layer00615.xml", "name": "Reconnect_Layer", "groups": ["35"], "spirits": 4, "types": ["0","3"]}, "widgets/Layer616_Kick.prefab": {"target_layer": "Layer00616.xml", "name": "Kick_Layer", "groups": ["33"], "spirits": 3, "types": ["0","1"]}, "widgets/Layer617_Notice.prefab": { "resolved": "Layer00008.xml", "name": "Notice_Layer", "groups": ["3","95"], "spirits": 9, "decision_note": "用户拍板 B (2026-09-02)" }, "widgets/Layer619_BackOtherGame.prefab": {"target_layer": "Layer00619.xml", "name": "BackHall_Layer", "groups": ["55"], "spirits": 1, "note": "Layer name 是 BackHall 不是 BackOtherGame,但 group 唯一匹配,spirit 数 1 表示是个简单 widget"}, "widgets/Layer620_Record.prefab": {"target_layer": "Layer00620.xml", "name": "recordLayer", "groups": ["101"], "spirits": 3, "types": ["0","3"]}, "widgets/Modal.prefab": {"status": "NO_MATCH", "hypothesis": "通用弹窗 widget,可能 YouleNexus 新加的 UI 基础组件"}, "widgets/NumericLabel_Score.prefab": {"status": "NO_MATCH", "hypothesis": "数字滚动 Label widget,可能 YouleNexus 新加(用 Cocos 自定义 component 替代原 gameabc 数字渲染)"}, "widgets/ProgressBar_Standard.prefab": {"status": "NO_MATCH", "hypothesis": "通用进度条 widget,可能 YouleNexus 新加或与某个 Sprite type=3 的 Spirit 对应"} }, "open_questions": [ "SpiritType=4 与 SpiritType=5 的语义(gameabc.min.js 逆向)", "Layer00007 ewm_Layer 的 group=0 表示有节点不在 group-X 父节点下(直接挂在 Layer 根)" ], "out_of_scope_per_user": [ "ListItem_Room.prefab", "Btn_Primary.prefab", "IconButton.prefab", "Modal.prefab", "NumericLabel_Score.prefab", "ProgressBar_Standard.prefab" ], "decision_log": [ {"date": "2026-09-02", "topic": "PlayerInfoView", "decision": "Layer00017 MenuPlayerInfo_Layer", "by": "user"}, {"date": "2026-09-02", "topic": "Layer617_Notice", "decision": "Layer00008 Notice_Layer", "by": "user"}, {"date": "2026-09-02", "topic": "6 个 NO_MATCH widget", "decision": "先不做(YouleNexus 新加)", "by": "user"} ] }