コード例 #1
0
    /// <summary>
    /// ファイルバージョン情報を追加
    /// </summary>
    /// <param name="elements">ファイル情報の配列</param>
    public void addInfos(ABVersionInfo info, Info.ResourceType type)
    {
        if (info == null)
        {
            return;
        }

        ABVersionInfo.Element[] elements = info.elements;
        if (elements == null)
        {
            return;
        }

        foreach (var element in elements)
        {
            string key = element.name;
            //	バージョンが上の情報を残す
            //	バージョンが同じ場合ローカルを優先させて残す(余計な取得を無くす)
            bool contains = mergedVersionInfos.ContainsKey(key);
            if (!contains || (element.version > mergedVersionInfos[key].element.version) || (type == Info.ResourceType.LOCAL && element.version == mergedVersionInfos[key].element.version))
            {
                mergedVersionInfos[key] = new Info(element, type);
            }
        }
    }
コード例 #2
0
    void readVersionInfosFromLocal(string path)
    {
        if (!File.Exists(path))
        {
            Debug.Log("ファイル[" + path + "]が開けません");
            return;
        }
        string text = File.ReadAllText(path);

        var versionInfos = JsonUtility.FromJson <ABVersionInfo>(text);

        Debug.Log("ローカルバージョン情報取得成功");
#if DEBUG_OUTPUT_VERSION_FILE_INFO
        Debug.Log("ファイルバージョン[" + versionInfos.version + "]");
        foreach (var info in versionInfos.elements)
        {
            Debug.Log(info.name + "[" + info.version.ToString() + "]");
        }
#endif
        localVersionInfos = versionInfos;
    }
コード例 #3
0
    IEnumerator readVersionInfosFromRemote(string url)
    {
        UnityWebRequest request = UnityWebRequest.Get(url);

        yield return(request.SendWebRequest());

        if (request.isNetworkError || request.isHttpError)
        {
            Debug.Log(request.error);
        }
        else
        {
            var versionInfos = JsonUtility.FromJson <ABVersionInfo>(request.downloadHandler.text);
            Debug.Log("リモートバージョン情報取得成功");
#if DEBUG_OUTPUT_VERSION_FILE_INFO
            Debug.Log("ファイルバージョン[" + versionInfos.version + "]");
            foreach (var info in versionInfos.elements)
            {
                Debug.Log(info.name + "[" + info.version.ToString() + "]");
            }
#endif
            remoteVersionInfos = versionInfos;
        }
    }
コード例 #4
0
    public IEnumerator readVersionInfos(string localPath = null, string remoteUrl = null)
    {
        isReady = false;

        remoteVersionInfos = null;
        localVersionInfos  = null;

        //	リモートとローカルからバージョン情報ファイルを取得
        if (remoteUrl != null)
        {
            yield return(readVersionInfosFromRemote(combineUrl(remoteUrl, VERSION_INFO_FILE_NAME)));
        }
        if (localPath != null)
        {
            readVersionInfosFromLocal(Path.Combine(Application.streamingAssetsPath, Path.Combine(localPath, VERSION_INFO_FILE_NAME)));
        }

        addInfos(remoteVersionInfos, Info.ResourceType.REMOTE);
        addInfos(localVersionInfos, Info.ResourceType.LOCAL);

        //確認用でここに入れてみる
        //yield return updateAssetBundles(REMOTE_RESOURCE_URL);
        isReady = true;
    }