Beispiel #1
0
    private void OnLoaderTime(Timer time, float delta)
    {
        if (m_LoadList.Count <= 0)
        {
            m_LastDelayTime = 0;
            return;
        }

        bool isUseLoad = false;

        if (m_LastDelayTime < float.Epsilon)
        {
            m_LastDelayTime = m_LoadDelayTime;
            isUseLoad       = true;
        }
        else
        {
            m_LastDelayTime -= delta;
            if (m_LastDelayTime <= 0)
            {
                isUseLoad       = true;
                m_LastDelayTime = m_LoadDelayTime;
            }
        }

        if (!isUseLoad)
        {
            return;
        }

        var node = m_LoadList.First;

        m_LoadList.RemoveFirst();

        AsyncLoadKey key = new AsyncLoadKey();

        key.fileName = node.Value.ResFileName;
        key.type     = node.Value.ResType;
        m_LoadingHash.Remove(key);

        node.Value.DoLoad();
        node.Value.Destroy();
    }
Beispiel #2
0
    public void AddNode(string fileName, ResourceCacheType cacheType, System.Type resType,
                        bool isAsync, System.Delegate callBack = null)
    {
        AsyncLoadKey key = new AsyncLoadKey();

        key.fileName = fileName;
        key.type     = resType;
        if (m_LoadingHash.Contains(key))
        {
            return;
        }

        LoaderNode node = LoaderNode.Create(fileName, cacheType, resType, isAsync, callBack);

        if (node == null)
        {
            return;
        }

        m_LoadingHash.Add(key);
        m_LoadList.AddLast(node.LinkNode);
    }