当你在 工程目录下的 Asset 文件夹中放置一个文件时(电脑上的文件夹,不是 Unity 界面中的文件夹),Unity会自动检测到一个新的文件被添加(Unity会不停地检查Assets文件夹中的内容),然后 Unity会给这个资源赋予一个资源ID。

你在 Unity编辑器中看到的资源是经过处理的,他和电脑上原始的资源文件是不同的。例如,纹理可以是Assets文件夹的一个PNG文件,但是可能在导入和处理之后被转换成一个内部格式。

资源使用内部格式,允许Unity保留附加数据,称为元数据

所有资源元数据被保存在Library文件夹

如果你在 Unity编辑器中创建文件夹,这些文件夹会被对应到实际的文件系统里。任何对文件、文件夹的删除、移动操作都应该在 Unity编辑器中进行,不可以直接在文件系统中直接做这些操作。

当备份一个项目时,必须备份各个项目文件夹。

资源对比/下载/更新的一个参考:

http://blog.csdn.net/janeky/article/details/17666409

版本控制

官方说明:http://docs.unity3d.com/Manual/ExternalVersionControlSystemSupport.html

1. 设置:Edit -> Project Settings -> Editor -> Version Control -> Hidden Meta Files 或者 Visible Meta Files

2. 将工程下的 Assets、Project Settings 文件夹加入版本控制即可!不需要加 Library 了。

动态资源加载

http://blog.csdn.net/jbjwpzyl3611421/article/details/11050731

http://blog.csdn.net/dingkun520wy/article/details/26594991

1. 数据(任何自定义的数据,如策划配的表)使用 SQLite (https://github.com/Busta117/SQLiteUnityKit)存在一个2进制文件 data.db 中 
1.5. 一开始, data.db 放在 Application.streamingDataPath 路径下,安装到 Android 后,这个路径会自动对应到某个路径中。
2. 但是,因为 Application.streamingDataPath 这个路径是只读的,所以,所有的东西‘后来’都存储在 Application.persistentDataPath 中(这个路径可读可写)。这样,数据其实在 streaming 和 persistent 中各有一份,自己处理一下,看是要一开始就拷贝到 persistent 变成同一份还是要怎样都可以。反正后来就只在 persistent 中处理了
【有点怪,据我所知就是这样的】
3. data.db 的写入:(更新时需要写入)使用 WWW(url) 下载,下载完后数据在内存中,然后自己使用 System.IO 写到 Application.persistentDataPath/data.db 就可以了
4. data.db 的读取:普通的读取(使用 System.IO 读取)
5. .unity3d (即 .assetbundle ) 的写入:也是用普通的写入,即 System.IO 写入
6. .unity3d (即 .assetbundle ) 的读取:使用 WWW (localpath) (用WWW才能解成Unity识别的东西)的方式从 Application.persistentDataPath 读取

7. 这2类文件都使用2进制数据求差异的方式更新(如果文件太小也可以用替换的)

Unity资源管理与更新的更多相关文章

  1. Unity 资源管理与更新

    当你在 工程目录下的 Asset 文件夹中放置一个文件时(电脑上的文件夹,不是 Unity 界面中的文件夹),Unity会自动检测到一个新的文件被添加(Unity会不停地检查Assets文件夹中的内容 ...

  2. Unity代码热更新方案 JSBinding + SharpKit 首页

    目前Unity的代码更新方案有很多,主要以lua为主. JSBinding + SharpKit 是一种新的技术,他做了两件事情: JSBinding将C#导出到 JavaScript (引擎是 Mo ...

  3. 出售一套Unity + Lua热更新框架代码

    出售一套Unity + Lua的客户端框架代码,功能有资源管理.网络通信.配置文件解析.热更新.文件读写.Lua加密揭秘.UI框架.打包工具.编辑器工具等,已经在多个实际项目(已上线)中使用.代码优雅 ...

  4. 【转载】Unity 合理安排增量更新(热更新)

    原帖地址:由于我看到的那个网站发的这篇帖子很大可能是盗贴的,我就暂时不贴地址了.避免伤害原作者 原版写的有点乱,我个人修改整理了下. --------------------------------- ...

  5. JSBinding+Bridge.NET:Unity游戏热更新方案

    老版本链接如下:http://www.cnblogs.com/answerwinner/p/4469021.html 新用户不要再使用老版本了. 新版本 JSBinding 将抛弃 SharpKit ...

  6. 用ECMAScript4 ( ActionScript3) 实现Unity的热更新

    unity热更新是一个经久不衰的话题.除了最常见的lua之外,还有如JSBinding,C#等等.这里介绍一个使用ECMAScript4进行热更新的方案.它吸收了各家的优点,特色很鲜明. 项目地址: ...

  7. 用ECMAScript4 ( ActionScript3) 实现Unity的热更新 -- Demo分析

    如何创建工程 下载最新的Unity发布插件包. 打开Unity,新建一个项目 将插件包导入 在菜单中点击ASRuntime/Create ActionScript3 FlashDevelop HotF ...

  8. 用ECMAScript4 ( ActionScript3) 实现Unity的热更新 -- 在脚本中使用MonoBehaviour

    继上次分析了热更新的Demo后,这次来介绍如何在热更新代码中使用MonoBehaviour. MonoBehaviour挂载到GameObject对象上的脚本的基类.平常Unity开发时,简单的做法就 ...

  9. 用ECMAScript4 ( ActionScript3) 实现Unity的热更新 -- 使用原型链和EventTrigger

    原型链是JS的必备,作为ECMAScript4,原型链也是支持的. 特别说明,ActionScript3是支持完整的面向对象继承支持的,原型链只在某些非常特殊的情况下使用. 本文旨在介绍如何使用原型链 ...

随机推荐

  1. Android布局— — —线性布局

    以水平或垂直的方式显示界面中的控件 线性布局 语法格式: <LinearLayout xmlns:android="http://schemas.android.com/apk/res ...

  2. Wythoff's game

    这个问题就是OJ题里出现的取石子游戏,http://en.wikipedia.org/wiki/Wythoff%27s_game. 维基里面的通项公式并不适用于算法求解.需要理解下面两条规律: 1.A ...

  3. 5分钟学习maven(根据英文文档整理)

    英文原地址:http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html 一.前提 需要懂得如何在计算机上安装软件 ...

  4. 显示ios设备信息的程序

    以下是运行在本人iphone4上的截图,支持中文简体,中文繁体,英文,支持iphone和ipad,当然由于没有ipad,ipad的测试用的模拟器.支持iphone4的Retina屏幕.本来有6个标签, ...

  5. IOS 在http请求中使用cookie

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://rainbird.blog.51cto.com/211214/805173 一直以 ...

  6. Android Launcher 详解

    (1)      Launcher的定义:Android系统启动后,加载的第一个程序,是其他应用程序的入口. (2)      Launcher的构成:HomeScreen(1.workspace(A ...

  7. PHP中目录的操作

    文件的操作:创建文件,删除文件,重命名文件rename(),移动/复制文件,读取,大小(PHP都有内置的函数) 目录的操作:创建目录(有),删除目录,复制目录,统计目录大小,遍历(自己定义函数) 一. ...

  8. 一个Android Socket的例子

    1.开篇简介 Socket本质上就是Java封装了传输层上的TCP协议(注:UDP用的是DatagramSocket类).要实现Socket的传输,需要构建客户端和服务器端.另外,传输的数据可以是字符 ...

  9. javascript js表示中文日期的经典写法

    <div id="time"> <script>document.getElementById('time').innerHTML=new Date().t ...

  10. 《more effective c++》条款26 限制类对象的个数

    问题: 如何限制类对象的个数?比如1个,10个等等. 方法(1): 将类的构造函数定义为private,那么就无法实例化这个类了.但是如何创建1个对象出来?方法有2种: 1.声明一个友元函数,那么在友 ...