Пример #1
0
    //处理资源
    void dealAction()
    {
        var popAction = actionList.Pop();

        if (popAction != null)
        {
            isFree = false;
            loadAction action = (loadAction)popAction;
            if (action.name == "" || action.name == null)
            {
                Debug.Log("action.name is empty");
                dealAction();
                return;
            }
            Object res = null;
            switch (action.type)
            {
            case 1: {
                //读取
                res = Resources.Load <Object>("Texture/" + action.name);
                if (res != null)
                {
                    Sprite sp = Sprite.Create(
                        res as Texture2D,
                        new Rect(0, 0, (res as Texture2D).width,
                                 (res as Texture2D).height),
                        new Vector2(0.5f, 0.5f));
                    res = (Object)sp;
                }
            }
            break;

            case 2: {
                //读取
                res = Resources.Load <Object>("Config/" + action.name);
            }
            break;

            case 3: {
                //读取
                res = Resources.Load <Object>("Prefab/" + action.name);
            }
            break;

            case 4: {
                //读取
                res = Resources.Load <Object>("Sound/" + action.name);
            }
            break;

            case 5: {
                //读取
                res = Resources.Load <Object>("Bone/" + action.name);
            }
            break;
            }
            ;
            //储存并回调
            if (res != null)
            {
                if (!resSaver.ContainsKey(action.name))
                {
                    resSaver.Add(action.name, res);
                }
                action.cbAction(res);
            }
            else
            {
                Debug.LogWarning(action.name);
                action.cbAction(null);
            }
            isFree = true;
        }
        else
        {
            isFree = true;
        }
    }