Unity 移动平台拍照截屏并保存到相册
@(Unity3D)[客户端业务功能]
在实习期间碰到需要实现一个调用手机摄像机拍照 并截图 同时将图片保存到相册的功能,并且需要在IOS和Android平台上都能运行,由于这种和操作系统平台进行交互的功能要是自己实现的话就得敲原生接口了,好在Unity平台的生态非常好,而且Unity 开发团队也为跨平台作了不少工作,所以我选择用插件和Unity 提供的接口实现这个需求!
相关插件和Unity 脚本API
- UnityNativeGallery 用于保存图片到手机相册
- WebCamTexture 用于调用手机摄像头
代码块
/*
核心业务逻辑代码,部分来自网络。仅供记录和参考
*/
/// <summary>
/// 调用设备摄像头拍照
/// </summary>
/// <returns></returns>
public IEnumerator Photograph()
{
#if UNITY_IPHONE || UNITY_ANDROID
yield return Application.RequestUserAuthorization(UserAuthorization.WebCam);
if (Application.HasUserAuthorization(UserAuthorization.WebCam))
{
Debug.Log("---has camera authorization---");
if (webCamTexture != null&&webCamTexture.isPlaying) webCamTexture.Stop();
int camNum = WebCamTexture.devices.Length;
if (camNum < 1) yield return null;
string backCamName = WebCamTexture.devices[camNum - 1].name;
for (int i = 0; i < camN