예제 #1
0
    public void Add(SBuildObjectInfo info)
    {
        if (info.mResPath.Length == 0)
        {
            Log.Error("MultyBuildManager::Add param error");
            return;
        }
        m_ListBuildObject.Add(info);

        if (info.mFrameOffset == 0 || (m_ListBuildObject.Count == 1 && m_CurFrame >= info.mFrameOffset))
        {
            BuildOne();
            m_CurFrame = 0;
        }
    }
예제 #2
0
    private void BuildOne()
    {
        SBuildObjectInfo info = m_ListBuildObject[0];

        ProcessBuild(info);
        m_ListBuildObject.Remove(info);

        //修改加载间隔
        if (m_ListBuildObject.Count > 0 && m_ListBuildObject[0].mFrameOffset > 0)
        {
            m_CurOffsetFrame = m_ListBuildObject[0].mFrameOffset;
        }
        else
        {
            m_CurOffsetFrame = m_MaxOffsetFrame;
        }
    }
예제 #3
0
    private void ProcessBuild(SBuildObjectInfo info)
    {
        Object res = null;

        switch (info.Type)
        {
        case eResourceType.UNDEFIED:
        case eResourceType.PREFAB:
            res = ResourceLoaderManager.Instance.Load(info.mResPath);
            break;

        case eResourceType.SPRITE:
            res = ResourceLoaderManager.Instance.LoadSprite(info.mResPath);
            break;

        case eResourceType.TEXTURE:
            res = ResourceLoaderManager.Instance.LoadTexture(info.mResPath);
            break;

        case eResourceType.MATERIAL:
            res = ResourceLoaderManager.Instance.LoadMaterial(info.mResPath);
            break;

        case eResourceType.SHADER:
            res = ResourceLoaderManager.Instance.LoadShader(info.mResPath);
            break;

        case eResourceType.SOUND:
            res = ResourceLoaderManager.Instance.LoadSound(info.mResPath);
            break;
        }
        if (res == null)
        {
            Log.Error("MultyBuildManager::ProcessBuild - not build file:" + info.mResPath);
            return;
        }
        Object obj = GameObject.Instantiate(res, Vector3.zero, Quaternion.identity);

        if (info.OnComplate != null)
        {
            info.OnComplate(obj);
        }
    }