This commit is contained in:
2025-03-08 20:54:44 +08:00
parent 3e2a606b87
commit 77130baab3
2 changed files with 36 additions and 5 deletions
@@ -22,6 +22,31 @@ namespace AibisDream.Framework
#endregion
private Dictionary<string, SpriteRenderer> RendererDict
{
get
{
if (_rendererDict is not { Count: > 0 })
{
if (transform.GetChild(0))
{
var rendererArray = transform.GetChild(0).GetComponentsInChildren<SpriteRenderer>(true);
_rendererDict = new Dictionary<string, SpriteRenderer>();
foreach (var rendererItem in rendererArray)
{
_rendererDict[rendererItem.gameObject.name] = rendererItem;
}
}
else
{
_rendererDict = new Dictionary<string, SpriteRenderer>();
}
}
return _rendererDict;
}
}
/// <summary>
/// 根据PS文件加载
/// </summary>
@@ -104,7 +129,7 @@ namespace AibisDream.Framework
public void SaveState(string curState)
{
var activeArray = _rendererDict
var activeArray = RendererDict
.Where(pair => pair.Value.gameObject.activeSelf)
.Select(item => item.Key)
.ToArray();
@@ -132,7 +157,7 @@ namespace AibisDream.Framework
{
#if UNITY_EDITOR
// 先验证Prefab是否存在
if (AssetDatabase.LoadAssetAtPath<GameObject>(localPath) != null)
if (AssetDatabase.LoadAssetAtPath<GameObject>(localPath))
{
// 如果存在,替换 Prefab
PrefabUtility.SaveAsPrefabAssetAndConnect(target, localPath, InteractionMode.UserAction);
@@ -160,7 +185,7 @@ namespace AibisDream.Framework
if (!config.stateDict.TryGetValue(stateName, out var activeArray)) return;
// 按状态激活
foreach (var item in _rendererDict.Values)
foreach (var item in RendererDict.Values)
{
item.gameObject.SetActive(activeArray.Contains(item.gameObject.name));
}
@@ -178,14 +203,14 @@ namespace AibisDream.Framework
return;
}
if (_rendererDict is not { Count: > 0 })
if (RendererDict is not { Count: > 0 })
{
Debug.LogWarning("还没有加载图集");
return;
}
// 排序
var renderers = _rendererDict.Values;
var renderers = RendererDict.Values;
var sortedRenderers = renderers.OrderBy(item => item, new LayerComparer()).ToArray();
for (var i = 0; i < sortedRenderers.Length; i++)
{