// Process Data Frame OscBundle private void FrameParser(OscPacket packet) { //LogPacket(packet); //Used for debugging to see all received packets if (packet.IsBundle) { foreach (OscMessage message in ((OscBundle)packet).Messages) { if (String.Compare(message.Address, "/NewUserIndexCreated/") == 0) { int clientIndex = (int)message.Data[0]; int newUserIndex = (int)message.Data[1]; UnityEngine.Debug.Log("OSCInterface received new user index from server: " + newUserIndex); // call all methods that have been registered to listen for it NewUserIndexReceivedEventArgs args = new NewUserIndexReceivedEventArgs(); args.newUserIndex = newUserIndex; OnNewUserIndexReceivedEvent(args); List <object> oscMessage = new List <object>(); string oscMessageAddress = "/NewUserIndexReceived/"; oscMessage.Add(newUserIndex); AppendMessage(oscMessageAddress, oscMessage); } if (String.Compare(message.Address, "/UserDataToClients/") == 0) { int clientIndex = (int)message.Data[0]; UnityEngine.Debug.Log("received user data from server from client Index: " + clientIndex); int userIndex = (int)message.Data[1]; double timeInMS = (double)message.Data[2]; float positionX = (float)message.Data[3]; float positionY = (float)message.Data[4]; float positionZ = (float)message.Data[5]; float hue = (float)message.Data[6]; // call all methods that have been registered to listen for it OtherUserDataReceivedEventArgs args = new OtherUserDataReceivedEventArgs(); args.clientIndex = clientIndex; args.position = new Vector3(positionX, positionY, positionZ); args.hue = hue; OnOtherUserDataReceivedEvent(args); // FIX THIS TO FIRE AN EVENT WHEN PARTICLE DATA FOR OTHER USERS ARE RECEIVED //if (clientIndex != newUserCreator.clientIndex) //{ // otherUserParticleEmissionControl.EmitOtherUserParticles(new Vector3(positionX, positionY, positionZ)); //} //UnityEngine.Debug.Log("received other position: " + positionX + ", " + positionY + ", " + positionZ); } } } else { // if the packet is not a bundle and is just one message if (String.Compare(((OscMessage)packet).Address, "/ExampleOSCAddressOfMessage/") == 0) { //string theStringMessageIKnowIsBeingSent = (string)(OscBundle)packet[0].Messages.Data[0]; //UnityEngine.Debug.Log("received example message string: " + theStringMessageIKnowIsBeingSent); } } }
protected virtual void OnNewUserCreatedEvent(NewUserIndexReceivedEventArgs e) { EventHandler <NewUserIndexReceivedEventArgs> handler = NewUserCreatedEvent; if (handler != null) { handler(this, e); } }
public void InitializeNewUser(object sender, NewUserIndexReceivedEventArgs e) { Debug.Log("User Manager initializing a new user with index: " + e.newUserIndex); userIndex = e.newUserIndex; text_UserNumber.text = "userIndex: " + userIndex; oneShotControl.Reset(); // change this to subscribe to event instead of direct reference // call all methods that have been registered to listen for it NewUserIndexReceivedEventArgs args = new NewUserIndexReceivedEventArgs(); args.newUserIndex = userIndex; OnNewUserCreatedEvent(args); }
public void InitializeMobiusHeightToNewUser(object sender, NewUserIndexReceivedEventArgs e) { //transform.localPosition = new Vector3(transform.localPosition.x, myCamera.transform.position.y + mobiusYOffset, transform.localPosition.z); Debug.Log("initialized height of mobius strip to user's height"); }