studycase2
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
// Cristian Pop - https://boxophobic.com/
|
||||
|
||||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
|
||||
namespace Boxophobic.StyledGUI
|
||||
{
|
||||
public class StyledTextureSingleLineDrawer : MaterialPropertyDrawer
|
||||
{
|
||||
public float top;
|
||||
public float down;
|
||||
public string tooltip;
|
||||
|
||||
int previewChannel = 0;
|
||||
Material previewMaterial;
|
||||
|
||||
bool showAdvancedSettings = false;
|
||||
|
||||
public StyledTextureSingleLineDrawer()
|
||||
{
|
||||
this.top = 0;
|
||||
this.down = 0;
|
||||
this.tooltip = "";
|
||||
}
|
||||
|
||||
public StyledTextureSingleLineDrawer(string tooltip)
|
||||
{
|
||||
this.top = 0;
|
||||
this.down = 0;
|
||||
this.tooltip = tooltip;
|
||||
}
|
||||
|
||||
public StyledTextureSingleLineDrawer(float top, float down)
|
||||
{
|
||||
this.top = top;
|
||||
this.down = down;
|
||||
this.tooltip = "";
|
||||
}
|
||||
|
||||
public StyledTextureSingleLineDrawer(string tooltip, float top, float down)
|
||||
{
|
||||
this.top = top;
|
||||
this.down = down;
|
||||
this.tooltip = tooltip;
|
||||
}
|
||||
|
||||
public override void OnGUI(Rect position, MaterialProperty prop, string label, MaterialEditor materialEditor)
|
||||
{
|
||||
GUILayout.Space(top);
|
||||
|
||||
materialEditor.TexturePropertySingleLine(new GUIContent(prop.displayName, tooltip), prop);
|
||||
|
||||
if (prop.textureValue != null && prop.textureValue.dimension == UnityEngine.Rendering.TextureDimension.Tex2D)
|
||||
{
|
||||
var lastRect = GUILayoutUtility.GetLastRect();
|
||||
|
||||
if (GUI.Button(lastRect, "", GUIStyle.none))
|
||||
{
|
||||
showAdvancedSettings = !showAdvancedSettings;
|
||||
}
|
||||
|
||||
if (showAdvancedSettings)
|
||||
{
|
||||
if (previewMaterial == null)
|
||||
{
|
||||
previewMaterial = new Material(Shader.Find("Hidden/BOXOPHOBIC/Helpers/Channel Preview"));
|
||||
}
|
||||
|
||||
previewChannel = StyledGUI.DrawTexturePreview(prop.textureValue, previewMaterial, previewChannel);
|
||||
}
|
||||
}
|
||||
|
||||
GUILayout.Space(down);
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(MaterialProperty prop, string label, MaterialEditor editor)
|
||||
{
|
||||
return -2;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user