Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- [ExecuteInEditMode]
- public class SpriteColourChanger : MonoBehaviour
- {
- public enum ColourMode {
- Mode3,
- Mode6
- }
- public ColourMode mode = ColourMode.Mode6;
- public Color R = Color.red, G = Color.green, B = Color.blue, C = Color.cyan, M = Color.magenta, Y = Color.yellow;
- public Renderer Renderer => (mRenderer == null) ? mRenderer = GetComponent<Renderer>() : mRenderer;
- private Renderer mRenderer;
- private void Awake()
- {
- UpdateColours();
- }
- [ContextMenu("Update Colours")]
- public void UpdateColours()
- {
- MaterialPropertyBlock materialBlock = new MaterialPropertyBlock();
- Renderer.GetPropertyBlock(materialBlock);
- materialBlock.SetColor("_R", R);
- materialBlock.SetColor("_G", G);
- materialBlock.SetColor("_B", B);
- materialBlock.SetColor("_C", mode == ColourMode.Mode6 ? C : B);
- materialBlock.SetColor("_M", mode == ColourMode.Mode6 ? M : G);
- materialBlock.SetColor("_Y", mode == ColourMode.Mode6 ? Y : R);
- Renderer.SetPropertyBlock(materialBlock);
- }
- void Update()
- {
- if(!Application.isPlaying)
- {
- UpdateColours();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement