unity安卓环境特殊文件夹(热更时候的用法)
来源:互联网 发布:淘宝实物有色差 编辑:程序博客网 时间:2024/04/30 00:08
- Application.dataPath 这个不想过多结束。此属性用于返回程序的数据文件所在文件夹的路径。例如在Editor中就是Assets了。
- Application.streamingAssetsPath 这个文件夹内的东西可读不可以写,可以被复制和替换,但是不能被删除。热更新涉及的Assetbundle和Lua文本一般都放在这个文件夹下。
- Application.persistentDataPath 这个文件夹在运行过程中既可以读也可以写。可以用File.Exist,也可以用File.Delete。但是注意在安卓移动平台下不能用File.Copy(),只能用www类来下载。然后用File.WriteAllBite这个文件夹来复制。
- coldshower一般在做热更的时候会把服务器的资源下载到Application.persistentDataPath ,然后再把Application.persistentDataPath 中的资源替换到
Application.streamingAssetsPath 。之后再异步判断一下Application.persistentDataPath这个资源还有吗,有的话用File.Delete的方法删除。这里注意必须用异步的方法。CS我在试验的时候发现,用同步的方法有时候不能删除Application.persistentDataPath这个文件夹内的东西。
我在下面的项目中用了移动平台动态读取Debug内容的方法,
我们需要借助 Android SDK 来查看可以使用双击打开,但是我以前这样打开会 时不时的自动退出,,以我自己的路径为例(先连接手机,手机打开开发者模式,打开USB调试,还有别把手机设成只充电模式):然后找到,打开 sdk 路径下 E:\Android\sdk\tools ,按住shift,右键,在此处选择用命令窗口打开,然后输入ddms.bat
接下来就是和这位老哥一样的方法了http://blog.csdn.net/u014230923/article/details/51615746
最后放上我工程的代码截图.项目下载为链接: https://pan.baidu.com/s/1jHLp9sU 密码: u4se
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using System.IO;
public class lzysd : MonoBehaviour {
// Use this for initialization
void Start()
{
m_infile = DataPathTWO + "index.xml";
m_outfile = DataPath + "index.xml";
if (Directory.Exists(DataPath)) Directory.Delete(DataPath, true);
Directory.CreateDirectory(DataPath);
if (Directory.Exists(DataPath))
{
Debug.Log("今天在手机上也可以创建文件夹");
}
StartCoroutine(OnExtractResource2());
}
// Update is called once per frame
void Update()
{
}
string m_infile = "";
string m_outfile = "";
string GUIwenzi = "";
public void WAYTWO()
{
if (Application.platform == RuntimePlatform.Android)
{
StartCoroutine(OnExtractResource3());
}
}
IEnumerator OnExtractResource2()
{
WWW www2 = new WWW(m_infile);
yield return www2;
if (www2.isDone)
{
Debug.Log("今天在手机上的沙盒中仍然存在文件++++++");
File.WriteAllBytes(m_outfile, www2.bytes);
}
www2.Dispose();
www2 = null;
www2 = new WWW(m_outfile);
yield return www2;
if (www2.isDone)
{
Debug.Log("今天在手机上的沙盒中仍然存在文件--------------");
File.WriteAllBytes(m_infile, www2.bytes);
}
// www3.Dispose();
Thrre();
www2.Dispose();
www2 = null;
//临时增加,会被删除
StartCoroutine(OnExtractResource3());
yield break;
}
IEnumerator OnExtractResource3()
{
yield return new WaitForSeconds(0);
if (File.Exists(m_outfile))
{
File.Delete(m_outfile);
Debug.Log("今天在手机上的沙盒中仍然存在文件+3");
}
else
{
Debug.Log("今天在手机上的沙盒中文件直接就没有了+3");
}
if (File.Exists(m_outfile))
{
Debug.Log("今天在手机上的沙盒中仍然存在文件");
}
else
{
Debug.Log("今天在手机上的沙盒中文件直接就没有了+1");
}
}
void Thrre()
{
if (File.Exists(m_outfile))
{
Debug.Log("今天在手机上的沙盒中仍然存在文件");
}
else
{
Debug.Log("今天在手机上的沙盒中文件直接就没有了+1");
}
if (File.Exists(m_outfile))
{
Debug.Log("今天在手机上的沙盒中仍然存在文件+2");
}
else
{
Debug.Log("今天在手机上的沙盒中文件直接就没有了+2");
}
if (File.Exists(m_outfile))
{
File.Delete(m_outfile);
Debug.Log("今天在手机上的沙盒中仍然存在文件+3");
}
else
{
Debug.Log("今天在手机上的沙盒中文件直接就没有了+3");
}
}
public string DataPath
{
get
{
if (Application.isMobilePlatform)
{
return Application.persistentDataPath + "/";
}
return "c:/";
}
}
public string DataPathTWO
{
get
{
if (Application.isMobilePlatform)
{
return Application.streamingAssetsPath + "/";
}
return "c:/";
}
}
}
- unity安卓环境特殊文件夹(热更时候的用法)
- Unity特殊的文件夹
- Unity当中的特殊文件夹
- unity中特殊的文件夹
- unity-热更1
- 安卓air应用热更新法
- unity所有特殊文件夹的用途
- Unity中所有特殊的文件夹
- Unity特殊文件夹
- Unity 特殊文件夹
- Unity特殊文件夹
- Unity中的特殊文件夹
- unity中特殊文件夹
- unity 特殊文件夹
- Unity特殊文件夹
- Unity特殊文件夹详解
- Unity 特殊文件夹
- Unity C#脚本热更
- 数据库迁移必备--批量迁移链接服务器
- How to craw the Info of BiliBIli with python in Parallel and MySQL storage
- 多边形游戏(经典的环形dp,区间DP)
- android BottomTabBar的简单使用(类似:京东底部导航栏)
- 前端多终端浏览器兼容
- unity安卓环境特殊文件夹(热更时候的用法)
- 牛客算法-第三章
- 将Python文件打包成exe的两种方法(pyinstaller和py2exe)之py2exe篇
- Golang从入门到精通(三):Golang数据类型
- adb command not found
- setResult(Activity.RESULT_OK)失败分析
- AliOS Things 基于组件化思想的多bin特性
- MySQL的安装
- AndroidStudio的JNI编程举例