예제 #1
0
    private void onLoaded(object obj)
    {
        SimpleLoader loader  = obj as SimpleLoader;
        Texture2D    texture = loader.loadedData as Texture2D;
        RawImage     image   = loader.bringData as RawImage;

        if (image != null)
        {
            image.texture = texture;
            //Debug.LogWarning(texture.name);
            return;
        }
        GameObject go = loader.bringData as GameObject;

        if (go != null)
        {
            //Debug.LogWarning("GOGOGO" + texture.name + " " + texture.width + "/" + texture.height);
            //Vector3 size = Vector3.one * 0.01f;
            //size.x *= texture.width;
            //size.y *= texture.height;
            //go.transform.localScale = size;
            go.GetComponent <Renderer>().material.mainTexture = texture;
            return;
        }
    }
 public void LoadError(SimpleLoader loader)
 {
     addError(loader.keyUrl);
     for (int i = 0; i < loadinglist.Count; i++)
     {
         if (loadinglist[i] == loader.keyUrl)
         {
             loadinglist.RemoveAt(i);
             for (int k = 0; k < waitingLoaderlist.Count; k++)
             {
                 SimpleLoader item = waitingLoaderlist[k];
                 if (item.keyUrl == loader.keyUrl)
                 {
                     //item.onloaded();
                     item.progress = 1;
                     item.state    = loader.state;
                     item.dispatchEvent(new LoadEvent(LoadEvent.Complete, item));
                     waitingLoaderlist.RemoveAt(k);
                     k--;
                 }
             }
         }
     }
     MyCallLater.Add(1, RemoveError, loader.keyUrl);
 }
예제 #3
0
    public override void enter()
    {
        base.enter();
        if (inputMachine.currentInputIs2D)
        {
            inputMachine.setState(FreeState2D.NAME);
        }
        else
        {
            inputMachine.setState(FreeState3D.NAME);
        }
        if (Application.platform == RuntimePlatform.Android)
        {
            Application.Quit();
        }
        else if (Application.platform == RuntimePlatform.IPhonePlayer)
        {
            undoHelper.ClearView();
            RefreshView();
            GlobalConfig.running = false;
            SimpleLoader.CancelLoad();
            MyEventDispatcher.ClearAllMyEvent();
            MyCallLater.Add(0.1f, SendInfo);
        }
        else
        {
#if UNITY_EDITOR
            undoHelper.ClearView();
            RefreshView();
            GlobalConfig.running = false;
            SimpleLoader.CancelLoad();
            //UnityEditor.EditorApplication.isPlaying = false;
#endif
        }
    }
 public QueueItem(SimpleLoader loader)
 {
     this.loader = loader;
     //1 simpleloader 添加监听
     loader.addEventListener(LoadResourceEvent.Complete, LoadComplete);
     loader.addEventListener(LoadResourceEvent.Progress, LoadProgress);
 }
예제 #5
0
 public void Stop()
 {
     loader.canceled = true;
     loader.removeEventListener(LoadEvent.Complete, LoadComplete);
     loader.removeEventListener(LoadEvent.Progress, LoadProgress);
     SimpleLoader.RemoveLoader(loader);
 }
    public void AddQueueItem(SimpleLoader loader)
    {
        QueueItem item = new QueueItem(loader);

        item.addEventListener(LoadEvent.Progress, Progress);
        loaderQueue.Add(item);
        count = loaderQueue.Count;
    }
    private void OnLoadGameObject(object obj)
    {
        SimpleLoader simple = obj as SimpleLoader;
        GameObject   go     = simple.loadedData as GameObject;

        //ModelView modelview = go.AddComponent<ModelView>();
        //modelview.Init();
        go.transform.parent = GlobalConfig.Instance.worldAnchor;
    }
예제 #8
0
 protected void LoadNext()
 {
     loaders.Remove(this);
     if (loaderStack.Count > 0)
     {
         SimpleLoader loader = loaderStack.Pop();
         loaders.Add(loader);
         loader.StartLoad();
     }
 }
예제 #9
0
 public bool addLoading(SimpleLoader loader)
 {
     for (int i = 0; i < loadingkeyUrlList.Count; i++)
     {
         if (loadingkeyUrlList[i] == loader.keyUrl)
         {
             waitingLoaderList.Add(loader);
             return(false);
         }
     }
     loadingkeyUrlList.Add(loader.keyUrl);
     return(true);
 }
예제 #10
0
    public void AddQueueItem(SimpleLoader loader)
    {
        if (loader == null)
        {
            return;
        }
        QueueItem item = new QueueItem(loader);

        item.addEventListener(LoadResourceEvent.Progress, ItemProgress);
        item.addEventListener(LoadResourceEvent.Complete, ItemComplete);
        loaderQueue.Add(item);
        count = loaderQueue.Count;
    }
 public bool addLoading(SimpleLoader loader)
 {
     for (int i = 0; i < loadinglist.Count; i++)
     {
         if (loadinglist[i] == loader.keyUrl)
         {
             Debug.LogWarning(" AddWaiting " + loader.keyUrl);
             waitingLoaderlist.Add(loader);
             return(false);
         }
     }
     Debug.LogWarning(" addLoading " + loader.keyUrl);
     loadinglist.Add(loader.keyUrl);
     return(true);
 }
예제 #12
0
    private void OnLoaded(object obj)
    {
        SimpleLoader loader = obj as SimpleLoader;

        if (loader.state == SimpleLoadState.Failed)
        {
            Debug.LogWarning("Load Fail:" + loader.uri);
            return;
        }
        if (onLoaded == null)
        {
            return;
        }
        UnityEngine.Object ob = loader.loadedData as UnityEngine.Object;
        onLoaded(ob, bringData);
    }
 public bool removeLoading(SimpleLoader loader)
 {
     for (int i = 0; i < loadinglist.Count; i++)
     {
         if (loadinglist[i] == loader.keyUrl)
         {
             loadinglist.RemoveAt(i);
             for (int k = 0; k < waitingLoaderlist.Count; k++)
             {
                 SimpleLoader item = waitingLoaderlist[k];
                 if (item.keyUrl == loader.keyUrl)
                 {
                     item.state = loader.state;
                     if (item.needClone == false)
                     {
                         item.loadedData = loader.loadedData;
                     }
                     else
                     {
                         LoadPoolData data;
                         if (pool.TryGetValue(loader.keyUrl, out data))
                         {
                             if (data is PrefabData)
                             {
                                 if (item.canceled == false && item.juseEndReturn == false && item.onloaded != null)
                                 {
                                     item.loadedData = (data as PrefabData).GetNew();
                                 }
                             }
                         }
                         else
                         {
                             Debug.LogError("pool.TryGetValue == false keyUrl =" + loader.keyUrl);
                         }
                     }
                     item.EndOnly();
                     //item.Load();
                     waitingLoaderlist.RemoveAt(k);
                     k--;
                 }
             }
             return(true);
         }
     }
     return(false);
 }
예제 #14
0
    public static void RemoveLoader(SimpleLoader loader)
    {
        int loadIndex    = loaders.IndexOf(loader);
        int waitingIndex = -1;

        if (loadIndex != -1)
        {
            loader.stopLoad();
        }
        else
        {
            waitingIndex = ResourcesPool.Instance.waitingLoaderlist.IndexOf(loader);
            if (waitingIndex != -1)
            {
                ResourcesPool.Instance.waitingLoaderlist.RemoveAt(waitingIndex);
            }
        }
    }
예제 #15
0
    public static void RemoveLoader(SimpleLoader loader)
    {
        int loadIndex    = loaders.IndexOf(loader);
        int waitingIndex = -1;

        if (waitingIndex != -1)
        {
            loader.StopLoad();
        }
        else
        {
            waitingIndex = BumLogic.poolManager.waitingLoaderList.IndexOf(loader);
            if (waitingIndex != -1)
            {
                BumLogic.poolManager.waitingLoaderList.RemoveAt(waitingIndex);
            }
        }
    }
    private void onLoadedSetTexture(object obj)
    {
        SimpleLoader loader  = obj as SimpleLoader;
        Texture2D    texture = loader.loadedData as Texture2D;

        EffectImage.texture = texture;
        Vector3 size  = Vector3.right * 2048 + Vector3.up * 1536;
        float   multi = (texture.height * 1f / texture.width);

        if (multi > 3f / 4)
        {
            size = Vector2.right * 1536 / multi + Vector2.up * 1536;
        }
        else
        {
            size = Vector2.right * 2048 + Vector2.up * 2048 * multi;
        }
        EffectImage.rectTransform.sizeDelta = size;
    }
예제 #17
0
    /// <summary>
    /// 打开一个界面
    /// </summary>
    public T Show <T>(OpenType openType = OpenType.Add, SortOrderLayer layer = SortOrderLayer.HomePanel) where T : UIBase
    {
        string uiName = typeof(T).ToString();
        UIBase uiBase;

        if (_uiDic.ContainsKey(uiName))
        {
            // 界面已经存在,从字典中取出,Active设置为true
            // 且会重新计算层级,且会刷新界面
            uiBase = _uiDic[uiName];
            uiBase.gameObject.SetActive(true);
            uiBase.Refresh();
        }
        else
        {
            // 新开界面
            GameObject uiGO = SimpleLoader.InstantiateGameObject(_uiRootPath + uiName + ".prefab");
            uiGO.transform.SetParent(_canvasGameObject.transform, false);
            uiBase = uiGO.GetComponent <UIBase>();
        }
        uiBase.UIName     = uiName;
        uiBase.OrderLayer = layer;

        // 替换形式会关闭上个界面
        if (openType == OpenType.Replace)
        {
            CloseTopUI();
        }

        // 检测必要组件是否存在并处理层级
        CheckComponentAndSortOrder(layer, uiBase);

        // 添加到字典
        if (!_uiDic.ContainsKey(uiName))
        {
            _uiDic.Add(uiName, uiBase);
        }
//        CheckCurrentUIDIC();
        return(uiBase as T);
    }
예제 #18
0
 public void loadError(SimpleLoader loader)
 {
     addError(loader.keyUrl);
     for (int i = 0; i < loadingkeyUrlList.Count; i++)
     {
         if (loadingkeyUrlList[i] == loader.keyUrl)
         {
             loadingkeyUrlList.RemoveAt(i);
             for (int k = 0; k < waitingLoaderList.Count; k++)
             {
                 SimpleLoader item = waitingLoaderList[k];
                 if (item.keyUrl == loader.keyUrl)
                 {
                     item.state = loader.state;
                     item.EndOnly();
                     waitingLoaderList.RemoveAt(k);
                     k--;
                 }
             }
         }
     }
     MyCallLater.Add(1, removeError, loader.keyUrl);
 }
예제 #19
0
 internal void LoadErrorData(SimpleLoader loader)
 {
     addError(loader.keyUrl);
     for (int i = 0; i < loadinglist.Count; i++)
     {
         if (loadinglist[i] == loader.keyUrl)
         {
             loadinglist.RemoveAt(i);
             for (int k = 0; k < waitingLoaderlist.Count; k++)
             {
                 SimpleLoader item = waitingLoaderlist[k];
                 if (item.keyUrl == loader.keyUrl)
                 {
                     //item.onloaded();
                     //item.progress = 1;
                     item.state = loader.state;
                     item.EndOnly();
                     waitingLoaderlist.RemoveAt(k);
                     k--;
                 }
             }
         }
     }
 }
 public QueueItem(SimpleLoader loader)
 {
     this.loader = loader;
     loader.addEventListener(LoadEvent.Complete, LoadComplete);
     loader.addEventListener(LoadEvent.Progress, LoadProgress);
 }