Unity+NGUI를 사용하여 표시 영역 제한

8108 단어 NGUIUnity

개시하다

  • NGUI의 UIPanel Cliping 기능을 사용하는 경우 하위 요소의 표시 영역을 제한할 수 있습니다.
  • 디스플레이 영역은 너비와 높이를 설정하여 사각형으로 지정하거나 텍스쳐를 통해 통과 및 통과 여부를 α값으로 지정할 수 있습니다.
  • 이번에는 동적으로 텍스쳐를 생성하여 UIPanel에 전달하여 클립을 하고 디스플레이 영역을 임의의 형식으로 제한해 보았다.
  • 컨디션

  • Unity 5.5.2f
  • NGUI 3.11.2
  • 코드

    using UnityEngine;
    
    public class Cliptest : MonoBehaviour
    {
        public UIPanel panel;
        public int width = 300;
        public int height = 300;
    
        void Start ()
        {
            ClipTexture ();
        }
    
        public void ClipTexture ()
        {
            // テクスチャの作成
            var t = new Texture2D (width, height, TextureFormat.ARGB32, false);
    
            // テクスチャの設定
            t.filterMode = FilterMode.Point;
            t.wrapMode = TextureWrapMode.Clamp;
    
            // 隠す部分の色
            var mask = new Color (0, 0, 0, 0);
            // 表示する部分の色
            var transparent = new Color (1, 1, 1, 1);
    
            for (int y = 0; y < height; y++)
            {
                for (int x = 0; x < width; x++)
                {
                    if (y == 0 || x == 0 || y == height - 1 || x == width - 1)
                    {
                        // テクスチャの端が透過だと端の座標を含んでいる要素が全て表示されてしまう
                        // 端を非透過にすることでテクスチャの範囲できれいに隠すことができる
                        t.SetPixel (x, y, mask);
                    }
                    else if ((x < width / 2 && y < height / 2) || (x >= width / 2 && y >= height / 2))
                    {
                        t.SetPixel (x, y, mask);
                    }
                    else
                    {
                        t.SetPixel (x, y, transparent);
                    }
                }
            }
    
            // テクスチャへの変更の適用
            t.Apply ();
    
            // テクスチャでクリッピング
            panel.clipTexture = t;
            panel.clipping = UIDrawCall.Clipping.TextureMask;
        }
    }
    

    실행 결과


    클립 전



    클립 후



    Cliping 이후의 Inspector


    좋은 웹페이지 즐겨찾기