전체 글 (633)

2025
08.14

 

출처 : https://github.com/spoiledcat/git-for-unity/issues/34

 

spoilercat의 git for unity는 유니티 6부터 지원하지 않고 지원도 중단되었다.

에디터에서 수정사항에 대한 아이콘만 보고 싶은 경우 코드를 수정하면 볼 수 있다. 

 

다음의 경로에서 

Library\PackageCache\cohttp://m.spoiledcat.git@a5968714214e\Editor\Misc\Utility.cs

 

Utility.cs파일의

 

75번째줄 StreamExtensions 클래스 내용을 다음으로 대체한다.

    static class StreamExtensions
    {
        private static MethodInfo loadImage;
        private static Func<Texture2D, MemoryStream, Texture2D> invokeLoadImage;
        delegate bool LoadImageDelegate(Texture2D tex, System.ReadOnlySpan<byte> data);

        static StreamExtensions()
        {
            // 5.6
            // looking for Texture2D.LoadImage(byte[] data)
            loadImage = typeof(Texture2D).GetMethods().FirstOrDefault(x => x.Name == "LoadImage" && x.GetParameters().Length == 1);
            if (loadImage != null)
            {
                invokeLoadImage = (tex, ms) =>
                {
                    loadImage.Invoke(tex, new object[] { ms.ToArray() });
                    return tex;
                };
            }
            else
            {
                // 2017.1
                var t = typeof(Texture2D).Assembly.GetType("UnityEngine.ImageConversion", false, false);
                if (t == null)
                {
                    // 2017.2 and above
                    t = Assembly.Load("UnityEngine.ImageConversionModule").GetType("UnityEngine.ImageConversion", false, false);
                }

                if (t != null)
                {
                    // looking for ImageConversion.LoadImage(this Texture2D tex, byte[] data)
                    loadImage = t.GetMethods().FirstOrDefault(x => x.Name == "LoadImage" && x.GetParameters().Length == 2);
                    invokeLoadImage = (tex, ms) =>
                    {
                        //loadImage.Invoke(null, new object[] { tex, ms.ToArray() });
                        var loadImageDelegate = (LoadImageDelegate)Delegate.CreateDelegate(typeof(LoadImageDelegate), loadImage);
                        loadImageDelegate(tex, ms.ToArray());
                        return tex;
                    };
                }
            }

            if (loadImage == null)
            {
                LogHelper.LogAdapter.Error("Utility", "Could not find ImageConversion.LoadImage method");
            }
        }

 

이제 아이콘은 노출 된다.

라이브러리 코드를 수정하는거기 때문에 그냥 복사해서 Package 폴더로 이동시켜야 다른작업자들과 공유된다.