using UnityEngine; using UnityEngine.UI; namespace SpellBoundAR.CustomTextures.UI { [RequireComponent(typeof(Image))] public class TexturePreviewImage : MonoBehaviour { [Header("Cache")] private Image _image; private TexturePreview _texturePreview; private void Awake() { _image = GetComponent(); _texturePreview = GetComponentInParent(); } private void OnEnable() { if (_texturePreview) _texturePreview.OnSavedTextureDataChanged += OnSavedTextureDataChanged; OnSavedTextureDataChanged(); } private void OnDisable() { if (_texturePreview) _texturePreview.OnSavedTextureDataChanged -= OnSavedTextureDataChanged; } private void OnSavedTextureDataChanged() { if (!_image) return; _image.sprite = _texturePreview && _texturePreview.SavedCustomTexture != null ? _texturePreview.SavedCustomTexture.CreateSprite() : null; _image.color = _image.sprite ? Color.white : Color.clear; } } }