public bool stop(bool isAllUnLoadLevel)
    {
        // loader_.StopAllCoroutines();

        for (int i = 0; i < before_loads.Count; i++)
        {
            AssetLoad load = before_loads[i];
            if (isAllUnLoadLevel == false && load.asset.unloadLevel != Asset.UNLOAD_LEVEL.LEVEL_NORMAL)
            {
                continue;
            }

            if (load.loading == true)
            {
                load.stop();
                break;
            }
        }

        for (int i = 0; i < after_loads.Count; i++)
        {
            AssetLoad load = after_loads[i];
            if (isAllUnLoadLevel == false && load.asset.unloadLevel != Asset.UNLOAD_LEVEL.LEVEL_NORMAL)
            {
                continue;
            }

            if (load.loading == true)
            {
                load.stop();
                break;
            }
        }

        for (int i = 0; i < loads.Count; i++)
        {
            AssetLoad load = loads[i];
            if (isAllUnLoadLevel == false && load.asset.unloadLevel != Asset.UNLOAD_LEVEL.LEVEL_NORMAL)
            {
                continue;
            }

            if (load.loading == true)
            {
                load.stop();
                break;
            }
        }

        isLoading = false;
        return(true);
    }
    public void eraseByUNLoadLevel(Asset.UNLOAD_LEVEL level, bool removeAllOther)
    {
        while (true)
        {
            for (int i = 0; i < before_loads.Count; i++)
            {
                AssetLoad load = before_loads[i];
                if ((load.asset.unloadLevel == level) != removeAllOther)
                {
                    if (load.loading == true)
                    {
                        load.stop();
                    }

                    before_loads.RemoveAt(i);
                    break;
                }
            }

            break;
        }

        while (true)
        {
            for (int i = 0; i < after_loads.Count; i++)
            {
                AssetLoad load = after_loads[i];
                if ((load.asset.unloadLevel == level) != removeAllOther)
                {
                    if (load.loading == true)
                    {
                        load.stop();
                    }

                    after_loads.RemoveAt(i);
                    break;
                }
            }

            break;
        }

        while (true)
        {
            for (int i = 0; i < loads.Count; i++)
            {
                AssetLoad load = loads[i];
                if ((load.asset.unloadLevel == level) != removeAllOther)
                {
                    if (load.loading == true)
                    {
                        load.stop();
                    }

                    loads.RemoveAt(i);
                    break;
                }
            }

            break;
        }
    }
    public void erase(Asset.TYPE type, bool removeAllOther)
    {
        while (true)
        {
            for (int i = 0; i < before_loads.Count; i++)
            {
                AssetLoad load = before_loads[i];
                if ((load.asset.type == type) != removeAllOther)
                {
                    if (load.loading == true)
                    {
                        load.stop();
                    }

                    before_loads.RemoveAt(i);
                    break;
                }
            }

            break;
        }

        while (true)
        {
            for (int i = 0; i < after_loads.Count; i++)
            {
                AssetLoad load = after_loads[i];
                if ((load.asset.type == type) != removeAllOther)
                {
                    if (load.loading == true)
                    {
                        load.stop();
                    }

                    after_loads.RemoveAt(i);
                    break;
                }
            }

            break;
        }

        while (true)
        {
            for (int i = 0; i < loads.Count; i++)
            {
                AssetLoad load = loads[i];
                if ((load.asset.type == type) != removeAllOther)
                {
                    if (load.loading == true)
                    {
                        load.stop();
                    }

                    loads.RemoveAt(i);
                    break;
                }
            }

            break;
        }
    }