Esempio n. 1
0
    /** 卸载 */
    public void unloadSplit(string configName, int key)
    {
        string path             = ShineGlobal.configDirPath + "/" + configName + "/" + key + ".bin";
        int    configResourceID = LoadControl.getResourceIDByNameAbs(path);

        LoadControl.unloadOne(configResourceID);
    }
Esempio n. 2
0
    protected virtual void disposeOver()
    {
        _disposed = true;

        if (_loadState > 0)
        {
            if (_loadVersion == LoadControl.getVersion() && _loadResource > 0)
            {
                //unload
                LoadControl.unloadOne(_loadResource);
            }

            if (_loadState == 2)
            {
                if (_smodel != null)
                {
                    _smodel.doDispose();

                    _smodel = null;

                    GameObject.Destroy(_modelObject);
                    _modelObject = null;
                }
            }
        }

        //归零
        _loadState = 0;
    }
Esempio n. 3
0
            public bool releaseHead()
            {
                if (_queue.isEmpty())
                {
                    return(false);
                }

                ResourceNode node = _queue.poll();

                GameObject obj = node.obj;

                node.obj = null;

                GameObject.Destroy(obj);

                --_parent.num;

                //直接-1
                if (_refCount == 0 && _queue.isEmpty())
                {
                    LoadControl.unloadOne(id);
                }

                return(true);
            }
Esempio n. 4
0
        /** 清除占用 */
        public void clear()
        {
            if (_resourceID != -1)
            {
                ++_index;

                //版本还对
                if (LoadControl.getVersion() == _loadVersion)
                {
                    LoadControl.unloadOne(_resourceID);
                }

                _resourceID = -1;
            }

            _isLoading = false;
        }
Esempio n. 5
0
            public void unloadOne(GameObject obj)
            {
                --_refCount;

                if (obj != null)
                {
                    obj.transform.SetParent(_poolRootTrans);

                    ResourceNode node = new ResourceNode();
                    node.obj    = obj;
                    node.inTime = Ctrl.getFixedTimer();
                    _queue.add(node);

                    ++_parent.num;
                }

                //直接-1
                if (_refCount == 0 && _queue.isEmpty())
                {
                    LoadControl.unloadOne(id);
                }
            }