unity遇到的坑----背包篇---强化装备影响其他装备属性
学习完基础的背包系统,发现一个问题。背包里强化装备或者升级装备时,同名装备的属性也会发生变动。
这个问题一度让我十分苦恼,网上也找不到原因。
后来发现初始化背包时,实例化的同名物品指向的地址相同,也就是说所有同名装备都是一个物体,对任意一个装备进行操作都会改变这个装备的同名装备。
解决办法:
序列化克隆每一个装备对象,使他们指向不同地址。
步骤:
第一,在装备类前加上[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遇到的坑----背包篇---强化装备影响其他装备属性相关推荐
- Unity AssetBundle 踩坑记录
Unity AssetBundle 踩坑记录 editor 下选择什么平台的 ab 加载 Material doesn't have a color property '_Color' UnityEd ...
- 【ICML2018】63篇强化学习论文全解读
https://blog.csdn.net/dQCFKyQDXYm3F8rB0/article/details/81230588 由全球最大中文IT社区CSDN与全球AI技术社区AICamp共同打造的 ...
- Unity性能优化 :合批篇
前言 本系列为一些性能优化的小知识,是日常游戏开发中与性能表现的一些点,本篇为该系列文章的第二篇,前篇链接: 第一篇: Unity性能优化:资源篇 在早期Unity中,对于合批的处理手段主要是下面三种 ...
- Unity红球吃绿球强化学习小任务——Ubuntu20.04系统于2022年2月26日实现
Unity红球吃绿球强化学习小任务--Ubuntu20.04系统于2022年2月26日实现 Unity红球吃绿球强化学习小任务 一.主机环境参数说明 二.具体教程以之前提供的视频介绍为主,需要修改的章 ...
- 倩女幽魂2服务器维护怎么抢先进,倩女幽魂2小技巧攻略:强化装备五星秘诀
倩女幽魂2小技巧攻略:强化装备五星秘诀 装备吴山石强化这项看上去十分看脸的随机系统也有技巧?有!玩家教你怎么样轻松五星,到底是不是真的那就要试过才知道了. 技术贴:适用范围强10左右 如何用五个石头强 ...
- 传奇版本自动穿背包中的装备脚本
传奇版本自动穿背包中的装备脚本 适用于传奇一条龙开区功能: 自动穿背包中的装备, TakeOn 物品名称 装备位置装备位置: 0 = 衣服 1 = 武器 2 = 蜡烛 3 = 项链 4 = 头盔 5 ...
- 微信小程序填坑 视频篇
写了一年小程序,每天接受数万付费用户的考验,踩过小程序的坑数不胜数.先写一下视频篇,写一些会影响到用户正常看视频功能和影响业务主体流程的坑. 1.一些低端设备无法播放高清视频 1080p 需要接入转码 ...
- 视频教程-Unity客户端框架设计PureMVC篇视频课程(上)-Unity3D
Unity客户端框架设计PureMVC篇视频课程(上) 二十多年的软件开发与教学经验IT技术布道者,资深软件工程师.具备深厚编程语言经验,在国内上市企业做项目经理.研发经理,熟悉企业大型软件运作管理过 ...
- 视频教程-Unity客户端框架设计PureMVC篇视频课程(下)-Unity3D
Unity客户端框架设计PureMVC篇视频课程(下) 二十多年的软件开发与教学经验IT技术布道者,资深软件工程师.具备深厚编程语言经验,在国内上市企业做项目经理.研发经理,熟悉企业大型软件运作管理过 ...
最新文章
- 解题报告(二)E、(BZOJ3513) [MUTC2013] idiots(生成函数 + FFT + 组合计数)
- 固态器件理论(10)半导体制造技术
- gpu云服务器运行游戏_在滴滴云 GPU 服务器上使用NVIDIA NGX环境搭建
- Sublime Less 自动编译成css
- vue v-if指令
- 开源网店系统_amazon都做不行,就不可构建外贸网店系统吗?
- zabbix mysql版本号_zabbix 监控mysql5.6版本 及主从
- 梁迪:源于热爱乐于分享,MVP代表圆桌会议
- centos 账号安全设置
- 2019最新C语言知识整理小白进来看看??
- linux signal 符号表6,gdb调试信息__000_linux-gnu_00000000_002_rw-p__169IT.COM
- 记单词工具 百词斩 0124
- 路由 RIP 协议 和 滞空路由
- eclipse打开xml文件都显示为灰色
- RAC连接时的2种方式Connect Time Failver和taf
- Ubuntu安装ffmpeg教程
- LabVIEW编程LabVIEW开发 PXI-4070数字万用表 例程与相关资料
- 欢雀HR员工管理系统,轻松搞定员工档案管理!
- Linux(九、十)文件权限及网络配置管理
- The project seems to require yarn but it‘s not installed解决办法