override public void Render(RenderSupport support, float parentAlpha) { Rect rect = support.GetNativeDrawRect(this.width, this.height); if (this._onGUI != null) { this._onGUI(this, rect); } }
public override void Render(RenderSupport support, float parentAlpha) { Rect rect = support.GetNativeDrawRect(this.width, this.height); GUI.BeginGroup(rect); if (Event.current.type == EventType.Ignore) { GUI.EndGroup(); return; } if (this._onGUI != null) { this._onGUI(this, rect); } GUI.EndGroup(); }
public override void Render(RenderSupport support, float parentAlpha) { if (_empty || _fillColor.a == 0.0) { return; } Rect rect = support.GetNativeDrawRect(_width, _height); int deg = 0; if (this.rotation != 0.0) { //deg = (int)(this.rotation * 180 / Math.PI); deg = (int)this.rotation; if (deg != 0) { sPoint.x = rect.x; sPoint.y = rect.y; GUIUtility.RotateAroundPivot(deg, sPoint); } } Color c = GUI.color; c.a = parentAlpha * this.alpha; GUI.color = c; GUI.Box(rect, GUIContent.none, _style); c.a = 1; GUI.color = c; if (deg != 0) { GUIUtility.RotateAroundPivot(-deg, sPoint); } }
public override void Render(RenderSupport support, float parentAlpha) { if (_changed) { Update(); } if (_textHeight == 0) { return; } Color c = GUI.color; c.a = parentAlpha * this.alpha; GUI.color = c; Rect rect = support.GetNativeDrawRect(_width, _height, false); sHelperRect.x = rect.x; sHelperRect.y = rect.y; sHelperRect.width = rect.width; sHelperRect.height = rect.height; support.PushClipRect(sHelperRect); rect.x += support.projectionMatrix.tx; rect.y += support.projectionMatrix.ty; GUI.BeginGroup(rect); this._compiler.Draw(Time.deltaTime); GUI.EndGroup(); support.PopClipRect(); c.a = 1; GUI.color = c; }
public override void Render(RenderSupport support, float parentAlpha) { if (_texture == null) { return; } Rect rect = support.GetNativeDrawRect(_width, _height); int deg = 0; if (this.rotation != 0.0) { //deg = (int)(this.rotation * 180 / Math.PI); deg = (int)this.rotation; if (deg != 0) { sPoint.x = rect.center.x; sPoint.y = rect.center.y; GUIUtility.RotateAroundPivot(deg, sPoint); } } Color c = GUI.color; c.a = parentAlpha * this.alpha; GUI.color = c; if (_scale9Grid == null || (rect.width == _width && rect.height == _height)) { GUI.DrawTexture(rect, _texture); } else { if (_scale9Changed) { _scale9Changed = false; if (_scale9Width == 0) { _scale9Width = _width; } if (_scale9Height == 0) { _scale9Height = _height; } Rect tmpScale9Grid = (Rect)_scale9Grid; _rows = new float[] { 0, tmpScale9Grid.yMin, tmpScale9Grid.yMax, _height }; _cols = new float[] { 0, tmpScale9Grid.xMin, tmpScale9Grid.xMax, _width }; _dRows = new float[] { 0, tmpScale9Grid.yMin, _scale9Height - (_height - tmpScale9Grid.yMax), _scale9Height }; _dCols = new float[] { 0, tmpScale9Grid.xMin, _scale9Width - (_width - tmpScale9Grid.xMax), _scale9Width }; //if (_scale9Height >= tmpScale9Grid.height) // _dRows = new float[] { 0, tmpScale9Grid.yMin, _scale9Height - (_height - tmpScale9Grid.yMax), _scale9Height }; //else //{ // float tmp = tmpScale9Grid.yMin / (_height - tmpScale9Grid.yMax); // tmp = _scale9Height * tmp / (1 + tmp);//不明算法 // _dRows = new float[] { 0, tmp, tmp, _scale9Height }; //胡来缩放时就会不正确 //} //if (_scale9Width >= tmpScale9Grid.width) // _dCols = new float[] { 0, tmpScale9Grid.xMin, _scale9Width - (_width - tmpScale9Grid.xMax), _scale9Width }; //else //{ // float tmp = tmpScale9Grid.xMin / (_width - tmpScale9Grid.xMax); // tmp = _scale9Width * tmp / (1 + tmp); // _dCols = new float[] { 0, tmp, tmp, _scale9Width }; //} } float scaleXLeft = rect.width / _scale9Width; float scaleYLeft = rect.height / _scale9Height; for (int cx = 0; cx < 3; cx++) { for (int cy = 0; cy < 3; cy++) { //origin //the texture coordinates are normalized. So in your case you would have 1/8, 2/8, 3/8... positions. i.e a percentage. //the texCoord Y-axis is opposite to the destination. sHelperRect1.x = _cols[cx] / _width; sHelperRect1.y = 1 - _rows[cy + 1] / _height;//_rows[cy+1]/height sHelperRect1.width = (_cols[cx + 1] - _cols[cx]) / _width; sHelperRect1.height = (_rows[cy + 1] - _rows[cy]) / _height; //sHelperRect1 确定九宫格原始比例,针对纹理坐标且纹理是原点是在左下角的 //sHelperRect2 位置和缩放功能,屏幕坐标原点左上角 //draw sHelperRect2.x = (rect.x + _dCols[cx]) * scaleXLeft; sHelperRect2.y = (rect.y + _dRows[cy]) * scaleYLeft; sHelperRect2.width = (_dCols[cx + 1] - _dCols[cx]) * scaleXLeft; sHelperRect2.height = (_dRows[cy + 1] - _dRows[cy]) * scaleYLeft; if (sHelperRect2.width != 0 && sHelperRect2.height != 0) { GUI.DrawTextureWithTexCoords(sHelperRect2, _texture, sHelperRect1); } } } } c.a = 1; GUI.color = c; if (deg != 0) { GUIUtility.RotateAroundPivot(-deg, sPoint); } }
public override void Render(RenderSupport support, float parentAlpha) { if (_text != null) { Color c = GUI.color; c.a = parentAlpha * this.alpha; GUI.color = c; Rect rect = support.GetNativeDrawRect(_width, _height, false); sHelperRect.x = rect.x; sHelperRect.y = rect.y; sHelperRect.width = rect.width; sHelperRect.height = rect.height; support.PushClipRect(sHelperRect); rect.x += support.projectionMatrix.tx; rect.y += support.projectionMatrix.ty; GUIStyle lastStyle; if (_input) { GUI.SetNextControlName(internalId); if (_singleLine) { lastStyle = GUI.skin.textField; GUI.skin.textField = _textFormat.style; _text = GUI.TextField(rect, _text, _maxLength); if (GUI.changed) { DispatchEventObsolete(sChange); onChanged.Call(); } GUI.skin.textField = lastStyle; } else if (_displayAsPassword) { _text = GUI.PasswordField(rect, _text, '*', _maxLength); if (GUI.changed) { DispatchEventObsolete(sChange); onChanged.Call(); } } else { lastStyle = GUI.skin.textArea; GUI.skin.textArea = _textFormat.style; _text = GUI.TextArea(rect, _text, _maxLength); if (GUI.changed) { DispatchEventObsolete(sChange); onChanged.Call(); } GUI.skin.textArea = lastStyle; } } else { lastStyle = GUI.skin.label; GUI.skin.label = _textFormat.style; GUI.Label(rect, _text); GUI.skin.label = lastStyle; } support.PopClipRect(); c.a = 1; GUI.color = c; } }