IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> 2021-07-8 unity学习笔记(24)之利用unity自带的JsonUtility实现深拷贝 -> 正文阅读

[游戏开发]2021-07-8 unity学习笔记(24)之利用unity自带的JsonUtility实现深拷贝

2021-07-8 unity学习笔记(24)之利用unity自带的JsonUtility实现深拷贝

有时候在制作中,需要玩家有一份物品数据,敌人也有一份物品数据,而这份物品数据均来自于共同的物品数据集合,需要添加物品的时候就根据ID去这个共同的物品数据库里面寻找。
如果这些物品数据不涉及值的更改,那么直接从物品数据集合里面取就行了,但如果涉及值的更改,比如物品数量,那么就不能直接取了,而是需要对取出来的数据进行深拷贝。因为物品数据一般都是引用类型,不做深拷贝就取出来该值的话,会将所有引用了该物品数据的其他物品数据的值也一并更改。
然而在网上找了几种深拷贝的方法,都不太适用于unity中,因为物品数据中存有一些无法序列化的对象,比如GameObject,这时候就轮到unity自带的JsonUtility登场了。
这个JsonUtility有鸡肋之处也有方便之处,鸡肋之处在于它不支持字典的序列化,用来存储数据时不方便,而方便之处在于它支持GameObject的序列化,所以用它来深拷贝还是挺适合的。
代码也很简单,就几行:

public static T DeepCopy<T>(this T obj)
    {
        string json = JsonUtility.ToJson(obj);
        T targetData = JsonUtility.FromJson<T>(json);
        return targetData;
    }
  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-07-09 17:41:10  更:2021-07-09 17:41:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/8 20:05:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码