unity 安卓读取相册照片显示出来
时间: 2023-09-15 13:24:40 浏览: 212
在Unity中,你可以使用Android的权限系统和相册功能来读取照片并在游戏中显示出来。下面是一个简单的示例代码:
```csharp
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using System.IO;
public class PhotoGallery : MonoBehaviour
{
public Image image;
// 在按钮点击时调用该方法
public void OpenGallery()
{
// 确保应用程序具有读取外部存储的权限
if (!Permission.HasUserAuthorizedPermission(Permission.ExternalStorageRead))
{
Permission.RequestUserPermission(Permission.ExternalStorageRead);
return;
}
// 打开相册
NativeGallery.Permission permission = NativeGallery.GetImageFromGallery((path) =>
{
if (path != null)
{
// 加载并显示图片
StartCoroutine(LoadImage(path));
}
});
Debug.Log("Permission result: " + permission);
}
// 加载图片并显示
IEnumerator LoadImage(string path)
{
// 从文件路径创建一个Texture2D对象
Texture2D texture = new Texture2D(2, 2);
byte[] imageData = File.ReadAllBytes(path);
texture.LoadImage(imageData);
// 将Texture2D设置为Image组件的Sprite
image.sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), Vector2.zero);
yield return null;
}
}
```
上述示例代码中,我们使用了 `NativeGallery` 插件来访问相册并选择图片。需要注意的是,你需要先在Unity中导入 `NativeGallery` 插件。另外,我们还使用了一个Image组件来显示选中的图片。
你可以将上述代码绑定到一个按钮的点击事件上,在点击按钮时打开相册,并将选择的图片显示在游戏中。
阅读全文