1.编辑器上方的菜单栏


这里设置的输出路径为StreamingAssets,build完成后会有下图的两个相同名字的文件,这是总的配置文件Windows.manifest

单个AssetBundle包的配置文件:

一键标记工具
层级为:
场景/功能/资源种类
思路:
1.遍历要打包的文件夹
2.截取文件夹名字
注意事项:场景文件要单独放置在一个文件夹
加载assetBundle
1.加载一个资源需要先加载他的依赖资源
2.三块内存的第一块
2.1网络存储assetbundle时,用www下载到本地,而后通过AssetBundle.LoadFromFile函数加载(用此函数加载的资源叫做内存镜像)
2.2存储在本地时AssetBundle.LoadFromFile函数加载(用此函数加载的资源叫做内存镜像)
3.三块内存的第二块
解压assetbundle
使用AssetBundle.Load()这个函数 将镜像里面的压缩包解压
4.三块内存的第三块
使用资源
使用GameObject.instance这个函数来使用解压出来的资源
卸载
1.卸载一个资源需要先判断这个资源是否被引用,如果没有被引用先卸载依赖关系,而后现在此资源
2.释放第一块内存
使用AssetBundle.Unload(false/true)这个api来卸载资源,参数为false时只卸载第一块内存的镜像,为true时卸载第一块和第二块的资源,一般使用false。
3.释放第二块内存
使用Resources.UnloadAseet(obj)这个api释放指定的资源(这个api只能卸载GameObject,不能卸载材质、贴图这些资源),使用Resource.UnloadUnusedAsset这个api释放材质球、贴图等等。
4.释放第三块内存
使用Destroy()这个api
2.检视面板编辑
using UnityEditor;
using UnityEngine;
/// <summary>
/// 改写检视面板的Transform
/// </summary>
[CustomEditor(typeof(Transform))]
public class TransformEditor : Editor {
Transform transform;
private void OnEnable()
{
transform = (Transform)target;
}
public override void OnInspectorGUI()
{
EditorGUILayout.BeginVertical();
transform.localPosition = EditorGUILayout.Vector3Field("位置", transform.localPosition);
transform.localEulerAngles = EditorGUILayout.Vector3Field("旋转", transform.localEulerAngles);
transform.localScale = EditorGUILayout.Vector3Field("缩放", transform.localScale);
transform.position = EditorGUILayout.Vector3Field("世界坐标", transform.position);
//if (GUILayout.Button("CopyWorldPosition"))
//{
// Itools.
//}
EditorGUILayout.EndVertical();
}
}
网友评论