mirror of
https://github.com/appen-isen/jeu-sans-image.git
synced 2026-01-18 16:47:37 +01:00
42 lines
1.4 KiB
C#
42 lines
1.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using Unity.VisualScripting;
|
|
using UnityEngine;
|
|
|
|
[CreateAssetMenu(fileName = "ColorFolderMap", menuName = "Config/Color Folder Map")]
|
|
public class ColorFolderMap : ScriptableObject {
|
|
[Serializable]
|
|
public struct Entry {
|
|
public Color color;
|
|
public string folderName; // Example: "Gravel"
|
|
}
|
|
|
|
private const string SoundTexturesFolder = "Sound/Textures/";
|
|
private const string ResourcesFolderPath = "Assets/Resources/";
|
|
|
|
public List<Entry> entries = new List<Entry>();
|
|
|
|
/// Returns folder path for color, or null if config not set (Editor + Runtime safe)
|
|
/// Creates the folder if it does not exist
|
|
public string GetFolder(Color color) {
|
|
string hexColor = color.ToHexString();
|
|
foreach (var entry in entries) {
|
|
if (entry.color.ToHexString() == hexColor) {
|
|
CreateFolderIfNonExistent(entry.folderName);
|
|
return SoundTexturesFolder + entry.folderName;
|
|
}
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
private void CreateFolderIfNonExistent(string folderName) {
|
|
#if UNITY_EDITOR // AssetDatabase is Editor-only
|
|
if (!UnityEditor.AssetDatabase.IsValidFolder(ResourcesFolderPath + SoundTexturesFolder + folderName)) {
|
|
UnityEditor.AssetDatabase.CreateFolder(ResourcesFolderPath + SoundTexturesFolder, folderName);
|
|
UnityEditor.AssetDatabase.Refresh();
|
|
}
|
|
#endif
|
|
}
|
|
}
|