public void gotMessage(object sender, WebSocketSharp.MessageEventArgs msg) { if (msg.Type == WebSocketSharp.Opcode.Binary) { lock (updateLock) { updateMsg.ClearVrmsg(); updateMsg.MergeFrom(new Google.Protobuf.CodedInputStream(msg.RawData)); Google.Protobuf.VRCom.Update.VrmsgOneofCase msgType = updateMsg.VrmsgCase; switch (msgType) { case Google.Protobuf.VRCom.Update.VrmsgOneofCase.Mocap: mocapMsg = updateMsg; break; case Google.Protobuf.VRCom.Update.VrmsgOneofCase.Hydra: hydraMsg = updateMsg; break; case Google.Protobuf.VRCom.Update.VrmsgOneofCase.Wiimote: wiimoteMsgs.Enqueue(updateMsg.Clone()); break; default: Debug.Log("Received an unknown or empty message"); break; } } } else { //jmsg = JsonUtility.FromJson (msg.Data); Debug.Log(msg.Data); } }
public static void On(Google.Protobuf.VRCom.Update.VrmsgOneofCase type, VRMsgHandler handler) { switch (type) { case Google.Protobuf.VRCom.Update.VrmsgOneofCase.Mocap: OnMocapMsg += handler; break; case Google.Protobuf.VRCom.Update.VrmsgOneofCase.Hydra: OnHydraMsg += handler; break; case Google.Protobuf.VRCom.Update.VrmsgOneofCase.Wiimote: OnWiimoteMsg += handler; break; default: break; } }