private void UpdateDebugVectors() { if (debug) { Vector3 east = part.transform.rotation.Inverse() * vessel.east; Vector3 up = part.transform.rotation.Inverse() * vessel.up; Vector3 north = part.transform.rotation.Inverse() * vessel.north; Vector3 forwardProjected = Vector3.ProjectOnPlane(Vector3.forward, up).normalized; Vector3 referenceLocal = part.transform.rotation.Inverse() * reference; if (lineForward == null) { lineForward = new LineInfo(part.transform, Color.magenta); } lineForward.Update(Vector3.zero, Vector3.forward); if (lineForwardProjected == null) { lineForwardProjected = new LineInfo(part.transform, Color.magenta); } lineForwardProjected.Update(Vector3.zero, forwardProjected); if (lineUp == null) { lineUp = new LineInfo(part.transform, Color.cyan); } lineUp.Update(Vector3.zero, up); if (lineEast == null) { lineEast = new LineInfo(part.transform, Color.blue); } lineEast.Update(Vector3.zero, east); if (lineReference == null) { lineReference = new LineInfo(part.transform, Color.white); } lineReference.Update(Vector3.zero, referenceLocal); } else { if (lineForward != null) { lineForward.Destroy(); lineForward = null; } if (lineForwardProjected != null) { lineForwardProjected.Destroy(); lineForwardProjected = null; } if (lineUp != null) { lineUp.Destroy(); lineUp = null; } if (lineEast != null) { lineEast.Destroy(); lineEast = null; } } }