xml配置从ab系统中移除
This commit is contained in:
parent
a58c8fb921
commit
69b9c1cc10
@ -73,7 +73,8 @@ namespace QFramework
|
|||||||
AssetBundleSceneResCreator,
|
AssetBundleSceneResCreator,
|
||||||
new NetImageResCreator(),
|
new NetImageResCreator(),
|
||||||
new LocalImageResCreator(),
|
new LocalImageResCreator(),
|
||||||
new LocalAudioResCreator()
|
new LocalAudioResCreator(),
|
||||||
|
new LocalTextResCreator()
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -114,4 +115,16 @@ namespace QFramework
|
|||||||
return LocalAudioRes.Allocate(resSearchKeys.AssetName);
|
return LocalAudioRes.Allocate(resSearchKeys.AssetName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
public class LocalTextResCreator : IResCreator
|
||||||
|
{
|
||||||
|
public bool Match(ResSearchKeys resSearchKeys)
|
||||||
|
{
|
||||||
|
return resSearchKeys.AssetName.StartsWith("localtext:");
|
||||||
|
}
|
||||||
|
|
||||||
|
public IRes Create(ResSearchKeys resSearchKeys)
|
||||||
|
{
|
||||||
|
return LocalTextRes.Allocate(resSearchKeys.AssetName);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 6012cdb558a59ef4db3dd78e36951e0f
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -0,0 +1,278 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace QFramework
|
||||||
|
{
|
||||||
|
using UnityEngine;
|
||||||
|
using System.Collections;
|
||||||
|
using UnityEngine.Networking;
|
||||||
|
|
||||||
|
public static class LocalTextResUtil
|
||||||
|
{
|
||||||
|
public static string ToLocalTextResName(this string selfFilePath)
|
||||||
|
{
|
||||||
|
return string.Format("localtext:{0}", selfFilePath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 本地通用文件加载
|
||||||
|
/// </summary>
|
||||||
|
public class LocalTextRes : Res
|
||||||
|
{
|
||||||
|
private string mFullPath;
|
||||||
|
private string mHashCode;
|
||||||
|
private object mRawAsset;
|
||||||
|
|
||||||
|
UnityWebRequest request;
|
||||||
|
public static LocalTextRes Allocate(string name)
|
||||||
|
{
|
||||||
|
var res = SafeObjectPool<LocalTextRes>.Instance.Allocate();
|
||||||
|
if (res != null)
|
||||||
|
{
|
||||||
|
res.AssetName = name;
|
||||||
|
res.SetUrl(name.Substring(10));
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetDownloadProgress(int totalSize, int download)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public string LocalResPath
|
||||||
|
{
|
||||||
|
get { return string.Format("{0}{1}", AssetBundlePathHelper.PersistentDataPath4Photo, mHashCode); }
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual object RawAsset
|
||||||
|
{
|
||||||
|
get { return mRawAsset; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool NeedDownload
|
||||||
|
{
|
||||||
|
get { return RefCount > 0; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public string Url
|
||||||
|
{
|
||||||
|
get { return mFullPath; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public int FileSize
|
||||||
|
{
|
||||||
|
get { return 1; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetUrl(string url)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(url))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
mFullPath = url;
|
||||||
|
mHashCode = string.Format("Photo_{0}", mFullPath.GetHashCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool UnloadImage(bool flag)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool LoadSync()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void LoadAsync()
|
||||||
|
{
|
||||||
|
if (!CheckLoadAble())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(mAssetName))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
DoLoadWork();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DoLoadWork()
|
||||||
|
{
|
||||||
|
State = ResState.Loading;
|
||||||
|
|
||||||
|
OnDownLoadResult(true);
|
||||||
|
|
||||||
|
//检测本地文件是否存在
|
||||||
|
/*
|
||||||
|
if (!File.Exists(LocalResPath))
|
||||||
|
{
|
||||||
|
ResDownloader.S.AddDownloadTask(this);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
OnDownLoadResult(true);
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnReleaseRes()
|
||||||
|
{
|
||||||
|
if (mAsset != null)
|
||||||
|
{
|
||||||
|
GameObject.Destroy(mAsset);
|
||||||
|
mAsset = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
mRawAsset = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Recycle2Cache()
|
||||||
|
{
|
||||||
|
SafeObjectPool<LocalTextRes>.Instance.Recycle(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnRecycled()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void DeleteOldResFile()
|
||||||
|
{
|
||||||
|
//throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnDownLoadResult(bool result)
|
||||||
|
{
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
OnResLoadFaild();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (RefCount <= 0)
|
||||||
|
{
|
||||||
|
State = ResState.Waiting;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ResMgr.Instance.PushIEnumeratorTask(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public override IEnumerator DoLoadAsync(System.Action finishCallback)
|
||||||
|
{
|
||||||
|
using (UnityWebRequest request = UnityWebRequest.Get(mFullPath))
|
||||||
|
{
|
||||||
|
request.downloadHandler = new DownloadHandlerBuffer();
|
||||||
|
yield return request.SendWebRequest();
|
||||||
|
|
||||||
|
if (request.result != UnityWebRequest.Result.Success)
|
||||||
|
{
|
||||||
|
Debug.LogError(string.Format("Res:{0}, WWW Errors:{1}", mFullPath, request.error));
|
||||||
|
OnResLoadFaild();
|
||||||
|
finishCallback();
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Convert the downloaded data to an AudioClip
|
||||||
|
mAsset = new StringAsset(request.downloadHandler.text);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (RefCount <= 0)
|
||||||
|
{
|
||||||
|
OnResLoadFaild();
|
||||||
|
finishCallback();
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
State = ResState.Ready;
|
||||||
|
|
||||||
|
finishCallback();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override float CalculateProgress()
|
||||||
|
{
|
||||||
|
if (request == null)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return request.downloadProgress;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
public IEnumerator StartIEnumeratorTask2(Action finishCallback)
|
||||||
|
{
|
||||||
|
if (refCount <= 0)
|
||||||
|
{
|
||||||
|
OnResLoadFaild();
|
||||||
|
finishCallback();
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
|
||||||
|
WWW www = new WWW("file://" + LocalResPath);
|
||||||
|
yield return www;
|
||||||
|
if (www.error != null)
|
||||||
|
{
|
||||||
|
Log.E("WWW Error:" + www.error);
|
||||||
|
OnResLoadFaild();
|
||||||
|
finishCallback();
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!www.isDone)
|
||||||
|
{
|
||||||
|
Log.E("NetImageRes WWW Not Done! Url:" + m_Url);
|
||||||
|
OnResLoadFaild();
|
||||||
|
finishCallback();
|
||||||
|
|
||||||
|
www.Dispose();
|
||||||
|
www = null;
|
||||||
|
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (refCount <= 0)
|
||||||
|
{
|
||||||
|
OnResLoadFaild();
|
||||||
|
finishCallback();
|
||||||
|
|
||||||
|
www.Dispose();
|
||||||
|
www = null;
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
|
||||||
|
TimeDebugger dt = new TimeDebugger("Tex");
|
||||||
|
dt.Begin("LoadingTask");
|
||||||
|
Texture2D tex = www.texture;
|
||||||
|
tex.Compress(true);
|
||||||
|
dt.End();
|
||||||
|
dt.Dump(-1);
|
||||||
|
|
||||||
|
m_Asset = tex;
|
||||||
|
www.Dispose();
|
||||||
|
www = null;
|
||||||
|
|
||||||
|
resState = eResState.kReady;
|
||||||
|
|
||||||
|
finishCallback();
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public class StringAsset : ScriptableObject
|
||||||
|
{
|
||||||
|
public string text;
|
||||||
|
public StringAsset(string text)
|
||||||
|
{
|
||||||
|
this.text = text;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 999be03da3ba22844a61e7af236752c1
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -12,9 +12,10 @@ public class Global : Singleton<Global>
|
|||||||
public XMLTool.AppData appData;
|
public XMLTool.AppData appData;
|
||||||
public Module curModule;
|
public Module curModule;
|
||||||
|
|
||||||
public static string deviceIconsPath = Application.dataPath + "/../" + "Data/DeviceIcons/";
|
public static string dataPath = Application.dataPath + "/../Data";
|
||||||
public static string audioPath = Application.dataPath + "/../" + "Data/Audio/";
|
public static string deviceIconsPath = dataPath + "/DeviceIcons/";
|
||||||
|
public static string audioPath = dataPath + "/Audio/";
|
||||||
|
public static string appXmlPath = dataPath + "/App.xml";
|
||||||
public enum AppType
|
public enum AppType
|
||||||
{
|
{
|
||||||
UnKnow = 1 << 0,
|
UnKnow = 1 << 0,
|
||||||
|
|||||||
@ -18,11 +18,12 @@ public class Launch : MonoBehaviour
|
|||||||
IEnumerator StartApp()
|
IEnumerator StartApp()
|
||||||
{
|
{
|
||||||
yield return ResKit.InitAsync();
|
yield return ResKit.InitAsync();
|
||||||
loader.Add2Load<TextAsset>(App_xml.APP, (success, res) =>
|
|
||||||
|
loader.Add2Load(Global.appXmlPath.ToLocalTextResName(), (success, res) =>
|
||||||
{
|
{
|
||||||
if (success)
|
if (success)
|
||||||
{
|
{
|
||||||
Global.Instance.appData = XmlParser.ParseXml(res.Asset.As<TextAsset>().text);
|
Global.Instance.appData = XmlParser.ParseXml(res.Asset.As<StringAsset>().text);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user