예제 #1
0
 public override void Draw(
     float offsetX,
     float offsetY,
     DebugPrimitiveRenderer2D renderer)
 {
     renderer.color = new Color32(255, 255, 255, 255);
     if (_sprite != null)
     {
         renderer.AddSprite(
             offsetX + localLeftX,
             offsetY + localTopY,
             width,
             height,
             _sprite);
     }
     else if (_texture != null)
     {
         renderer.AddTexturedRectangle(
             offsetX + localLeftX,
             offsetY + localTopY,
             width,
             height,
             _texture);
     }
     else
     {
         renderer.AddRectangle(
             offsetX + localLeftX,
             offsetY + localTopY,
             width,
             height);
     }
 }
예제 #2
0
        public override void Draw(
            float offsetX,
            float offsetY,
            DebugPrimitiveRenderer2D renderer)
        {
            // 棒を描画
            float ratio;

            if (_mode == Mode.Log10)
            {
                float logMin = Mathf.Log10(_min);
                float logMax = Mathf.Log10(_max);
                ratio = (Mathf.Log10(value) - logMin) / (logMax - logMin);
            }
            else
            {
                ratio = (value - _min) / (_max - _min);
            }
            ratio = (ratio < 0f) ? 0f : ((ratio > 1f) ? 1f : ratio);
            float barWidth = (width - (2f * borderWidth)) * ratio;

            renderer.color = gaugeColor;
            renderer.AddRectangle(
                offsetX + localLeftX + borderWidth,
                offsetY + localTopY + borderWidth,
                barWidth,
                height - (2f * borderWidth));

            // 題名
            float fontSize = height - (2f * borderWidth);

            fontSize      *= 0.8f;
            renderer.color = textColor;
            if (_text.Length > 0)
            {
                renderer.AddText(
                    _text,
                    fontSize,
                    offsetX + localLeftX + (borderWidth * 2f),
                    offsetY + localTopY + (borderWidth * 2f),
                    width - (borderWidth * 2f),
                    height - (borderWidth * 2f));
            }

            string formatString = (_mode == Mode.Integer) ? "F0" : "F2";

            // 数字は右寄せ
            renderer.AddText(
                value.ToString(formatString),
                fontSize,
                offsetX + localLeftX + (borderWidth * 2f),
                offsetY + localTopY + (borderWidth * 2f),
                width - (borderWidth * 2f),
                height - (borderWidth * 2f),
                DebugPrimitiveRenderer.Alignment.Right);
        }
예제 #3
0
        void DrawSafeArea()
        {
            var safeArea = GetSafeArea();
            // 左上端
            float x0 = 0f;
            float y0 = (float)Screen.height;

            ConvertCoordFromUnityScreen(ref x0, ref y0);
            // 左上端
            float x1 = (float)Screen.width;
            float y1 = 0f;

            ConvertCoordFromUnityScreen(ref x1, ref y1);
            _renderer.color = new Color32(255, 0, 0, 64);
            _renderer.AddRectangle(x0, y0, (x1 - x0), -y0);                          // 上
            _renderer.AddRectangle(x0, _root.height, (x1 - x0), y1 - _root.height);  // 下
            _renderer.AddRectangle(x0, 0f, -x0, _root.height);                       // 左
            _renderer.AddRectangle(_root.width, 0f, x1 - _root.width, _root.height); // 右
        }
예제 #4
0
        void DrawSafeArea()
        {
            // 左上端
            var   rect = ScreenSettings.Instance.ActualScreenRect;
            float x0   = rect.x;
            float y0   = rect.y + rect.height;

            ConvertCoordFromUnityScreen(ref x0, ref y0);
            // 右下端
            float x1 = rect.x + rect.width;
            float y1 = rect.y;

            ConvertCoordFromUnityScreen(ref x1, ref y1);
            _renderer.color = new Color32(255, 0, 0, 64);
            _renderer.AddRectangle(x0, y0, (x1 - x0), -y0);                          // 上
            _renderer.AddRectangle(x0, _root.height, (x1 - x0), y1 - _root.height);  // 下
            _renderer.AddRectangle(x0, 0f, -x0, _root.height);                       // 左
            _renderer.AddRectangle(_root.width, 0f, x1 - _root.width, _root.height); // 右
        }
예제 #5
0
        public override void Draw(
            float offsetX,
            float offsetY,
            DebugPrimitiveRenderer2D renderer)
        {
            Color32 tmpColor = (isPointerDown) ? pointerDownColor : color;

            renderer.color = tmpColor;
            if (texture != null)
            {
                renderer.AddTexturedRectangle(
                    offsetX + localLeftX + borderWidth,
                    offsetY + localTopY + borderWidth,
                    width - (borderWidth * 2f),
                    height - (borderWidth * 2f),
                    texture);
            }
            else if (sprite != null)
            {
                renderer.AddSprite(
                    offsetX + localLeftX + borderWidth,
                    offsetY + localTopY + borderWidth,
                    width - (borderWidth * 2f),
                    height - (borderWidth * 2f),
                    sprite);
            }
            else
            {
                renderer.AddRectangle(
                    offsetX + localLeftX + borderWidth,
                    offsetY + localTopY + borderWidth,
                    width - (borderWidth * 2f),
                    height - (borderWidth * 2f));
            }

            Color32 tmpTextColor = (isPointerDown) ? pointerDownTextColor : textColor;

            renderer.color = tmpTextColor;
            renderer.AddText(
                text,
                offsetX + localLeftX + (width * 0.5f),
                offsetY + localTopY + (height * 0.5f),
                width - (borderWidth * 4f),
                height - (borderWidth * 4f),
                DebugPrimitiveRenderer.AlignX.Center,
                DebugPrimitiveRenderer.AlignY.Center);
        }
예제 #6
0
        public override void Draw(
            float offsetX,
            float offsetY,
            DebugPrimitiveRenderer2D renderer)
        {
            Color32 tmpColor = (on) ? onColor : offColor;

            renderer.color = tmpColor;
            if (_sprite != null)
            {
                renderer.AddSprite(
                    offsetX + localLeftX + borderWidth,
                    offsetY + localTopY + borderWidth,
                    width - (borderWidth * 2f),
                    height - (borderWidth * 2f),
                    _sprite);
            }
            else if (_texture != null)
            {
                renderer.AddTexturedRectangle(
                    offsetX + localLeftX + borderWidth,
                    offsetY + localTopY + borderWidth,
                    width - (borderWidth * 2f),
                    height - (borderWidth * 2f),
                    _texture);
            }
            else
            {
                renderer.AddRectangle(
                    offsetX + localLeftX + borderWidth,
                    offsetY + localTopY + borderWidth,
                    width - (borderWidth * 2f),
                    height - (borderWidth * 2f));
            }

            Color32 tmpTextColor = (on) ? onTextColor : offTextColor;

            DrawTextAuto(
                renderer,
                text,
                tmpTextColor,
                offsetX + localLeftX + (borderWidth * 2f),
                offsetY + localTopY + (borderWidth * 2f),
                width - (borderWidth * 4f),
                height - (borderWidth * 4f),
                _rotateToVertical);
        }
예제 #7
0
        public void DrawRecursive(
            float offsetX,
            float offsetY,
            DebugPrimitiveRenderer2D renderer)
        {
            if (!_enabled)
            {
                return;
            }

            // まず自分描画
            if (backgroundEnabled)
            {
                renderer.color = backgroundColor;
                renderer.AddRectangle(
                    offsetX + localLeftX,
                    offsetY + localTopY,
                    width,
                    height);
            }
            if (borderEnabled)
            {
                renderer.color = borderColor;
                renderer.AddRectangleFrame(
                    offsetX + localLeftX,
                    offsetY + localTopY,
                    width,
                    height,
                    borderWidth);
            }
            Draw(offsetX, offsetY, renderer);

            // グローバル座標を計算して子を描画
            float globalLeftX = offsetX + localLeftX;
            float globalTopY  = offsetY + localTopY;

            var child = _firstChild;

            while (child != null)
            {
                child.DrawRecursive(globalLeftX, globalTopY, renderer);
                child = child._nextBrother;
            }
        }
예제 #8
0
        void DrawGauge(
            float offsetX,
            float offsetY,
            DebugPrimitiveRenderer2D renderer,
            float value,
            Color32 color)
        {
            // seconadary
            float ratio = (value - _min) / (_max - _min);

            ratio = (ratio < 0f) ? 0f : ((ratio > 1f) ? 1f : ratio);
            float length = ratio * (width - (2f * borderWidth));

            renderer.color = color;
            renderer.AddRectangle(
                offsetX + localLeftX + borderWidth,
                offsetY + localTopY + borderWidth,
                length,
                height - (2f * borderWidth));
        }
예제 #9
0
        public void DrawRecursive(
            float offsetX,
            float offsetY,
            DebugPrimitiveRenderer2D renderer)
        {
            if (!_enabled)
            {
                return;
            }

            // まず自分描画
            if (backgroundEnabled)
            {
                renderer.color = backgroundColor;
                renderer.AddRectangle(
                    offsetX + localLeftX,
                    offsetY + localTopY,
                    width,
                    height);
            }
            if (borderEnabled)
            {
                renderer.color = borderColor;
                renderer.AddRectangleFrame(
                    offsetX + localLeftX,
                    offsetY + localTopY,
                    width,
                    height,
                    borderWidth);
            }
            Draw(offsetX, offsetY, renderer);

            // グローバル座標を計算して子を描画
            float globalLeftX = offsetX + localLeftX;
            float globalTopY  = offsetY + localTopY;

            DrawChildren(globalLeftX, globalTopY, renderer);
            DrawPostChild(offsetX, offsetY, renderer);
        }