/// <summary> /// 从本地加载图集 /// </summary> /// <param name="atlasname"></param> private SpriteAtlas ToLoadAtlas(string atlasname) { SpriteAtlas spriteatla = null; ResourceMisc.AssetWrapper aw = ioo.resourceManager.LoadAsset(atlasname, typeof(SpriteAtlas)); if (null == aw) { Debug.LogError("The SpriteAtlas name: " + atlasname + " is not exit, please check the assetbundle"); return(spriteatla); } spriteatla = (SpriteAtlas)aw.GetAsset(); if (spriteatla != null) { if (SpriteDic.ContainsKey(atlasname)) { SpriteDic[atlasname] = spriteatla; } else { SpriteDic.Add(atlasname, spriteatla); } } else { Debug.LogError("The path: " + atlasname + " is not Exit!"); } return(spriteatla); }
/// <summary> /// 载入一个音频 /// </summary> /// <param name="name"></param> /// <returns></returns> private AudioClip LoadAudicClip(string name) { if (!ClipIsExit(name)) { Debugger.LogError("The audio name: " + name + " is not exit!"); return(null); } AudioClip clip = null; if (mClipCacheDic.ContainsKey(name)) { if (mClipCacheDic[name] != null) { AudioCache cache = mClipCacheDic[name]; clip = cache.GetClip(); } else { mClipCacheDic.Remove(name); } } if (clip != null) { return(clip); } ResourceMisc.AssetWrapper aw = ioo.resourceManager.LoadAsset(mConfigDic[name], typeof(AudioClip)); if (null == aw) { Debugger.LogError("The AudioClip name: " + name + " is not exit, please check the assetbundle"); return(null); } clip = (AudioClip)aw.GetAsset(); AudioCache temp = new AudioCache(); mClipCacheDic.Add(name, temp); temp.Asset = aw.GetAsset(); clip = temp.GetClip(); return(clip); }
//载入了空场景 public void OnLoadEmptylevel() { ClearCache(); ResourceMisc.AssetWrapper asset = ioo.resourceManager.LoadAsset(LOADING_UI_RES, typeof(GameObject)); GameObject obj = GameObject.Instantiate(asset.GetAsset()) as GameObject; Init(obj); m_bar.SetPercentage(0); ioo.resourceManager.ReleaseAsset(asset); CoroutineController.Instance.StartCoroutine(OnSceneAssetLoading()); }
/// <summary> /// Ñ°ÕÒShader /// </summary> /// <param name="path"></param> /// <returns></returns> public static Shader ShaderFind(string path) { ResourceMisc.AssetWrapper aw = ioo.resourceManager.LoadAsset(path, typeof(Shader)); Shader shader = (Shader)aw.GetAsset(); if (null == shader) { Debug.LogError("the shader " + path + " is not exit"); return(null); } return(shader); }
/// <summary> /// 加载对象池配置文件 /// </summary> private void LoadPoolConfig() { ResourceMisc.AssetWrapper aw = ioo.resourceManager.LoadAsset("prefabs\\pool\\gameobjectpool", typeof(GameObjectPoolList)); GameObjectPoolList poolList = (GameObjectPoolList)aw.GetAsset(); if (null == poolList) { return; } foreach (GameObjectPool pool in poolList.poolList) { poolDic.Add(pool.name, pool); } }
/// <summary> /// 创建对象到池里 /// </summary> /// <param name="resPath">对象路径</param> /// <param name="count">对象个数</param> /// <returns></returns> public Transform CreatePrefabPool(string resPath, int count) { if (_prefabDic.ContainsKey(resPath) == false) { ResourceMisc.AssetWrapper asset = ioo.resourceManager.LoadAsset(resPath, typeof(GameObject)); GameObject obj = asset.GetAsset() as GameObject; obj.transform.position = POOL_POS; obj.transform.rotation = Quaternion.identity; ResourceManager.excuteShader(obj); _dogFacePrefab = obj.transform; PrefabPool prefabPool = new PrefabPool(_dogFacePrefab); prefabPool.preloadAmount = count; // 预创建的个数 prefabPool.limitInstances = false; _dogFacePool.CreatePrefabPool(prefabPool); _prefabDic.Add(resPath, _dogFacePrefab); } return(_prefabDic[resPath]); }
/// <summary> /// 创建新的对象 /// </summary> /// <returns></returns> private void CreateNewInstance() { if (null == prefab) { ResourceMisc.AssetWrapper aw = ioo.resourceManager.LoadAsset(path, typeof(GameObject)); prefab = GameObject.Instantiate(aw.GetAsset()) as GameObject; prefab.SetActive(false); prefab.transform.SetParent(PoolManager._parentTransform); freeList.Add(prefab); } else { GameObject go = GameObject.Instantiate(prefab) as GameObject; go.SetActive(false); go.transform.SetParent(PoolManager._parentTransform); freeList.Add(go); } }
/// <summary> /// 创建新的对象 /// </summary> /// <returns></returns> private void CreateNewInstance() { if (null == asset) { ResourceMisc.AssetWrapper aw = ioo.resourceManager.LoadAsset(path, typeof(GameObject)); asset = aw.GetAsset(); } GameObject go = GameObject.Instantiate(asset) as GameObject; go.transform.localEulerAngles = Vector3.zero; go.transform.localScale = Vector3.one; go.transform.localPosition = Vector3.zero; go.name = name + "_" + Count++; go.SetActive(false); //AddScriptToPrefab(go); go.transform.SetParent(PoolManager._parentTransform); mFreeList.Add(go); }