using UnityEngine; using AX.Network.Protocols; using AX.NetworkSystem; public abstract class NetworkMessageBehaviour : MonoBehaviour { public virtual string MessageType { get { return this.GetType().Name; } } protected virtual void OnEnable() { NetworkMessageDispatcher.AddListener(MessageType, Execute); } protected virtual void OnDisable() {//这里会造成A客户端的a对象有状态更新,但是在B客户端的a对象隐藏时,接收不到更新状态 NetworkMessageDispatcher.RemoveListener(MessageType, Execute); } protected virtual void OnDestroy() { NetworkMessageDispatcher.RemoveListener(MessageType, Execute); } protected abstract void Execute(BinaryMessage message); }