首页 > 学院 > 开发设计 > 正文

[Unity3D]编辑器扩展之数组或List显示

2019-11-09 18:58:16
字体:
来源:转载
供稿:网友

  之前一直使用循环的方式创建,现在找到了一种更简便的方法,效果和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(); } } }}

这里写图片描述


上一篇:Cookie-02

下一篇:Cookie

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表