public void OnDrawGizmos(bool selected)
        {
            this.gizmoDrawing = true;
            Gizmos.color      = new Color(0.615f, 1f, 0.06f, (!selected) ? 0.7f : 1f);
            if (this.gizmoVerts == null || this.AreGizmosDirty() || this._obstacleMode != this.obstacleMode)
            {
                this._obstacleMode = this.obstacleMode;
                if (this.gizmoVerts == null)
                {
                    this.gizmoVerts = new List <Vector3[]>();
                }
                else
                {
                    this.gizmoVerts.Clear();
                }
                this.CreateObstacles();
            }
            Matrix4x4 matrix = this.GetMatrix();

            for (int i = 0; i < this.gizmoVerts.Count; i++)
            {
                Vector3[] array = this.gizmoVerts[i];
                int       j     = 0;
                int       num   = array.Length - 1;
                while (j < array.Length)
                {
                    Gizmos.DrawLine(matrix.MultiplyPoint3x4(array[j]), matrix.MultiplyPoint3x4(array[num]));
                    num = j++;
                }
                if (selected)
                {
                    int k    = 0;
                    int num2 = array.Length - 1;
                    while (k < array.Length)
                    {
                        Gizmos.DrawLine(matrix.MultiplyPoint3x4(array[k]) + Vector3.up * this.Height, matrix.MultiplyPoint3x4(array[num2]) + Vector3.up * this.Height);
                        Gizmos.DrawLine(matrix.MultiplyPoint3x4(array[k]), matrix.MultiplyPoint3x4(array[k]) + Vector3.up * this.Height);
                        num2 = k++;
                    }
                    int l    = 0;
                    int num3 = array.Length - 1;
                    while (l < array.Length)
                    {
                        Vector3 vector     = matrix.MultiplyPoint3x4(array[num3]);
                        Vector3 vector2    = matrix.MultiplyPoint3x4(array[l]);
                        Vector3 vector3    = (vector + vector2) * 0.5f;
                        Vector3 normalized = (vector2 - vector).normalized;
                        if (!(normalized == Vector3.zero))
                        {
                            Vector3 vector4 = Vector3.Cross(Vector3.up, normalized);
                            Gizmos.DrawLine(vector3, vector3 + vector4);
                            Gizmos.DrawLine(vector3 + vector4, vector3 + vector4 * 0.5f + normalized * 0.5f);
                            Gizmos.DrawLine(vector3 + vector4, vector3 + vector4 * 0.5f - normalized * 0.5f);
                        }
                        num3 = l++;
                    }
                }
            }
            this.gizmoDrawing = false;
        }
Example #2
0
 public void OnDrawGizmos(bool selected)
 {
     this.gizmoDrawing = true;
     Gizmos.color = new Color(0.615f, 1f, 0.06f, (!selected) ? 0.7f : 1f);
     if (this.gizmoVerts == null || this.AreGizmosDirty() || this._obstacleMode != this.obstacleMode)
     {
         this._obstacleMode = this.obstacleMode;
         if (this.gizmoVerts == null)
         {
             this.gizmoVerts = new List<Vector3[]>();
         }
         else
         {
             this.gizmoVerts.Clear();
         }
         this.CreateObstacles();
     }
     Matrix4x4 matrix = this.GetMatrix();
     for (int i = 0; i < this.gizmoVerts.Count; i++)
     {
         Vector3[] array = this.gizmoVerts[i];
         int j = 0;
         int num = array.Length - 1;
         while (j < array.Length)
         {
             Gizmos.DrawLine(matrix.MultiplyPoint3x4(array[j]), matrix.MultiplyPoint3x4(array[num]));
             num = j++;
         }
         if (selected)
         {
             int k = 0;
             int num2 = array.Length - 1;
             while (k < array.Length)
             {
                 Gizmos.DrawLine(matrix.MultiplyPoint3x4(array[k]) + Vector3.up * this.Height, matrix.MultiplyPoint3x4(array[num2]) + Vector3.up * this.Height);
                 Gizmos.DrawLine(matrix.MultiplyPoint3x4(array[k]), matrix.MultiplyPoint3x4(array[k]) + Vector3.up * this.Height);
                 num2 = k++;
             }
             int l = 0;
             int num3 = array.Length - 1;
             while (l < array.Length)
             {
                 Vector3 vector = matrix.MultiplyPoint3x4(array[num3]);
                 Vector3 vector2 = matrix.MultiplyPoint3x4(array[l]);
                 Vector3 vector3 = (vector + vector2) * 0.5f;
                 Vector3 normalized = (vector2 - vector).normalized;
                 if (!(normalized == Vector3.zero))
                 {
                     Vector3 vector4 = Vector3.Cross(Vector3.up, normalized);
                     Gizmos.DrawLine(vector3, vector3 + vector4);
                     Gizmos.DrawLine(vector3 + vector4, vector3 + vector4 * 0.5f + normalized * 0.5f);
                     Gizmos.DrawLine(vector3 + vector4, vector3 + vector4 * 0.5f - normalized * 0.5f);
                 }
                 num3 = l++;
             }
         }
     }
     this.gizmoDrawing = false;
 }