public void Awake()
        {
            int       w  = texture.width;
            int       h  = texture.height;
            BitMatrix bm = new BitMatrix(w, h);

            for (int y = 0; y < h; y++)
            {
                for (int x = 0; x < w; x++)
                {
                    bm.Set(x, y, (texture.GetPixel(x, y).a >= 0.5f));
                }
            }
            this.polygons        = Polygonizer.Polygonize(bm);
            this.polygonCollider = GetComponent <PolygonCollider2D>();

            foreach (List <IntPoint> li in this.polygons)
            {
                for (int i = 0; i < li.Count; i++)
                {
                    li[i] = new IntPoint(li[i].X * MAP_SCALE_INV, li[i].Y * MAP_SCALE_INV);
                }
            }

            dirty = true;
        }