Example #1
0
        public static SlicedTexture Slice(Texture2D texture)
        {
            var pixels = texture.GetPixels();
            var slicer = new TextureSlicer(texture, pixels);

            return(slicer.Slice(pixels));
        }
        public void OnPostprocessTexture(Texture2D texture)
        {
            if (!assetPath.Contains("OnionRingSample/Editor/In"))
            {
                return;
            }

            // sliceして、pngで保存
            var slicedTexture = TextureSlicer.Slice(texture);

            File.WriteAllBytes(assetPath.Replace("/In/", "/Out/"), slicedTexture.Texture.EncodeToPNG());

            // border設定をするときに使うので残しておく
            textures[Path.GetFileNameWithoutExtension(assetPath)] = slicedTexture;

            // Refreshすると、さっき保存したpngが読み込まれる
            // delay入れないと稀にEditorごと落ちるので注意。原因不明。
            EditorApplication.delayCall += () => { AssetDatabase.Refresh(); };
        }