2025-08-12 19:49:50 +08:00
|
|
|
import {
|
|
|
|
|
_decorator,
|
|
|
|
|
AssetManager,
|
|
|
|
|
AudioClip,
|
2025-08-15 09:41:24 +08:00
|
|
|
BufferAsset,
|
2025-08-12 19:49:50 +08:00
|
|
|
Button,
|
|
|
|
|
Component,
|
|
|
|
|
ImageAsset,
|
|
|
|
|
JsonAsset,
|
|
|
|
|
Label,
|
|
|
|
|
Material,
|
|
|
|
|
Node,
|
|
|
|
|
Prefab,
|
|
|
|
|
ProgressBar,
|
|
|
|
|
Sprite,
|
|
|
|
|
SpriteFrame,
|
|
|
|
|
} from "cc";
|
|
|
|
|
import { GButton } from "../../Main/Common/GButton";
|
|
|
|
|
import ResManager from "../../Main/Manager/ResManager";
|
|
|
|
|
import Resource from "../../Main/Config/Resource";
|
|
|
|
|
import { SDKManager } from "../../Main/Channel/SDKManager";
|
|
|
|
|
import HttpUnit from "../../Main/Common/HttpUnit";
|
|
|
|
|
import GlobalValue from "../../Main/Common/GlobalValue";
|
|
|
|
|
import Utils from "../../Main/Common/Utils";
|
|
|
|
|
import { InnerMsgCode } from "../../Main/Config/InnerMsgCode";
|
|
|
|
|
import { promptItem } from "../Item/promptItem";
|
|
|
|
|
import LanguageUtils, { LanguageType } from "../../Main/Common/LanguageUtils";
|
2025-09-10 12:29:05 +08:00
|
|
|
import { DataManager } from "../../chat18x/data/DataManager";
|
2025-09-01 16:26:37 +08:00
|
|
|
import { ConfigManager } from "../../chat18x/manager/ConfigManager";
|
2025-08-15 16:19:23 +08:00
|
|
|
import { AppConfig } from "db://assets/Scripts/chat18x/config/env/appConfig";
|
|
|
|
|
import DeviceIdService from "db://assets/Scripts/chat18x/foundation/identity/DeviceIdService";
|
2025-08-18 10:58:38 +08:00
|
|
|
|
2025-07-17 17:18:21 +08:00
|
|
|
const { ccclass, property } = _decorator;
|
|
|
|
|
|
2025-08-12 19:49:50 +08:00
|
|
|
@ccclass("PreloadUI")
|
2025-07-17 17:18:21 +08:00
|
|
|
export class PreloadUI extends Component {
|
2025-08-12 19:49:50 +08:00
|
|
|
private preloadFinish = false; //资源加载完成
|
2025-07-17 17:18:21 +08:00
|
|
|
|
2025-08-12 19:49:50 +08:00
|
|
|
private jinduBar: Node = null;
|
|
|
|
|
private jinduFilled: Sprite = null;
|
2025-07-17 17:18:21 +08:00
|
|
|
|
2025-08-12 19:49:50 +08:00
|
|
|
start() {
|
|
|
|
|
//Utils.addInnerEL(InnerMsgCode.UI_ShowPrompt, this, this.resiveShowPrompt)
|
2025-07-17 17:18:21 +08:00
|
|
|
|
2025-08-12 19:49:50 +08:00
|
|
|
this.jinduBar = this.node.getChildByName("jinduBar");
|
|
|
|
|
this.jinduFilled = this.jinduBar
|
|
|
|
|
.getChildByName("jinduFilled")
|
|
|
|
|
.getComponent(Sprite);
|
2025-09-09 14:50:51 +08:00
|
|
|
|
2025-08-12 19:49:50 +08:00
|
|
|
//适配背景图
|
|
|
|
|
let BG = this.node.getChildByName("BG");
|
|
|
|
|
Utils.adjustBgPixelRatio(BG, 1);
|
2025-07-17 17:18:21 +08:00
|
|
|
|
2025-08-12 19:49:50 +08:00
|
|
|
this.jinduFilled.fillRange = 0;
|
2025-08-15 09:41:24 +08:00
|
|
|
|
2025-08-18 10:22:46 +08:00
|
|
|
// 初始化配置
|
|
|
|
|
ConfigManager.I.init();
|
2025-09-09 14:31:47 +08:00
|
|
|
//console.log(ConfigManager.tables.TbGlobalConfig.GameName);
|
2025-08-15 16:19:23 +08:00
|
|
|
// 初始化环境配置
|
|
|
|
|
AppConfig.I;
|
2025-08-14 16:30:08 +08:00
|
|
|
// 初始化数据层
|
2025-08-15 14:59:08 +08:00
|
|
|
DataManager.I.init();
|
2025-08-15 16:19:23 +08:00
|
|
|
// 设备号
|
|
|
|
|
DeviceIdService.I.init();
|
2025-08-15 14:59:08 +08:00
|
|
|
|
2025-09-18 23:33:06 +08:00
|
|
|
SDKManager.init();
|
2025-08-12 19:49:50 +08:00
|
|
|
|
2025-09-18 23:33:06 +08:00
|
|
|
this.preloadFiles();
|
2025-08-12 19:49:50 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected onDestroy(): void {
|
|
|
|
|
Utils.removeInnerEL(
|
|
|
|
|
InnerMsgCode.UI_ShowPrompt,
|
|
|
|
|
this,
|
|
|
|
|
this.resiveShowPrompt
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
update(deltaTime: number) {
|
2025-09-10 12:29:05 +08:00
|
|
|
if (this.preloadFinish) {
|
|
|
|
|
this.preloadFinish = false;
|
|
|
|
|
this.goToLoginScene();
|
2025-07-17 17:18:21 +08:00
|
|
|
}
|
2025-08-12 19:49:50 +08:00
|
|
|
}
|
2025-07-17 17:18:21 +08:00
|
|
|
|
2025-08-12 19:49:50 +08:00
|
|
|
/**收到飘字消息 */
|
|
|
|
|
resiveShowPrompt(data: any) {
|
|
|
|
|
let msg = data.text;
|
|
|
|
|
let self = this;
|
|
|
|
|
ResManager.I.loadSubpackagePrefab("item/promptItem", (n_node: Node) => {
|
|
|
|
|
self.node.addChild(n_node);
|
|
|
|
|
let pItem = n_node.getComponent(promptItem);
|
|
|
|
|
pItem.setLabel(msg);
|
|
|
|
|
});
|
|
|
|
|
}
|
2025-07-17 17:18:21 +08:00
|
|
|
|
2025-08-12 19:49:50 +08:00
|
|
|
//预加载文件
|
|
|
|
|
preloadFiles() {
|
|
|
|
|
let preloadTab = [
|
|
|
|
|
{ path: "ChatPanel", bundleName: "Chat18x", ftype: Prefab },
|
|
|
|
|
{ path: "GirlDetailPanel", bundleName: "Chat18x", ftype: Prefab },
|
|
|
|
|
{ path: "GirlListPanel", bundleName: "Chat18x", ftype: Prefab },
|
|
|
|
|
// {path:"Music/music_interface", bundleName: "Audio", ftype: AudioClip},
|
|
|
|
|
// {path:"bg/mengli_stage_bg", bundleName: "Raw", ftype: ImageAsset},
|
|
|
|
|
// {path:"cg0/mengli_0_cg", bundleName: "Raw", ftype: ImageAsset},
|
|
|
|
|
// {path:"cg1/mengli_1_cg", bundleName: "Raw", ftype: ImageAsset},
|
|
|
|
|
// {path:"cg2/mengli_2_cg", bundleName: "Raw", ftype: ImageAsset},
|
|
|
|
|
// {path:"cg3/mengli_3_cg", bundleName: "Raw", ftype: ImageAsset},
|
|
|
|
|
// {path:"emo_1/mengli_shy", bundleName: "Raw", ftype: ImageAsset},
|
|
|
|
|
// {path:"emo_2/mengli_laugh", bundleName: "Raw", ftype: ImageAsset},
|
|
|
|
|
// {path:"emo_3/mengli_disgust", bundleName: "Raw", ftype: ImageAsset},
|
|
|
|
|
// {path:"role/mengli_default", bundleName: "Raw", ftype: ImageAsset},
|
|
|
|
|
// {path:"Zjm/raw1", bundleName: "Raw", ftype: ImageAsset},
|
|
|
|
|
// {path:"touming", bundleName: "common", ftype: ImageAsset},
|
|
|
|
|
// // {path:"chanpin_1_0", bundleName: "daoju", ftype: ImageAsset}, //有合图加载失败
|
|
|
|
|
// {path:"zjm_1", bundleName: "Zhujiemian", ftype: ImageAsset},
|
|
|
|
|
// {path:"zjm_19", bundleName: "Zhujiemian", ftype: ImageAsset},
|
|
|
|
|
// {path:"zjm_30", bundleName: "Zhujiemian", ftype: ImageAsset},
|
|
|
|
|
// {path:"mohu", bundleName: "Materials", ftype: Material},
|
|
|
|
|
// {path:"UI/Cross/Cross_UI", bundleName: "PB", ftype: Prefab},
|
|
|
|
|
// {path:"UI/StartUI/Start_UI", bundleName: "PB", ftype: Prefab},
|
2025-08-15 09:41:24 +08:00
|
|
|
{ path: "tblanguage", bundleName: "DataTable", ftype: BufferAsset },
|
2025-08-12 19:49:50 +08:00
|
|
|
];
|
|
|
|
|
let num_prefab = 0; //已加载数量
|
|
|
|
|
let num_succeed = 0; //加载成功数量
|
|
|
|
|
let preloadFunc = () => {
|
|
|
|
|
if (num_prefab < preloadTab.length) {
|
|
|
|
|
let cfg = preloadTab[num_prefab];
|
|
|
|
|
ResManager.I.preLoadSubpackageFile(
|
|
|
|
|
cfg.path,
|
|
|
|
|
cfg.bundleName,
|
|
|
|
|
cfg.ftype,
|
|
|
|
|
(ret) => {
|
|
|
|
|
num_prefab++;
|
|
|
|
|
num_succeed++;
|
|
|
|
|
let percent = 0.45 * (num_prefab / preloadTab.length);
|
|
|
|
|
this.showLoadProgress(0.55 + percent);
|
|
|
|
|
console.log("加载成功:", cfg.path);
|
|
|
|
|
preloadFunc();
|
|
|
|
|
},
|
|
|
|
|
(err) => {
|
|
|
|
|
num_prefab++;
|
|
|
|
|
console.log("加载失败:", err);
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
} else {
|
|
|
|
|
if (num_succeed >= num_prefab) {
|
|
|
|
|
this.loadDataTable();
|
2025-07-17 17:18:21 +08:00
|
|
|
}
|
2025-08-12 19:49:50 +08:00
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
preloadFunc();
|
|
|
|
|
}
|
2025-07-17 17:18:21 +08:00
|
|
|
|
2025-08-12 19:49:50 +08:00
|
|
|
//加载配置表
|
|
|
|
|
loadDataTable() {
|
|
|
|
|
let dataArr = [
|
|
|
|
|
//"commonGlobal",
|
|
|
|
|
// "levelHole",
|
|
|
|
|
//"Music",
|
|
|
|
|
//"Sound",
|
|
|
|
|
];
|
2025-07-17 17:18:21 +08:00
|
|
|
|
2025-08-12 19:49:50 +08:00
|
|
|
//配置表使用方法: let cfgs = Resource.getConfig("Sound")
|
|
|
|
|
let num_prefab = 0;
|
|
|
|
|
let preloadFunc = () => {
|
|
|
|
|
if (num_prefab < dataArr.length) {
|
|
|
|
|
let cfgname = dataArr[num_prefab];
|
|
|
|
|
ResManager.I.loadSubpackageDataTable(cfgname, (ret: JsonAsset) => {
|
|
|
|
|
num_prefab++;
|
|
|
|
|
Resource.addSubJsonConfig(cfgname, ret.json);
|
|
|
|
|
preloadFunc();
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
this.preloadFinish = true;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
preloadFunc();
|
|
|
|
|
}
|
2025-07-17 17:18:21 +08:00
|
|
|
|
2025-08-12 19:49:50 +08:00
|
|
|
//显示加载进度
|
|
|
|
|
showLoadProgress(percent) {
|
|
|
|
|
this.jinduFilled.fillRange = percent;
|
|
|
|
|
}
|
2025-07-17 17:18:21 +08:00
|
|
|
|
2025-09-10 12:29:05 +08:00
|
|
|
// 跳转到登录场景
|
|
|
|
|
private goToLoginScene() {
|
2025-08-16 01:07:42 +08:00
|
|
|
this.jinduBar.active = false;
|
2025-09-10 12:29:05 +08:00
|
|
|
ResManager.I.goCustomScene("LoginScene");
|
2025-08-16 01:07:42 +08:00
|
|
|
}
|
2025-07-17 17:18:21 +08:00
|
|
|
}
|