当前位置: 首页 > news >正文

微网站做的比较好的上海网站建设哪家公司好

微网站做的比较好的,上海网站建设哪家公司好,上海传媒公司李健,千锋python培训定义一个 LoaderManager class#xff0c;用于管理各种资源加载器。它使用了对象池#xff08;Object Pool#xff09;来优化资源加载器的创建和销毁#xff0c;从而提高性能 举例定义一个 PrefabLoader --[[Desc: 封装AAS的接口#xff0c;加载Prefab --]]---alias Pre…定义一个 LoaderManager class用于管理各种资源加载器。它使用了对象池Object Pool来优化资源加载器的创建和销毁从而提高性能 举例定义一个 PrefabLoader --[[Desc: 封装AAS的接口加载Prefab --]]---alias PrefabLoader.CompleteDelegate fun(obj:table, l:PrefabLoader) | fun(l:PrefabLoader)---class PrefabLoader : BaseLoader ---field result CS.UnityEngine.GameObject ---field callback PrefabLoader.CompleteDelegate local PrefabLoader SimpleClassUtil:class(require Topjoy.Engine.Resources.BaseLoader)PrefabLoader.intType CS.Topjoy.Base.ResourceManagement.ResourcesUtil.TypeInts.GameObject---overload fun(parent:CS.UnityEngine.Transform): CS.UnityEngine.GameObject | CS.UnityEngine.Object ---overload fun(): CS.UnityEngine.GameObject | CS.UnityEngine.Object ---param parent CS.UnityEngine.Transform ---param worldStay boolean 默认false ---return CS.UnityEngine.GameObject | CS.UnityEngine.Object function PrefabLoader:instantiate(parent, worldStay)if self.result thenif parent thenreturn CS.UnityEngine.GameObject.Instantiate(self.result, parent, worldStaytrue)elsereturn CS.UnityEngine.GameObject.Instantiate(self.result)endend endreturn PrefabLoader设计思路 引入了各种资源加载器如AssetLoader、PrefabLoader等这些加载器负责加载不同类型的资源。 initialize方法调用onInit方法进行初始化。onInit方法中首先获取资源管理器实例然后初始化各种资源加载器池每个池子使用TablePool来管理对象池。 PrefabLoader为例创建了一个对象池池子大小为16。当需要新的PrefabLoader实例时会调用传入的函数创建一个新的PrefabLoader对象并设置其释放函数为self._assetPool:releaseObj(1) loadAssetAsync方法用于异步加载资源。它从对象池中获取一个PrefabLoader实例初始化它并调用其loadAsync方法进行异步加载。 release方法用于释放所有资源加载器池并清理资源管理器实例。 注意事项 对象池的使用通过对象池管理资源加载器可以减少对象的频繁创建和销毁提高性能。异步加载资源加载方法如loadAssetAsync都是异步的可以避免阻塞主线程。资源管理器使用CS.Topjoy.Base.ResourceManagement.ResourceManager来管理资源加载确保资源加载的一致性和效率。 ---class LoaderManager local LoaderManager SimpleClassUtil:class()local AssetLoader require Topjoy.Engine.Resources.AssetLoader local PrefabLoader require Topjoy.Engine.Resources.PrefabLoader local MaterialLoader require Topjoy.Engine.Resources.MaterialLoader local TextureLoader require Topjoy.Engine.Resources.TextureLoader local TextAssetLoader require Topjoy.Engine.Resources.TextAssetLoader local ListSpriteLoader require Topjoy.Engine.Resources.ListSpriteLoader local MultiAssetLoaders require Topjoy.Engine.Resources.MultiAssetLoaders local SceneLoader require Topjoy.Engine.Resources.SceneLoader local WwiseBankLoader require Topjoy.Engine.Resources.WwiseBankLoader local WalletLoader require Topjoy.Engine.Resources.Wallet.LoaderWalletfunction LoaderManager:initialize()self:onInit() endfunction LoaderManager:onInit()self._resourceManager CS.Topjoy.Base.ResourceManagement.ResourceManager.Instanceself._assetPool TablePool:new(16, function()local loader AssetLoader:new()loader.rlsFunc function(l)self._assetPool:releaseObj(l)endreturn loaderend)self._prefabPool TablePool:new(16, function()local loader PrefabLoader:new()loader.rlsFunc function(l)self._prefabPool:releaseObj(l)endreturn loaderend)self._materialPool TablePool:new(16, function()local loader MaterialLoader:new()loader.rlsFunc function(l)self._materialPool:releaseObj(l)endreturn loaderend)self._texturePool TablePool:new(16, function()local loader TextureLoader:new()loader.rlsFunc function(l)self._texturePool:releaseObj(l)endreturn loaderend)self._textAssetPool TablePool:new(16, function()local loader TextAssetLoader:new()loader.rlsFunc function(l)self._textAssetPool:releaseObj(l)endreturn loaderend)self._listSpritePool TablePool:new(16, function()local loader ListSpriteLoader:new()loader.rlsFunc function(l)self._listSpritePool:releaseObj(l)endreturn loaderend)self._multiAssetsPool TablePool:new(16, function()local loader MultiAssetLoaders:new()loader.rlsFunc function(l)self._multiAssetsPool:releaseObj(l)endreturn loaderend)self._scenePool TablePool:new(16, function()local loader SceneLoader:new()loader.rlsFunc function(l)self._scenePool:releaseObj(l)endreturn loaderend)self._wwiseBankPool TablePool:new(4, function()local loader WwiseBankLoader:new()loader.rlsFunc function(l)self._wwiseBankPool:releaseObj(l)endreturn loaderend)self._walletPool TablePool:new(16,function ()local loader WalletLoader:new()loader.rlsFunc function(l)self._walletPool:releaseObj(l)endreturn loaderend) endfunction LoaderManager:release()self._resourceManager nilLogger.print(LoaderManager:release)self._assetPool:release()self._prefabPool:release()self._materialPool:release()self._texturePool:release()self._textAssetPool:release()self._listSpritePool:release()self._multiAssetsPool:release()self._scenePool:release()self._wwiseBankPool:release()self._walletPool:release() end---param path string ---return AssetLoader function LoaderManager:newAssetLoader(path)local loader self._assetPool:getObj()loader:init(path)return loader end---param path string ---param obj table 回调的self参数可为nil ---param data any loader的附加参数可通过loader.data获取 ---param callback AssetLoader.CompleteDelegate ---return AssetLoader function LoaderManager:loadAssetAsync(path, callback, obj, data)---type AssetLoaderlocal loader self._assetPool:getObj()loader:init(path)loader:loadAsync(callback, obj, data)return loader end---param path string ---return PrefabLoader function LoaderManager:newPrefabLoader(path)local loader self._prefabPool:getObj()loader:init(path)return loader end---param path string ---param obj table 回调的self参数可为nil ---param data any loader的附加参数可通过loader.data获取 ---param callback PrefabLoader.CompleteDelegate ---return PrefabLoader function LoaderManager:loadPrefabAsync(path, callback, obj, data)---type PrefabLoaderlocal loader self._prefabPool:getObj()loader:init(path)loader:loadAsync(callback, obj, data)return loader end---param path string ---return MaterialLoader function LoaderManager:newMaterialLoader(path)local loader self._materialPool:getObj()loader:init(path)return loader end---param path string ---param obj table 回调的self参数可为nil ---param data any loader的附加参数可通过loader.data获取 ---param callback MaterialLoader.CompleteDelegate ---return MaterialLoader function LoaderManager:loadMaterialAsync(path, callback, obj, data)---type MaterialLoaderlocal loader self._materialPool:getObj()loader:init(path)loader:loadAsync(callback, obj, data)return loader end---param path string ---return TextureLoader function LoaderManager:newTextureLoader(path)local loader self._texturePool:getObj()loader:init(path)return loader end---param path string ---param obj table 回调的self参数可为nil ---param data any loader的附加参数可通过loader.data获取 ---param callback TextureLoader.CompleteDelegate ---return TextureLoader function LoaderManager:loadTextureAsync(path, callback, obj, data)---type TextureLoaderlocal loader self._texturePool:getObj()loader:init(path)loader:loadAsync(callback, obj, data)return loader end---param path string ---return TextAssetLoader function LoaderManager:newTextAssetLoader(path)local loader self._textAssetPool:getObj()loader:init(path)return loader end---param path string ---param obj table 回调的self参数可为nil ---param data any loader的附加参数可通过loader.data获取 ---param callback TextAssetLoader.CompleteDelegate ---return TextAssetLoader function LoaderManager:loadTextAssetAsync(path, callback, obj, data)---type TextAssetLoaderlocal loader self._textAssetPool:getObj()loader:init(path)loader:loadAsync(callback, obj, data)return loader end---param path string ---return ListSpriteLoader function LoaderManager:newListSpriteLoader(path)local loader self._listSpritePool:getObj()loader:init(path)return loader end---param path string ---param obj table 回调的self参数可为nil ---param data any loader的附加参数可通过loader.data获取 ---param callback ListSpriteLoader.CompleteDelegate ---return ListSpriteLoader function LoaderManager:loadListSpriteAsync(path, callback, obj, data)---type ListSpriteLoaderlocal loader self._listSpritePool:getObj()loader:init(path)loader:loadAsync(callback, obj, data)return loader end---param callback MultiAssetLoaders.CompleteDelegate ---return MultiAssetLoaders function LoaderManager:loadMultiAssetAsync(callback, obj, data, ...)---type MultiAssetLoaderslocal loader self._multiAssetsPool:getObj()loader:init(...)loader:loadAsync(callback, obj, data)return loader end---param callback SceneLoader.CompleteDelegate ---return SceneLoader function LoaderManager:loadSceneAsync(path, callback, obj, data)---type SceneLoaderlocal loader self._scenePool:getObj()loader:init(path)loader:loadAsync(callback, obj, data)return loader end---param callback WwiseBankLoader.CompleteDelegate ---return WwiseBankLoader function LoaderManager:newWwiseBankLoader(path)---type SceneLoaderlocal loader self._wwiseBankPool:getObj()loader:init(path)return loader end---param owner 传self ---return LoaderWallet function LoaderManager:newLoaderWallet(owner)local loader self._walletPool:getObj()loader:setOwner(owner)return loader end---param maxExecute number 最大同时异步加载数量 ---param maxComplete number 最大同帧回调数量 ---return CS.Topjoy.Base.ResourceManagement.OperationHandles.OperationQueue function LoaderManager:newLoaderQueue(maxExecute, maxComplete)local queue self._resourceManager:NewOperationQueue(maxExecute, maxComplete)return queue end---param queue CS.Topjoy.Base.ResourceManagement.ResourceManager function LoaderManager:destroyLoaderQueue(queue)self._resourceManager:DestroyOperationQueue(queue) endreturn LoaderManager
http://www.hkea.cn/news/14572658/

相关文章:

  • 文件下载网站源码制作网页应该用哪个
  • 郑州外贸网站推广问什么出现 这个网站正在建设中
  • 网站获取访客手机号源码今天北京发生的重大新闻
  • 在线网站建设培训班网站注册备案之后怎么做
  • 网站模板wordpress家乡网站策划书建设背景
  • 无锡网站制作方案制作h5的基本流程
  • 科协网站建设建议设计网站教程
  • 做仓单的网站网络营销的网站的分析
  • 怎么样黑进网站后台网站流量 用什么表示
  • 网站开发需求 德州网页设计与制作平台
  • 已经有域名 如何建设网站飞机免费代理ip
  • 网站建立公司刚做网站在那里找图片做
  • 四川网站建设套餐google网页版入口
  • 哪个网站原创文章青岛平面设计公司
  • 北京昌平网站设计西宁网站设计制作公司
  • dede做的网站弹广告注册一个私人网站
  • 恩施市建设银行网站wordpress免费主题演示数据
  • 河北助手app下载深圳快速seo排名优化
  • 高端网站定做泰山信息科技有限公司
  • 公司网站建设需要些什么要求凡科互动app下载
  • 建设银行个人网上银行网站加载企业注册平台
  • 网站安全检测平台wordpress more标签使用教程
  • 网站改版合同linux html转wordpress
  • 做求职网站北京宣传片制作
  • 建立网站的软件html个人网页完整代码展示
  • 网站 ftp信息兰州网站做的好点的公司
  • 网页制作培训的课程网站seo置顶
  • 三亚门户网站注册网站后邮箱收到邮件
  • 备案网站名称怎么写个人网站建设费属于宣传费吗
  • 做相亲网站 一年赚千万北大青鸟的网站建设课程多少钱