123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- using System;
- using System.Collections.Generic;
-
- namespace UnityEngine.U2D.Animation
- {
- internal class SpriteSkinContainer : ScriptableObject
- {
- public static event Action<SpriteSkin> onAddedSpriteSkin;
- public static event Action<SpriteSkin> onRemovedSpriteSkin;
- public static event Action<SpriteSkin> onBoneTransformChanged;
-
- static SpriteSkinContainer s_Instance;
-
- public static SpriteSkinContainer instance
- {
- get
- {
- if (s_Instance == null)
- {
- var managers = Resources.FindObjectsOfTypeAll<SpriteSkinContainer>();
- if (managers.Length > 0)
- s_Instance = managers[0];
- else
- s_Instance = CreateInstance<SpriteSkinContainer>();
- s_Instance.hideFlags = HideFlags.HideAndDontSave;
- }
-
- return s_Instance;
- }
- }
-
- List<SpriteSkin> m_SpriteSkin = new List<SpriteSkin>();
- public IReadOnlyList<SpriteSkin> spriteSkins => m_SpriteSkin;
-
- public void AddSpriteSkin(SpriteSkin spriteSkin)
- {
- m_SpriteSkin.Add(spriteSkin);
-
- onAddedSpriteSkin?.Invoke(spriteSkin);
- }
-
- public void RemoveSpriteSkin(SpriteSkin spriteSkin)
- {
- m_SpriteSkin.Remove(spriteSkin);
-
- onRemovedSpriteSkin?.Invoke(spriteSkin);
- }
-
- public void BoneTransformsChanged(SpriteSkin spriteSkin)
- {
- onBoneTransformChanged?.Invoke(spriteSkin);
- }
- }
- }
|