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(sr => { if(sr.sprite == info.SwapTargetSprite){ sr.sprite = info.SwapSprite; } }); } } #endif }