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; }
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; }