Last active
October 26, 2019 22:00
-
-
Save neogeek/8806d985474b12b48a23f812d8ebd4f9 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using UnityEngine; | |
using UnityEngine.U2D; | |
using UnityEngine.UI; | |
namespace SmoothieOperator | |
{ | |
public class SpriteAtlasHelper : MonoBehaviour | |
{ | |
#pragma warning disable CS0649 | |
[SerializeField] | |
private SpriteAtlas _spriteAtlas; | |
#pragma warning restore CS0649 | |
private SpriteRenderer _spriteRenderer; | |
private Image _image; | |
private void Awake() | |
{ | |
_spriteRenderer = gameObject.GetComponent<SpriteRenderer>(); | |
_image = gameObject.GetComponent<Image>(); | |
} | |
private void OnEnable() | |
{ | |
if (_spriteRenderer && _spriteRenderer.sprite) | |
{ | |
SetSpriteRenderer(_spriteRenderer.sprite); | |
} | |
if (_image && _image.sprite) | |
{ | |
SetImage(_image.sprite); | |
} | |
} | |
public void SetSpriteRenderer(Sprite sprite) | |
{ | |
SetSpriteRenderer(sprite.name); | |
} | |
public void SetSpriteRenderer(string spriteName) | |
{ | |
if (!_spriteRenderer || !_spriteAtlas) | |
{ | |
return; | |
} | |
var sprite = _spriteAtlas.GetSprite(spriteName); | |
if (sprite && !Equals(_spriteRenderer.sprite, sprite)) | |
{ | |
_spriteRenderer.sprite = sprite; | |
} | |
} | |
public void ClearSpriteRenderer() | |
{ | |
if (!_spriteRenderer) | |
{ | |
return; | |
} | |
_spriteRenderer.sprite = null; | |
} | |
public void SetImage(Sprite sprite) | |
{ | |
SetImage(sprite.name); | |
} | |
public void SetImage(string spriteName) | |
{ | |
if (!_image || !_spriteAtlas) | |
{ | |
return; | |
} | |
var sprite = _spriteAtlas.GetSprite(spriteName); | |
if (sprite && !Equals(_image.sprite, sprite)) | |
{ | |
_image.sprite = sprite; | |
} | |
} | |
public void ClearImage() | |
{ | |
if (!_image) | |
{ | |
return; | |
} | |
_image.sprite = null; | |
} | |
} | |
public static class SpriteCustomExtensions | |
{ | |
public static string GetNiceName(this Sprite sprite) | |
{ | |
return sprite.name.Replace("(Clone)", ""); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment