编写工具栏

1.编辑器上方的菜单栏

image.png
image.png

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


image.png

单个AssetBundle包的配置文件:


image.png

一键标记工具
层级为:
场景/功能/资源种类

思路:
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;

///


/// 改写检视面板的Transform
///

[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();
}

}

你可能感兴趣的:(编写工具栏)