unity中接收来自Web端的图片,并且显示在unity界面上展示
所用方式 ------使用Receive()方法,挂载到摄像机上实现此功能
1、创建一个脚本,本人命名为ShowImage,代码如下:
/// <summary>
/// 显示学生上传的图片
/// </summary>
public class ShowImage : MonoBehaviour
{
public Image Image01;
public Image Image02;
public Image Image03;
//获取返回值方法
public void Receive(string jsonData)
{
ImgData imgData = new ImgData();
//将传过来的字符串转换为对象
imgData = JsonConvert.DeserializeObject<ImgData>(jsonData);
//将图片数据转换为byte数组
byte[] data = System.Convert.FromBase64String(imgData.Data);
Texture2D pic = new Texture2D(106, 52);
pic.LoadImage(data);
//转化为sprite精灵
Sprite sprite = Sprite.Create(pic, new Rect(0, 0, pic.width, pic.height), new Vector2(0.5f, 0.5f));
if (imgData.Title.Equals("one"))
{
Image01.sprite = sprite;
Image01.gameObject.SetActive(true);
}
else if (imgData.Title.Equals("two"))
{
Image02.sprite = sprite;
Image02.gameObject.SetActive(true);
}
else if (imgData.Title.Equals("three"))
{
Image03.sprite = sprite;
Image03.gameObject.SetActive(true);
}
}
/// <summary>
/// 表示上传的图片的类
/// </summary>
class ImgData
{
public string Title { get; set; }
public string Data { get; set; }
}
}
2、将此脚本挂载到场景中的摄像机即可,当接收到web端发送过来的图片数据时,会自动调用摄像机下的Receive方法,这样就可以执行展示图片的功能。
3、何时调用web端上传本地图片的方法,需要与后台对接清除,上传本地图片的功能我们这边是后来实现的,因为项目最终是放到web端执行的。