Improve sprite b64 handling
This commit is contained in:
@@ -663,7 +663,7 @@ MonoBehaviour:
|
|||||||
m_OnCullStateChanged:
|
m_OnCullStateChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_Sprite: {fileID: 0}
|
m_Sprite: {fileID: 21300000, guid: 517f61beffc1245a0a3f7907c7c93eb0, type: 3}
|
||||||
m_Type: 0
|
m_Type: 0
|
||||||
m_PreserveAspect: 0
|
m_PreserveAspect: 0
|
||||||
m_FillCenter: 1
|
m_FillCenter: 1
|
||||||
|
|||||||
@@ -40,8 +40,10 @@ public class CustomIconLoader : MonoBehaviour
|
|||||||
var cachedIcon = BazookaManager.Instance.iconCache.FirstOrDefault(icon => icon.ID == obj.ID);
|
var cachedIcon = BazookaManager.Instance.iconCache.FirstOrDefault(icon => icon.ID == obj.ID);
|
||||||
if (cachedIcon != null)
|
if (cachedIcon != null)
|
||||||
{
|
{
|
||||||
try { Tools.RenderFromBase64(cachedIcon.Data, obj.GetComponent<Image>()); }
|
if (obj.TryGetComponent<Image>(out var image))
|
||||||
catch { Tools.RenderFromBase64(cachedIcon.Data, obj.GetComponent<SpriteRenderer>()); }
|
image.sprite = Tools.GetSpriteFromBase64(cachedIcon.Data);
|
||||||
|
else if (obj.TryGetComponent<SpriteRenderer>(out var spriteRenderer))
|
||||||
|
image.sprite = Tools.GetSpriteFromBase64(cachedIcon.Data);
|
||||||
}
|
}
|
||||||
Destroy(obj);
|
Destroy(obj);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ public class IconMarketplaceUploadIcon : MonoBehaviour
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
birdData = Convert.ToBase64String(fileContent);
|
birdData = Convert.ToBase64String(fileContent);
|
||||||
Tools.RenderFromBase64(birdData, birdImage);
|
birdImage.sprite = Tools.GetSpriteFromBase64(birdData);
|
||||||
birdImageNone.SetActive(false);
|
birdImageNone.SetActive(false);
|
||||||
birdImage.gameObject.SetActive(true);
|
birdImage.gameObject.SetActive(true);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,30 +34,16 @@ public static class Tools
|
|||||||
statusText.color = color;
|
statusText.color = color;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void RenderFromBase64(string base64, Image targetImage)
|
public static Sprite GetSpriteFromBase64(string base64)
|
||||||
{
|
{
|
||||||
byte[] imageData = Convert.FromBase64String(base64);
|
byte[] imageData = Convert.FromBase64String(base64);
|
||||||
Texture2D tex = new(2, 2, TextureFormat.ARGB32, false);
|
Texture2D tex = new(2, 2, TextureFormat.ARGB32, false);
|
||||||
if (!tex.LoadImage(imageData)) return;
|
if (!tex.LoadImage(imageData)) return null;
|
||||||
|
|
||||||
tex.filterMode = FilterMode.Point;
|
tex.filterMode = FilterMode.Point;
|
||||||
tex.Apply(false, false);
|
tex.Apply(false, false);
|
||||||
|
|
||||||
Sprite sprite = Sprite.Create(tex, new Rect(0, 0, tex.width, tex.height), new UnityEngine.Vector2(0.5f, 0.5f));
|
return Sprite.Create(tex, new Rect(0, 0, tex.width, tex.height), new UnityEngine.Vector2(0.5f, 0.5f));
|
||||||
targetImage.sprite = sprite;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void RenderFromBase64(string base64, SpriteRenderer targetImage)
|
|
||||||
{
|
|
||||||
byte[] imageData = Convert.FromBase64String(base64);
|
|
||||||
Texture2D tex = new(2, 2, TextureFormat.ARGB32, false);
|
|
||||||
if (!tex.LoadImage(imageData)) return;
|
|
||||||
|
|
||||||
tex.filterMode = FilterMode.Point;
|
|
||||||
tex.Apply(false, false);
|
|
||||||
|
|
||||||
Sprite sprite = Sprite.Create(tex, new Rect(0, 0, tex.width, tex.height), new UnityEngine.Vector2(0.5f, 0.5f));
|
|
||||||
targetImage.sprite = sprite;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void RefreshHierarchy(GameObject root)
|
public static void RefreshHierarchy(GameObject root)
|
||||||
|
|||||||
Reference in New Issue
Block a user