Land Explorer in HomeCamp with boot loading, journal UI, and CDN publish tooling.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
udx
2026-11-04 16:18:01 +08:00
co-authored by Cursor
parent 9eec364f30
commit 80678ec499
405 changed files with 48053 additions and 420302 deletions
+63
View File
@@ -0,0 +1,63 @@
{
"schemaVersion": 1,
"prefabName": "UI_BootLoading",
"prefabPath": "Assets/AOT/UI/UI_BootLoading.prefab",
"description": "本地启动页,不依赖 CDN。复用营地插画与糖果风九宫格;静态中文子集字体随底包,避免默认字体缺字。BuildBootLoading 从 JSON 生成并绑定 Boot 场景。",
"canvas": { "canvasScaler": { "referenceResolution": [1080, 1920], "matchWidthOrHeight": 0 } },
"assets": { "sprites": {
"camp": "Assets/Bundles/UI/Bg/home_camp.png",
"panel": "Assets/Bundles/UI/Texture/Common/ui_panel_content.png",
"track": "Assets/Bundles/UI/Texture/Common/progress_bg.png",
"fill": "Assets/Bundles/UI/Texture/Common/progress_fill.png"
} },
"nodes": [
{ "name": "UI_BootLoading", "parent": null, "rect": { "anchorMin": [0,0], "anchorMax": [1,1], "offsetMin": [0,0], "offsetMax": [0,0] }, "components": [
{ "type": "Canvas", "sortingOrder": 1000 },
{ "type": "CanvasScaler", "referenceResolution": [1080,1920], "matchWidthOrHeight": 0 },
{ "type": "CanvasGroup", "alpha": 1, "blocksRaycasts": true },
{ "type": "GraphicRaycaster" },
{ "type": "MonoBehaviour", "typeName": "AOT.UI.BootPatchView, AOT.Runtime" }
] },
{ "name": "Artwork", "parent": "UI_BootLoading", "rect": { "anchorMin": [0,0], "anchorMax": [1,1], "offsetMin": [0,0], "offsetMax": [0,0] }, "components": [
{ "type": "Image", "sprite": "camp", "color": "#E6E6E6", "raycastTarget": true },
{ "type": "MonoBehaviour", "typeName": "AOT.UI.BootArtworkCover, AOT.Runtime" }
] },
{ "name": "TitleShadow", "parent": "UI_BootLoading", "rect": { "anchorMin": [0.08,0.81], "anchorMax": [0.92,0.88], "offsetMin": [0,-7], "offsetMax": [0,-7] }, "components": [
{ "type": "TextMeshProUGUI", "text": "萌友防线", "fontAsset": "Assets/AOT/UI/BootChinese.asset", "fontSize": 108, "alignment": "MiddleCenter", "color": "#76522C" }
] },
{ "name": "Txt_Title", "parent": "UI_BootLoading", "rect": { "anchorMin": [0.08,0.81], "anchorMax": [0.92,0.88], "offsetMin": [0,0], "offsetMax": [0,0] }, "components": [
{ "type": "TextMeshProUGUI", "text": "萌友防线", "fontAsset": "Assets/AOT/UI/BootChinese.asset", "fontSize": 108, "alignment": "MiddleCenter", "color": "#FFF2CA" }
] },
{ "name": "Txt_Tagline", "parent": "UI_BootLoading", "rect": { "anchorMin": [0.12,0.775], "anchorMax": [0.88,0.81], "offsetMin": [0,0], "offsetMax": [0,0] }, "components": [
{ "type": "TextMeshProUGUI", "text": "Buddy Defense", "fontAsset": "Assets/AOT/UI/BootChinese.asset", "fontSize": 40, "alignment": "MiddleCenter", "color": "#FFF8E8" },
{ "type": "Shadow", "effectColor": "#334D48", "effectDistance": [1,-2] }
] },
{ "name": "Txt_Intro", "parent": "UI_BootLoading", "rect": { "anchorMin": [0.12,0.742], "anchorMax": [0.88,0.772], "offsetMin": [0,0], "offsetMax": [0,0] }, "components": [
{ "type": "TextMeshProUGUI", "text": "集结伙伴 · 开启冒险", "fontAsset": "Assets/AOT/UI/BootChinese.asset", "fontSize": 28, "alignment": "MiddleCenter", "color": "#FFF8E8" },
{ "type": "Shadow", "effectColor": "#334D48", "effectDistance": [1,-2] }
] },
{ "name": "LoadingCard", "parent": "UI_BootLoading", "rect": { "anchorMin": [0.09,0.105], "anchorMax": [0.91,0.105], "pivot": [0.5,0.5], "sizeDelta": [0,230], "anchoredPosition": [0,0] }, "components": [
{ "type": "Image", "sprite": "panel", "imageType": "Sliced", "color": "#FFFFFFF5" }
] },
{ "name": "Txt_Status", "parent": "LoadingCard", "rect": { "anchorMin": [0.055,0.61], "anchorMax": [0.82,0.88], "offsetMin": [0,0], "offsetMax": [0,0] }, "components": [
{ "type": "TextMeshProUGUI", "text": "正在准备冒险…", "fontAsset": "Assets/AOT/UI/BootChinese.asset", "fontSize": 34, "alignment": "Left", "color": "#5A4632" }
] },
{ "name": "Txt_Percentage", "parent": "LoadingCard", "rect": { "anchorMin": [0.8,0.61], "anchorMax": [0.945,0.88], "offsetMin": [0,0], "offsetMax": [0,0] }, "components": [
{ "type": "TextMeshProUGUI", "text": "0%", "fontAsset": "Assets/AOT/UI/BootChinese.asset", "fontSize": 34, "alignment": "Right", "color": "#6C8B29" }
] },
{ "name": "ProgressTrack", "parent": "LoadingCard", "rect": { "anchorMin": [0.055,0.36], "anchorMax": [0.945,0.36], "sizeDelta": [0,42], "anchoredPosition": [0,0] }, "components": [
{ "type": "Image", "sprite": "track", "imageType": "Sliced", "raycastTarget": false }
] },
{ "name": "FillClip", "parent": "ProgressTrack", "rect": { "anchorMin": [0,0], "anchorMax": [0,1], "offsetMin": [0,0], "offsetMax": [0,0] }, "components": [
{ "type": "RectMask2D" }
] },
{ "name": "ProgressFill", "parent": "FillClip", "rect": { "anchorMin": [0,0], "anchorMax": [1,1], "offsetMin": [0,0], "offsetMax": [0,0] }, "components": [
{ "type": "Image", "sprite": "fill", "imageType": "Sliced", "raycastTarget": false }
] },
{ "name": "Txt_Hint", "parent": "LoadingCard", "rect": { "anchorMin": [0.055,0.06], "anchorMax": [0.945,0.25], "offsetMin": [0,0], "offsetMax": [0,0] }, "components": [
{ "type": "TextMeshProUGUI", "text": "首次进入需要下载资源,请稍候", "fontAsset": "Assets/AOT/UI/BootChinese.asset", "fontSize": 26, "alignment": "MiddleCenter", "color": "#8A7658" }
] }
],
"bindings": ["Txt_Status", "Txt_Percentage", "FillClip"],
"events": []
}
+657 -3
View File
@@ -2,7 +2,7 @@
"schemaVersion": 1,
"prefabName": "UI_MainHUD",
"prefabPath": "Assets/Bundles/UI/Prefab/UI_MainHUD.prefab",
"description": "HUD 主界面 / candy。参考 Clash of Critters 营地式入口布局,采用项目主题;1080×1920,JSON→Prefab。中央为去掉人物的营地插画,营地向导在广场走动,点击后才显示随机台词。功能入口通过 MainHUD.* 事件接入。保留网络状态和重连绑定,无主题切换按钮。 ?????????????????????????????????? Prefab ?????",
"description": "HUD ??? / Candy?3D ???????????????????? MainHUD ?????1080?1920?JSON?Prefab?",
"canvas": {
"canvasScaler": {
"referenceResolution": [
@@ -110,6 +110,36 @@
}
]
},
{
"name": "CampWorld",
"parent": "UI_MainHUD",
"active": true,
"rect": {
"anchorMin": [
0,
0
],
"anchorMax": [
1,
1
],
"offsetMin": [
0,
0
],
"offsetMax": [
0,
0
]
},
"components": [
{
"type": "RawImage",
"color": "#FFFFFF",
"raycastTarget": false
}
]
},
{
"name": "ExplorerStage",
"parent": "UI_MainHUD",
@@ -258,6 +288,605 @@
}
]
},
{
"name": "Group_CampBuildings",
"parent": "UI_MainHUD",
"active": true,
"rect": {
"anchorMin": [
0,
0
],
"anchorMax": [
1,
1
],
"offsetMin": [
0,
0
],
"offsetMax": [
0,
0
]
},
"components": []
},
{
"name": "Btn_Building_MainHouse",
"parent": "Group_CampBuildings",
"active": true,
"rect": {
"anchorMin": [
0.5,
0.5
],
"anchorMax": [
0.5,
0.5
],
"pivot": [
0.5,
0
],
"anchoredPosition": [
0,
386
],
"sizeDelta": [
230,
78
]
},
"components": [
{
"type": "Image",
"sprite": "ui_panel_content",
"color": "#FFFDF8",
"raycastTarget": true,
"imageType": "Sliced"
},
{
"type": "Button",
"transition": "ColorTint",
"onClick": "MainHUD.BuildingMainHouse"
}
]
},
{
"name": "Img_Btn_Building_MainHouse_Icon",
"parent": "Btn_Building_MainHouse",
"active": true,
"rect": {
"anchorMin": [
0,
0.5
],
"anchorMax": [
0,
0.5
],
"pivot": [
0.5,
0.5
],
"anchoredPosition": [
38,
0
],
"sizeDelta": [
48,
48
]
},
"components": [
{
"type": "Image",
"sprite": "home_ico_home",
"color": "#FFFFFF",
"raycastTarget": false,
"imageType": "Simple"
}
]
},
{
"name": "Txt_Btn_Building_MainHouse_Title",
"parent": "Btn_Building_MainHouse",
"active": true,
"rect": {
"anchorMin": [
0,
0
],
"anchorMax": [
1,
1
],
"pivot": [
0.5,
0.5
],
"offsetMin": [
66,
0
],
"offsetMax": [
-12,
0
]
},
"components": [
{
"type": "TextMeshProUGUI",
"text": "营地大厅",
"fontSize": 28,
"color": "#5D4037",
"alignment": "MidlineLeft",
"fontStyle": "Bold",
"raycastTarget": false
}
]
},
{
"name": "Btn_Building_Shop",
"parent": "Group_CampBuildings",
"active": true,
"rect": {
"anchorMin": [
0.5,
0.5
],
"anchorMax": [
0.5,
0.5
],
"pivot": [
0.5,
0
],
"anchoredPosition": [
-360,
148
],
"sizeDelta": [
220,
78
]
},
"components": [
{
"type": "Image",
"sprite": "ui_panel_content",
"color": "#FFFDF8",
"raycastTarget": true,
"imageType": "Sliced"
},
{
"type": "Button",
"transition": "ColorTint",
"onClick": "MainHUD.BuildingShop"
}
]
},
{
"name": "Img_Btn_Building_Shop_Icon",
"parent": "Btn_Building_Shop",
"active": true,
"rect": {
"anchorMin": [
0,
0.5
],
"anchorMax": [
0,
0.5
],
"pivot": [
0.5,
0.5
],
"anchoredPosition": [
38,
0
],
"sizeDelta": [
48,
48
]
},
"components": [
{
"type": "Image",
"sprite": "home_ico_bag",
"color": "#FFFFFF",
"raycastTarget": false,
"imageType": "Simple"
}
]
},
{
"name": "Txt_Btn_Building_Shop_Title",
"parent": "Btn_Building_Shop",
"active": true,
"rect": {
"anchorMin": [
0,
0
],
"anchorMax": [
1,
1
],
"pivot": [
0.5,
0.5
],
"offsetMin": [
66,
0
],
"offsetMax": [
-12,
0
]
},
"components": [
{
"type": "TextMeshProUGUI",
"text": "小镇商店",
"fontSize": 28,
"color": "#5D4037",
"alignment": "MidlineLeft",
"fontStyle": "Bold",
"raycastTarget": false
}
]
},
{
"name": "Btn_Building_Pets",
"parent": "Group_CampBuildings",
"active": true,
"rect": {
"anchorMin": [
0.5,
0.5
],
"anchorMax": [
0.5,
0.5
],
"pivot": [
0.5,
0
],
"anchoredPosition": [
360,
170
],
"sizeDelta": [
220,
78
]
},
"components": [
{
"type": "Image",
"sprite": "ui_panel_content",
"color": "#FFFDF8",
"raycastTarget": true,
"imageType": "Sliced"
},
{
"type": "Button",
"transition": "ColorTint",
"onClick": "MainHUD.BuildingPets"
}
]
},
{
"name": "Img_Btn_Building_Pets_Icon",
"parent": "Btn_Building_Pets",
"active": true,
"rect": {
"anchorMin": [
0,
0.5
],
"anchorMax": [
0,
0.5
],
"pivot": [
0.5,
0.5
],
"anchoredPosition": [
38,
0
],
"sizeDelta": [
48,
48
]
},
"components": [
{
"type": "Image",
"sprite": "home_ico_pets",
"color": "#FFFFFF",
"raycastTarget": false,
"imageType": "Simple"
}
]
},
{
"name": "Txt_Btn_Building_Pets_Title",
"parent": "Btn_Building_Pets",
"active": true,
"rect": {
"anchorMin": [
0,
0
],
"anchorMax": [
1,
1
],
"pivot": [
0.5,
0.5
],
"offsetMin": [
66,
0
],
"offsetMax": [
-12,
0
]
},
"components": [
{
"type": "TextMeshProUGUI",
"text": "伙伴之家",
"fontSize": 28,
"color": "#5D4037",
"alignment": "MidlineLeft",
"fontStyle": "Bold",
"raycastTarget": false
}
]
},
{
"name": "Btn_Building_Fountain",
"parent": "Group_CampBuildings",
"active": true,
"rect": {
"anchorMin": [
0.5,
0.5
],
"anchorMax": [
0.5,
0.5
],
"pivot": [
0.5,
0
],
"anchoredPosition": [
0,
-23
],
"sizeDelta": [
220,
78
]
},
"components": [
{
"type": "Image",
"sprite": "ui_panel_content",
"color": "#FFFDF8",
"raycastTarget": true,
"imageType": "Sliced"
},
{
"type": "Button",
"transition": "ColorTint",
"onClick": "MainHUD.BuildingFountain"
}
]
},
{
"name": "Img_Btn_Building_Fountain_Icon",
"parent": "Btn_Building_Fountain",
"active": true,
"rect": {
"anchorMin": [
0,
0.5
],
"anchorMax": [
0,
0.5
],
"pivot": [
0.5,
0.5
],
"anchoredPosition": [
38,
0
],
"sizeDelta": [
48,
48
]
},
"components": [
{
"type": "Image",
"sprite": "home_ico_chest",
"color": "#FFFFFF",
"raycastTarget": false,
"imageType": "Simple"
}
]
},
{
"name": "Txt_Btn_Building_Fountain_Title",
"parent": "Btn_Building_Fountain",
"active": true,
"rect": {
"anchorMin": [
0,
0
],
"anchorMax": [
1,
1
],
"pivot": [
0.5,
0.5
],
"offsetMin": [
66,
0
],
"offsetMax": [
-12,
0
]
},
"components": [
{
"type": "TextMeshProUGUI",
"text": "祈愿喷泉",
"fontSize": 28,
"color": "#5D4037",
"alignment": "MidlineLeft",
"fontStyle": "Bold",
"raycastTarget": false
}
]
},
{
"name": "Btn_Building_Stall",
"parent": "Group_CampBuildings",
"active": true,
"rect": {
"anchorMin": [
0.5,
0.5
],
"anchorMax": [
0.5,
0.5
],
"pivot": [
0.5,
0
],
"anchoredPosition": [
260,
40
],
"sizeDelta": [
220,
78
]
},
"components": [
{
"type": "Image",
"sprite": "ui_panel_content",
"color": "#FFFDF8",
"raycastTarget": true,
"imageType": "Sliced"
},
{
"type": "Button",
"transition": "ColorTint",
"onClick": "MainHUD.BuildingStall"
}
]
},
{
"name": "Img_Btn_Building_Stall_Icon",
"parent": "Btn_Building_Stall",
"active": true,
"rect": {
"anchorMin": [
0,
0.5
],
"anchorMax": [
0,
0.5
],
"pivot": [
0.5,
0.5
],
"anchoredPosition": [
38,
0
],
"sizeDelta": [
48,
48
]
},
"components": [
{
"type": "Image",
"sprite": "home_ico_gift",
"color": "#FFFFFF",
"raycastTarget": false,
"imageType": "Simple"
}
]
},
{
"name": "Txt_Btn_Building_Stall_Title",
"parent": "Btn_Building_Stall",
"active": true,
"rect": {
"anchorMin": [
0,
0
],
"anchorMax": [
1,
1
],
"pivot": [
0.5,
0.5
],
"offsetMin": [
66,
0
],
"offsetMax": [
-12,
0
]
},
"components": [
{
"type": "TextMeshProUGUI",
"text": "集市货摊",
"fontSize": 28,
"color": "#5D4037",
"alignment": "MidlineLeft",
"fontStyle": "Bold",
"raycastTarget": false
}
]
},
{
"name": "Layout_Top",
"parent": "UI_MainHUD",
@@ -3627,7 +4256,12 @@
"ExplorerStage",
"Btn_Explorer",
"Panel_ExplorerTalk",
"Txt_ExplorerTalk"
"Txt_ExplorerTalk",
"Btn_Building_MainHouse",
"Btn_Building_Shop",
"Btn_Building_Pets",
"Btn_Building_Fountain",
"Btn_Building_Stall"
],
"events": [
{
@@ -3709,6 +4343,26 @@
{
"name": "MainHUD.Reconnect",
"node": "Btn_Reconnect"
},
{
"name": "MainHUD.BuildingMainHouse",
"node": "Btn_Building_MainHouse"
},
{
"name": "MainHUD.BuildingShop",
"node": "Btn_Building_Shop"
},
{
"name": "MainHUD.BuildingPets",
"node": "Btn_Building_Pets"
},
{
"name": "MainHUD.BuildingFountain",
"node": "Btn_Building_Fountain"
},
{
"name": "MainHUD.BuildingStall",
"node": "Btn_Building_Stall"
}
]
}
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff