Unity的dubbo 序列化问题配表问题用什么方法比较好

【问题贴】关于u3d的Serializable,求解救!【unity3d吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:76,352贴子:
【问题贴】关于u3d的Serializable,求解救!收藏
其中的一个脚本中,直接在using UnityEusing System.C后面声明的:[System.Serializable]public class Done_Boundary {public float xMin, xMax, zMin, zM}然后在名外一个对象的脚本中:将 Done_Boundary 作为一个类型声明了一个public变量:
public Done_B问题是:1、是否就像上面定义的那样,可以直接使用定义的Serializable序列化的共有变量?
达内unity3d培训全程&实战教学&,unity3d金牌讲师授课.免费unity3d课程试听中!到达内unity3d学院学习unity3d,只需4个月速成unity3d游戏工程师.
新人不懂,只能顶一个
如果问题1的回答是:“是”,那么unity中这样使用变量是否有种很难管理变量的感觉。
因为如果有别人看你的代码,突然发现一个Done_Boundary 类型,但又找一时间不到在哪定义的。另外,问题2:序列化数据是为了很好地支持对象存储和数据交换。但是在什么时候使用合适呢?以上脚本的代码来自官网的space shooter教程。
睡觉前发帖果然没救,明天只好@吧主了。这么晚就不@了
为什么看你的帖子有种玩文字类游戏的感觉。是。我也是最近才用了一次系列化,浅谈一下,可能不对。当数据量较小,不超过1M,就把数据系列化存进PlayerPrefs吧。至于问题一,话说你不会ctrl加F吗?
没看明白啊。。。Serializable到底是起什么作用?
登录百度帐号推荐应用Unity序列化高级篇及应用篇 - 简书
Unity序列化高级篇及应用篇
如果你想把自定义的对象显示在Inspector。如果你想给自定义的对象在Inspector面板上赋值。如果你想自定义资产对象并且拖拽给自定义的对象。如果你想系统的学习Unity提供的序列化。如果你想从csv中读取数据。如果你想创建自定义资产。如果你想通过代码加载自定义资产。如果你想把自定义资产进行打包成AssetBundle。如果你想加载打成AssetBundle的自定义资产。那么这个课程你一定不要错过,本教程为Unity序列化的高级篇及应用篇,学习如何把自定义的对象显示在Inspector,如何给自定义的对象在Inspector面板上赋值,如何自定义资产对象并且拖拽给自定义对象,使用Unity提供的序列化读取策划 数据等内容。课程目录:课时1:Unity序列化高级篇及应用篇(1)课时2:Unity序列化高级篇及应用篇(2)课时3:Unity序列化高级篇及应用篇(3)课时4:Unity序列化高级篇及应用篇(4)课程学习地址:/course/128我学院在线教育平台内容覆盖了Unity、3Dsmax、Maya、Photoshop、Cocos等所有主流应用软件和插件工具,涵盖3D动画、模型、材质、渲染、特效、影视后期及2D概念设计、插画、漫画等所有创作主题,囊括了当今互联网游戏中所有的动漫设计、原画创作内容,如三维动画、影视特效、游戏制作、原画设计、产品原型设计等内容。联系方式:1课程网址:/course/vr.html
当你越想挽留些什么的时候,就越容易失去些什么Unity的序列化配表问题用什么方法比较好? - 知乎192被浏览6527分享邀请回答0添加评论分享收藏感谢收起Unity 中使用C#的序列化和反序列化处理游戏数据
我的图书馆
Unity 中使用C#的序列化和反序列化处理游戏数据
这段时间在研究和学习C#的序列化和反序列化的东西。发现这是一个非常友好的数据本地store的方式。但是在使用过程中也有很多有意思的地方,我这里把我越到的问题列一下。我使用的是C#的二进制形式的序列化和反序列化。参考了,还有。这两个参考地方都有对于的code。从code中可以得到的结果是:在serialize之前,都是将需要序列化的数据放到一个结构体里面去,然后开始序列化。对于这个被序列化的结构体的要求就是她已经实现了ISerializable的GetObjectData方法,还有一个参数为SerializationInfo info, StreamingContext context的构造函数。在这个构造函数中将从info中得到的信息赋值给这个数据结构的属性变量。而在GetObjectData方法中有着与以上说的构造函数一直的参数,在这个函数中是将数据结构的属性变量的指添加到info中去。如:
[Actionscript3] 纯文本查看 复制代码01020304050607080910111213141516171819202122232425&font style="color:rgb(102, 102, 102)"&[Serializable]public class MyObject : ISerializable{&&public int n1;&&public int n2;&&public String &&public MyObject()&&{&&}&&protected MyObject(SerializationInfo info, StreamingContext context)&&{&&&&n1 = info.GetInt32("i");&&&&n2 = info.GetInt32("j");&&&&str = info.GetString("k");&&}&&public virtual void GetObjectData(SerializationInfo info, StreamingContext context)&&{&&&&info.AddValue("i", n1);&&&&info.AddValue("j", n2);&&&&info.AddValue("k", str);&&}}&/font&
回到开始之处,如何开始序列化。看code:
[Actionscript3] 纯文本查看 复制代码010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778&font style="color:rgb(102, 102, 102)"&using Susing System.IO;using System.Cusing System.Runtime.Serialization.Formatters.Busing System.Runtime.Spublic class App {&&&&[STAThread]&&&&static void Main() &&&&{&&&&&&&&Serialize();&&&&&&&&Deserialize();&&&&}&&&&static void Serialize() &&&&{&&&&&&&&// Create a hashtable of values that will eventually be serialized.&&&&&&&&Hashtable addresses = new Hashtable();&&&&&&&&addresses.Add("Jeff", "123 Main Street, Redmond, WA 98052");&&&&&&&&addresses.Add("Fred", "987 Pine Road, Phila., PA 19116");&&&&&&&&addresses.Add("Mary", "PO Box 112233, Palo Alto, CA 94301");&&&&&&&&// To serialize the hashtable and its key/value pairs,& &&&&&&&&// you must first open a stream for writing. &&&&&&&&// In this case, use a file stream.&&&&&&&&FileStream fs = new FileStream("DataFile.dat", FileMode.Create);&&&&&&&&// Construct a BinaryFormatter and use it to serialize the data to the stream.&&&&&&&&BinaryFormatter formatter = new BinaryFormatter();&&&&&&&&try&&&&&&&&{&&&&&&&&&&&&formatter.Serialize(fs, addresses);&&&&&&&&}&&&&&&&&catch (SerializationException e) &&&&&&&&{&&&&&&&&&&&&Debug.Log("Failed to serialize. Reason: " + e.Message);&&&&&&&&&&&&throw;&&&&&&&&}&&&&&&&&finally&&&&&&&&{&&&&&&&&&&&&fs.Close();&&&&&&&&}&&&&}&&&&static void Deserialize() &&&&{&&&&&&&&// Declare the hashtable reference.&&&&&&&&Hashtable addresses& = null;&&&&&&&&// Open the file containing the data that you want to deserialize.&&&&&&&&FileStream fs = new FileStream("DataFile.dat", FileMode.Open);&&&&&&&&try&&&&&&&&{&&&&&&&&&&&&BinaryFormatter formatter = new BinaryFormatter();&&&&&&&&&&&&// Deserialize the hashtable from the file and &&&&&&&&&&&&// assign the reference to the local variable.&&&&&&&&&&&&addresses = (Hashtable) formatter.Deserialize(fs);&&&&&&&&}&&&&&&&&catch (SerializationException e) &&&&&&&&{&&&&&&&&&&&&Debug.Log("Failed to deserialize. Reason: " + e.Message);&&&&&&&&&&&&throw;&&&&&&&&}&&&&&&&&finally&&&&&&&&{&&&&&&&&&&&&fs.Close();&&&&&&&&}&&&&&&&&// To prove that the table deserialized correctly, &&&&&&&&// display the key/value pairs.&&&&&&&&foreach (DictionaryEntry de in addresses) &&&&&&&&{&&&&&&&&&&&&Debug.Log( de.Key+ de.Value);&&&&&&&&}&&&&}}&/font&
需要注意的是,什么的做法在mac上是ok的。但是,如果发布到ios上面的话,可能就出错了哦。上面使用的是hashtable,如果她的key或value是自定义的一种类型的话,在ios中可能就,filename unknown 0 等等的。。。我在网上找到的方式是不使用自定义的类型,而是将自定义的数据里面的数据字段重新组合成基本数据类型再作为value后进行序列化。比如: 一个自定义数据类型由三种自定义类型构成,int m_n ,bool m_b,string m_str。我将按照这样的方式来组合成一个新的string, string value = new StringBuilder().Append(m_n).Append(“#”).Append(m_b).Append(“#”).Append(m_str).ToString();这样就得到了一个key对应的value。在反序列化的时候,使用split函数可以将这个string再拆开成int,bool,string类型。这样数据就还原了。如此之后也可以解决在ios上面的filename unknown 0的问题。 & 完 &
原文链接:
馆藏&21216
TA的推荐TA的最新馆藏[转]&[转]&[转]&[转]&[转]&[转]&[转]&[转]&[转]&[转]&[转]&[转]&
喜欢该文的人也喜欢}

我要回帖

更多关于 spark 序列化问题 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信