Example #1
0
    // 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);
    }
Example #2
0
    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);
        }
    }