unity发布安卓lua路径不存在问题
项目用的是xlua 采用自定义加载方式
使用File去读取路径下的文件,lua文件本来放在了StreamingAssets路径下
PC运行无问题,发布安卓后,居然提示路径不存在。
查了下资料后发现,File的这种操作方式无法在安卓平台去读取StreamingAssets路径下的文件,见鬼
这个路径只能用来AssetBundle.LoadFromFile来进行操作
资料参考:http://www.xuanyusong.com/archives/4033
如果真的想用File这种方式来读取的话,那么就不要把文件放在StreamingAssets路径下了
只能把lua放在Application.persistentDataPath; 这个路径下,我还是手动拷贝到安卓上的,确实可以做到再安卓上可以看见这个文件
(我在模拟器上面找到了这个路径,在小米手机上居然没有找到这个路径 = = )
这种可以制作手机上的自定义脚本游戏,感觉不错。
后来的解决方案是,把lua加上txt后缀,然后ab打包放在StreamingAssets路径下,就可以用AssetBundle.LoadFromFile来进行操作了
【代码】
void RequireLua(string name) {
TextAsset luaCode = bundle.Load(name, typeof(TextAsset)) as TextAsset;
lua.DoString(luaCode.text);
}
感觉不错,比我的要方便,之前用的大奥的那个lua框架,不是很好用,关键是没理解他的那种写法,那么我可以去借鉴上面代码的写法
【其他参考资料】
unity 在移动平台中,文件操作路径详解:http://blog.csdn.net/huang9012/article/details/44308743
Unity中的Path对应各平台中的Path :http://www.manew.com/forum.php?mod=viewthread&tid=21404&extra=page%3D1%26filter%3Dtypeid%26typeid%3D143
优秀程序员的博客有哪些?:https://www.zhihu.com/question/19934502
【可能会用到的再度优化】保留.lua后缀名,将lua文件打包成assetbundle:http://blog.csdn.net/musicseli/article/details/46415075
【检测更新,AB加密】Unity手游之路<十二>手游资源热更新策略探讨:http://blog.csdn.net/janeky/article/details/17666409
【Unity资源处理机制(Assets/WWW/AssetBundle/...)读取和加载资源方式详解】:http://blog.csdn.net/swj524152416/article/details/54022282
============================================================================10月9日更新=========================================================================================
把lua打包成assetbundle,此时注意后缀为lua还无法打包
xlua写成 .lua.txt才可以打包
不过写成了这样后,lua脚本中的require关键字里面引用的路径在ab中就没啥用了,此时让lua去调用c#中的自定义加载lua方法来加载lua,以此达到require的目的
值得注意的是,之前我的代码里面写的是一当require的话会自动调用其构造函数,这个是不允许的,需要改下,让其不去调用构造函数
unity发布安卓lua路径不存在问题的更多相关文章
- Unity发布安卓Splash Image适应手机、平板
问题描述: Unity发布安卓应用时,遇到只能添加一张SplashImage而需要适配手机及平板不同分辨率处理 解决方法: http://blog.csdn.net/aiyan1111111/arti ...
- Unity发布安卓无法读取StreamingAssets文件下数据库的问题
在移动端StreamingAssets下的文件是只读的,但大家可能跟我一样遇到了发布安卓以后放在StreamingAssets下的数据库文件一样读取不了, 但其实这个文件夹其实是可以读取到的,所以我们 ...
- Unity发布各平台路径
#if UNITY_EDITOR string filepath = Application.dataPath + "/StreamingAssets"; #elif UNITY_ ...
- Unity发布安卓后,安卓输入键盘字体白色
项目里需要用到显示手机电池电量的,但是又不想写安卓,倒jar包,还要做配置,还要写IOS,好麻烦的说.一查,unity后期版本有这个API,索性就升级高版本的了.但是遇到个小问题,那就是安卓输入的时候 ...
- unity发布安卓 截图保存到本地
using System.IO; //获取系统时间并命名相片名 System.DateTime now = System.DateTime.Now; string times = now.ToStri ...
- unity发布安卓 手指控制物体缩放和旋转
直接帮到物体的身上就可以了 using UnityEngine; using System.Collections;using System.IO;public class hehe : MonoBe ...
- 在Android Studio上测试运行,Unity发布成Android包的环境搭建步骤
我用的是unity5.4.3版本,jdk是1.8.0_131版本,Android-SDK是r24.4.1版本,Android-NDK是r13b版本,作者是刚开始写博客,希望对在unity摸索的人有 ...
- Unity发布WebGL时如何修改默认的载入进度条
Unity发布WebGL版本后,需要去除Unity的Logo,首先关闭Splash Image去除Made with Unity启动画面(在File->Build Settings->Pl ...
- 用好lua+unity,让性能飞起来——关于《Unity项目常见Lua解决方案性能比较》的一些补充
<Unity项目常见Lua解决方案性能比较>,这篇文章对比了现在主流几个lua+unity的方案 http://blog.uwa4d.com/archives/lua_perf.html ...
随机推荐
- HTML5 Canvas核心技术:图形、动画与游戏开发 PDF扫描版
HTML5 Canvas核心技术:图形.动画与游戏开发 内容简介: <HTML5 Canvas核心技术:图形.动画与游戏开发>中,畅销书作家David Geary(基瑞)先生以实用的范例程 ...
- go channel缓冲区的大小
go channel缓冲区的大小 len也可以作用于channel,代表现在channel缓冲区中还有多少数据没有读取.示例如下 c:=make(chan int,20) fmt.Println(&q ...
- 一、SpringBoot是什么?
SpringBoot是什么? 我管她是什么,好用就行了啊!!!但是无奈我的简历上写了“精通SpringBoot”...那总得大体说得上SpringBoot是个啥东西吧! Spring相信大家都用过,那 ...
- iOS系统各个版本的占比查询
目的:为了向大多数看齐,我们要实时了解应用系统的使用占比 1.苹果官网查询各个系统的占比: Apple 2.各种设备各种系统的占比 第三方
- 宏定义(无参宏定义和带参宏定义),C语言宏定义详解
1.宏定义说明 宏定义是比较常用的预处理指令,即使用"标识符"来表示"替换列表"中的内容.标识符称为宏名,在预处理过程中,预处理器会把源程序中所有宏名,替换成宏 ...
- Python爬取招聘信息,并且存储到MySQL数据库中
前面一篇文章主要讲述,如何通过Python爬取招聘信息,且爬取的日期为前一天的,同时将爬取的内容保存到数据库中:这篇文章主要讲述如何将python文件压缩成exe可执行文件,供后面的操作. 这系列文章 ...
- CSS中#和.的区别
id:用来定义页面中大的样式,如栏目划分,顶部,正文,底部等:用#top的形式来定义: class:用来定义一些比较细节的样式,如具体的一个菜单,一行文字等,用.text的形式来定义. 定义HTML中 ...
- js 三大事件(鼠标.键盘.浏览器)
鼠标事件: click:单击 dblclick:双击 mousedown:鼠标按下 mouseup:鼠标抬起 mouseover:鼠标悬浮(进入) mouseout:鼠标离开(离开) mousemov ...
- libcaffe.so.1.0.0: cannot open shared object file: No such file or directory 运行时报错
caffe安装好后lib没有配置到/usr/lib或/usr/local/lib中,需手动配置: sudo vim ~/.bashrc export LD_LIBRARY_PATH=your_path ...
- springcloud微服务总结三 服务客户端
一 springcloud服务理解: dubbo中服务注册和调用都是都过注解来进行的,dubbo中在service层中调用服务是通过将@service注解改变为dubbo代码架包中的service注解 ...