riversong code showcase

This commit is contained in:
Daniele Marotta
2026-05-21 15:52:18 +02:00
commit 4c9eea1c02
462 changed files with 23406 additions and 0 deletions

View File

@@ -0,0 +1,48 @@
using System.IO;
using Sirenix.OdinInspector;
using UnityEngine;
#if UNITY_EDITOR
using UnityEditor;
#endif
namespace DanieleMarotta.RiversongCodeShowcase
{
public class IconMaker : MonoBehaviour
{
#if UNITY_EDITOR
[SerializeField]
[PreviewField]
private RenderTexture _iconTexture;
[Button(ButtonSizes.Large)]
[GUIColor("cyan")]
public void MakeIcon()
{
if (!_iconTexture) return;
var folderPath = "Assets/_Project/GameAssets/UI/Icons";
if (!Directory.Exists(folderPath)) Directory.CreateDirectory(folderPath);
var fileName = $"Icon_{GUID.Generate()}.png";
RenderTexture.active = _iconTexture;
var temp = new Texture2D(_iconTexture.width, _iconTexture.height, TextureFormat.RGBA32, false);
temp.ReadPixels(new Rect(0, 0, _iconTexture.width, _iconTexture.height), 0, 0);
temp.Apply();
var fullPath = Path.Combine(folderPath, fileName);
File.WriteAllBytes(fullPath, temp.EncodeToPNG());
AssetDatabase.Refresh();
var importer = (TextureImporter)AssetImporter.GetAtPath(fullPath);
importer.textureType = TextureImporterType.Sprite;
importer.spriteImportMode = SpriteImportMode.Single;
importer.maxTextureSize = 256;
importer.mipmapEnabled = true;
importer.SaveAndReimport();
}
#endif
}
}