Unity读取Android本地图片

unity读取Android本地图片

一、安卓读取路径

安卓路径:"file:///storage/emulated/0/"+自己图片的路径

例:"file:///storage/emulated/0/small.jpg"

二、unity搭建

使用UI简单搭个界面

三、新建一个脚本

代码内容如下

csharp 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Networking;
using UnityEngine.Android;

public class Test : MonoBehaviour
{
    string url;
    public InputField input;
    public Button btn;
    public RawImage im;
    void Start()
    {
#if UNITY_ANDROID
        //安卓平台要请求从外部设备读写权限,如果安装后通过了权限请求,则以后这个APP就不会弹出请求权限框
        //但若安装后请求多次权限,都不通过,则多次后就不会弹出请求权限框

        //请求从 (SD 卡等)外部存储读取的权限
        if (!Permission.HasUserAuthorizedPermission(Permission.ExternalStorageRead))
        {
            Permission.RequestUserPermission(Permission.ExternalStorageRead);
        }

        //请求 写入外部存储(如 SD 卡)的权限       
        if (!Permission.HasUserAuthorizedPermission(Permission.ExternalStorageWrite))
        {
            Permission.RequestUserPermission(Permission.ExternalStorageWrite);
        }
#endif
        btn.onClick.AddListener(BtnOnClick);
        url = "file:///storage/emulated/0/small.jpg";
    }

    public void BtnOnClick()
    {
        url = input.text;
        StartCoroutine(getMap());
    }
    IEnumerator getMap()
    {
        UnityWebRequest webRequest = UnityWebRequestTexture.GetTexture(url);
        yield return webRequest.SendWebRequest();
        //等待请求完成
        while (!webRequest.isDone)
        {
            yield return null;
        }
        if (string.IsNullOrEmpty(webRequest.error))
        {
            Texture2D texture2D = DownloadHandlerTexture.GetContent(webRequest);
            if (texture2D)
            {
                im.texture = texture2D;
            }
        }
        else
        {
            Debug.Log("失败");
        }
    }
}

四、手机根目录下放一张small.jpg图片

五、打开程序

点击Button按钮读取,读取成功显示图片

相关推荐
AFinalStone4 小时前
Android 7系统休眠唤醒(六)唤醒全链路
android·电源管理·休眠唤醒
雨白5 小时前
深入理解 Kotlin 协程 (九):互通有无,解构 Channel 缓冲策略与底层无锁机制
android·kotlin
灯塔@kuaidao7 小时前
平台交叉编译名词解释与基础流程
android
__Witheart__8 小时前
3568 Android otg模式下adb热拔插不识别
android·adb·rockchip
明天…ling10 小时前
Upload-Labs (Pass1-Pass21) 完整通关思路与源码分析
android·网络安全·渗透测试·burpsuite·upload-labs·文件上传绕过·靶场复现
__Witheart__10 小时前
3568 Android ntp校时使用
android·rockchip
wddptwd2811 小时前
android studio 报错怎么处理 java.lang.NullPointerException
android·java·android studio
美狐美颜SDK开放平台11 小时前
直播APP开发,美颜SDK和相机SDK有什么区别?
android·深度学习·数码相机·ios·直播美颜sdk·视频美颜sdk
唐诺12 小时前
Android Open Accessory (AOA) 协议完全解析
android·usb·aoa
我命由我1234514 小时前
Android 开发 - 广播组件(标准广播、有序广播、静态注册广播、分钟到达广播、网络变更广播...)
android·java·开发语言·网络·java-ee·android studio·android-studio