Unity笔记之UnityWebRequest

需求:通过地址URL去加载图片和视频。以及音频片段

1:加载图片

AnalysisJSON.cs

#region 图片
    public static Dictionary<int, List<string>> imageDic = new Dictionary<int, List<string>>();//预习模式的图片
    string path_Image;
    public static int GetImageLength()//获取图片总数量
    {
        return imageDic.Count;
    }
    public static string GetImageName(int index)//获取指定索引的图片名字
    {
        if (index >= imageDic.Count) return null;
        return imageDic[index][0];
    }
    public static string GetImagePath(int index)//获取指定索引的图片路径
    {
        if (index >= imageDic.Count) return null;
        return imageDic[index][1];
    }
    public static string GetImageRanking(int index)//获取图片排名
    {
        if (index >= imageDic.Count) return null;
        return imageDic[index][2];
    }
    IEnumerator Image(string url)
    {
        UnityWebRequest request = UnityWebRequest.Get(url);
        yield return request.SendWebRequest();

        if (request.isHttpError || request.isNetworkError)
            UnityEngine.Debug.Log(request.error);
        else
        {
            UnityEngine.Debug.Log(request.downloadHandler.text);
            string jsonTest = request.downloadHandler.text;
            ImagesJSON obj = JsonUtility.FromJson<ImagesJSON>(jsonTest);
            for (int i = 0; i < obj.tuPian.Count; i++)
            {
                List<string> s = new List<string>();
                s.Add(obj.tuPian[i].name);
                s.Add(obj.tuPian[i].path);
                s.Add(obj.tuPian[i].ranking);
                imageDic.Add(i, s);
            }
            ImageRanking();
        }
    }
    private static void ImageRanking()//冒泡排序(图片排名)
    {
        List<string> s = new List<string>();
        for (int j = 0; j < imageDic.Count - 1; j++)
        {
            if (int.Parse(imageDic[j][2]) > int.Parse(imageDic[j + 1][2]))
            {
                s = imageDic[j + 1];
                imageDic[j + 1] = imageDic[j];
                imageDic[j] = s;
            }
        }
    }
    #endregion

ImagesJSON.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;


[Serializable]
public class ImagesJSON
{
    public List<Images> tuPian = new List<Images>();
}
[Serializable]
public class Images
{
    public string name;
    public string path;
    public string ranking;
}

Image.txt

{
  "tuPian":[
 {
 "name":"TuPian1",
"path":"TuPian1.png",
"ranking":"2"
},
{
"name":"TuPian2",
"path":"TuPian2.png",
"ranking":"1"
}
]
}

以上就是加载图片的了

2:加载视频

AnalysisJSON.cs

#region 视频
    public static Dictionary<int, List<string>> videoDic = new Dictionary<int, List<string>>();//预习模式的视频
    string path_Video;
    public static int GetVideoLength()//获取视频总数量
    {
        return videoDic.Count;
    }
    public static string GetVideoName(int index)//获取指定索引的视频名字
    {
        if (index >= videoDic.Count) return null;
        return videoDic[index][0];
    }
    public static string GetVideoPath(int index)//获取指定索引的视频路径
    {
        if (index >= videoDic.Count) return null;
        return videoDic[index][1];
    }
    public static string GetVideoRanking(int index)//获取视频排名
    {
        if (index >= videoDic.Count) return null;
        return videoDic[index][2];
    }
    IEnumerator Video(string url)
    {
        UnityWebRequest request = UnityWebRequest.Get(url);
        yield return request.SendWebRequest();

        if (request.isHttpError || request.isNetworkError)
            UnityEngine.Debug.Log(request.error);
        else
        {
            UnityEngine.Debug.Log(request.downloadHandler.text);
            string jsonTest = request.downloadHandler.text;
            VideoJSON obj = JsonUtility.FromJson<VideoJSON>(jsonTest);
            for (int i = 0; i < obj.video.Count; i++)
            {
                List<string> s = new List<string>();
                s.Add(obj.video[i].name);
                s.Add(obj.video[i].path);
                s.Add(obj.video[i].ranking);
                videoDic.Add(i, s);
            }
            VideoRanking();
        }
    }
    private static void VideoRanking()//冒泡排序(视频排名)
    {
        List<string> s = new List<string>();
        for (int j = 0; j < videoDic.Count - 1; j++)
        {
            if (int.Parse(videoDic[j][2]) > int.Parse(videoDic[j + 1][2]))
            {
                s = videoDic[j + 1];
                videoDic[j + 1] = videoDic[j];
                videoDic[j] = s;
            }
        }
    }
    #endregion

VideoJSON.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;

[Serializable]
public class VideoJSON 
{
    public List<Video> video = new List<Video>();
}

[Serializable]
public class Video
{
    public string name;
    public string path;
    public string ranking;
}

Video.txt

{
"video":[
{
"name":"video1",
"path":"中国机长.mp4",
"ranking":"1"
},
{
"name":"video2",
"path":"哈利波特.mp4",
"ranking":"2"
}
]
}

以上就是加载视频的

3:加载音频片段(这里仅以mp3为例)

AnalysisJSON.cs

#region 声音片段
    public static Dictionary<int, List<string>> audioClipDic = new Dictionary<int, List<string>>();//场景所有声音片段
    string path_AudioClip;
    public static int GetAudioClipLength()//获取声音片段总数量
    {
        return audioClipDic.Count;
    }
    public static string GetAudioClipName(int index)//获取声音片段名字
    {
        if (index >= audioClipDic.Count) return null;
        return audioClipDic[index][0];
    }
    public static string GetAudioClipPath(int index)//获取声音片段地址
    {
        if (index >= audioClipDic.Count) return null;
        return audioClipDic[index][1];
    }

    private static Dictionary<int, AudioClip> audioClip_Dic = new Dictionary<int, AudioClip>();
    public static AudioClip GetAudioClip(int index)//获取声音片段
    {
        if (index >= audioClip_Dic.Count) return null;
        return audioClip_Dic[index];
    }
    /// <summary>
    /// 解析AudioClipJSON
    /// </summary>
    /// <param name="url"></param>
    /// <returns></returns>
    IEnumerator JXAudioClip(string url)
    {
        UnityWebRequest request = UnityWebRequest.Get(url);
        yield return request.SendWebRequest();

        if (request.isHttpError || request.isNetworkError)
            UnityEngine.Debug.Log(request.error);
        else
        {
            UnityEngine.Debug.Log(request.downloadHandler.text);
            UnityEngine.Debug.Log(request.downloadHandler.data);
            string jsonTest = request.downloadHandler.text;
            AudioClipsJSON obj = JsonUtility.FromJson<AudioClipsJSON>(jsonTest);
            for (int i = 0; i < obj.audioClips.Count; i++)
            {
                List<string> s = new List<string>();
                s.Add(obj.audioClips[i].name);
                s.Add(obj.audioClips[i].path);
                audioClipDic.Add(i, s);

                StartCoroutine(ConvertBytesToClip(i, Application.streamingAssetsPath + "/AudioClips/" + obj.audioClips[i].path));
            }
        }
    }
    /// <summary>
    /// 把读取出来的字节流转化为AudioClip
    /// </summary>
    /// <param name="index"></param>
    /// <param name="url"></param>
    /// <returns></returns>
    IEnumerator ConvertBytesToClip(int index, string url)
    {
        Debug.Log(url);

        using (var uwr = UnityWebRequestMultimedia.GetAudioClip(url, AudioType.MPEG))
        {
            Debug.Log(uwr);
            yield return uwr.SendWebRequest();

            if (uwr.isHttpError || uwr.isNetworkError)//isNetworkError
            { Debug.LogError("uwrERROR:" + uwr.error); }
            else
            {
                //DownloadHandlerAudioClip downloadHandlerAudioClip = new DownloadHandlerAudioClip(url, AudioType.MPEG);
                //AudioClip audioSource = downloadHandlerAudioClip.audioClip;

                AudioClip audioSource = DownloadHandlerAudioClip.GetContent(uwr);
                Debug.Log("成功加载:" + audioSource);
                audioClip_Dic.Add(index, audioSource);
            }
        }
    }
    #endregion

AudioClipsJSON.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

[Serializable]
public class AudioClipsJSON
{
    public List<AudioClips> audioClips = new List<AudioClips>();
}
[Serializable]
public class AudioClips
{
    public string name;
    public string path;
}

AudioClips.txt

{
"audioClips":[
{
"name":"Lens 1",
"path":"Lens 1.mp3"
},
{
"name":"Lens 2",
"path":"Lens 2.mp3"
},
{
"name":"Lens 3",
"path":"Lens 3.mp3"
},
{
"name":"Lens 3_Narrator",
"path":"Lens 3_Narrator.mp3"
},
{
"name":"Lens 4",
"path":"Lens 4.mp3"
},
{
"name":"手机震动声音",
"path":"手机震动声音.mp3"
},
{
"name":"扫地声音",
"path":"扫地声音.mp3"
},
{
"name":"篮球声音",
"path":"篮球声音.mp3"
},
{
"name":"翻书声音",
"path":"翻书声音.mp3"
},
{
"name":"钢琴声音",
"path":"钢琴声音.mp3"
},
{
"name":"飞机",
"path":"飞机.mp3"
},
{
"name":"飞机飞行声音",
"path":"飞机飞行声音.mp3"
},
{
"name":"验钞机",
"path":"验钞机.mp3"
}
,
{
"name":"A02_1",
"path":"A02_1.mp3"
}
,
{
"name":"A02_2",
"path":"A02_2.mp3"
}
,
{
"name":"A02_3",
"path":"A02_3.mp3"
}
,
{
"name":"A02_4",
"path":"A02_4.mp3"
}
]
}

以上就是音频文件的加载方式了
对了,这里的声音加载出来之后只能打包出来WebGL端去网页上测试,在unity里面测试/运行会报错。
如有不对或者更好的方法欢迎指教!

这里附一下我AnalysisJSON的完整代码。

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;

public class AnalysisJSON : MonoBehaviour
{
    void Awake()
    {
        StartCoroutine(JXAudioClip(Application.streamingAssetsPath + "/JSON/AudioClips.txt"));
        StartCoroutine(KaoTi(Application.streamingAssetsPath + "/JSON/KaoTi.txt"));
        StartCoroutine(Image(Application.streamingAssetsPath + "/JSON/Image.txt"));
        StartCoroutine(Video(Application.streamingAssetsPath + "/JSON/Video.txt"));
        StartCoroutine(JieShaoVideo(Application.streamingAssetsPath + "/JSON/JieShaoVideo.txt"));
        StartCoroutine(JiaoHuSceneVideo(Application.streamingAssetsPath + "/JSON/JiaoHuSceneVideo.txt"));
        StartCoroutine(VideoComment(Application.streamingAssetsPath + "/JSON/VideoComment.txt"));
        StartCoroutine(ImageComment(Application.streamingAssetsPath + "/JSON/ImageComment.txt"));
        StartCoroutine(CinemaVideo(Application.streamingAssetsPath + "/JSON/CinemaVideo.txt"));
    }
    #region 声音片段
    public static Dictionary<int, List<string>> audioClipDic = new Dictionary<int, List<string>>();//场景所有声音片段
    string path_AudioClip;
    public static int GetAudioClipLength()//获取声音片段总数量
    {
        return audioClipDic.Count;
    }
    public static string GetAudioClipName(int index)//获取声音片段名字
    {
        if (index >= audioClipDic.Count) return null;
        return audioClipDic[index][0];
    }
    public static string GetAudioClipPath(int index)//获取声音片段地址
    {
        if (index >= audioClipDic.Count) return null;
        return audioClipDic[index][1];
    }

    private static Dictionary<int, AudioClip> audioClip_Dic = new Dictionary<int, AudioClip>();
    public static AudioClip GetAudioClip(int index)//获取声音片段
    {
        if (index >= audioClip_Dic.Count) return null;
        return audioClip_Dic[index];
    }
    /// <summary>
    /// 解析AudioClipJSON
    /// </summary>
    /// <param name="url"></param>
    /// <returns></returns>
    IEnumerator JXAudioClip(string url)
    {
        UnityWebRequest request = UnityWebRequest.Get(url);
        yield return request.SendWebRequest();

        if (request.isHttpError || request.isNetworkError)
            UnityEngine.Debug.Log(request.error);
        else
        {
            UnityEngine.Debug.Log(request.downloadHandler.text);
            UnityEngine.Debug.Log(request.downloadHandler.data);
            string jsonTest = request.downloadHandler.text;
            AudioClipsJSON obj = JsonUtility.FromJson<AudioClipsJSON>(jsonTest);
            for (int i = 0; i < obj.audioClips.Count; i++)
            {
                List<string> s = new List<string>();
                s.Add(obj.audioClips[i].name);
                s.Add(obj.audioClips[i].path);
                audioClipDic.Add(i, s);

                StartCoroutine(ConvertBytesToClip(i, Application.streamingAssetsPath + "/AudioClips/" + obj.audioClips[i].path));
            }
        }
    }
    /// <summary>
    /// 把读取出来的字节流转化为AudioClip
    /// </summary>
    /// <param name="index"></param>
    /// <param name="url"></param>
    /// <returns></returns>
    IEnumerator ConvertBytesToClip(int index, string url)
    {
        Debug.Log(url);

        using (var uwr = UnityWebRequestMultimedia.GetAudioClip(url, AudioType.MPEG))
        {
            Debug.Log(uwr);
            yield return uwr.SendWebRequest();

            if (uwr.isHttpError || uwr.isNetworkError)//isNetworkError
            { Debug.LogError("uwrERROR:" + uwr.error); }
            else
            {
                //DownloadHandlerAudioClip downloadHandlerAudioClip = new DownloadHandlerAudioClip(url, AudioType.MPEG);
                //AudioClip audioSource = downloadHandlerAudioClip.audioClip;

                AudioClip audioSource = DownloadHandlerAudioClip.GetContent(uwr);
                Debug.Log("成功加载:" + audioSource);
                audioClip_Dic.Add(index, audioSource);
            }
        }
    }
    #endregion


    #region 视频处的评论
    public static Dictionary<int, List<string>> cinemaVideoDic = new Dictionary<int, List<string>>();//电影院场景的视频
    string path_CinemaVideo;
    public static int GetCinemaVideoLength()//获取视频总数量
    {
        return cinemaVideoDic.Count;
    }
    public static string GetCinemaVideoName(int index)//获取视频名字
    {
        if (index >= cinemaVideoDic.Count) return null;
        return cinemaVideoDic[index][0];
    }
    public static string GetCinemaVideoPath(int index)//获取视频地址
    {
        if (index >= cinemaVideoDic.Count) return null;
        return cinemaVideoDic[index][1];
    }
    IEnumerator CinemaVideo(string url)
    {
        UnityWebRequest request = UnityWebRequest.Get(url);
        yield return request.SendWebRequest();

        if (request.isHttpError || request.isNetworkError)
            UnityEngine.Debug.Log(request.error);
        else
        {
            UnityEngine.Debug.Log(request.downloadHandler.text);
            string jsonTest = request.downloadHandler.text;
            CinemaVideoJSON obj = JsonUtility.FromJson<CinemaVideoJSON>(jsonTest);
            for (int i = 0; i < obj.cinemaVideo.Count; i++)
            {
                List<string> s = new List<string>();
                s.Add(obj.cinemaVideo[i].name);
                s.Add(obj.cinemaVideo[i].path);
                cinemaVideoDic.Add(i, s);
            }
        }
    }
    #endregion

    #region 视频处的评论
    public static Dictionary<int, List<string>> videoCommentDic = new Dictionary<int, List<string>>();//预习模式的介绍的视频
    string path_VideoComment;
    public static int GetVideoCommentLength()//获取视频总数量
    {
        return videoCommentDic.Count;
    }
    public static string GetVideoCommentContext(int index)//获取评论内容
    {
        if (index >= videoCommentDic.Count) return null;
        return videoCommentDic[index][0];
    }
    public static string GetVideoCommentHeadProtraitIDPath(int index)//获取头像地址
    {
        if (index >= videoCommentDic.Count) return null;
        return videoCommentDic[index][1];
    }
    public static string GetVideoCommentIDNickName(int index)//获取ID昵称
    {
        if (index >= videoCommentDic.Count) return null;
        return videoCommentDic[index][2];
    }
    public static string GetVideoCommentTime(int index)//获取评论时间
    {
        if (index >= videoCommentDic.Count) return null;
        return videoCommentDic[index][3];
    }
    public static string GetVideoCommentDianZan(int index)//获取点赞
    {
        if (index >= videoCommentDic.Count) return null;
        return videoCommentDic[index][4];
    }
    IEnumerator VideoComment(string url)
    {
        UnityWebRequest request = UnityWebRequest.Get(url);
        yield return request.SendWebRequest();

        if (request.isHttpError || request.isNetworkError)
            UnityEngine.Debug.Log(request.error);
        else
        {
            UnityEngine.Debug.Log(request.downloadHandler.text);
            string jsonTest = request.downloadHandler.text;
            VideoCommentJSON obj = JsonUtility.FromJson<VideoCommentJSON>(jsonTest);
            for (int i = 0; i < obj.videoComment.Count; i++)
            {
                List<string> s = new List<string>();
                s.Add(obj.videoComment[i].commentContext);
                s.Add(obj.videoComment[i].headProtraitIDPath);
                s.Add(obj.videoComment[i].idNickName);
                s.Add(obj.videoComment[i].commentTime);
                s.Add(obj.videoComment[i].dianZan);
                videoCommentDic.Add(i, s);
            }
        }
    }
    #endregion

    #region 图片处的评论
    public static Dictionary<int, List<string>> imageCommentDic = new Dictionary<int, List<string>>();//预习模式的介绍的视频
    string path_ImageComment;
    public static int GetImageCommentLength()//获取视频总数量
    {
        return imageCommentDic.Count;
    }
    public static string GetImageCommentContext(int index)//获取评论内容
    {
        if (index >= imageCommentDic.Count) return null;
        return imageCommentDic[index][0];
    }
    public static string GetImageCommentHeadProtraitIDPath(int index)//获取头像地址
    {
        if (index >= imageCommentDic.Count) return null;
        return imageCommentDic[index][1];
    }
    public static string GetImageCommentIDNickName(int index)//获取ID昵称
    {
        if (index >= imageCommentDic.Count) return null;
        return imageCommentDic[index][2];
    }
    public static string GetImageCommentTime(int index)//获取评论时间
    {
        if (index >= imageCommentDic.Count) return null;
        return imageCommentDic[index][3];
    }
    public static string GetImageCommentDianZan(int index)//获取点赞
    {
        if (index >= imageCommentDic.Count) return null;
        return imageCommentDic[index][4];
    }
    IEnumerator ImageComment(string url)
    {
        UnityWebRequest request = UnityWebRequest.Get(url);
        yield return request.SendWebRequest();

        if (request.isHttpError || request.isNetworkError)
            UnityEngine.Debug.Log(request.error);
        else
        {
            UnityEngine.Debug.Log(request.downloadHandler.text);
            string jsonTest = request.downloadHandler.text;
            ImageCommentJSON obj = JsonUtility.FromJson<ImageCommentJSON>(jsonTest);
            for (int i = 0; i < obj.imageComment.Count; i++)
            {
                List<string> s = new List<string>();
                s.Add(obj.imageComment[i].commentContext);
                s.Add(obj.imageComment[i].headProtraitIDPath);
                s.Add(obj.imageComment[i].idNickName);
                s.Add(obj.imageComment[i].commentTime);
                s.Add(obj.imageComment[i].dianZan);
                imageCommentDic.Add(i, s);
            }
        }
    }
    #endregion

    #region 考核模式的考题
    public static Dictionary<int, List<string>> kaoTiDic = new Dictionary<int, List<string>>();//考核模式的题库
    string path_KaoTi;
    public static int GetKaoTiLength()//获取视频总数量
    {
        return kaoTiDic.Count;
    }
    public static string GetKaoTiTitle(int index)//题目
    {
        if (index >= kaoTiDic.Count) return null;
        return kaoTiDic[index][0];
    }
    public static string GetKaoTiAnswerA(int index)//A
    {
        if (index >= kaoTiDic.Count) return null;
        return kaoTiDic[index][1];
    }
    public static string GetKaoTiAnswerB(int index)//B
    {
        if (index >= kaoTiDic.Count) return null;
        return kaoTiDic[index][2];
    }
    public static string GetKaoTiAnswerC(int index)//C
    {
        if (index >= kaoTiDic.Count) return null;
        return kaoTiDic[index][3];
    }
    public static string GetKaoTiAnswerD(int index)//D
    {
        if (index >= kaoTiDic.Count) return null;
        return kaoTiDic[index][4];
    }
    public static string GetKaoTiAnswer(int index)//答案
    {
        if (index >= kaoTiDic.Count) return null;
        return kaoTiDic[index][5];
    }
    IEnumerator KaoTi(string url)
    {
        UnityWebRequest request = UnityWebRequest.Get(url);
        yield return request.SendWebRequest();

        if (request.isHttpError || request.isNetworkError)
            UnityEngine.Debug.Log(request.error);
        else
        {
            UnityEngine.Debug.Log(request.downloadHandler.text);
            string jsonTest = request.downloadHandler.text;
            KaoTiJSON obj = JsonUtility.FromJson<KaoTiJSON>(jsonTest);
            for (int i = 0; i < obj.kaoTi.Count; i++)
            {
                List<string> s = new List<string>();
                s.Add(obj.kaoTi[i].tiTle);
                s.Add(obj.kaoTi[i].answer_A);
                s.Add(obj.kaoTi[i].answer_B);
                s.Add(obj.kaoTi[i].answer_C);
                s.Add(obj.kaoTi[i].answer_D);
                s.Add(obj.kaoTi[i].answer);
                kaoTiDic.Add(i, s);
            }
        }
    }
    #endregion

    #region 预习模式的介绍的视频
    public static Dictionary<int, List<string>> jieShaoVideoDic = new Dictionary<int, List<string>>();//预习模式的介绍的视频
    string path_JieShaoVideo;
    public static int GetJieShaoVideoLength()//获取视频总数量
    {
        return jieShaoVideoDic.Count;
    }
    public static string GetJieShaoVideoName(int index)//获取指定索引的视频名字
    {
        if (index >= jieShaoVideoDic.Count) return null;
        return jieShaoVideoDic[index][0];
    }
    public static string GetJieShaoVideoPath(int index)//获取指定索引的视频路径
    {
        if (index >= jieShaoVideoDic.Count) return null;
        return jieShaoVideoDic[index][1];
    }
    IEnumerator JieShaoVideo(string url)
    {
        UnityWebRequest request = UnityWebRequest.Get(url);
        yield return request.SendWebRequest();

        if (request.isHttpError || request.isNetworkError)
            UnityEngine.Debug.Log(request.error);
        else
        {
            //UnityEngine.Debug.Log(request.downloadHandler.text);
            string jsonTest = request.downloadHandler.text;
            JieShaoVideoJSON obj = JsonUtility.FromJson<JieShaoVideoJSON>(jsonTest);
            for (int i = 0; i < obj.jieShaoVideo.Count; i++)
            {
                List<string> s = new List<string>();
                s.Add(obj.jieShaoVideo[i].name);
                s.Add(obj.jieShaoVideo[i].path);
                //Debug.Log(obj.jieShaoVideo[i].name);
                //Debug.Log(obj.jieShaoVideo[i].path);
                jieShaoVideoDic.Add(i, s);
            }
        }
    }
    #endregion

    #region 交互场景视频
    public static Dictionary<int, List<string>> jiaoHuSceneVideoDic = new Dictionary<int, List<string>>();//交互场景的视频
    string path_JiaoHuSceneVideo;
    public static int GetJiaoHuSceneVideoLength()//获取视频总数量
    {
        return jiaoHuSceneVideoDic.Count;
    }
    public static string GetJiaoHuSceneVideoName(int index)//获取指定索引的视频名字
    {
        if (index >= jiaoHuSceneVideoDic.Count) return null;
        return jiaoHuSceneVideoDic[index][0];
    }
    public static string GetJiaoHuSceneVideoPath(int index)//获取指定索引的视频路径
    {
        if (index >= jiaoHuSceneVideoDic.Count) return null;
        return jiaoHuSceneVideoDic[index][1];
    }
    IEnumerator JiaoHuSceneVideo(string url)
    {
        UnityWebRequest request = UnityWebRequest.Get(url);
        yield return request.SendWebRequest();

        if (request.isHttpError || request.isNetworkError)
            UnityEngine.Debug.Log(request.error);
        else
        {
            UnityEngine.Debug.Log(request.downloadHandler.text);
            string jsonTest = request.downloadHandler.text;
            JiaoHuSceneVideoJSON obj = JsonUtility.FromJson<JiaoHuSceneVideoJSON>(jsonTest);
            for (int i = 0; i < obj.jiaoHuSceneVideo.Count; i++)
            {
                List<string> s = new List<string>();
                s.Add(obj.jiaoHuSceneVideo[i].name);
                s.Add(obj.jiaoHuSceneVideo[i].path);
                jiaoHuSceneVideoDic.Add(i, s);
            }
        }
    }
    #endregion

    #region 图片
    public static Dictionary<int, List<string>> imageDic = new Dictionary<int, List<string>>();//预习模式的图片
    string path_Image;
    public static int GetImageLength()//获取图片总数量
    {
        return imageDic.Count;
    }
    public static string GetImageName(int index)//获取指定索引的图片名字
    {
        if (index >= imageDic.Count) return null;
        return imageDic[index][0];
    }
    public static string GetImagePath(int index)//获取指定索引的图片路径
    {
        if (index >= imageDic.Count) return null;
        return imageDic[index][1];
    }
    public static string GetImageRanking(int index)//获取图片排名
    {
        if (index >= imageDic.Count) return null;
        return imageDic[index][2];
    }
    IEnumerator Image(string url)
    {
        UnityWebRequest request = UnityWebRequest.Get(url);
        yield return request.SendWebRequest();

        if (request.isHttpError || request.isNetworkError)
            UnityEngine.Debug.Log(request.error);
        else
        {
            UnityEngine.Debug.Log(request.downloadHandler.text);
            string jsonTest = request.downloadHandler.text;
            ImagesJSON obj = JsonUtility.FromJson<ImagesJSON>(jsonTest);
            for (int i = 0; i < obj.tuPian.Count; i++)
            {
                List<string> s = new List<string>();
                s.Add(obj.tuPian[i].name);
                s.Add(obj.tuPian[i].path);
                s.Add(obj.tuPian[i].ranking);
                imageDic.Add(i, s);
            }
            ImageRanking();
        }
    }
    private static void ImageRanking()//冒泡排序(图片排名)
    {
        List<string> s = new List<string>();
        for (int j = 0; j < imageDic.Count - 1; j++)
        {
            if (int.Parse(imageDic[j][2]) > int.Parse(imageDic[j + 1][2]))
            {
                s = imageDic[j + 1];
                imageDic[j + 1] = imageDic[j];
                imageDic[j] = s;
            }
        }
    }
    #endregion

    #region 视频
    public static Dictionary<int, List<string>> videoDic = new Dictionary<int, List<string>>();//预习模式的视频
    string path_Video;
    public static int GetVideoLength()//获取视频总数量
    {
        return videoDic.Count;
    }
    public static string GetVideoName(int index)//获取指定索引的视频名字
    {
        if (index >= videoDic.Count) return null;
        return videoDic[index][0];
    }
    public static string GetVideoPath(int index)//获取指定索引的视频路径
    {
        if (index >= videoDic.Count) return null;
        return videoDic[index][1];
    }
    public static string GetVideoRanking(int index)//获取视频排名
    {
        if (index >= videoDic.Count) return null;
        return videoDic[index][2];
    }
    IEnumerator Video(string url)
    {
        UnityWebRequest request = UnityWebRequest.Get(url);
        yield return request.SendWebRequest();

        if (request.isHttpError || request.isNetworkError)
            UnityEngine.Debug.Log(request.error);
        else
        {
            UnityEngine.Debug.Log(request.downloadHandler.text);
            string jsonTest = request.downloadHandler.text;
            VideoJSON obj = JsonUtility.FromJson<VideoJSON>(jsonTest);
            for (int i = 0; i < obj.video.Count; i++)
            {
                List<string> s = new List<string>();
                s.Add(obj.video[i].name);
                s.Add(obj.video[i].path);
                s.Add(obj.video[i].ranking);
                videoDic.Add(i, s);
            }
            VideoRanking();
        }
    }
    private static void VideoRanking()//冒泡排序(视频排名)
    {
        List<string> s = new List<string>();
        for (int j = 0; j < videoDic.Count - 1; j++)
        {
            if (int.Parse(videoDic[j][2]) > int.Parse(videoDic[j + 1][2]))
            {
                s = videoDic[j + 1];
                videoDic[j + 1] = videoDic[j];
                videoDic[j] = s;
            }
        }
    }
    #endregion
}

posted @   一世癫狂  阅读(9)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示