一、Unity特殊资源目录
(1) Resources:逻辑资源目录,这个目录中的资源会打入到包中,不允许热更。在打包时会被压缩和加密。
加载方式:Resources.Load(常用) 、 AssetDatabase.LoadAssetAtPath等加载接口
(2) StreamingAssets:Raw资源目录,这个目录中的资源也会打入到包中,且允许程序通过Application.streamingAssetsPath读取(移动平台不允许写入)。资源会原封不动的打入包中,因此StreamingAssets主要用来存放一些二进制文件(视频等流文件)。
加载方式:AssetDatabase.LoadAssetAtPath
Editor Default Resources:编辑器Editor资源,不展开讨论。
ResForAssetBundles(可自定义名称):自定义的AssetBundle包,用于热更。
加载方式:BundleInst.LoadAsset(常用) 、AssetDatabase.LoadAssetAtPath 等加载接口
WWW.LoadFromCacheOrDownload:可被用于将Assets Bundles自动缓存到本地磁盘
WWW.Dispose :释放现有的 WWW 对象。
WWW.isDone:是否完成下载?(只读)
WWW.progress:下载进度(只读)
二、Unity实现资源管理器的思路
在游戏发布后,为了能够最及时的修复bug和更新玩法,我们需要将资源以AssetBundle的形式打包,使玩家可以通过热更新获得最新的内容。但是在游戏开发阶段,unity工程目录是程序,美术,策划共享的,这一时期资源变化很频繁,每次资源的变化都打包AssetBundle是不实际的。所以,我们需要封装资源加载功能的实现,使其在PC和原生有不同的实现方式:
PC:从Resources中加载。即用:Resources.Load 、AssetDatabase.LoadAssetAtPath 等接口实现加载。
原生:从AssetBundle中加载资源和场景,需要处理依赖资源的加载。即用:BundleInst.LoadAsset 等接口实现加载
原文链接:https://blog.csdn.net/DeveloperZZW/article/details/128647693
Resources.Load<T>("xx") Resources文件夹下( 不用加后缀)
AssetDatabase.LoadAssetAtPath<T>("Assets/xx.prefab")(加后缀)
若想在程序运行过程中动态调整层级顺序,则需要用到Transfrom类中的函数SetSiblingIndex、SetAsFirstSibling、SetAsLastSibling:
1.SetSiblingIndex函数需要传入一个int类型参数,表示将该物体的层级调整为第几个;
2.SetAsFirstSibling函数会将层级调整为第一个;
3.SetAsLastSibling函数会将层级调整为最后一个。
1:new GameObject();
2:GameObject.Instantiate();
3:GameObject.CreatePrimitive();