我目前正在编写一个多人游戏的面向对象游戏。播放器继承自实体,当我通过发送当前播放器属性时
NetOutgoingMessage outmsg = Server.CreateMessage();
[...]
outmsg.WriteAllProperties(p);
其中 p 是我的播放器对象,我的客户只接收在我的播放器类中声明的属性,而不是从实体类中声明的属性。因此我的客户无法更新玩家位置等。
有什么建议吗?
编辑:
它识别继承的对象,但不能正确发送它们。我想我可能需要使用一些 Bindingflags,因为它有一个选项,并且应该可以发送分配给玩家的对象。我正在使用 Vector2 类来指定播放器的位置和速度,但我的客户端要么无法接收 Vector2 类,要么服务器无法发送它。如果我使用整数、字符串、布尔值或任何它可以工作的东西,但不适用于自定义类。