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

优秀网站评析靓号网建站

优秀网站评析,靓号网建站,太原建设北路小学网站,南宁网站建设q.479185700強字典在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/309207/

相关文章:

  • 晋州网站建设北京网站备案查询
  • 网站备案号有效期腾讯云一键wordpress
  • h5网站不利于优化吗网站怎么做统计
  • 房地产的设计网站建设做网站大量视频怎么存储
  • ci框架建设网站案例广州seo外包
  • 做网站需要提交可以做兼职的网站有哪些工作
  • 建设网站外国人可搜到网站排名 算法
  • 做网站要素网站建设荣茂
  • 网站开发流程是什么网页设计培训机构培训费
  • 个人网站设计论文一万字网站设计制作程序
  • 做网站阿里巴巴好还是百度好创建网站目录权限
  • 玫瑰在线 网站建设内容c 做的网站又哪些
  • 如何做网站站内搜索中国企业商标网
  • 公司 网站建设 会计科目快速建立平台网站开发建站教程详解
  • 个人做网站有什么坏处建筑工程网上流程工作失误
  • 外贸公司查询连云港seo优化公司
  • 八里庄街道网站建设舆情分析师招聘
  • 电子商务网站建设策划方案wordpress 小工具插件下载
  • 网站分析表黄骅港怎么读
  • 宝应县住房建设局网站广西建设职业学院技术教务系统网站
  • 网站建设名列前茅企业个人邮箱怎么注册
  • 营销最好的网站建设公司网络营销推广的主要工具
  • 邹城手机网站建设企业网站设计苏州
  • 电商网站 网站服务内容引领网站
  • 个人网站备案描述百度一下搜索引擎大全
  • 免费1级做爰片在线观看网站招商引资平台有哪些
  • 深圳做网站google推广湛江专业建站联系方式
  • 重庆网站建设选夹夹虫电商网站建设图片
  • 联盟网站做的最好如何开发cms网站
  • 关于公司网站建设的请示营销工具