版权声明:本文为博主原创文章,转载请注明 http://blog.csdn.net/u012741077 https://blog.csdn.net/u012741077/article/details/54884623
之前一直使用循环的方式创建,现在找到了一种更简便的方法,效果和Inspector面板上是一模一样的。省事了ヾ(Ő∀Ő๑)ノ太好惹!
效果如下:
源码如下:
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
namespace XM.Editor
{
public class AssetBundleCreator : EditorWindow
{
[MenuItem("Tools/Build Asset Bundle")]
public static void BuildAssetBundle()
{
var win = GetWindow<AssetBundleCreator>("Build Asset Bundle");
win.Show();
}
[SerializeField]//必须要加
protected List<UnityEngine.Object> _assetLst = new List<UnityEngine.Object>();
//序列化对象
protected SerializedObject _serializedObject;
//序列化属性
protected SerializedProperty _assetLstProperty;
protected void OnEnable()
{
//使用当前类初始化
_serializedObject = new SerializedObject(this);
//获取当前类中可序列话的属性
_assetLstProperty = _serializedObject.FindProperty("_assetLst");
}
protected void OnGUI()
{
//更新
_serializedObject.Update();
//开始检查是否有修改
EditorGUI.BeginChangeCheck();
//显示属性
//第二个参数必须为true,否则无法显示子节点即List内容
EditorGUILayout.PropertyField(_assetLstProperty, true);
//结束检查是否有修改
if (EditorGUI.EndChangeCheck())
{//提交修改
_serializedObject.ApplyModifiedProperties();
}
}
}
}