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
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!