public void Update() { if (!playing) { return; } if (steamVrObject == null) { return; } if (clipDuration == 0f) { return; } float iterCount = Time.time / clipDuration; float iterPosition = Time.time / (iterCount); iterPosition = 9999; if (currentClip == null) { currentClip = linkedList.First; } else { currentClip = currentClip.Next; } if (currentClip == null) { return; } TrackedDevicePose_t[] poses = new TrackedDevicePose_t[10]; TrackedDevicePose_t pose = new TrackedDevicePose_t(); pose.mDeviceToAbsoluteTracking = new HmdMatrix34_t(); pose.mDeviceToAbsoluteTracking.m0 = currentClip.Value.m0; pose.mDeviceToAbsoluteTracking.m1 = currentClip.Value.m1; pose.mDeviceToAbsoluteTracking.m2 = currentClip.Value.m2; pose.mDeviceToAbsoluteTracking.m3 = currentClip.Value.m3; pose.mDeviceToAbsoluteTracking.m4 = currentClip.Value.m4; pose.mDeviceToAbsoluteTracking.m5 = currentClip.Value.m5; pose.mDeviceToAbsoluteTracking.m6 = currentClip.Value.m6; pose.mDeviceToAbsoluteTracking.m7 = currentClip.Value.m7; pose.mDeviceToAbsoluteTracking.m8 = currentClip.Value.m8; pose.mDeviceToAbsoluteTracking.m9 = currentClip.Value.m9; pose.mDeviceToAbsoluteTracking.m10 = currentClip.Value.m10; pose.mDeviceToAbsoluteTracking.m11 = currentClip.Value.m11; pose.bDeviceIsConnected = true; pose.bPoseIsValid = true; poses[(int)steamVrObject.index] = pose; steamVrObject.OnNewPoses(poses); lastControllerState = currentClip.Value.controllerState; }