lua 游戏架构 之 SceneLoad场景加载(一)

设计一个为`BaseSceneLoad` class,用于处理场景加载的相关操作 ,主要作用是提供了一个通用的场景加载框架,使得子类可以按照统一的接口进行场景加载操作。子类需要实现这些方法,以便在加载场景时能够正确地处理场景加载的各个阶段。

以下是对这些方法的解释:

  1. `initialize()`:在加载场景之前进行初始化操作。

  2. `startLoadingScene(curScene)`:开始加载场景。`curScene`是当前场景的引用,子类可以利用这个参数进行场景加载操作。

  3. `disposeLoadingScene()`:在加载场景完成后进行清理操作。

  4. `isLoadingSceneReady()`:判断场景加载是否完成。返回一个布尔值,表示场景是否已经加载完成。

  5. `getLoadingSceneProgress()`:获取场景加载的进度。返回一个数字,表示场景加载的进度百分比。

  6. `startPreLoadNewScene(curscene)`:开始预加载下一个场景。`curscene`是当前场景的引用,子类可以利用这个参数进行场景预加载操作。

  7. `getScenePrefab()`:获取下一个场景的预设。

  8. `isNewSceneLoadReady()`:判断新场景加载是否完成。返回一个布尔值,表示新场景是否已经加载完成。

  9. `getNewSceneLoadProgress()`:获取新场景加载的进度。返回一个数字,表示新场景加载的进度百分比。

  10. `onLoadingPanelOpen()`:加载面板打开时的回调函数。

  11. `onSceneEnterForeground()`:场景进入前台的回调函数。

  12. `dispose()`:释放资源。

  13. `destoryPreDispose()`:在完全释放之前进行处理。

  14. `destoryDispose()`:完全释放资源。

代码如下:

Lua 复制代码
---@class BaseSceneLoad
local BaseSceneLoad = class("BaseSceneLoad")

function BaseSceneLoad:initialize()
end

function BaseSceneLoad:startLoadingScene(curScene)
    assert(false, "警告子类未实现")
end

function BaseSceneLoad:disposeLoadingScene()
    assert(false, "警告子类未实现")
end
---@return boolean
function BaseSceneLoad:isLoadingSceneReady()
    assert(false, "警告子类未实现")
end
---@return number
function BaseSceneLoad:getLoadingSceneProgress()
    assert(false, "警告子类未实现")
end

function BaseSceneLoad:startPreLoadNewScene(curscene)
    assert(false, "警告子类未实现")
end

function BaseSceneLoad:getScenePrefab()
    assert(false, "警告子类未实现")
end
---@return boolean
function BaseSceneLoad:isNewSceneLoadReady()
    assert(false, "警告子类未实现")
end
---@return number
function BaseSceneLoad:getNewSceneLoadProgress()
    assert(false, "警告子类未实现")
end

function BaseSceneLoad:onLoadingPanelOpen()
    assert(false, "警告子类未实现")
end

function BaseSceneLoad:onSceneEnterForeground()
    assert(false, "之类未实现")
end

function BaseSceneLoad:dispose()
    assert(false, "警告子类未实现")
end

-- 完全释放前处理
function BaseSceneLoad:destoryPreDispose()
    assert(false, "警告子类未实现")
end


-- 完全释放
function BaseSceneLoad:destoryDispose()
    assert(false, "警告子类未实现")
end

return BaseSceneLoad
相关推荐
衣舞晨风20 小时前
运行时行为盲区:API7 AI 网关CPU打满故障的AI辅助事后复盘
lua·openresty·apisix·coroutine·cpu-saturation·socket-buffer
踩着两条虫21 小时前
「AI + 低代码」的可视化设计器
开发语言·前端·低代码·设计模式·架构
耕烟煮云1 天前
本文深入解析AI Native产品设计的核心范式——Linear三层架构模型
人工智能·架构
阿洛学长1 天前
CSDN、掘金、简书博客文章如何转为Markdown?
运维·数据库·架构·php·持续部署
一切皆是因缘际会1 天前
AI技术新风口:边缘计算与智能体协同,解锁产业落地新范式
大数据·人工智能·安全·ai·架构·语音识别
轻刀快马1 天前
AI Agent 架构里的隐形杀手:MCP 协议下 ProcessBuilder 的 64KB 死锁陷阱
架构
草木深雨纷纷1 天前
骑马与砍杀2mod整合包下载(动作优化+自动驻军+外交等)2026最新版分享
游戏·游戏程序
ze^01 天前
Day01 Web应用&架构搭建&域名源码&站库分离&MVC模型&解析受限&对应路径
安全·web安全·架构·mvc·安全架构
刀法如飞1 天前
Palantir Ontology 数据结构分析,与ER/OOP/DDD有什么区别?
人工智能·算法·架构
Kurisu5751 天前
深海迷航2修改器 2026.5.16最新破解版加修改器免费下载 一键转存 永久更新 (看到速转存 资源随时走丢)
游戏·游戏引擎·游戏程序·修改器·关卡设计