【Cocos入门】场景切换(loadScene、preloadScene)
一、loadScene 加载场景
- loadScene(sceneName: string, onLaunched: Director.OnSceneLaunched, onUnloaded: Director.OnUnload) : boolean
通过场景名称进行加载场景。返回值为布尔类型
参数:
Name | Type | Description |
---|---|---|
sceneName | string | 场景名称 |
onLaunched | Director.OnSceneLoaded | 加载回调 |
onUnloaded | Director.OnUnload | - |
关于 loadScene 更多详情
示例:
gamestartHandler(){
cc.director.loadScene("Game",()=>{
console.log("新场景已加载并切换完成")
})
}
二、preloadscene 预加载场景
- preloadScene(sceneName: string, onLoaded: Director.OnSceneLoaded) : void
预加载场景,你可以在任何时候调用这个方法。 调用完后,你仍然需要通过 director.loadScene 来启动场景,因为这个方法不会执行场景加载操作。
就算预加载还没完成,你也可以直接调用 director.loadScene,加载完成后场景就会启动。
参数:
Name | Type | Description |
---|---|---|
sceneName | string | 场景名称 |
onLoaded | Director.OnSceneLoaded | 加载回调 |
- preloadScene(sceneName: string, onProgress: Director.OnLoadSceneProgress, onLoaded: Director.OnSceneLoaded) : void
预加载场景,你可以在任何时候调用这个方法。 调用完后,你仍然需要通过 director.loadScene 来启动场景,因为这个方法不会执行场景加载操作。
就算预加载还没完成,你也可以直接调用 director.loadScene,加载完成后场景就会启动。
参数:
Name | Type | Description |
---|---|---|
sceneName | string | 场景名称 |
onProgress | Director.OnLoadSceneProgress | 加载进度回调 |
onLoaded | Director.OnSceneLoaded | 加载回调 |
关于 preloadscene 更多详情
示例:
//是否加载完成
isNewSceneLoaded = false;
start () {
let pb=cc.find("ProgressBar");
pb.active = true;
cc.director.preloadScene("Game",(ccnt:number,tcnt:number,item)=>{
console.log(tcnt+"=>"+ccnt)
let progress=ccnt/tcnt;
pb.getComponent(cc.ProgressBar).progress=progress;
},(error:Error)=>{
this.isNewSceneLoaded=true;
})
}
gamestartHandler(){
if(this.isNewSceneLoaded){
cc.director.loadScene("Game",()=>{
console.log("新场景已加载并切换完成")
})
}
}