Unity的常用工具类

来源:互联网 发布:万方学术期刊数据库 编辑:程序博客网 时间:2024/04/20 22:05

FileUtils 文件工具
记录两个路径

可读路径:streamingAssetsPath = Application.streamingAssetsPath;读写路径:persistentDataPath = Application.persistentDataPath;

第一个是MD5码
获取某个文件夹的MD5码
比较MD5码,看是否一致

第二个是获取AssetBundle路径

文件的加载方式都是通过路径
AssetBundleMgr

unity的热更新过程(就我项目而言,大同小异)
刚刚研究了一套源码,发现怎么修改它lua层的加载路径和不用房卡验证都不起作用,就和没改过的一样。后来经过程序老大的指点,我发现我连着这个项目的服务器,客户端开始时会与服务器对接,检查版本和资源,因为我修改了的lua文件的MD5码和服务器端的不一致,所以它就会加载它那边最新的lua文件作为缓存(导入我的程序中),但奇怪的是更新的文件居然没有覆盖我的原文件。
它是以什么方式载入到程序当中的呢?
有待解决

二,整个加载的文件的加载流程
初始化AssetMgr ——Update——downloadVersion——IUpdateHandler.onDownladed——checkVersion分1,2
1.State.NewBigVersion 2.State.DownloadProject 3.State.DownloadProject

3.downloadProject——State.ProjectLoaded——checkProject——

 public void Update()        {            if (!_localProject.isLoaded())            {                Debuger.LogError("project file is null");                return;            }            switch (_updateState)            {                case State.UnChecked:                case State.DownloadVersion:                    _updateState = State.DownloadVersion;                    downloadVersion();                    break;                case State.VersionLoaded:                    checkVersion();                    break;                case State.DownloadProject:                    downloadProject();                    break;                case State.ProjectLoaded:                    checkProject();                    break;                case State.FailToUpdate:                case State.NeedUpdate:                    _updateState = State.NeedUpdate;                    StartUpdate();                    break;                case State.Updating:                    break;                case State.UpToData:                case State.UpdateSuccess:                    dispatchUpdateEvent(_updateState, 100, "update succeed!");                    break;                case State.DecompressFail:                    dispatchUpdateEvent(State.DecompressFail, 0, "");                    break;                case State.NewBigVersion:                    dispatchUpdateEvent(State.NewBigVersion, 0, "");                    break;            }        }
原创粉丝点击