public UnityEngine.Object[] GetMultiResources(string bundleName, string resName) { //表示是否已经缓存了 if (loadObj.ContainsKey(bundleName)) { AssetResObj tmpRes = loadObj[bundleName]; List <Object> tmpObj = tmpRes.GetResObj(resName); if (tmpObj != null) { return(tmpObj.ToArray()); } } //表示已经加载过bundle if (loadHelper.ContainsKey(bundleName)) { IABRelationManager loader = loadHelper[bundleName]; Object[] tmpObj = loader.GetMultiResource(resName); //放入缓存 AssetObj tmpAssetObj = new AssetObj(tmpObj); if (loadObj.ContainsKey(bundleName)) { loadObj[bundleName].AddResObj(resName, tmpAssetObj); } else { AssetResObj tmpRes = new AssetResObj(resName, tmpAssetObj); loadObj.Add(bundleName, tmpRes); } return(tmpObj); } return(null); }
void LoadObjectFromBundle(string bundleName, string resName, LoadObjectCallBack callback) { if (loadedHelper.ContainsKey(bundleName)) { IABRelationManager relation = loadedHelper[bundleName]; Object tempObj = relation.GetSingleResource(resName); //缓存 tempObj AssetObj assetObj = new AssetObj(tempObj); if (!loadObjs.ContainsKey(bundleName)) { AssetResObj tmpRes = new AssetResObj(resName, assetObj); loadObjs.Add(bundleName, tmpRes); } else { AssetResObj resObj = loadObjs[bundleName]; resObj.AddResObj(resName, assetObj); } if (null != callback) { callback(tempObj); } } else { if (null != callback) { callback(null); } } }
public Object[] GetMultiRes(string bundleName, string resName) { if (mLoadHelper.ContainsKey(bundleName)) { IABRelationMgr loader = mLoadHelper [bundleName]; Object[] tmpObjs = loader.GetMultiRes(resName); AssetObj tmpAssetObj = new AssetObj(tmpObjs); // 缓存里面 是否已经有这个包 if (mLoadObj.ContainsKey(bundleName)) { AssetResObj tmpRes = mLoadObj [bundleName]; tmpRes.AddResObj(resName, tmpAssetObj); } else { // 没有加载过 这个包 AssetResObj tmpRes = new AssetResObj(resName, tmpAssetObj); mLoadObj.Add(bundleName, tmpRes); } return(tmpObjs); } else { return(null); } }
public void AddResObj(string name, AssetObj tmpObj) { if (!resObjs.ContainsKey(name)) { resObjs.Add(name, tmpObj); } }
//表示已经加载过bundle public Object GetSingleResource(string bundleName, string resName) { if (loadObj.ContainsKey(bundleName)) { AssetResObj tmpRes = loadObj[bundleName]; List <Object> tmpObj = tmpRes.GetResObj(resName); if (tmpObj != null) { return(tmpObj[0]); } } if (loadHelper.ContainsKey(bundleName)) { IABRelationManager loader = loadHelper[bundleName]; Object tmpObj = loader.GetSingleResource(resName); AssetObj tmpAssetObj = new AssetObj(tmpObj); //缓存里面是否已经有了这个包 if (loadObj.ContainsKey(bundleName)) { AssetResObj tmpRes = loadObj[bundleName]; tmpRes.AddResObj(resName, tmpAssetObj); } else { //没有加载过这个包 AssetResObj tmpRes = new AssetResObj(resName, tmpAssetObj); loadObj.Add(bundleName, tmpRes); } return(tmpObj); } else { return(null); } }
public UnityEngine.Object[] GetResources(string bundlePath, string resName) { //表示是否缓存了该物体 if (mAssetObjsDict.ContainsKey(bundlePath)) { AssetBundleObjs abObjs = mAssetObjsDict[bundlePath]; List <UnityEngine.Object> objs = abObjs.GetResObj(resName); if (objs != null) { return(objs.ToArray()); } } //表示已经加载过bundle if (mABRelationDict.ContainsKey(bundlePath)) { IABRelationManager iABRelation = mABRelationDict[bundlePath]; UnityEngine.Object[] objs = iABRelation.GetResources(resName); AssetObj assetObj = new AssetObj(objs); if (mAssetObjsDict.ContainsKey(bundlePath)) { AssetBundleObjs assetBundleObjs = mAssetObjsDict[bundlePath]; mAssetObjsDict.Add(bundlePath, assetBundleObjs); } else { AssetBundleObjs assetBundleObjs = new AssetBundleObjs(resName, assetObj); mAssetObjsDict.Add(bundlePath, assetBundleObjs); } return(objs); } return(null); }
public void AddResObj(string name, AssetObj _assetObj) { if (null != dicAssetObj && !dicAssetObj.ContainsKey(name)) { dicAssetObj.Add(name, _assetObj); } Debug.Log("AddResObj Key = " + name); }
public AssetResObj(string name, AssetObj _assetObj) { if (null == dicAssetObj) { dicAssetObj = new Dictionary <string, AssetObj>(); } dicAssetObj.Add(name, _assetObj); Debug.Log("AssetResObj Key = " + name); }
//释放所有 public void ReleaseAllResObj(string name, AssetObj tmpObj) { List <string> keys = new List <string>(); keys.AddRange(resObjs.Keys); for (int i = 0; i < keys.Count; i++) { ReleaseResObj(keys[i]); } }
public List <UnityEngine.Object> GetResObj(string name) { if (resObjs.ContainsKey(name)) { AssetObj tmpObj = resObjs[name]; return(tmpObj.objs); } else { return(null); } }
/// <summary> /// 释放单个资源 /// </summary> /// <param name="name"></param> public void ReleaseResObj(string name) { if (mResObjDict.ContainsKey(name)) { AssetObj assetObj = mResObjDict[name]; assetObj.ReleaseObj(); } else { Debug.Log("要释放的资源不存在" + name); } }
/// <summary> /// 释放单个资源 /// </summary> /// <param name="name"></param> public void ReleaseResObj(string name) { if (resObjs.ContainsKey(name)) { AssetObj tmpObj = resObjs[name]; tmpObj.ReleaseObj(); } else { Debug.Log("Release object name is not exit == " + name); } }
/// <summary> /// 释放单个资源 /// </summary> /// <param name="name"></param> public void ReleaseResObj(string name) { if (dicAssetObj.ContainsKey(name)) { AssetObj obj = dicAssetObj[name]; obj.ReleaseObj(); //dicAssetObj.Remove(name); } else { Debug.LogError("release obj name is not exit : " + name); } }
public List <Object> GetResObj(string name) { if (resObjs.ContainsKey(name)) { AssetObj tmpObj = resObjs[name]; return(tmpObj.objs); } else { Debug.Log("release object name is not exit==" + name); return(null); } }
public List <UnityEngine.Object> GetResObj(string name) { if (mResObjDict.ContainsKey(name)) { AssetObj assetObj = mResObjDict[name]; return(assetObj.mObjList); } else { Debug.Log("要获取的资源不存在" + name); return(null); } }
public IEnumerator GetResAsys(string bundleName, BundleInfo tmpInfo) { bool hasFind = false; ///缓存中已经加载了Object if (loadObj.ContainsKey(bundleName)) { //Debug.Log("get from memory =="+ resName); AssetResObj tmpRes = loadObj[bundleName]; List <Object> tmpObj = tmpRes.GetResObj(tmpInfo.resName); if (tmpObj != null) { tmpInfo.AddReses(tmpObj.ToArray()); tmpInfo.ReleaseObj(); hasFind = true; } } // 没有找到 继续向下 if (!hasFind && loadHelper.ContainsKey(bundleName)) { IABRelationManager loader = loadHelper[bundleName]; yield return(loader.GetResAsys(tmpInfo) ); AssetObj tmpAssetObj = new AssetObj(tmpInfo.resObj); //是否已经包含bundle if (loadObj.ContainsKey(bundleName)) { AssetResObj tmpRes = loadObj[bundleName]; tmpRes.AddResObj(tmpInfo.resName, tmpAssetObj); } else { AssetResObj tmpRes = new AssetResObj(tmpInfo.resName, tmpAssetObj); loadObj.Add(bundleName, tmpRes); } tmpInfo.ReleaseObj(); } }
/// <summary> /// Gets the single resource. /// </summary> /// <returns>The single resource.</returns> /// <param name="bundleName">Bundle name. 相对路径</param> /// <param name="resName">Res name.</param> public Object GetSingleResource(string bundleName, string resName) { ///缓存中已经加载了Object if (loadObj.ContainsKey(bundleName)) { //Debug.Log("get from memory =="+ resName); AssetResObj tmpRes = loadObj[bundleName]; List <Object> tmpObj = tmpRes.GetResObj(resName); if (tmpObj != null) { return(tmpObj[0]); } } // 没有找到 继续向下 if (loadHelper.ContainsKey(bundleName)) { // Debug.Log("single load manager =="+ bundleName); IABRelationManager loader = loadHelper[bundleName]; Object tmpObj = loader.GetSingleResource(resName); AssetObj tmpAssetObj = new AssetObj(tmpObj); //是否已经包含bundle if (loadObj.ContainsKey(bundleName)) { AssetResObj tmpRes = loadObj[bundleName]; tmpRes.AddResObj(resName, tmpAssetObj); } else { AssetResObj tmpRes = new AssetResObj(resName, tmpAssetObj); loadObj.Add(bundleName, tmpRes); } return(tmpObj); } else { return(null); } }
public void ReleaseGameObject(string name) { if (resObjs.ContainsKey(name)) { AssetObj tmpObj = resObjs[name]; tmpObj.ReleaseGameObject(); resObjs.Remove(name); } else { Debuger.Log("release Object name is not exist==" + name); } }
public Object[] GetMutiResources(string bundleName, string resName) { if (loadObj.ContainsKey(bundleName)) { AssetResObj tmpRes = loadObj[bundleName]; List <Object> tmpObj = tmpRes.GetResObj(resName); if (tmpObj != null) { return(tmpObj.ToArray()); } } if (loadHelper.ContainsKey(bundleName)) { IABRelationManager loader = loadHelper[bundleName]; Object[] tmpObjs = loader.GetAllResources(resName); AssetObj tmpAssetObj = new AssetObj(tmpObjs); if (loadObj.ContainsKey(bundleName)) { AssetResObj tmpRes = loadObj[bundleName]; tmpRes.AddResObj(resName, tmpAssetObj); } else { AssetResObj tmpRes = new AssetResObj(resName, tmpAssetObj); loadObj.Add(bundleName, tmpRes); } return(tmpObjs); } else { return(null); } }
public override void OnInspectorGUI() { serializedObject.Update(); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(m_propLocalToWorldPos, new GUIContent("根节点位置", "场景根节点在世界坐标系的位置")); EditorGUILayout.PropertyField(m_propLocalScenePrefabPos, new GUIContent("场景位置", "场景预制体在场景坐标系的位置")); EditorGUI.EndChangeCheck(); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(m_propScenePrefabPath, new GUIContent("场景预制体路径", "编辑时使用拷贝资源路径,复制粘贴路径")); if (EditorGUI.EndChangeCheck()) { AssetObj asset = cs.AssetManager.Get().CreateAsset(m_propScenePrefabPath.stringValue); } serializedObject.ApplyModifiedProperties(); }
/// <summary> /// 加载多个资源(一般用于切割多张的精灵图片) /// </summary> /// <param name="bundleName">包名</param> /// <param name="resName">资源名</param> /// <returns></returns> public Object[] GetMultiResources(string bundleName, string resName) { // 是否已经缓存了这个包 if (loadObjs.ContainsKey(bundleName)) { // 缓存包中有指定资源,直接返回 AssetResObj tmpRes = loadObjs[bundleName]; List <Object> tmpObjs = tmpRes.GetResObj(resName); if (tmpObjs != null) { return(tmpObjs.ToArray()); } } // 是否已经加载过bundle if (loadHelper.ContainsKey(bundleName)) { // 从包中加载出obj IABRelationManager loader = loadHelper[bundleName]; Object[] tmpObjs = loader.GetMultiResources(resName); AssetObj tmpAssetObj = new AssetObj(tmpObjs); // 是否已经缓存了这个包 if (loadObjs.ContainsKey(bundleName)) { // 添加缓存资源 AssetResObj tmpRes = loadObjs[bundleName]; tmpRes.AddResObj(resName, tmpAssetObj); } else { // 添加缓存包和资源 AssetResObj tmpRes = new AssetResObj(resName, tmpAssetObj); loadObjs.Add(bundleName, tmpRes); } return(tmpObjs); } else { return(null); } }
public Object GetSingleRes(string bundleName, string resName) { // 表示 是否已经缓存了物体 if (mLoadObj.ContainsKey(resName)) { AssetResObj tmpRes = mLoadObj [bundleName]; List <Object> tmpObj = tmpRes.GetResObj(resName); if (tmpObj != null) { return(tmpObj [0]); } } // 表示已经加载过bundle if (mLoadHelper.ContainsKey(bundleName)) { IABRelationMgr loader = mLoadHelper [bundleName]; Object tmpObj = loader.GetSingleRes(resName); AssetObj tmpAssetObj = new AssetObj(tmpObj); if (mLoadObj.ContainsKey(bundleName)) { AssetResObj tmpRes = mLoadObj [bundleName]; tmpRes.AddResObj(resName, tmpAssetObj); } else { // 没有加载过 这个包 AssetResObj tmpRes = new AssetResObj(resName, tmpAssetObj); mLoadObj.Add(bundleName, tmpRes); } return(tmpObj); } else { return(null); } }
/// <summary> /// 获取单个资源 /// </summary> /// <param name="bundleName"></param> /// <param name="resName"></param> /// <returns></returns> public UnityEngine.Object GetSingleResources(string bundleName, string resName) { if (loadObjDic.ContainsKey(bundleName)) { AssetResObj tmpRes = loadObjDic[bundleName]; List <UnityEngine.Object> tmpObj = tmpRes.GetResObj(resName); if (tmpObj != null) { return(tmpObj[0]); } } //表示已经加载过bundle if (loadHelperDic.ContainsKey(bundleName)) { IABRelationManager loader = loadHelperDic[bundleName]; UnityEngine.Object tmpObj = loader.GetSingleResources(resName); AssetObj tmpAssetObj = new AssetObj(tmpObj); if (loadObjDic.ContainsKey(bundleName)) { AssetResObj tmpRes = loadObjDic[bundleName]; tmpRes.AddResObj(resName, tmpAssetObj); } else { //没有加载过这个包 AssetResObj tmpRes = new AssetResObj(bundleName, tmpAssetObj); tmpRes.AddResObj(resName, tmpAssetObj); loadObjDic.Add(bundleName, tmpRes); } return(tmpObj); } else { Debug.LogError(resName + "load error"); return(null); } }
/// <summary> /// 获取这个AB包下的单个资源 /// </summary> public UnityEngine.Object LoadAsset(string bundleName, string assetName) // scene1/test.prefab { // 先看缓存的有没有 if (resObj.ContainsKey(bundleName)) { AssetResObj tmpRes = resObj[bundleName]; List <Object> objList = tmpRes.GetResObj(assetName); if (objList != null) { return(objList[0]); } } // 缓存的没有,或者缓存里没有我们需要的Object, 就去底层加载一次 if (!relationDic.ContainsKey(bundleName)) { Debug.LogError("The loadHelper Not ContainsKey :" + bundleName); return(null); } AssetBundleRelation abRela = relationDic[bundleName]; Object obj = abRela.LoadAsset(assetName); AssetObj tmpObj = new AssetObj(obj); if (resObj.ContainsKey(bundleName)) // 如果缓存里有这个bundle包,获取value,加到value里去; { AssetResObj tmpResObj = resObj[bundleName]; tmpResObj.AddResObj(assetName, tmpObj); } else // 缓存里没有这个 bundle包,直接加进去 { AssetResObj assetRes = new AssetResObj(assetName, tmpObj); resObj.Add(bundleName, assetRes); } return(obj); }
/// <summary> /// 获取这个AB包下的多个资源 /// </summary> public Object[] LoadAssetWithSubAssets(string bundleName, string assetName) { if (resObj.ContainsKey(bundleName)) { AssetResObj tmpRes = resObj[bundleName]; List <Object> objList = tmpRes.GetResObj(assetName); if (objList != null) { return(objList.ToArray()); } } if (!relationDic.ContainsKey(bundleName)) { Debug.LogError("The loadHelper Not ContainsKey :" + bundleName); return(null); } AssetBundleRelation abRela = relationDic[bundleName]; Object[] tmpObjs = abRela.LoadAssetWithSubAssets(assetName); AssetObj assetObj = new AssetObj(tmpObjs); if (resObj.ContainsKey(bundleName)) { AssetResObj tmpAsset = resObj[bundleName]; tmpAsset.AddResObj(assetName, assetObj); } else { AssetResObj assetRes = new AssetResObj(assetName, assetObj); resObj.Add(bundleName, assetRes); } return(tmpObjs); }
public AssetResObj(string name,AssetObj tmp) { resObjs = new Dictionary<string,AssetObj> (); resObjs.Add (name, tmp); }
public void AddResObj(string name,AssetObj tmpObj) { resObjs.Add (name, tmpObj); }
public Object[] GetMultiRes(string bundleName,string resName) { if (mLoadHelper.ContainsKey (bundleName)) { IABRelationMgr loader = mLoadHelper [bundleName]; Object[] tmpObjs = loader.GetMultiRes (resName); AssetObj tmpAssetObj = new AssetObj (tmpObjs); // 缓存里面 是否已经有这个包 if (mLoadObj.ContainsKey (bundleName)) { AssetResObj tmpRes = mLoadObj [bundleName]; tmpRes.AddResObj (resName, tmpAssetObj); } else { // 没有加载过 这个包 AssetResObj tmpRes = new AssetResObj (resName, tmpAssetObj); mLoadObj.Add (bundleName, tmpRes); } return tmpObjs; } else { return null; } }
public AssetResObj(string name, AssetObj tmp) { resObjs = new Dictionary <string, AssetObj>(); resObjs.Add(name, tmp); }
public Object GetSingleResources(string bundleName, AssetObj tmpObj) { return(null); }
/// <summary> /// 添加 资源名 --> 资源名对应的Object /// </summary> public void AddResObj(string assetName, AssetObj obj) { assetDic.Add(assetName, obj); }
public Object GetSingleRes(string bundleName,string resName) { // 表示 是否已经缓存了物体 if (mLoadObj.ContainsKey (resName)) { AssetResObj tmpRes = mLoadObj [bundleName]; List<Object> tmpObj = tmpRes.GetResObj (resName); if (tmpObj != null) { return tmpObj [0]; } } // 表示已经加载过bundle if (mLoadHelper.ContainsKey (bundleName)) { IABRelationMgr loader = mLoadHelper [bundleName]; Object tmpObj = loader.GetSingleRes (resName); AssetObj tmpAssetObj = new AssetObj (tmpObj); if (mLoadObj.ContainsKey (bundleName)) { AssetResObj tmpRes = mLoadObj [bundleName]; tmpRes.AddResObj (resName, tmpAssetObj); } else { // 没有加载过 这个包 AssetResObj tmpRes = new AssetResObj (resName, tmpAssetObj); mLoadObj.Add (bundleName, tmpRes); } return tmpObj; } else { return null; } }
public void AddResObj(string name, AssetObj tmpObj) { resObjs.Add(name, tmpObj); }
/// <summary> /// 构造函数 /// </summary> /// <param name="assetName">资源名</param> /// <param name="obj">资源名对应的Obejct</param> public AssetResObj(string assetName, AssetObj obj) { assetDic = new Dictionary <string, AssetObj>(); assetDic.Add(assetName, obj); }