• Unity3D研究院之Android同步方法读取streamingAssets


    版本Unity5.3.3

    Android 小米pad1

    首先非常感谢 @守着阳光 同学在下面的留言。让我解决了一个大的谜团。。

    开始我知道 StreamingAssets 路径是这个 path = “jar:file://” + Application.dataPath + “!/assets/”;

    文档在这里: http://docs.unity3d.com/Manual/StreamingAssets.html

    后来我知道了一个新API Application.streamingAssetsPath

    Application.streamingAssetsPath 其实就等于 “jar:file://” + Application.dataPath + “!/assets/”;

    然而问题就出现在这个路径上。我打印了一下LOG

    Application.streamingAssetsPath = jar:file:///data/app/com.xxx.xxx-1.apk!/assets

    Application.dataPath+”!assets” = /data/app/com.xxx.xxx-1.apk!assets

    也就是说Application.streamingAssetsPath  多了一个   jar:file://

    那么如果想在Android上同步方法AssetBundle.LoadFromFile 就得用 Application.dataPath+”!assets”这个路径。

    从此这段代码就正常了。

    Unity的坑啊~ 55555555555555555555

    还有这个路径只能用来AssetBundle.LoadFromFile 。如果想用File类操作。 比如File.ReadAllText  或者 File.Exists  Directory.Exists 这样都是不行的。

    ———————————-!!从今天以后下面的代码已经可以作废了!!—————————

    streamingAssets 这个目录在IOS下是可以同步读取的,但是在Android下必须用www来异步读取。。这就很恶心了~所以最近我就在想办法如何能在Android下也能同步读取。如下图所示,我把一个sprite打成assetbundle并且放在StreamingAssets目录下。

    Unity3D研究院之Android同步方法读取streamingAssets(八十八) - 雨松MOMO程序研究院 - 1

    assetbundle的压缩格式 ,我使用的是unity5.x的lz4方式。

    然后创建一个3D Sprite 在Hierarchy里 试图把这个ab里的sprite加载上去。

    然后,把unity导出成android工程。。

    Unity3D研究院之Android同步方法读取streamingAssets(八十八) - 雨松MOMO程序研究院 - 2

    用eclipse打开刚刚导出的工程。找到UnityPlayerActivity.java类 添加如下代码

    OK 大功告成, 我的sprite已经可以同步加载了。

    如下图所示,那么实际上unity把已经把streamingAssets目录下的资源放在了android的assets目录下。

    Unity3D研究院之Android同步方法读取streamingAssets(八十八) - 雨松MOMO程序研究院 - 3

    那么我们同步加载的原理也是利用Android的AssetManager这个类来读取的。

    刚和同事讨论了一下,如果有效率的问题,我们可以在ndk里读取assets下的资源。 比如向这样~  c#  调用  ndk 读取完直接返回给c# 这样就可以不通过java这一层。。

    http://www.cppblog.com/johndragon/archive/2012/12/28/196754.html

    最后希望大家可以帮忙多多测试看看,谢谢啦~~

  • 相关阅读:
    k8s笔记0528-基于KUBERNETES构建企业容器云手动部署集群记录-4
    k8s笔记0528-基于KUBERNETES构建企业容器云手动部署集群记录-2
    Mysql索引最佳实践笔记0524
    Mysql 5.6 编译报错
    MySQL 源码安装规范
    CentOS 7.3安装Zabbix3.2
    Mysql for Mac 安装及环境配置
    win10下Resin安装--入门(1)
    React---入门(1)
    SVN简介与安装
  • 原文地址:https://www.cnblogs.com/android-blogs/p/6088026.html
Copyright © 2020-2023  润新知