我有一个标记为“仅服务器”(在网络标识上)的游戏管理器对象,我想跟踪游戏中的中性游戏对象。
当列表更改时,我需要一种将列表同步到所有客户端的方法。所以我一直在尝试使用SyncListString。但是,由于游戏管理器对象并非在所有客户端上都存在,因此出现此错误“找不到x的SyncList消息的目标”。足够公平。
所以我想我会在游戏管理器对象中提供一个普通的字符串列表,并在播放器对象上添加SyncListString,然后使用Command函数对其进行更新。但是,我无法将SyncListString设置为等于游戏管理器列表,因为它们是不同的类型。
我做错了吗?有更好的方法吗?
我非常想使用isServer语句将游戏管理器中的所有代码放入播放器脚本中……也许我应该这么做?
感谢您的帮助!
答案 0 :(得分:1)
如果我正确回答了您的问题,则应在游戏的每个实例上创建游戏管理器对象。 然后使用Command更新您的SyncListString。
您可以使您的Game Manager保持静态(单一设计模式)。
之后,您可以从任何地方访问静态SyncListString,但必须在Command函数中进行更新。
答案 1 :(得分:1)
我曾尝试将游戏管理器syncliststring设为静态, 我收到错误消息“同步列表....不能是静态的
您应该使您的类静态,而不是列表本身。 如果您不想这样做。只需获得对Game Manager的引用,然后从那里使用列表即可。 (您的列表必须是公开的)