public void OnPostRender() { if (this.dicLight.Count <= 0) { return; } using (Dictionary <Light, bool> .Enumerator enumerator = this.dicLight.GetEnumerator()) { while (enumerator.MoveNext()) { KeyValuePair <Light, bool> current = enumerator.Current; if (current.Value) { LightLine.DrawLine(current.Key); } } } }
private static void DrawSpotLight( Quaternion _rotation, Vector3 _position, float _angle, float _range, float _angleScale, float _rangeScale) { float num = _range * _rangeScale; float _radius = num * Mathf.Tan((float)(Math.PI / 180.0 * (double)_angle / 2.0)) * _angleScale; Vector3 _normal = Quaternion.op_Multiply(_rotation, Vector3.get_forward()); Vector3 vector3_1 = Quaternion.op_Multiply(_rotation, Vector3.get_up()); Vector3 vector3_2 = Quaternion.op_Multiply(_rotation, Vector3.get_right()); LightLine.DrawLine(_position, Vector3.op_Addition(Vector3.op_Addition(_position, Vector3.op_Multiply(_normal, num)), Vector3.op_Multiply(vector3_1, _radius))); LightLine.DrawLine(_position, Vector3.op_Subtraction(Vector3.op_Addition(_position, Vector3.op_Multiply(_normal, num)), Vector3.op_Multiply(vector3_1, _radius))); LightLine.DrawLine(_position, Vector3.op_Addition(Vector3.op_Addition(_position, Vector3.op_Multiply(_normal, num)), Vector3.op_Multiply(vector3_2, _radius))); LightLine.DrawLine(_position, Vector3.op_Subtraction(Vector3.op_Addition(_position, Vector3.op_Multiply(_normal, num)), Vector3.op_Multiply(vector3_2, _radius))); LightLine.DrawWireDisc(Vector3.op_Addition(_position, Vector3.op_Multiply(num, _normal)), _normal, _radius); }