IEnumerator Coroutine_Playback(DataReadingStructure[] dataFromSaveFile, FlightRecorderPlayback flightRecorderPlayback, Action callback) { Debug.Log("•Started playing playback"); //Position on starting od recording point flightRecorderPlayback.Pitch = dataFromSaveFile[0].Pitch; flightRecorderPlayback.Roll = dataFromSaveFile[0].Roll; flightRecorderPlayback.Yaw = dataFromSaveFile[0].Yaw; flightRecorderPlayback.Throttle = dataFromSaveFile[0].Throttle; flightRecorderPlayback.GetComponent <Rigidbody>().position = dataFromSaveFile[0].Position; flightRecorderPlayback.GetComponent <Rigidbody>().rotation = Quaternion.Euler(dataFromSaveFile[0].Rotation); flightRecorderPlayback.GetComponent <Rigidbody>().velocity = dataFromSaveFile[0].Velocity; flightRecorderPlayback.GetComponent <Rigidbody>().angularVelocity = dataFromSaveFile[0].AngularVelocity; flightRecorderPlayback.GetComponent <Rigidbody>().drag = dataFromSaveFile[0].Drag; flightRecorderPlayback.GetComponent <Rigidbody>().angularDrag = dataFromSaveFile[0].AngularDrag; flightRecorderPlayback.LeftHanded = bool.Parse(dataFromSaveFile[0].LeftHanded); //start playing data on our drone int i = 0; while (i < dataFromSaveFile.Length - 1) { yield return(null); flightRecorderPlayback.Pitch = dataFromSaveFile[i].Pitch; flightRecorderPlayback.Roll = dataFromSaveFile[i].Roll; flightRecorderPlayback.Yaw = dataFromSaveFile[i].Yaw; flightRecorderPlayback.Throttle = dataFromSaveFile[i].Throttle; flightRecorderPlayback.GetComponent <Rigidbody>().position = Vector3.Lerp(flightRecorderPlayback.GetComponent <Rigidbody>().position, dataFromSaveFile[i].Position, Time.deltaTime * 15); flightRecorderPlayback.GetComponent <Rigidbody>().rotation = Quaternion.Lerp(flightRecorderPlayback.GetComponent <Rigidbody>().rotation, Quaternion.Euler(dataFromSaveFile[i].Rotation), Time.deltaTime * 15); flightRecorderPlayback.GetComponent <Rigidbody>().velocity = dataFromSaveFile[i].Velocity; flightRecorderPlayback.GetComponent <Rigidbody>().angularVelocity = dataFromSaveFile[i].AngularVelocity; flightRecorderPlayback.GetComponent <Rigidbody>().drag = dataFromSaveFile[i].Drag; flightRecorderPlayback.GetComponent <Rigidbody>().angularDrag = dataFromSaveFile[i].AngularDrag; flightRecorderPlayback.LeftHanded = bool.Parse(dataFromSaveFile[0].LeftHanded); i++; } Debug.Log("•Finished playing playback"); callback.Invoke(); }
public override void OnInspectorGUI() { base.OnInspectorGUI(); myScript = target as FlightRecorderPlayback; if (myScript.Playbacking == false) { if (GUILayout.Button("Load flight")) { string flightPath = GetRecordedFilePath(); flightPath = flightPath.Replace('/', '\\'); myScript.LoadFlight(flightPath); } } else { if (GUILayout.Button("Unload flight")) { myScript.UnloadFlight(); } } }
IEnumerator Coroutine_Playback(DataReadingStructure[] dataFromSaveFile, FlightRecorderPlayback flightRecorderPlayback, Action callback) { Debug.Log("•Started playing playback"); //Position on starting od recording point flightRecorderPlayback.GetComponent <Rigidbody>().position = dataFromSaveFile[0].Position; flightRecorderPlayback.droneMovement.droneObject.localRotation = Quaternion.Euler(dataFromSaveFile[0].RotationFixed); flightRecorderPlayback.GetComponent <Rigidbody>().rotation = Quaternion.Euler(dataFromSaveFile[2].Rotation); flightRecorderPlayback.droneMovement.animatedGameObject.transform.localRotation = Quaternion.Euler(dataFromSaveFile[0].RotationAnimated); //start playing data on our drone int i = 0; while (i < dataFromSaveFile.Length - 1) { yield return(null); flightRecorderPlayback.GetComponent <Rigidbody>().position = Vector3.Lerp(flightRecorderPlayback.GetComponent <Rigidbody>().position, dataFromSaveFile[i].Position, Time.deltaTime * 15); flightRecorderPlayback.droneMovement.droneObject.localRotation = Quaternion.Euler(dataFromSaveFile[i].RotationFixed); flightRecorderPlayback.GetComponent <Rigidbody>().rotation = Quaternion.Euler(dataFromSaveFile[i].Rotation); flightRecorderPlayback.droneMovement.animatedGameObject.transform.localRotation = Quaternion.Euler(dataFromSaveFile[i].RotationAnimated); flightRecorderPlayback.Vertical_W = dataFromSaveFile[i].Vertical_W; flightRecorderPlayback.Vertical_S = dataFromSaveFile[i].Vertical_S; flightRecorderPlayback.Horizontal_A = dataFromSaveFile[i].Horizontal_A; flightRecorderPlayback.Horizontal_D = dataFromSaveFile[i].Horizontal_D; flightRecorderPlayback.Vertical_I = dataFromSaveFile[i].Vertical_I; flightRecorderPlayback.Vertical_K = dataFromSaveFile[i].Vertical_K; flightRecorderPlayback.Horizontal_J = dataFromSaveFile[i].Horizontal_J; flightRecorderPlayback.Horizontal_L = dataFromSaveFile[i].Horizontal_L; flightRecorderPlayback.GetComponent <Rigidbody>().velocity = dataFromSaveFile[i].Velocity; i++; } Debug.Log("•Finished playing playback"); callback.Invoke(); }
public void StartPlayingPlayback(DataReadingStructure[] dataFromSaveFile, FlightRecorderPlayback flightRecorderPlayback, Action callback) { C_Playback.Add(StartCoroutine(Coroutine_Playback(dataFromSaveFile, flightRecorderPlayback, callback))); }