private void DoMyWindow(int windowId)
    {
        const int offsetX = 10;
        var       offsetY = 30;

        _techniqueOverlap = GUI.Toggle(new Rect(offsetX, offsetY, 130, 30), _techniqueOverlap, "Technique Overlap");
        if (_techniqueOverlap)
        {
            _techniqueSplat = false;
            _tileTech       = TileTechnique.Overlap;
        }
        else if (!_techniqueSplat)
        {
            _techniqueOverlap = true;
            _tileTech         = TileTechnique.Overlap;
        }

        _techniqueSplat = GUI.Toggle(new Rect(offsetX + 150, offsetY, 130, 30), _techniqueSplat, "Technique Splat");
        if (_techniqueSplat)
        {
            _techniqueOverlap = false;
            _tileTech         = TileTechnique.Splat;
        }
        else if (!_techniqueOverlap)
        {
            _techniqueSplat = true;
            _tileTech       = TileTechnique.Splat;
        }

        offsetY += 40;

        GUI.Label(new Rect(offsetX, offsetY, 150, 20), "New Texture Size X");
        _newTexSelectionX =
            GUI.SelectionGrid(new Rect(offsetX, offsetY + 30, 120, 50), _newTexSelectionX, _texSizes, 2);

        GUI.Label(new Rect(offsetX + 150, offsetY, 150, 20), "New Texture Size Y");
        _newTexSelectionY =
            GUI.SelectionGrid(new Rect(offsetX + 150, offsetY + 30, 120, 50), _newTexSelectionY, _texSizes, 2);

        offsetY += 100;

        if (GuiHelper.Slider(new Rect(offsetX, offsetY, 280, 50), "Edge Falloff", _falloff, _falloffText, out _falloff,
                             out _falloffText, 0.01f, 1.0f))
        {
            _doStuff = true;
        }
        offsetY += 40;

        if (_techniqueOverlap)
        {
            if (GuiHelper.Slider(new Rect(offsetX, offsetY, 280, 50), "Overlap X", _overlapX, _overlapXText,
                                 out _overlapX,
                                 out _overlapXText, 0.00f, 1.0f))
            {
                _doStuff = true;
            }
            offsetY += 40;

            if (GuiHelper.Slider(new Rect(offsetX, offsetY, 280, 50), "Overlap Y", _overlapY, _overlapYText,
                                 out _overlapY,
                                 out _overlapYText, 0.00f, 1.0f))
            {
                _doStuff = true;
            }
            offsetY += 50;
        }

        if (_techniqueSplat)
        {
            if (GuiHelper.Slider(new Rect(offsetX, offsetY, 280, 50), "Splat Rotation", _splatRotation,
                                 _splatRotationText, out _splatRotation, out _splatRotationText, 0.0f, 1.0f))
            {
                _doStuff = true;
            }
            offsetY += 40;

            if (GuiHelper.Slider(new Rect(offsetX, offsetY, 280, 50), "Splat Random Rotation", _splatRotationRandom,
                                 _splatRotationRandomText, out _splatRotationRandom, out _splatRotationRandomText, 0.0f, 1.0f))
            {
                _doStuff = true;
            }
            offsetY += 40;

            if (GuiHelper.Slider(new Rect(offsetX, offsetY, 280, 50), "Splat Scale", _splatScale, _splatScaleText,
                                 out _splatScale, out _splatScaleText, 0.5f, 2.0f))
            {
                _doStuff = true;
            }
            offsetY += 40;

            if (GuiHelper.Slider(new Rect(offsetX, offsetY, 280, 50), "Splat Wooble Amount", _splatWobble,
                                 _splatWobbleText, out _splatWobble, out _splatWobbleText, 0.0f, 1.0f))
            {
                _doStuff = true;
            }
            offsetY += 40;

            if (GuiHelper.Slider(new Rect(offsetX, offsetY, 280, 50), "Splat Randomize", _splatRandomize,
                                 _splatRandomizeText, out _splatRandomize, out _splatRandomizeText, 0.0f, 1.0f))
            {
                _doStuff = true;
            }
            offsetY += 50;
        }

        GUI.Label(new Rect(offsetX, offsetY, 150, 30), "Tiling Test Variables");
        offsetY += 30;

        GuiHelper.Slider(new Rect(offsetX, offsetY, 280, 50), "Texture Tiling", _texTiling, _texTilingText,
                         out _texTiling,
                         out _texTilingText, 0.1f, 5.0f);
        offsetY += 40;

        GuiHelper.Slider(new Rect(offsetX, offsetY, 280, 50), "Texture Offset X", _texOffsetX, _texOffsetXText,
                         out _texOffsetX, out _texOffsetXText, -1.0f, 1.0f);
        offsetY += 40;

        GuiHelper.Slider(new Rect(offsetX, offsetY, 280, 50), "Texture Offset Y", _texOffsetY, _texOffsetYText,
                         out _texOffsetY, out _texOffsetYText, -1.0f, 1.0f);
        offsetY += 40;

        if (GUI.Button(new Rect(offsetX + 150, offsetY, 130, 30), "Set Maps"))
        {
            StartCoroutine(SetMaps());
        }


        GUI.DragWindow();
    }
Exemplo n.º 2
0
    void DoMyWindow(int windowID)
    {
        int spacingX  = 0;
        int spacingY  = 50;
        int spacing2Y = 70;

        int offsetX = 10;
        int offsetY = 30;

        techniqueOverlap = GUI.Toggle(new Rect(offsetX, offsetY, 130, 30), techniqueOverlap, "Technique Overlap");
        if (techniqueOverlap)
        {
            techniqueSplat = false;
            tileTech       = TileTechnique.Overlap;
        }
        else if (!techniqueSplat)
        {
            techniqueOverlap = true;
            tileTech         = TileTechnique.Overlap;
        }

        techniqueSplat = GUI.Toggle(new Rect(offsetX + 150, offsetY, 130, 30), techniqueSplat, "Technique Splat");
        if (techniqueSplat)
        {
            techniqueOverlap = false;
            tileTech         = TileTechnique.Splat;
        }
        else if (!techniqueOverlap)
        {
            techniqueSplat = true;
            tileTech       = TileTechnique.Splat;
        }

        offsetY += 40;

        GUI.Label(new Rect(offsetX, offsetY, 150, 20), "New Texture Size X");
        NewTexSelectionX = GUI.SelectionGrid(new Rect(offsetX, offsetY + 30, 120, 50), NewTexSelectionX, TexSizes, 2);

        GUI.Label(new Rect(offsetX + 150, offsetY, 150, 20), "New Texture Size Y");
        NewTexSelectionY = GUI.SelectionGrid(new Rect(offsetX + 150, offsetY + 30, 120, 50), NewTexSelectionY, TexSizes, 2);

        offsetY += 100;

        if (GuiHelper.Slider(new Rect(offsetX, offsetY, 280, 50), "Edge Falloff", Falloff, FalloffText, out Falloff, out FalloffText, 0.01f, 1.0f))
        {
            doStuff = true;
        }
        offsetY += 40;

        if (techniqueOverlap)
        {
            if (GuiHelper.Slider(new Rect(offsetX, offsetY, 280, 50), "Overlap X", OverlapX, OverlapXText, out OverlapX, out OverlapXText, 0.00f, 1.0f))
            {
                doStuff = true;
            }
            offsetY += 40;

            if (GuiHelper.Slider(new Rect(offsetX, offsetY, 280, 50), "Overlap Y", OverlapY, OverlapYText, out OverlapY, out OverlapYText, 0.00f, 1.0f))
            {
                doStuff = true;
            }
            offsetY += 50;
        }

        if (techniqueSplat)
        {
            if (GuiHelper.Slider(new Rect(offsetX, offsetY, 280, 50), "Splat Rotation", SplatRotation, SplatRotationText, out SplatRotation, out SplatRotationText, 0.0f, 1.0f))
            {
                doStuff = true;
            }
            offsetY += 40;

            if (GuiHelper.Slider(new Rect(offsetX, offsetY, 280, 50), "Splat Random Rotation", SplatRotationRandom, SplatRotationRandomText, out SplatRotationRandom, out SplatRotationRandomText, 0.0f, 1.0f))
            {
                doStuff = true;
            }
            offsetY += 40;

            if (GuiHelper.Slider(new Rect(offsetX, offsetY, 280, 50), "Splat Scale", SplatScale, SplatScaleText, out SplatScale, out SplatScaleText, 0.5f, 2.0f))
            {
                doStuff = true;
            }
            offsetY += 40;

            if (GuiHelper.Slider(new Rect(offsetX, offsetY, 280, 50), "Splat Wooble Amount", SplatWobble, SplatWobbleText, out SplatWobble, out SplatWobbleText, 0.0f, 1.0f))
            {
                doStuff = true;
            }
            offsetY += 40;

            if (GuiHelper.Slider(new Rect(offsetX, offsetY, 280, 50), "Splat Randomize", SplatRandomize, SplatRandomizeText, out SplatRandomize, out SplatRandomizeText, 0.0f, 1.0f))
            {
                doStuff = true;
            }
            offsetY += 50;
        }

        GUI.Label(new Rect(offsetX, offsetY, 150, 30), "Tiling Test Variables");
        offsetY += 30;

        GuiHelper.Slider(new Rect(offsetX, offsetY, 280, 50), "Texture Tiling", TexTiling, TexTilingText, out TexTiling, out TexTilingText, 0.1f, 5.0f);
        offsetY += 40;

        GuiHelper.Slider(new Rect(offsetX, offsetY, 280, 50), "Texture Offset X", TexOffsetX, TexOffsetXText, out TexOffsetX, out TexOffsetXText, -1.0f, 1.0f);
        offsetY += 40;

        GuiHelper.Slider(new Rect(offsetX, offsetY, 280, 50), "Texture Offset Y", TexOffsetY, TexOffsetYText, out TexOffsetY, out TexOffsetYText, -1.0f, 1.0f);
        offsetY += 40;

        if (GUI.Button(new Rect(offsetX + 150, offsetY, 130, 30), "Set Maps"))
        {
            StartCoroutine(SetMaps( ));
        }


        GUI.DragWindow();
    }
    private void Update()
    {
        _thisMaterial.SetVector(Tiling, new Vector4(_texTiling, _texTiling, _texOffsetX, _texOffsetY));

        if (Math.Abs(_lastOverlapX - _overlapX) > 0.0001f)
        {
            _lastOverlapX = _overlapX;
            _doStuff      = true;
        }

        if (Math.Abs(_lastOverlapY - _overlapY) > 0.0001f)
        {
            _lastOverlapY = _overlapY;
            _doStuff      = true;
        }

        if (Math.Abs(_lastFalloff - _falloff) > 0.0001f)
        {
            _lastFalloff = _falloff;
            _doStuff     = true;
        }

        if (_newTexSelectionX != _lastNewTexSelectionX)
        {
            _lastNewTexSelectionX = _newTexSelectionX;
            _doStuff = true;
        }

        if (_newTexSelectionY != _lastNewTexSelectionY)
        {
            _lastNewTexSelectionY = _newTexSelectionY;
            _doStuff = true;
        }

        if (_tileTech != _lastTileTech)
        {
            _lastTileTech = _tileTech;
            _doStuff      = true;
        }

        if (!_doStuff)
        {
            return;
        }
        _doStuff = false;

        switch (_newTexSelectionX)
        {
        case 0:
            _newTexSizeX = 512;
            break;

        case 1:
            _newTexSizeX = 1024;
            break;

        case 2:
            _newTexSizeX = 2048;
            break;

        case 3:
            _newTexSizeX = 4096;
            break;

        default:
            _newTexSizeX = 1024;
            break;
        }

        switch (_newTexSelectionY)
        {
        case 0:
            _newTexSizeY = 512;
            break;

        case 1:
            _newTexSizeY = 1024;
            break;

        case 2:
            _newTexSizeY = 2048;
            break;

        case 3:
            _newTexSizeY = 4096;
            break;

        default:
            _newTexSizeY = 1024;
            break;
        }


        var aspect = _newTexSizeX / (float)_newTexSizeY;

        if (Mathf.Approximately(aspect, 8.0f))
        {
            SkRectWide3();
        }
        else if (Mathf.Approximately(aspect, 4.0f))
        {
            SkRectWide2();
        }
        else if (Mathf.Approximately(aspect, 2.0f))
        {
            SkRectWide();
        }
        else if (Mathf.Approximately(aspect, 1.0f))
        {
            SkSquare();
        }
        else if (Mathf.Approximately(aspect, 0.5f))
        {
            SkRectTall();
        }
        else if (Mathf.Approximately(aspect, 0.25f))
        {
            SkRectTall2();
        }
        else if (Mathf.Approximately(aspect, 0.125f))
        {
            SkRectTall3();
        }


        const float area = 1.0f;

        _objectScale   = Vector3.one;
        _objectScale.x = aspect;
        var newArea   = _objectScale.x * _objectScale.y;
        var areaScale = Mathf.Sqrt(area / newArea);

        _objectScale.x *= areaScale;
        _objectScale.y *= areaScale;

        TestObject.transform.localScale = _objectScale;

        StartCoroutine(TileTextures());
    }
Exemplo n.º 4
0
    void Update()
    {
        thisMaterial.SetVector("_Tiling", new Vector4(TexTiling, TexTiling, TexOffsetX, TexOffsetY));

        if (LastOverlapX != OverlapX)
        {
            LastOverlapX = OverlapX;
            doStuff      = true;
        }

        if (LastOverlapY != OverlapY)
        {
            LastOverlapY = OverlapY;
            doStuff      = true;
        }

        if (LastFalloff != Falloff)
        {
            LastFalloff = Falloff;
            doStuff     = true;
        }

        if (NewTexSelectionX != LastNewTexSelectionX)
        {
            LastNewTexSelectionX = NewTexSelectionX;
            doStuff = true;
        }

        if (NewTexSelectionY != LastNewTexSelectionY)
        {
            LastNewTexSelectionY = NewTexSelectionY;
            doStuff = true;
        }

        if (tileTech != lastTileTech)
        {
            lastTileTech = tileTech;
            doStuff      = true;
        }

        if (doStuff)
        {
            doStuff = false;

            switch (NewTexSelectionX)
            {
            case 0:
                NewTexSizeX = 512;
                break;

            case 1:
                NewTexSizeX = 1024;
                break;

            case 2:
                NewTexSizeX = 2048;
                break;

            case 3:
                NewTexSizeX = 4096;
                break;

            default:
                NewTexSizeX = 1024;
                break;
            }

            switch (NewTexSelectionY)
            {
            case 0:
                NewTexSizeY = 512;
                break;

            case 1:
                NewTexSizeY = 1024;
                break;

            case 2:
                NewTexSizeY = 2048;
                break;

            case 3:
                NewTexSizeY = 4096;
                break;

            default:
                NewTexSizeY = 1024;
                break;
            }



            float aspect = (float)NewTexSizeX / (float)NewTexSizeY;

            if (Mathf.Approximately(aspect, 8.0f))
            {
                SKRectWide3();
            }
            else if (Mathf.Approximately(aspect, 4.0f))
            {
                SKRectWide2();
            }
            else if (Mathf.Approximately(aspect, 2.0f))
            {
                SKRectWide();
            }
            else if (Mathf.Approximately(aspect, 1.0f))
            {
                SKSquare();
            }
            else if (Mathf.Approximately(aspect, 0.5f))
            {
                SKRectTall();
            }
            else if (Mathf.Approximately(aspect, 0.25f))
            {
                SKRectTall2();
            }
            else if (Mathf.Approximately(aspect, 0.125f))
            {
                SKRectTall3();
            }


            float area = 1.0f;
            objectScale   = Vector3.one;
            objectScale.x = aspect;
            float newArea   = objectScale.x * objectScale.y;
            float areaScale = Mathf.Sqrt(area / newArea);

            objectScale.x *= areaScale;
            objectScale.y *= areaScale;

            testObject.transform.localScale = objectScale;

            StartCoroutine(TileTextures());
        }
    }