fix: Sidekick 에디터 자동 실행 방지
- Sidekick Character Tool과 Downloader가 메뉴 실행 시에만 열리도록 수동 실행 플래그를 추가 - 데이터베이스 초기화 실패 및 로딩 상태 null 참조 방어 처리 추가 - TMP 한글 폰트 에셋의 글리프/문자 테이블 갱신
This commit is contained in:
@@ -47,8 +47,9 @@ namespace Synty.SidekickCharacters
|
||||
private const string _BLEND_MUSCLE_NAME = "defaultBuff";
|
||||
private const string _BLEND_SHAPE_HEAVY_NAME = "defaultHeavy";
|
||||
private const string _BLEND_SHAPE_SKINNY_NAME = "defaultSkinny";
|
||||
private const string _AUTO_OPEN_STATE = "syntySkAutoOpenState";
|
||||
private const string _OUTPUT_MODEL_NAME = "Combined Character";
|
||||
private const string _AUTO_OPEN_STATE = "syntySkAutoOpenState";
|
||||
private const string _MANUAL_OPEN_SESSION_KEY = "syntySkManualOpenRequested";
|
||||
private const string _OUTPUT_MODEL_NAME = "Combined Character";
|
||||
private const string _PART_COUNT_BODY = " parts in library";
|
||||
private const string _TEXTURE_COLOR_NAME = "ColorMap.png";
|
||||
private const string _TEXTURE_METALLIC_NAME = "MetallicMap.png";
|
||||
@@ -181,27 +182,34 @@ namespace Synty.SidekickCharacters
|
||||
}
|
||||
|
||||
/// <inheritdoc cref="OnDestroy" />
|
||||
private void OnDestroy()
|
||||
{
|
||||
if (_useAutoSaveAndLoad)
|
||||
{
|
||||
SerializedCharacter savedCharacter = CreateSerializedCharacter(_OUTPUT_MODEL_NAME);
|
||||
Serializer serializer = new Serializer();
|
||||
private void OnDestroy()
|
||||
{
|
||||
if (_useAutoSaveAndLoad && _currentSpecies != null && _currentCharacter != null)
|
||||
{
|
||||
SerializedCharacter savedCharacter = CreateSerializedCharacter(_OUTPUT_MODEL_NAME);
|
||||
Serializer serializer = new Serializer();
|
||||
string serializedCharacter = serializer.Serialize(savedCharacter);
|
||||
EditorPrefs.SetString(_AUTOSAVE_KEY, serializedCharacter);
|
||||
}
|
||||
|
||||
// ensures we release the file lock on the database
|
||||
_dbManager.CloseConnection();
|
||||
}
|
||||
|
||||
// ensures we release the file lock on the database
|
||||
_dbManager?.CloseConnection();
|
||||
}
|
||||
|
||||
#if UNITY_EDITOR
|
||||
/// <inheritdoc cref="OnEnable" />
|
||||
private void OnEnable()
|
||||
{
|
||||
EditorApplication.playModeStateChanged += StateChange;
|
||||
EditorApplication.update += AnimationUpdate;
|
||||
}
|
||||
private void OnEnable()
|
||||
{
|
||||
if (!SessionState.GetBool(_MANUAL_OPEN_SESSION_KEY, false))
|
||||
{
|
||||
_useAutoSaveAndLoad = false;
|
||||
Close();
|
||||
return;
|
||||
}
|
||||
|
||||
EditorApplication.playModeStateChanged += StateChange;
|
||||
EditorApplication.update += AnimationUpdate;
|
||||
}
|
||||
|
||||
private void OnDisable()
|
||||
{
|
||||
@@ -211,7 +219,7 @@ namespace Synty.SidekickCharacters
|
||||
/// <inheritdoc cref="Update" />
|
||||
private void Update()
|
||||
{
|
||||
if (_loadingContent)
|
||||
if (_loadingContent && _loadingImage != null)
|
||||
{
|
||||
Vector3 rotation = _loadingImage.transform.rotation.eulerAngles;
|
||||
rotation += new Vector3(0, 0, 0.5f * Time.deltaTime);
|
||||
@@ -461,6 +469,7 @@ namespace Synty.SidekickCharacters
|
||||
public async void CreateGUI()
|
||||
{
|
||||
_loadingContent = true;
|
||||
_loadingImage = null;
|
||||
InitializeEditorWindow();
|
||||
_root = rootVisualElement;
|
||||
_root.Clear();
|
||||
@@ -469,10 +478,23 @@ namespace Synty.SidekickCharacters
|
||||
_root.styleSheets.Add(_editorStyle);
|
||||
}
|
||||
|
||||
InitializeDatabase();
|
||||
try
|
||||
{
|
||||
InitializeDatabase();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_loadingContent = false;
|
||||
_dbManager?.CloseConnection();
|
||||
_dbManager = null;
|
||||
Debug.LogWarning($"Failed to initialize Sidekick database. Please check the database file.\n{ex.Message}");
|
||||
return;
|
||||
}
|
||||
|
||||
// if we still can't connect, something's gone wrong, don't keep building the GUI
|
||||
if (_dbManager?.GetCurrentDbConnection() == null)
|
||||
{
|
||||
_loadingContent = false;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -804,6 +826,7 @@ namespace Synty.SidekickCharacters
|
||||
}
|
||||
catch
|
||||
{
|
||||
_loadingContent = false;
|
||||
Debug.LogWarning("Failed to load tool data. Please try again.\nPlease note that data loading may take some time.");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user