diff --git a/Assets/Resources/Settings/BackgroundSceneDatabase.asset b/Assets/Resources/Settings/BackgroundSceneDatabase.asset index 6b00577d..7b4ce5f6 100644 --- a/Assets/Resources/Settings/BackgroundSceneDatabase.asset +++ b/Assets/Resources/Settings/BackgroundSceneDatabase.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0dbfdd29052cb97787b02f41647253242e47c1923291b98b966ad0afb1a97043 -size 16054 +oid sha256:b0ec451fb330424e4a92c2bc880c481bbe90c03f627d8e2596f266d60a84efaf +size 16736 diff --git a/Assets/Scripts/Streamingle/StreamingleControl/Background/BackgroundSceneData.cs b/Assets/Scripts/Streamingle/StreamingleControl/Background/BackgroundSceneData.cs index e612aec4..ce474b44 100644 --- a/Assets/Scripts/Streamingle/StreamingleControl/Background/BackgroundSceneData.cs +++ b/Assets/Scripts/Streamingle/StreamingleControl/Background/BackgroundSceneData.cs @@ -15,6 +15,7 @@ namespace Streamingle.Background public string categoryName; // 카테고리 (폴더명, 예: [공용]농구장) public string thumbnailPath; // 썸네일 이미지 경로 public Texture2D thumbnail; // 로드된 썸네일 (런타임용) + public bool excludeFromWeb; // 웹사이트 업로드 제외 여부 public string DisplayName => sceneName; public string Category => ExtractCategory(categoryName); diff --git a/Assets/Scripts/Streamingle/StreamingleControl/Background/Editor/BackgroundSceneLoaderWindow.cs b/Assets/Scripts/Streamingle/StreamingleControl/Background/Editor/BackgroundSceneLoaderWindow.cs index f57bc0b1..7af0caed 100644 --- a/Assets/Scripts/Streamingle/StreamingleControl/Background/Editor/BackgroundSceneLoaderWindow.cs +++ b/Assets/Scripts/Streamingle/StreamingleControl/Background/Editor/BackgroundSceneLoaderWindow.cs @@ -934,6 +934,14 @@ namespace Streamingle.Background.Editor GUI.Label(thumbnailRect, "No\nThumbnail", new GUIStyle(EditorStyles.centeredGreyMiniLabel) { wordWrap = true, alignment = TextAnchor.MiddleCenter }); } + // 웹 제외 표시 + if (sceneInfo.excludeFromWeb) + { + var excludeRect = new Rect(rect.x + THUMBNAIL_SIZE - 22, rect.y + 4, 18, 18); + EditorGUI.DrawRect(excludeRect, new Color(0.8f, 0.2f, 0.2f, 0.9f)); + GUI.Label(excludeRect, "X", new GUIStyle(EditorStyles.boldLabel) { alignment = TextAnchor.MiddleCenter, normal = { textColor = Color.white } }); + } + // 씬 이름 var labelRect = new Rect(rect.x, rect.y + THUMBNAIL_SIZE, THUMBNAIL_SIZE, 25); GUI.Label(labelRect, sceneInfo.sceneName, new GUIStyle(EditorStyles.miniLabel) { alignment = TextAnchor.MiddleCenter, wordWrap = true, clipping = TextClipping.Clip }); @@ -1002,8 +1010,14 @@ namespace Streamingle.Background.Editor // 씬 정보 EditorGUILayout.BeginVertical(); + EditorGUILayout.BeginHorizontal(); var style = isCurrentScene ? EditorStyles.boldLabel : EditorStyles.label; EditorGUILayout.LabelField(sceneInfo.sceneName, style); + if (sceneInfo.excludeFromWeb) + { + GUILayout.Label("[제외]", new GUIStyle(EditorStyles.miniLabel) { normal = { textColor = new Color(0.9f, 0.3f, 0.3f) } }, GUILayout.Width(35)); + } + EditorGUILayout.EndHorizontal(); EditorGUILayout.LabelField(sceneInfo.categoryName, EditorStyles.miniLabel); EditorGUILayout.EndVertical(); @@ -1040,10 +1054,23 @@ namespace Streamingle.Background.Editor menu.AddItem(new GUIContent("폴더 열기"), false, () => RevealInFinder(sceneInfo)); menu.AddSeparator(""); menu.AddItem(new GUIContent("썸네일 생성"), false, () => CreateThumbnail(sceneInfo)); + menu.AddSeparator(""); + menu.AddItem(new GUIContent("웹사이트 업로드 제외"), sceneInfo.excludeFromWeb, () => ToggleExcludeFromWeb(sceneInfo)); menu.ShowAsContext(); } + private void ToggleExcludeFromWeb(BackgroundSceneInfo sceneInfo) + { + sceneInfo.excludeFromWeb = !sceneInfo.excludeFromWeb; + EditorUtility.SetDirty(_database); + AssetDatabase.SaveAssets(); + + string status = sceneInfo.excludeFromWeb ? "제외됨" : "포함됨"; + UnityEngine.Debug.Log($"[BackgroundSceneLoader] '{sceneInfo.sceneName}' 웹 업로드 {status}"); + Repaint(); + } + private void LoadScene(BackgroundSceneInfo sceneInfo, LoadSceneMode mode = LoadSceneMode.Additive) { if (_isLoading) diff --git a/Assets/Scripts/Streamingle/StreamingleControl/Background/Editor/BackgroundThumbnailCapture.cs b/Assets/Scripts/Streamingle/StreamingleControl/Background/Editor/BackgroundThumbnailCapture.cs index 2cef590d..e7f89e31 100644 --- a/Assets/Scripts/Streamingle/StreamingleControl/Background/Editor/BackgroundThumbnailCapture.cs +++ b/Assets/Scripts/Streamingle/StreamingleControl/Background/Editor/BackgroundThumbnailCapture.cs @@ -1,3 +1,4 @@ +using System; using System.IO; using UnityEditor; using UnityEngine; diff --git a/Assets/Scripts/Streamingle/StreamingleControl/Background/Editor/WebsiteBackgroundExporter.cs b/Assets/Scripts/Streamingle/StreamingleControl/Background/Editor/WebsiteBackgroundExporter.cs index 40eb5b4c..6d3cda98 100644 --- a/Assets/Scripts/Streamingle/StreamingleControl/Background/Editor/WebsiteBackgroundExporter.cs +++ b/Assets/Scripts/Streamingle/StreamingleControl/Background/Editor/WebsiteBackgroundExporter.cs @@ -191,6 +191,10 @@ namespace Streamingle.Background.Editor foreach (var sceneInfo in _database.scenes) { + // 웹 업로드 제외된 씬은 스킵 + if (sceneInfo.excludeFromWeb) + continue; + var item = new WebsiteBackgroundItem { sceneName = sceneInfo.sceneName,