表情
This commit is contained in:
@@ -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++)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user