![](/img/trans.png)
[英]add an object of a class into arraylist and then retrieve it's data member using arraylist
[英]copy from net's data to logic's data or make data as a class member
我正在使用unity3d与ProtoBuff一起开发网络游戏。
我定义一个BattleData.proto
message BattleData
{
required uint64 id = 1;
required string name = 2;
required int32 hp = 3;
required int32 atk = 4;
}
我从net接收数据,然后将二进制数据反序列化为类BattleData。
现在我有一个关于如何使用它的问题。
如果将数据作为类成员,则应使用logic.battleData.XXX,否则可以更快地使用logic.atk。
我不喜欢这种风格,因为这里有很多'。'。 ,但是如果我选择另一个,则必须在原型更改时修改类BattleLogic
。
public class BattleLogic{
public BattleData battleData;
or???
public ulong id;
public string name;
public int hp;
public int atk;
}
好吧,如果你不喜欢的话.
你可以简单地使用性质一样
public class BattleLogic
{
public BattleData battleData;
// as expression body
public ulong id
{
get
{
return battleData.id;
}
set
{
battleData.id = value;
}
}
// basically the same as expression bodies
public string name { get => battleData.name; set => battleData.name = value; }
public int hp { get => battleData.hp; set => battleData.hp = value; }
public int atk { get => battleData.atk; set => battleData.atk = value; }
}
现在您可以读写
var id = battleLogicReference.id;
battleLogicReference.name = "XYZ";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.