100个 Unity实用技能 | 将Dictionary字典中的数据序列化 到Unity Inspector监视器面板

Posted 呆呆敲代码的小Y

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了100个 Unity实用技能 | 将Dictionary字典中的数据序列化 到Unity Inspector监视器面板相关的知识,希望对你有一定的参考价值。

Unity 小科普

老规矩,先介绍一下 Unity 的科普小知识:

  • Unity是 实时3D互动内容创作和运营平台 。
  • 包括游戏开发美术建筑汽车设计影视在内的所有创作者,借助 Unity 将创意变成现实。
  • Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机平板电脑PC游戏主机增强现实虚拟现实设备。
  • 也可以简单把 Unity 理解为一个游戏引擎,可以用来专业制作游戏
  • 🎬 博客主页:https://xiaoy.blog.csdn.net

  • 🎥 本文由 呆呆敲代码的小Y 原创,首发于 CSDN🙉

  • 🎄 学习专栏推荐:Unity系统学习专栏

  • 🌲 游戏制作专栏推荐:游戏制作

  • 🌲Unity实战100例专栏推荐:Unity 实战100例 教程

  • 🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!

  • 📆 未来很长,值得我们全力奔赴更美好的生活✨

  • ------------------❤️分割线❤️-------------------------



Unity 实用小技能学习

将Dictionary字典中的数据序列化 到Unity Inspector监视器面板

由于默认的Dictionary是不能被序列化到Unity的监视器面板中的,所以就需要做一些额外处理来让其显示到Inspector上以满足我们的配置。

简单实现方法主要有两种:

  • 方法1.通过使用结构体+数组/列表的方式来实现。
  • 方法2:使用编辑器扩展插件实现,比如Odin插件等

方法一 实现方式如下:

此时就可以在Inspector监视器面板中配置数值了,有需要的话赋值后可以把值添加到字典中,然后控制字典的增删改查就可以啦。

using System.Collections.Generic;
using UnityEngine;

[System.Serializable]
public class DicTest : MonoBehaviour

    [System.Serializable]
    public struct PrefabData
    
        public int id;
        public string name;
    

    public PrefabData[] prefabDatas;
    public List<PrefabData> prefabDataList = new List<PrefabData>();

    public Dictionary<int, string> prefabDataDic = new Dictionary<int, string>();

    private void Start()
    
        // 字典内容添加
        for (int i = 0; i < prefabDataList.Count; i++)
        
            prefabDataDic.Add(prefabDataList[i].id, prefabDataList[i].name);
        
    

实现效果如下:

方法二 实现方式如下:

在Unity中导入Odin插件,然后在脚本中添加命名空间using Sirenix.OdinInspector,将脚本类继承SerializedMonoBehaviour

这样我们正常定义字典结构,字典就可以正常显示在Inspector面板中啦!

using System.Collections.Generic;
using UnityEngine;
using Sirenix.OdinInspector;

public class DicTest : SerializedMonoBehaviour

    public Dictionary<int, string> prefabDataDic = new Dictionary<int, string>();


实现效果如下:

Odin插件时Unity中比较常用的编辑器扩展插件,可以帮助我们在监视器面板中自定义多种显示效果,后面会专门出文章介绍此插件的使用~


以上是关于100个 Unity实用技能 | 将Dictionary字典中的数据序列化 到Unity Inspector监视器面板的主要内容,如果未能解决你的问题,请参考以下文章

100个 Unity实用技能| Unity将本地图片文件显示到Image组件中 通用方法整理

100个 Unity实用技能| Unity将本地图片文件显示到Image组件中 通用方法整理

100个 Unity实用技能| 游戏中使技能或装备跟随角色环绕,持续旋转

100个 Unity实用技能| 游戏中使技能或装备跟随角色环绕,持续旋转

100个 Unity实用技能 | Unity自定义脚本的初始模版

100个 Unity实用技能 | Unity自定义脚本的初始模版