void LateUpdate() { if (!recording || GameObject.Find("Player").GetComponent <Renderer>().enabled == false) { lineRenderer.enabled = false; } else { lineRenderer.enabled = true; } // Automatically dequeue old points int pointsToKeep = (int)(maxLineTime * fps); while (linePoints.Count > pointsToKeep) { linePoints.Dequeue(); } // Add all vertices to line renderer int i = 0; lineRenderer.SetColors(Color.clear, lineColour); lineRenderer.SetVertexCount(linePoints.Count + 1); foreach (Vector3 point in linePoints) { lineRenderer.SetPosition(i, point); i++; } if (enableLine && linePoints.Count > 0) { lineRenderer.SetPosition(i, transform.position + offset); } if (playback && current != null) { if (!TutorialCamera.Enabled()) { GUIController.GUIPlaybackRecording(); ControlManager.Disabled = true; GUIController.ShowText("Replay", "Replay Mode"); } time += Time.deltaTime; if (time < current.score.time) { transform.position = current.GetPosition(time); if (!GetComponent <Rigidbody>().isKinematic) { GetComponent <Rigidbody>().velocity = current.GetVelocity(time); } transform.LookAt(transform.position + GetComponent <Rigidbody>().velocity); if (current.IsGrappling(time) && current.GetGrapplePos(lastTime) != current.GetGrapplePos(time)) { if (!current.IsGrappling(lastTime)) { SoundManager.Play("attach"); } RaycastHit hit = new RaycastHit(); hit.point = current.GetGrapplePos(time); grappleScript.Attach(hit, -1, true); } else if (!current.IsGrappling(time) && current.IsGrappling(lastTime)) { grappleScript.Detach(); } } lastTime = time; } }