public void PublishEvent(NetworkEventString networkEvent, string data, ReceiverGroup receiveGroup)
    {
        object[] eventData = new object[1] {
            data
        };

        PhotonNetwork.RaiseEvent(networkEvent.eventCode, eventData,
                                 new RaiseEventOptions()
        {
            Receivers = receiveGroup
        },
                                 (networkEvent.sendOptions == EventSendOptions.SendReliable)?SendOptions.SendReliable:SendOptions.SendUnreliable);
    }
    public void OnEvent(EventData photonEvent)
    {
        byte eventCode = photonEvent.Code;

        if (eventCode == 199)
        {
            NetworkEventString e = events.First((x) => x.eventCode == eventCode);

            if (e != null)
            {
                object[] data = (object[])photonEvent.CustomData;

                e.globalEvent.Publish((string)data[0]);
            }
        }
    }
    public void PublishEvent(string eventName, string data, ReceiverGroup receiveGroup)
    {
        NetworkEventString e = events.First((x) => x.eventName == eventName);

        PublishEvent(e, data, receiveGroup);
    }