// Update is called once per frame void Update() { if (m_playerManager == null || m_playerManager.Valid == false) { return; } UNISelectedPlayer player = m_playerManager.GetPlayer(m_playerNumber); if (player == null || player.Valid == false || player.Tracking == false) { RotateToCalibrationPose(); //don't have anything to worke with return; } Vector3 skelPos = Vector3.zero; SkeletonJointTransformation skelTrans; if (player.GetReferenceSkeletonJointTransform(SkeletonJoint.Torso, out skelTrans)) { if (skelTrans.Position.Confidence < 0.5f) { player.RecalcReferenceJoints(); //we NEED the torso to be good. } if (skelTrans.Position.Confidence >= 0.5f) { skelPos = UNIConvertCoordinates.ConvertPos(skelTrans.Position.Position); } } UpdateSkeleton(player, skelPos); }
protected void InitInspector() { OpenNISettingsManager openNISettings = target as OpenNISettingsManager; openNISettings.m_initMirroring = EditorGUILayout.Toggle("Mirror behavior", openNISettings.m_initMirroring); openNISettings.m_useImageGenerator = EditorGUILayout.Toggle("Use image generator?", openNISettings.m_useImageGenerator); openNISettings.m_useSkeleton = EditorGUILayout.Toggle("Use skeleton generator?", openNISettings.m_useSkeleton); if (openNISettings.m_useSkeleton && openNISettings.m_useSkeleton) { EditorGUI.indentLevel += 2; openNISettings.m_smoothingFactor = EditorGUILayout.FloatField("Smoothing factor:", openNISettings.m_smoothingFactor); EditorGUI.indentLevel -= 2; } //initialize the logger and query objects openNISettings.m_logger = EditorGUILayout.ObjectField("Logger object", openNISettings.m_logger, typeof(UNIEventLogger), true) as UNIEventLogger; openNISettings.m_query = EditorGUILayout.ObjectField("Query object", openNISettings.m_query, typeof(UNIQuery), true) as UNIQuery; m_myContent.text = "XML file"; m_myContent.tooltip = "Initialize from XML file."; openNISettings.m_XMLFileName = EditorGUILayout.TextField(m_myContent, openNISettings.m_XMLFileName); m_myContent.text = "Playback filename"; m_myContent.tooltip = "If this is not empty,it will hold the filename of a recording. NOTE: if XML is defing,this is ignored."; //m_myContent.image = openNISettings.m_texture; openNISettings.m_recordingFileName = EditorGUILayout.TextField(m_myContent, openNISettings.m_recordingFileName); m_myContent.text = "Reset floor normal"; m_myContent.tooltip = "If floor normal is updated in the game, it remains between game.If a new normal should be calculated,reset it between games.Note: this is only relevant while playing again and again in the editor as the normal will automationally be reset whenever the program is started again."; if (GUILayout.Button(m_myContent)) { //resetFloorNormal UNIConvertCoordinates.ResetFloorNormal(); } if (GUI.changed) { EditorUtility.SetDirty(target); } }