using System; using UnityEngine; namespace FishNet.Managing.Transporting { /// /// When inherited from this may be used with the TransportManager to alter messages before they are sent and received. /// public abstract class IntermediateLayer : MonoBehaviour { /// /// TransportManager associated with this script. /// public TransportManager TransportManager { get; private set; } /// /// Called when data is received. /// /// Original data. /// True if receiving from the server, false if from a client. /// Modified data. public abstract ArraySegment HandleIncoming(ArraySegment src, bool fromServer); /// /// Called when data is sent. /// /// Original data. /// True if sending to the server, false if to a client. /// Modified data. public abstract ArraySegment HandleOutoing(ArraySegment src, bool toServer); internal void InitializeOnce(TransportManager manager) => TransportManager = manager; } }