popcorn/Scripts/Utilities/Swapper/SpriteRendererSpriteSwapper.cs

44 lines
1.2 KiB
C#

using UnityEngine;
#if UNITY_EDITOR
using System;
using System.Collections.Generic;
using UnityEditor.Experimental.SceneManagement;
#endif
public sealed class SpriteRendererSpriteSwapper : MonoBehaviour {
#if UNITY_EDITOR
[SerializableAttribute]
public sealed class SwapInfo {
[SerializeField]
private Sprite swapTargetSprite = default;
public Sprite SwapTargetSprite {
get{ return swapTargetSprite; }
}
[SerializeField]
private Sprite swapSprite = default;
public Sprite SwapSprite {
get{ return swapSprite; }
}
}
[SerializeField]
private SwapInfo[] swapInfoArray = new SwapInfo[1];
[ContextMenu("SwapSprite")]
private void SwapSprite(){
foreach(var info in swapInfoArray){
if(info.SwapTargetSprite == null) return ;
if(info.SwapSprite == null) return ;
transform.FindAllChildrensComponent<SpriteRenderer>(sr => {
if(sr.sprite == info.SwapTargetSprite){
sr.sprite = info.SwapSprite;
}
});
}
}
#endif
}