fix: export (#65)

This commit is contained in:
djelalb
2025-05-16 13:19:59 +02:00
committed by GitHub
parent bdd238f524
commit 2c7a420f90
2 changed files with 106 additions and 16 deletions

View File

@ -5418,6 +5418,9 @@ GameObject:
- component: {fileID: 678214373} - component: {fileID: 678214373}
- component: {fileID: 678214375} - component: {fileID: 678214375}
- component: {fileID: 678214374} - component: {fileID: 678214374}
- component: {fileID: 678214378}
- component: {fileID: 678214377}
- component: {fileID: 678214376}
m_Layer: 5 m_Layer: 5
m_Name: Save m_Name: Save
m_TagString: Untagged m_TagString: Untagged
@ -5482,6 +5485,89 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 678214372} m_GameObject: {fileID: 678214372}
m_CullTransparentMesh: 1 m_CullTransparentMesh: 1
--- !u!114 &678214376
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 678214372}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 678214374}
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 678214377}
m_TargetAssemblyTypeName: JSONExporter, Assembly-CSharp
m_MethodName: ExportJSON
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
--- !u!114 &678214377
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 678214372}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d3227fe18f4441647bdd19d3131efa02, type: 3}
m_Name:
m_EditorClassIdentifier:
statusText: {fileID: 0}
--- !u!114 &678214378
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 678214372}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f5bf592d3d8430744a08058675701934, type: 3}
m_Name:
m_EditorClassIdentifier:
blockGroupContainer: {fileID: 0}
buttonPrefabTemplate: {fileID: 0}
--- !u!1 &739948034 --- !u!1 &739948034
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@ -5,12 +5,17 @@ using System.Collections.Generic;
using SimpleFileBrowser; using SimpleFileBrowser;
using TMPro; using TMPro;
#if UNITY_EDITOR
using UnityEditor;
#endif
[RequireComponent(typeof(LevelEditor))] [RequireComponent(typeof(LevelEditor))]
public class JSONExporter : MonoBehaviour public class JSONExporter : MonoBehaviour
{ {
public TMP_Text statusText; public TMP_Text statusText;
private LevelEditor editor; private LevelEditor editor;
private string levelsFolder; private string levelsFolder;
private string assetFolderPath;
private void Awake() private void Awake()
{ {
@ -19,6 +24,8 @@ public class JSONExporter : MonoBehaviour
if (!Directory.Exists(levelsFolder)) if (!Directory.Exists(levelsFolder))
Directory.CreateDirectory(levelsFolder); Directory.CreateDirectory(levelsFolder);
assetFolderPath = "Assets/Resources/Levels";
if (statusText == null) if (statusText == null)
{ {
var statusObj = GameObject.Find("StatusText"); var statusObj = GameObject.Find("StatusText");
@ -104,36 +111,33 @@ public class JSONExporter : MonoBehaviour
{ {
Debug.LogError("Export error: " + e); Debug.LogError("Export error: " + e);
SetStatus("Export error. See console.", Color.red); SetStatus("Export error. See console.", Color.red);
yield break;
} }
#if UNITY_EDITOR #if UNITY_EDITOR
UnityEditor.AssetDatabase.Refresh(); string assetPath = Path.Combine(assetFolderPath, fileName + ".json");
AssetDatabase.ImportAsset(assetPath, ImportAssetOptions.ForceUpdate);
#endif #endif
var loader = Object.FindAnyObjectByType<LevelsLoader>();
if (loader != null) var loader = FindObjectOfType<LevelsLoader>();
loader.RefreshLevels(); loader?.RefreshLevels();
} }
private void SetStatus(string message, Color color) private void SetStatus(string message, Color color)
{ {
if (statusText != null) if (statusText == null) return;
{ statusText.text = message;
statusText.text = message; statusText.color = color;
statusText.color = color; statusText.gameObject.SetActive(false);
statusText.gameObject.SetActive(false); statusText.gameObject.SetActive(true);
statusText.gameObject.SetActive(true); Canvas.ForceUpdateCanvases();
Canvas.ForceUpdateCanvases();
}
} }
[System.Serializable] [System.Serializable]
private class SerializableElement private class SerializableElement
{ {
public string type; public string type;
public float x; public float x, y, scaleX, scaleY;
public float y;
public float scaleX;
public float scaleY;
} }
[System.Serializable] [System.Serializable]