在Unity3d 5中使用UNET的状态同步支持,我很头疼。
根据文档 http:/docs.unity3d.comManualUNetStateSync.html。该类应该继承于NetworkBehaviour。嗯,我是这样做的。
class Player : Character
abstract class Character : MovingEntity
abstract class MovingEntity : NetworkBehaviour
其中,在 Character
我把所有玩家的数据都用在了 [SyncVar]
自定义属性。像这样。
public abstract class Character : MovingEntity
{
[SyncVar]
public string name;
}
但在检查器中,我收到以下错误。
The type or namespace name `SyncVar' could not be found. Are you missing a using directive or an assembly reference?
和
The type or namespace name `SyncVarAttribute' could not be found. Are you missing a using directive or an assembly reference?
不是一个有经验的C#程序员。事实上,该类从另一个继承自 NetworkBehaviour
不支持我这样做?
只是仅供参考,添加 [SyncVar]
关于 MovingEntity
(该直接继承自 NetworkBehaviour
)就能正常工作。
我做错了什么?在类继承中,有什么好的做法是我在这个例子中没有做的吗?
先谢谢你,抱歉我的英语不好。
你可能忘了在文件中添加using指令。
using UnityEngine.Networking;
这与继承无关。每一个c#文件都需要明确说明它使用的命名空间。或者,你可以使用 全称:
[UnityEngine.Networking.SyncVar]
这不是问题中主要问题的答案,只是为了帮助谁在这里结束,由于像我一样从google来--请不要删除这个答案,它会帮助我,如果它在这里,当我需要它时
如果你们因为UNet已经被废弃,并且NetworkBehaviour出现了引用错误而来到这个页面,请安装包。多人游戏HLAPI
似乎解决了我正在使用的一个软件包的依赖问题。我没有多人游戏功能,所以我不知道它是否有效。但至少我还可以使用有一个继承自NetworkBehaviour的类的包。