学习完基础的背包系统,发现一个问题。背包里强化装备或者升级装备时,同名装备的属性也会发生变动。
这个问题一度让我十分苦恼,网上也找不到原因。
后来发现初始化背包时,实例化的同名物品指向的地址相同,也就是说所有同名装备都是一个物体,对任意一个装备进行操作都会改变这个装备的同名装备。
解决办法:
序列化克隆每一个装备对象,使他们指向不同地址。
步骤:
第一,在装备类前加上[System.Serializable],使其可序列化

[System.Serializable]  //表示该类可以序列化的意思
public class Iventory()
{
}

第二,装备类对象序列化

//必要的引用
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;  public class Main()
{
private arraylist<iventory> list = new arraylist<iventory>();
private Iventory item = new Iventory();void xuliehua()
{
/*序列化前:id = 1001
item和it是引用类型,地址相同,改变item,it也会跟着改变*/
item = list[1];
Iventory it = list[1];
var a = item;//序列化,item的地址指向新的托管堆,对item进行操作
item = DeepClone(a) as Iventory;
item.id = 1003;/*序列化后item.id = 1003   it.id = 1001
对item进行操作,it的值并不会改变*/
}
//序列化函数public static object DeepClone(object obj){BinaryFormatter bFormatter = new BinaryFormatter();MemoryStream stream = new MemoryStream();bFormatter.Serialize(stream, obj);stream.Seek(0, SeekOrigin.Begin);return bFormatter.Deserialize(stream);}
}

克隆对象之后,每件装备指向不同地址,操作一个不会影响其他。

unity遇到的坑----背包篇---强化装备影响其他装备属性相关推荐

  1. Unity AssetBundle 踩坑记录

    Unity AssetBundle 踩坑记录 editor 下选择什么平台的 ab 加载 Material doesn't have a color property '_Color' UnityEd ...

  2. 【ICML2018】63篇强化学习论文全解读

    https://blog.csdn.net/dQCFKyQDXYm3F8rB0/article/details/81230588 由全球最大中文IT社区CSDN与全球AI技术社区AICamp共同打造的 ...

  3. Unity性能优化 :合批篇

    前言 本系列为一些性能优化的小知识,是日常游戏开发中与性能表现的一些点,本篇为该系列文章的第二篇,前篇链接: 第一篇: Unity性能优化:资源篇 在早期Unity中,对于合批的处理手段主要是下面三种 ...

  4. Unity红球吃绿球强化学习小任务——Ubuntu20.04系统于2022年2月26日实现

    Unity红球吃绿球强化学习小任务--Ubuntu20.04系统于2022年2月26日实现 Unity红球吃绿球强化学习小任务 一.主机环境参数说明 二.具体教程以之前提供的视频介绍为主,需要修改的章 ...

  5. 倩女幽魂2服务器维护怎么抢先进,倩女幽魂2小技巧攻略:强化装备五星秘诀

    倩女幽魂2小技巧攻略:强化装备五星秘诀 装备吴山石强化这项看上去十分看脸的随机系统也有技巧?有!玩家教你怎么样轻松五星,到底是不是真的那就要试过才知道了. 技术贴:适用范围强10左右 如何用五个石头强 ...

  6. 传奇版本自动穿背包中的装备脚本

    传奇版本自动穿背包中的装备脚本 适用于传奇一条龙开区功能: 自动穿背包中的装备, TakeOn 物品名称  装备位置装备位置: 0 = 衣服 1 = 武器 2 = 蜡烛 3 = 项链 4 = 头盔 5 ...

  7. 微信小程序填坑 视频篇

    写了一年小程序,每天接受数万付费用户的考验,踩过小程序的坑数不胜数.先写一下视频篇,写一些会影响到用户正常看视频功能和影响业务主体流程的坑. 1.一些低端设备无法播放高清视频 1080p 需要接入转码 ...

  8. 视频教程-Unity客户端框架设计PureMVC篇视频课程(上)-Unity3D

    Unity客户端框架设计PureMVC篇视频课程(上) 二十多年的软件开发与教学经验IT技术布道者,资深软件工程师.具备深厚编程语言经验,在国内上市企业做项目经理.研发经理,熟悉企业大型软件运作管理过 ...

  9. 视频教程-Unity客户端框架设计PureMVC篇视频课程(下)-Unity3D

    Unity客户端框架设计PureMVC篇视频课程(下) 二十多年的软件开发与教学经验IT技术布道者,资深软件工程师.具备深厚编程语言经验,在国内上市企业做项目经理.研发经理,熟悉企业大型软件运作管理过 ...

最新文章

  1. 解题报告(二)E、(BZOJ3513) [MUTC2013] idiots(生成函数 + FFT + 组合计数)
  2. 固态器件理论(10)半导体制造技术
  3. gpu云服务器运行游戏_在滴滴云 GPU 服务器上使用NVIDIA NGX环境搭建
  4. Sublime Less 自动编译成css
  5. vue v-if指令
  6. 开源网店系统_amazon都做不行,就不可构建外贸网店系统吗?
  7. zabbix mysql版本号_zabbix 监控mysql5.6版本 及主从
  8. 梁迪:源于热爱乐于分享,MVP代表圆桌会议
  9. centos 账号安全设置
  10. 2019最新C语言知识整理小白进来看看??
  11. linux signal 符号表6,gdb调试信息__000_linux-gnu_00000000_002_rw-p__169IT.COM
  12. 记单词工具 百词斩 0124
  13. 路由 RIP 协议 和 滞空路由
  14. eclipse打开xml文件都显示为灰色
  15. RAC连接时的2种方式Connect Time Failver和taf
  16. Ubuntu安装ffmpeg教程
  17. LabVIEW编程LabVIEW开发 PXI-4070数字万用表 例程与相关资料
  18. 欢雀HR员工管理系统,轻松搞定员工档案管理!
  19. Linux(九、十)文件权限及网络配置管理
  20. The project seems to require yarn but it‘s not installed解决办法

热门文章

  1. 打印机连接错误(0x0000011b)的解决方法(实测好用)
  2. Jquery遍历数组之$.inArray()方法介绍
  3. 软件测试之性能测试面试题合集(含答案分析细节)
  4. poi 报错 org/apache/poi/POIXMLTypeLoader
  5. java:JDBC企业级写法,我们学的最终版本,希望对你有用哦
  6. 【AIGC】Photoshop AI Beta版本安装使用(永久免费)
  7. Mac系统中配置JAVA环境变量
  8. Javaweb--Filter过滤器的基本使用
  9. hive修改字段类型
  10. Synchronized同步锁