Ejemplo n.º 1
0
    //相对路径转换为绝对路径
    public static string RrelativePath2Absolute_Packet(string pack_path,
                                                       string pack_name,
                                                       bool autoCreateDevDir,
                                                       out RES_LOCATION srcType,
                                                       out string devPackDir,
                                                       bool ignoreExternal = false//是否忽略外部包
                                                       )
    {
        string externalPath     = MakeExternalPackPath(pack_path, pack_name);
        string externalPath_dev = MakeExternalPackPath(pack_path, "pk_" + pack_name);

        if (!ignoreExternal)
        {
            //外部文件系统
            if (IsDirExists(externalPath_dev))
            {
                devPackDir = externalPath_dev;
            }
            else
            {
                if (autoCreateDevDir)
                {
                    DirectoryInfo tmpDir = new DirectoryInfo(externalPath_dev);
                    tmpDir.Create();
                    devPackDir = externalPath_dev;
                }
                else
                {
                    devPackDir = null;
                }
            }

            //外部路径
            if (IsFileExists(externalPath))
            {
                srcType = RES_LOCATION.externalPack;
                return(externalPath);
            }
        }
        else
        {
            devPackDir = null;
        }

        string streamingAssetsPath = Application.streamingAssetsPath;

        //读模式,由于android只支持www方式,所以路径是file开头
        string sealedUrl =                                                          //(streamingAssetsPath[0] == '/' ? "file://" : "file:///") +

                           streamingAssetsPath + "/" + pack_path + "/" + pack_name; //只读目录

        switch (Application.platform)
        {
        case  RuntimePlatform.WindowsEditor:
        case RuntimePlatform.WindowsPlayer:
        case RuntimePlatform.WindowsWebPlayer:
            sealedUrl = "file:///" + sealedUrl;
            break;

        case RuntimePlatform.IPhonePlayer:
        case RuntimePlatform.OSXEditor:
        case RuntimePlatform.OSXPlayer:
        case RuntimePlatform.OSXWebPlayer:
        case RuntimePlatform.OSXDashboardPlayer:
            sealedUrl = "file://" + sealedUrl;
            break;
        }
        ;
        srcType = RES_LOCATION.internalPack;
        return(sealedUrl);//内部路径
    }