65 lines
2.0 KiB
TypeScript
65 lines
2.0 KiB
TypeScript
import { error, game } from 'cc'
|
|
import DarkLayer from '../../engine/uicomponent/DarkLayer'
|
|
import LoadingPrefab from '../../engine/uicomponent/LoadingPrefab'
|
|
import LoadingScenePrefab from '../../engine/uicomponent/LoadingScenePrefab'
|
|
import MusicPrefab from '../../engine/uicomponent/MusicPrefab'
|
|
import Progress from '../../engine/uicomponent/Progress'
|
|
import SoundPrefab from '../../engine/uicomponent/SoundPrefab'
|
|
import ResourcePrefab from '../prefab/ResourcePrefab'
|
|
import ShaderMaterialPrefab from '../prefab/ShaderMaterialPrefab'
|
|
|
|
export default class ResourcePreload {
|
|
public static instance: ResourcePreload = new ResourcePreload()
|
|
private isPreloaded: boolean = false
|
|
private totalNum: number = 6
|
|
private nowIndex: number = 0
|
|
private progress: Progress
|
|
|
|
public async preLoad(callback: Function, progress: Progress) {
|
|
if (this.isPreloaded) {
|
|
callback()
|
|
return
|
|
}
|
|
this.isPreloaded = true
|
|
this.progress = progress
|
|
if (this.progress) {
|
|
progress.updateProgress(this.nowIndex, this.totalNum)
|
|
}
|
|
await LoadingPrefab.preLoad() //1
|
|
this.finishOneItemLoad()
|
|
await DarkLayer.preLoad() //2
|
|
this.finishOneItemLoad()
|
|
await MusicPrefab.preLoad() //3
|
|
this.finishOneItemLoad()
|
|
await SoundPrefab.preLoad() //4
|
|
this.finishOneItemLoad()
|
|
await ResourcePrefab.preLoad() //5
|
|
this.finishOneItemLoad()
|
|
await ShaderMaterialPrefab.preLoad() //6
|
|
this.finishOneItemLoad() //
|
|
callback()
|
|
}
|
|
|
|
private finishOneItemLoad() {
|
|
this.nowIndex++
|
|
if (this.progress) {
|
|
this.progress.updateProgress(this.nowIndex, this.totalNum)
|
|
}
|
|
}
|
|
|
|
public restartGame() {
|
|
this.isPreloaded = false
|
|
// GameSocket.getInstance().closeSocket(false);
|
|
LoadingScenePrefab.clear()
|
|
LoadingPrefab.clear()
|
|
error('需要获取游戏里所有的AudioSource停止音乐')
|
|
//audioEngine.stopAll();
|
|
|
|
// VersionManager.instance.releaseAll();
|
|
MusicPrefab.destory()
|
|
SoundPrefab.destory()
|
|
ResourcePrefab.clear()
|
|
game.restart()
|
|
}
|
|
}
|