예제 #1
0
    public SimpleCacheLoader cacheLoad(string id, SimpleLoadDataType type, Action <object> onloaded, object bringdata = null)
    {
        SimpleCacheLoader loader;

        loader = new SimpleCacheLoader(id, type, onloaded, bringdata);
        loader.Load();
        return(loader);
    }
예제 #2
0
    private void OnPriceLoaded(object obj)
    {
        SimpleCacheLoader loader = obj as SimpleCacheLoader;

        if (loader.state == SimpleLoadedState.Failed)
        {
            //Debug.LogError(loader.uri);
            return;
        }
        string    json      = loader.loadedData.ToString();
        object    jsonObj   = MyJsonTool.FromJson(json);
        PriceData priceData = new PriceData();

        priceData.Deserialize(jsonObj as Dictionary <string, object>);
        mainpageData.AddPriceData(priceData);
    }
예제 #3
0
    private void OnCacheLoaded(object obj)
    {
        SimpleCacheLoader loader = obj as SimpleCacheLoader;

        if (loader.state == SimpleLoadedState.Failed)
        {
            //Debug.LogError(loader.uri);
            return;
        }
        string json     = loader.loadedData.ToString();
        object jsonData = MyJsonTool.FromJson(json);

        MsgFromIOS.InfoFromIOS info = loader.bringData as MsgFromIOS.InfoFromIOS;

        OriginalProjectData         data = new OriginalProjectData();
        Dictionary <string, object> dic  = jsonData as Dictionary <string, object>;

        ///在线端数据
        if (dic.ContainsKey("products"))
        {
            //data.DeSerialize(dic);
        }
        ///移动端新数据
        else if (dic.ContainsKey("version"))
        {
            data.DeSerialize(dic);
        }
        ///移动端旧数据 或 错误数据
        else
        {
            data.DeSerialize(dic);
        }

        data.tempEffectMetas.Clear();
        List <object> matelist = info.msg as List <object>;

        for (int i = 0; i < matelist.Count; i++)
        {
            data.tempEffectMetas.Add(matelist[i].ToString());
        }

        switch (info.enterType)
        {
        case "4":
        case "5":
            data.isNew      = true;
            data.id         = "";
            data.templateId = info.projectId;
            data.tempId     = jsonCacheManager.GetNewSchemeTempId();
            //放到队列加载后
            //undoHelper.SetCurrentData(data);
            break;

        default:
            data.id     = info.projectId;
            data.tempId = info.tempId;
            data.isNew  = false;
            //放到队列加载后
            //undoHelper.SetCurrentData(data, false);
            break;
        }

        switch (info.enterType)
        {
        case "3":
        case "5":
            mainpageMachine.setState(ToThreeDState.Name);
            break;

        default:
            mainpageMachine.setState(ToTwoDState.Name);
            break;
        }

        float minX = 0;
        float maxX = 0;
        float minY = 0;
        float maxY = 0;

        for (int i = 0; i < data.data.pointList.Count; i++)
        {
            Vector2 v2 = data.data.pointList[i].pos;
            if (v2.x < minX)
            {
                minX = v2.x;
            }
            if (v2.x > maxX)
            {
                maxX = v2.x;
            }
            if (v2.y < minY)
            {
                minY = v2.y;
            }
            if (v2.y > maxY)
            {
                maxY = v2.y;
            }
        }
        Vector2 pos = Vector2.zero;

        pos.x = (minX + maxX) / 2;
        pos.y = (minY + maxY) / 2;
        CameraControler.Instance.ResetAllCamera(pos);


        QueueSimpleLoader queueloader = new QueueSimpleLoader(new object[] { info.enterType, data });

        for (int i = 0; i < data.data.productList.Count; i++)
        {
            Product product = data.data.productList[i];
            if (product.productType == "FloorTiles" || product.productType == "Wallpapers")
            {
                if (product.modelTexture.IndexOf("http://") == -1)
                {
                    continue;
                }
                SimpleOutterLoader outLoader = LoaderPool.WaitOutterLoad(product.modelTexture, SimpleLoadDataType.texture2D, null, null);
                queueloader.AddQueueItem(outLoader);
            }
            else
            {
                switch (info.enterType)
                {
                case "3":
                case "5":
                {
                    if (product.assetBundlePath.IndexOf("http://") == -1)
                    {
                        if (product.assetBundlePath.IndexOf("3D/") != 0 && product.modelTexture.IndexOf("3D/") != 0)
                        {
                            Debug.LogErrorFormat("路径有误:seekid = {0} product.model3d = {1}", product.seekId, product.assetBundlePath);
                        }
                        continue;
                    }
                    SimpleOutterLoader outLoader = LoaderPool.WaitOutterLoad(product.assetBundlePath, SimpleLoadDataType.prefabAssetBundle, null, product, onloadedBforClone);
                    queueloader.AddQueueItem(outLoader);
                }
                break;

                default:
                {
                    if (product.assetBundlePath.IndexOf("http://") == -1)
                    {
                        if (product.assetBundlePath.IndexOf("3D/prefab") != 0)
                        {
                            Debug.LogError("路径有误:" + product.assetBundlePath);
                        }
                        continue;
                    }
                    SimpleOutterLoader outLoader = LoaderPool.WaitOutterLoad(product.assetBundlePath, SimpleLoadDataType.prefabAssetBundle, null, product, onloadedBforClone);
                    queueloader.AddQueueItem(outLoader);
                }
                break;
                }
            }
        }
        if (queueloader.getCount != 0)
        {
            queueloader.addEventListener(LoadEvent.QueueProgress, OnAllProductProgress);
            queueloader.addEventListener(LoadEvent.QueueComplete, OnLoadedAllProductCache);
        }
        else
        {
            mainPageUIController.dispatchEvent(new LoadEvent(LoadEvent.CloseLoadingPage));
            switch (info.enterType)
            {
            case "4":
            case "5":
                data.isTemplate = true;
                undoHelper.SetCurrentData(data);
                break;

            default:
                undoHelper.SetCurrentData(data, false);
                break;
            }
        }
    }