76 lines
2.5 KiB
C#
76 lines
2.5 KiB
C#
// AtlasEditorWindow.cs
|
|
|
|
using UnityEditor;
|
|
using UnityEngine;
|
|
|
|
public class AtlasEditorWindow : EditorWindow
|
|
{
|
|
private AtlasConfiguration config;
|
|
private Vector2 scrollPos;
|
|
|
|
[MenuItem("Tools/Atlas Manager")]
|
|
public static void ShowWindow()
|
|
{
|
|
GetWindow<AtlasEditorWindow>("Atlas Manager");
|
|
}
|
|
|
|
private void OnEnable()
|
|
{
|
|
LoadOrCreateConfig();
|
|
}
|
|
|
|
private void LoadOrCreateConfig()
|
|
{
|
|
config = AtlasConfiguration.instance;
|
|
}
|
|
|
|
private void OnGUI()
|
|
{
|
|
scrollPos = EditorGUILayout.BeginScrollView(scrollPos);
|
|
|
|
EditorGUILayout.Space();
|
|
EditorGUILayout.LabelField("Atlas Configuration", EditorStyles.boldLabel);
|
|
|
|
if (config == null) return;
|
|
|
|
DrawConfigurationGUI();
|
|
EditorGUILayout.EndScrollView();
|
|
}
|
|
|
|
private void DrawConfigurationGUI()
|
|
{
|
|
EditorGUI.BeginChangeCheck();
|
|
|
|
EditorGUILayout.Space();
|
|
EditorGUILayout.LabelField("Paths", EditorStyles.boldLabel);
|
|
config.atlasOutputPath = EditorGUILayout.TextField("Atlas Output", config.atlasOutputPath);
|
|
config.rawUIPath = EditorGUILayout.TextField("Raw UI Path", config.rawUIPath);
|
|
config.uiAtlasPath = EditorGUILayout.TextField("UI Atlas Path", config.uiAtlasPath);
|
|
|
|
EditorGUILayout.Space();
|
|
EditorGUILayout.LabelField("Texture Settings", EditorStyles.boldLabel);
|
|
config.androidFormat = (TextureImporterFormat)EditorGUILayout.EnumPopup("Android Format", config.androidFormat);
|
|
config.iosFormat = (TextureImporterFormat)EditorGUILayout.EnumPopup("iOS Format", config.iosFormat);
|
|
config.webglFormat = (TextureImporterFormat)EditorGUILayout.EnumPopup("WebGL Format", config.webglFormat);
|
|
config.compressionQuality = EditorGUILayout.IntSlider("Compression Quality",
|
|
config.compressionQuality, 0, 100);
|
|
|
|
EditorGUILayout.Space();
|
|
EditorGUILayout.LabelField("Packing Settings", EditorStyles.boldLabel);
|
|
config.padding = EditorGUILayout.IntField("Padding", config.padding);
|
|
config.enableRotation = EditorGUILayout.Toggle("Enable Rotation", config.enableRotation);
|
|
config.blockOffset = EditorGUILayout.IntField("Block Offset", config.blockOffset);
|
|
|
|
if (EditorGUI.EndChangeCheck())
|
|
{
|
|
EditorUtility.SetDirty(config);
|
|
}
|
|
|
|
EditorGUILayout.Space();
|
|
if (GUILayout.Button("Force Rebuild All Atlases", GUILayout.Height(30)))
|
|
{
|
|
AtlasProcessor.ForceRebuildAtlases(config);
|
|
}
|
|
}
|
|
}
|