Open alwaystest opened 8 years ago
标签(空格分隔): Unity Android
以加载图片显示到Unity中为例。
使用Unity 5.3。 Android Studio 2.2。 Android SDK 24
首先参照雨松的例子http://www.xuanyusong.com/archives/1480
Android中调用相机照相并裁剪网上已经有了许多的例子。这里只要能调用相机照相并且保存到指定路径即可,如果Unity读取大图片造成OOM问题,那还是再裁剪一下吧。
注解1:主要是路径”/mnt/sdcard/Android/data/com.xys/files”,如下图所示,我们在这里把文件保存在这个路径下。为什么要把图片2进制文件写在这里呢? 还记得以前MOMO给大家说过在Unity中访问Android或IOS本地2进制文件时用到的这个路径, Application.persistentDataPath 该路径等价于 /mnt/sdcard/Android/data/com.xys/files ,当然后者的包名是对应的工程包名,这样在Unity中可以找到对应裁剪后的图片文件,并且显示在Unity中。
注解1:主要是路径”/mnt/sdcard/Android/data/com.xys/files”,如下图所示,我们在这里把文件保存在这个路径下。为什么要把图片2进制文件写在这里呢? 还记得以前MOMO给大家说过在Unity中访问Android或IOS本地2进制文件时用到的这个路径,
Application.persistentDataPath 该路径等价于 /mnt/sdcard/Android/data/com.xys/files ,当然后者的包名是对应的工程包名,这样在Unity中可以找到对应裁剪后的图片文件,并且显示在Unity中。
实际上经过我这里测试,Unity需要访问的文件地址并非一定要放到/mnt/sdcard/Android/data/com.xys/files。只要在AndroidManifest.xml定义了android.permission.WRITE_EXTERNAL_STORAGE权限,Unity就可以读取到文件。
/mnt/sdcard/Android/data/com.xys/files
AndroidManifest.xml
android.permission.WRITE_EXTERNAL_STORAGE
我在相机照完相之后,Android调用Unity开始读取图片,将相片的绝对路径传给Unity,Unity使用代码如下
string url = "file://" + path; WWW www = new WWW(url);//file:///storage/emulated/0/*** yield return www; Texture2D image = www.texture; tex.mainTexture = image;
当然,雨松的路径也是可以读取到的。
有一点我没有看明白,不知道这里有没有必要。
while (!www.isDone) { }
Unity加载Android存储卡中的文件
标签(空格分隔): Unity Android
以加载图片显示到Unity中为例。
使用Unity 5.3。 Android Studio 2.2。 Android SDK 24
首先参照雨松的例子http://www.xuanyusong.com/archives/1480
Android中调用相机照相并裁剪网上已经有了许多的例子。这里只要能调用相机照相并且保存到指定路径即可,如果Unity读取大图片造成OOM问题,那还是再裁剪一下吧。
实际上经过我这里测试,Unity需要访问的文件地址并非一定要放到
/mnt/sdcard/Android/data/com.xys/files
。只要在AndroidManifest.xml
定义了android.permission.WRITE_EXTERNAL_STORAGE
权限,Unity就可以读取到文件。我在相机照完相之后,Android调用Unity开始读取图片,将相片的绝对路径传给Unity,Unity使用代码如下
当然,雨松的路径也是可以读取到的。
有一点我没有看明白,不知道这里有没有必要。