Exemplo n.º 1
0
    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;
            }
        }
    }