public void SendOSCMessage(string address, Vector2 vec2) { UnityOSC.OSCMessage newMsg = new UnityOSC.OSCMessage(address); newMsg.AppendFloat(vec2.x); newMsg.AppendFloat(vec2.y); SendMessageToAllClients(newMsg); }
//OSC part /* * 0: pid (int) // Personal ID ex : 42th person to enter stage has pid=42 * 1: oid (int) // Ordered ID ex : if 3 person on stage, 43th person might have oid=2 * 2: age (int) // Time on stage (in frame number) * 3: centroid.x (float 0:1) // Position projected to the ground * 4: centroid.y (float 0:1) * 5: velocity.x (float -1:1) // Speed and direction vector * 6: velocity.y (float -1:1) * 7: depth (float 0:1) // Distance to sensor (in m) (not implemented) * 8: boundingRect.x (float 0:1) // Top view bounding box * 9: boundingRect.y (float 0:1) * 10: boundingRect.width (float 0:1) * 11: boundingRect.height (float 0:1) * 12: highest.x (float 0:1) // Highest point placement * 13: highest.y (float 0:1) * 14: highest.z (float 0:1) // Height of the person * * /au/scene args0 arg1 ... argn * * 0: currentTime (int) // Time (in frame number) * 1: percentCovered (float 0:1) // Percent covered * 2: numPeople (int) // Number of person * 3: averageMotion.x (float 0:1) // Average motion * 4: averageMotion.y (float 0:1) * 5: scene.width (int) // Scene size * 6: scene.height (int) * 7: scene.depth (int) */ public void SendSceneUpdated() { if (Mute) { return; } var msg = new UnityOSC.OSCMessage("/au/scene"); msg.Append(_frameCounter); //Compute point size msg.Append(InstanceNumber * PointSize.x * PointSize.y); msg.Append(NbPoints); //Compute average motion var velocitySum = Vector3.zero; foreach (var element in InstanciatedPoints) { velocitySum += -element.Value.GetComponent <PointBehaviour>().NormalizedVelocity; } velocitySum /= InstanciatedPoints.Count; msg.Append(velocitySum.x); msg.Append(velocitySum.y); msg.Append(Width); msg.Append(Height); msg.Append(100); OSCMaster.Clients["AugmentaSimulatorOutput"].Send(msg); }
void SendMessage() { UnityOSC.OSCMessage msg = new UnityOSC.OSCMessage(messageAddress); msg.Append(Time.time); client.Send(msg); client.Flush(); Debug.Log("sent"); }
public void SendAugmentaMessage(string address, GameObject obj) { if (Mute) { return; } var msg = new UnityOSC.OSCMessage(address); var behaviour = obj.GetComponent <PointBehaviour>(); var worldToViewPort = Camera.main.WorldToViewportPoint(obj.transform.position); worldToViewPort = new Vector3(worldToViewPort.x, Mathf.Abs(worldToViewPort.y - 1), worldToViewPort.z); //Switch from bot-left (0;0) to top-left(0;0) msg.Append(behaviour.pid); //oid if (CursorPoint != null) { msg.Append(behaviour.pid); } else { msg.Append(behaviour.pid - 1); } msg.Append((int)behaviour.Age); //centroid msg.Append(worldToViewPort.x); msg.Append(worldToViewPort.y); //Velocity var normalizedVelocity = behaviour.NormalizedVelocity; msg.Append(-normalizedVelocity.x); msg.Append(-normalizedVelocity.y); msg.Append((float)behaviour.pid); //Bounding msg.Append(worldToViewPort.x - PointSize.x / 2); msg.Append(worldToViewPort.y - PointSize.y / 2); msg.Append(PointSize.x); msg.Append(PointSize.y); msg.Append(worldToViewPort.x); msg.Append(worldToViewPort.y); msg.Append(0.5f); OSCMaster.Clients["AugmentaSimulatorOutput"].Send(msg); }
public void OutputCurrentState() { foreach (OSCInputMapping map in m_OSCInputMappings) { try { if (map.m_AssignmentType == "Property" && map.m_FeedbackState) { float val = map.GetCurrentValue(); if (val != float.MinValue) { string address = map.m_MapAddress; UnityOSC.OSCMessage msg = new UnityOSC.OSCMessage(address); msg.AppendFloat(val); OSCHandler.Instance.SendOSCMessage(msg); } } } catch (Exception e) { MonoBehaviour.print(e.ToString()); } } }
/// <summary> /// Unpacks an OSC message. /// </summary> /// <param name="data"> /// A <see cref="System.Byte[]"/> /// </param> /// <param name="start"> /// A <see cref="System.Int32"/> /// </param> /// <returns> /// A <see cref="OSCMessage"/> /// </returns> public static OSCMessage Unpack(byte[] data, ref int start) { string address = OSCPacket.UnpackValue <string>(data, ref start); OSCMessage message = new OSCMessage(address); char[] tags = OSCPacket.UnpackValue <string>(data, ref start).ToCharArray(); foreach (char tag in tags) { object value; switch (tag) { case DEFAULT: //UnityEngine.Debug.LogWarning("DEFAULT TAG"); continue; case INTEGER: value = OSCPacket.UnpackValue <int>(data, ref start); break; case LONG: value = OSCPacket.UnpackValue <long>(data, ref start); break; case FLOAT: value = OSCPacket.UnpackValue <float>(data, ref start); break; case DOUBLE: value = OSCPacket.UnpackValue <double>(data, ref start); break; case STRING: value = OSCPacket.UnpackValue <string>(data, ref start); break; case BYTE: value = OSCPacket.UnpackValue <byte[]>(data, ref start); break; /* * case TRUE: * value = true; * break; * case FALSE: * value = false; * break; */ default: //UnityEngine.Debug.LogWarning("Unknown tag: " + tag); Console.WriteLine("Unknown tag: " + tag); continue; } message.Append(value); } if (message.TimeStamp == 0) { message.TimeStamp = DateTime.Now.Ticks; } return(message); }
public void SendOSCMessage(string address, byte[] bytes) { UnityOSC.OSCMessage newMsg = new UnityOSC.OSCMessage(address, bytes); SendMessageToAllClients(newMsg); }
public void SendOSCMessage(string address, string val) { UnityOSC.OSCMessage newMsg = new UnityOSC.OSCMessage(address, val); SendMessageToAllClients(newMsg); }
public void SendBlankOSCMessage(string address) { UnityOSC.OSCMessage newMsg = new UnityOSC.OSCMessage(address); SendMessageToAllClients(newMsg); }