Skip to content

Instantly share code, notes, and snippets.

@mukaschultze
Last active May 6, 2020 22:09
Show Gist options
  • Save mukaschultze/9381dda1a4905feea70a0a5adcb3065b to your computer and use it in GitHub Desktop.
Save mukaschultze/9381dda1a4905feea70a0a5adcb3065b to your computer and use it in GitHub Desktop.
Change Unity preview background to a nicer color!
using UnityEditor;
using UnityEngine;
namespace EnhancedHierarchy {
[InitializeOnLoad]
static class PreviewBackgroundColor {
private static readonly Color backgroundColor = new Color(1f, 0f, 1f); // Change this color
static PreviewBackgroundColor() {
Camera.onPreRender += (Camera cam) => {
if (cam && cam.name.Contains("Preview")) {
cam.backgroundColor = backgroundColor;
}
};
After.Frames(1, () => {
var texture = CreateTexture(backgroundColor);
GUIStyle preBackground = "PreBackground";
GUIStyle preBackgroundSolid = "PreBackgroundSolid";
preBackground.normal.background = texture;
preBackgroundSolid.normal.background = texture;
});
}
private static Texture2D CreateTexture(Color c) {
var texture = new Texture2D(16, 16);
for (var x = 0; x < texture.width; x++)
for (var y = 0; y < texture.height; y++)
texture.SetPixel(x, y, c);
texture.Apply();
texture.hideFlags = HideFlags.HideAndDontSave;
return texture;
}
}
}
@mukaschultze
Copy link
Author

The lighting is hardcoded, there's no way of changing that. Maybe with shaders but that's an unknown world for me.

@larssteenhoff
Copy link

Ok thanks for letting me know, and for making this enhancement !
I will ask unity for a way to customise this part.

@larssteenhoff
Copy link

And if you ever find out a way to make the preview background work without interaction in 2019.3 please let me know :)

@larssteenhoff
Copy link

larssteenhoff commented May 6, 2020

I found a nice video that is somehow related to this
https://www.youtube.com/watch?v=TPGFnk8guL8

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment