Beispiel #1
0
    //-------------------------------------------------------------------------
    public override void createAssetLoad(string asset_path, string asset_name, AsyncAssetLoadGroup async_assetloadgroup, Action <UnityEngine.Object> loaded_action)
    {
        AssetPath = asset_path;

        RequestLoadAssetInfo request_loadassetinfo = new RequestLoadAssetInfo();

        request_loadassetinfo.AssetName    = asset_name;
        request_loadassetinfo.LoadedAction = loaded_action;

        List <RequestLoadAssetInfo> list_requestloadasssetinfo = null;

        MapRequestLoadAssetInfo.TryGetValue(async_assetloadgroup, out list_requestloadasssetinfo);

        if (list_requestloadasssetinfo == null)
        {
            list_requestloadasssetinfo = new List <RequestLoadAssetInfo>();
        }

        list_requestloadasssetinfo.Add(request_loadassetinfo);

        MapRequestLoadAssetInfo[async_assetloadgroup] = list_requestloadasssetinfo;

        if (mAssetBundleCreateRequest == null)
        {
            mAssetBundleCreateRequest = AssetBundle.LoadFromFileAsync(asset_path);
        }
    }
Beispiel #2
0
    //-------------------------------------------------------------------------
    internal override void assetLoadDone()
    {
        bool must_copyasset = false;

        if (MapRequestLoadAssetInfo.Count > 1)
        {
            must_copyasset = true;
        }

        AssetBundle ab = mAssetBundleCreateRequest.assetBundle;

        foreach (var i in MapRequestLoadAssetInfo)
        {
            if (i.Key.IsCancel)
            {
                continue;
            }

            foreach (var asset_loadrequest in i.Value)
            {
                UnityEngine.Object load_asset = ab.LoadAsset(asset_loadrequest.AssetName);
                if (must_copyasset)
                {
                    asset_loadrequest.LoadedAction(GameObject.Instantiate(load_asset));
                }
                else
                {
                    asset_loadrequest.LoadedAction(load_asset);
                }
            }
        }

        MapRequestLoadAssetInfo.Clear();
        destory();
    }
Beispiel #3
0
    //-------------------------------------------------------------------------
    internal override void assetLoadDone()
    {
        bool must_copyasset = false;

        if (MapRequestLoadAssetInfo.Count > 1)
        {
            must_copyasset = true;
        }

        foreach (var i in MapRequestLoadAssetInfo)
        {
            if (i.Key.IsCancel)
            {
                continue;
            }

            foreach (var asset_loadrequest in i.Value)
            {
                UnityEngine.Object load_asset = null;
                if (mAsyncAssetWWW.texture != null)
                {
                    load_asset = mAsyncAssetWWW.texture;
                }
                else if (mAsyncAssetWWW.audioClip != null)
                {
                    load_asset = mAsyncAssetWWW.audioClip;
                }
                else if (mAsyncAssetWWW.assetBundle != null)
                {
                    load_asset = mAsyncAssetWWW.assetBundle;
                }

                if (must_copyasset)
                {
                    asset_loadrequest.LoadedAction(GameObject.Instantiate(load_asset));
                }
                else
                {
                    asset_loadrequest.LoadedAction(load_asset);
                }
            }
        }

        MapRequestLoadAssetInfo.Clear();
        destory();
    }