资源服务

  • 类型:AssetService

服务对象
此对象为服务对象,可以使用GetService()函数获取此服务。

不可创建
无法使用RWObject:New(Classname)创建此对象,也不在编辑器对象列表中显示。

不在编辑器管理器中显示

脚本可访问
此对象脚本可访问,但只有客户端脚本可访问

描述

资源服务用来处理游戏中与资源相关的请求,比如判断某个资源是否成功加载、获取当前需要下载的资源数、预加载资源等

  • 游戏加载进度计算
    资源服务的三个属性可以用来粗略计算加载的进度
    已加载百分比 = 已加载资源总量(LoadedSize) / 资源总量(AssetSize)
    但该方法计算的加载进度并不准确,因为AssetSize的值可能会不断增大

注意事项

  • 资源初始化
    在刚进入游戏时,可能仍有部分资源正在加载,这会导致游戏一开始时资源缺失。
    例如,在刚进入游戏时,一些图片资源或模型资源尚未加载完成,导致游戏场景部分图片和模型的缺失。
    针对这一问题,可以先通过AssetPreLoad函数或者IsLoaded(string)函数来监听这些需要显示的资源,在这些资源未加载完成前,播放自制的loading界面,而不是真实的游戏场景。待资源加载完成后,再播放真实的游戏场景
  • 资源预加载
    放置于通用存储、服务器存储中的资源不会在游戏初始化时被加载。因此,若将这些存储中的资源添加到游戏场景中,也需要进行加载,此时可以通过AssetPreLoadObjectPreLoad函数来预先加载资源,确保能够正确使用这些资源

属性

    AssetSize     资源总量   int    [只读]
    当前游戏需要下载的资源总数

    PreLoadSize     待加载资源总量   int    [只读]
    当前游戏正在下载的资源总数

    LoadedSize     已加载资源总量   int    [只读]
    当前游戏已经下载的资源总数

函数

    AssetPreLoad(assetID,type,waitTime)
    提前加载指定的资源。输入的参数为带有前缀rwid:// 的资源十八位码,以及该资源的类型

    ObjectPreLoad(obj,waitTime)
    提前加载指定对象所使用的资源。yield函数,会阻碍程序进程直到资源加载完成

    IsLoaded(string)
    判断指定的资源是否已经被加载完成。输入的参数为带有前缀rwid:// 的资源十八位码

文档更新时间: 2021-01-11 20:12   作者:王辰剑