Exemple #1
0
    // Update is called once per frame
    void FixedUpdate()
    {
        if (open)
        {
            RecorderFrame frame = new RecorderFrame();
            Transform camTransform = GlobalStateHolder.unityInterface.OVRcamera.GetComponent<Transform>();
            frame.camPos = camTransform.position;
            //MonoBehaviour.print(camTransform.name+"(camPos) is "+frame.camPos);
            frame.camRot = camTransform.rotation.eulerAngles;
            frame.modelScale = GlobalStateHolder.unityInterface.getCurrentScale();
            frame.modelRot = GlobalStateHolder.unityInterface.getCurrentRotation();
            //MonoBehaviour.print("scale " + frame.modelScale + " rot " + frame.modelRot);

            Model[] duplet = GlobalStateHolder.unityInterface.getCurrentDuplet();
            if (duplet == null) duplet = new Model[2];
            Model[] triplet = GlobalStateHolder.unityInterface.getCurrentTriplet();
            if (triplet == null) triplet = new Model[3];
            Model[] models = duplet.Concat(triplet).ToArray();

            int modelDiff = 0;
            for (int i = 0; i < models.Length; i++)
            {
                if (models[i] != currentModels[i])
                {
                    modelDiff++;
                    if (models[i] != null)
                        addUsedModel(models[i]);
                }
            }
            frame.modelIDs = new int[modelDiff];
            frame.modelFilenames = new string[modelDiff];
            int modelPos = 0;
            for (int i = 0; i < models.Length; i++)
            {
                if (models[i] != currentModels[i])
                {
                    currentModels[i] = models[i];
                    frame.modelIDs[modelPos] = i;
                    if (models[i] != null)
                        frame.modelFilenames[modelPos] = models[i].Path;
                    else
                        frame.modelFilenames[modelPos] = "NO_MODEL";
                    modelPos++;
                }
            }

            string stateText = GlobalStateHolder.unityInterface.getStateText();
            string bigText = GlobalStateHolder.unityInterface.getBigText();
            //MonoBehaviour.print("bigText:" + bigText);
            if ((currentStateText.CompareTo(stateText) != 0))
            {
                frame.stateText = stateText;
                currentStateText = stateText;
            }
            if ((currentBigText.CompareTo(bigText) != 0))
            {
                frame.bigText = bigText;
                currentBigText = bigText;
            }
            frame.textState = RecorderFrame.TEXTSTATE.NONE;
            if (frame.stateText != null & frame.bigText != null)
                frame.textState = RecorderFrame.TEXTSTATE.BOTH;
            else
            {
                if (frame.stateText != null)
                    frame.textState = RecorderFrame.TEXTSTATE.STATE;
                if (frame.bigText != null)
                    frame.textState = RecorderFrame.TEXTSTATE.BIG;
            }
            frame.write(writer);
            MonoBehaviour.print("Wrote recorder frame");
            //IMCOScreen currentScreen = unityInterface.g
        }
    }