While technically simple, the incoming data from Motive has to be transformed from a right-handed to a left-handed coordinate system. Check the NatNet2OSC wiki to stream Motive data to a specific IP address.
Use this library to stream OSC data in Unity: https://thomasfredericks.github.io/UnityOSC/
Follow the instructions accordingly, to adjust the Unity C# receiving script.
using UnityEngine;
using System.Collections;
public class ReceivePosition : MonoBehaviour {
public OSC osc;
public string posAddress;
public string quatAddress;
// Use this for initialization
void Start () {
osc.SetAddressHandler( posAddress , onPosition );
osc.SetAddressHandler( quatAddress , onQuaternion );
}
void onPosition(OscMessage message){
// Debug.Log(message);
float x = - message.GetFloat(0);
float y = message.GetFloat(1);
float z = message.GetFloat(2);
transform.position = new Vector3(x,y,z);
}
void onQuaternion(OscMessage message){
// Debug.Log(message);
float qx = message.GetFloat(0);
float qy = - message.GetFloat(1);
float qz = - message.GetFloat(2);
float qw = message.GetFloat(3);
transform.rotation = new Quaternion(qx,qy,qz,qw);
}
}