// 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 } }