protected void Record() { if (last_recorded_at >= 0.0f && last_recorded_at > (Time.time - 1.0f / record_frequency)) { return; } // Gather states RecordData.RecordObjectState[] states = new RecordData.RecordObjectState[transforms.Length]; for (int i = 0; i < transforms.Length; i++) { RecordData.RecordObjectState state = new RecordData.RecordObjectState(); state.position = transforms[i].localPosition; state.rotation = transforms[i].localRotation; state.scale = transforms[i].localScale; state.active = transforms[i].gameObject.activeSelf; state.transform = transforms[i]; states[i] = state; } record_data.SaveStates(states, Time.time - record_start_time); last_recorded_at = Time.time; }