TL;DR: You don't need to duplicate a bunch of code to do the same things to a Image and a SpriteRenderer , or RectTransform and Transform , etc. You can use a simple pattern called the Adapter Pattern. If you've never used it before, this post explains how. The Problem: Image vs SpriteRenderer Lets say you want to make a sprite fade out , maybe its a dead monster or a collectible, but in either case you want it to gracefully depart from the screen rather than blink out of existence. Kinda like this eyeball monster from Beastly : So that's pretty easy right, one way of doing it is with a MonoBehaviour that modifies the sprites alpha value via SpriteRenderer.color . Your class might look something like this: public class AlphaFaderSprite : MonoBehaviour { public SpriteRenderer spr; public float fade_percentage; void Update() { spr.color = new Color(spr.color.r, spr.color.g, spr.color.b, fade_percentage); } } Now, anyone who's used Unit...