当前位置: 首页 > news >正文

希腊网站后缀广州网站建设:

希腊网站后缀,广州网站建设:,做网站维护需要学什么,网站排名优化机构字典在Inspector的显示 方法一:实现ISerializationCallbackReceiver接口 《unity3D游戏开发第二版》记录 在编辑面板中可以利用序列化监听接口特性对字典进行序列化。 主要继承ISerializationCallbackReceiver接口 实现OnAfterDeserialize() OnBeforeSerialize() …

字典在Inspector的显示

方法一:实现ISerializationCallbackReceiver接口

《unity3D游戏开发第二版》记录
在编辑面板中可以利用序列化监听接口特性对字典进行序列化。
主要继承ISerializationCallbackReceiver接口 实现OnAfterDeserialize() OnBeforeSerialize() 的方法进行监听序列化和反序列化之前的事件。

例子:
配置的ScriptableObject脚本:

[CreateAssetMenu(fileName = "FileName2PathConfig", menuName = "xasset/Custom/FileName2PathConfig")]public class FileName2PathConfig : ScriptableObject{public SerializationDic<string, string> fileDictionary;}// Dictionary<TKey, TValue> 可序列化字典[Serializable]public class SerializationDic<TKey, TValue> :ISerializationCallbackReceiver{[SerializeField]List<TKey> keys;[SerializeField]List<TValue> values;Dictionary<TKey, TValue> target;public Dictionary<TKey, TValue> ToDictionary() { return target; }public SerializationDic(Dictionary<TKey, TValue> target){this.target = target;}public void OnBeforeSerialize(){keys = new List<TKey>(target.Keys);values = new List<TValue>(target.Values);}public void OnAfterDeserialize(){var count = Math.Min(keys.Count, values.Count);target = new Dictionary<TKey, TValue>(count);for (var i = 0; i < count; ++i){target.Add(keys[i], values[i]);}}}

控制Inspector面板显示的脚本:

[CustomEditor(typeof(SerializationDic<string,string>))]public class SerializationDicEditor : Editor{public override void OnInspectorGUI(){//更新数据serializedObject.Update();SerializedProperty propertyKey=serializedObject.FindProperty("keys");SerializedProperty propertyValue=serializedObject.FindProperty("values");int size=propertyKey.arraySize;GUILayout.BeginVertical();for(int i=0;i<size;i++){GUILayout.BeginHorizontal();SerializedProperty key=propertyKey.GetArrayElementAtIndex(i);SerializedProperty value=propertyValue.GetArrayElementAtIndex(i);key.stringValue=EditorGUILayout.TextField("key",key.stringValue);value.stringValue=EditorGUILayout.TextField("value",value.stringValue);GUILayout.EndHorizontal();}GUILayout.EndVertical();//保存数据serializedObject.ApplyModifiedProperties();}}

效果

方法二 使用插件Odin Inspector 官网

代码:

[CreateAssetMenu(fileName = "FileName2PathConfig", menuName = "xasset/Custom/FileName2PathConfig")]public class FileName2PathConfig : SerializedScriptableObject{[DictionaryDrawerSettings(KeyLabel = "资源名字", ValueLabel = "资源路径")]public Dictionary<string, string> fileDictionary;}

效果:

http://www.yayakq.cn/news/540486/

相关文章:

  • html5手机网站织梦模板网站建设大赛
  • 佛山免费建站平台西安发布信息的平台
  • 企业网站开发汇报wordpress图片标注插件
  • 旅游网站制作 价格信息门户网站制作
  • google提交网站wordpress太强大
  • 搜索网站大全苏州谢谢网络公司
  • 新时代文明实践站网址网站推广目标关键词
  • 如何 做网站黔东南购物网站开发设计
  • 搬瓦工做网站苏州工业园区教育网
  • 开贴纸网站要怎么做的工业设计考研学校排名
  • 密云成都网站建设网站制作公司拟
  • 杭州网站推广营销权威发布图片大全
  • 设计类相关网站百度广告点击一次多少钱
  • 深圳公司网站改版通知卖手机网站开发的必要性
  • 苏州做网站优化网站收录很少却有排名
  • 建立网站的费用留学网站建设多少钱
  • 免费设计标志seo营销网站的设计标准
  • app和手机网站的区别周杰伦做的广告网站
  • 西乡做网站公司弄几个的网站
  • 搬家网站建设思路烟台做网站哪里好
  • 企业网站建设的现状电子商务网站建设阶段
  • 汉中市建设局网站洛可可创新设计集团
  • pw网站更换域名免费网站建站软件
  • 做网站推广怎么找客户wordpress哪种主页更利于seo
  • 网站开发电子书产品网站做营销推广
  • WordPress电影网站源码静态网页模板简约
  • 网站建设公司每年可以做多少个网站网站关键词排名软件
  • 东莞市公司网站建设怎么样小米口碑营销案例
  • 广州申请公司注册网站网站建设 天佑互联
  • 自己做网站哪种好做百度推广和哪些网站有合作