95 lines
2.2 KiB
C#
95 lines
2.2 KiB
C#
// Cristian Pop - https://boxophobic.com/
|
|
|
|
using UnityEngine;
|
|
using UnityEditor;
|
|
using System;
|
|
|
|
namespace Boxophobic.StyledGUI
|
|
{
|
|
public class StyledToggleDrawer : MaterialPropertyDrawer
|
|
{
|
|
public float width = 0;
|
|
|
|
public StyledToggleDrawer()
|
|
{
|
|
|
|
}
|
|
|
|
public StyledToggleDrawer(float width)
|
|
{
|
|
this.width = width;
|
|
}
|
|
|
|
public override void OnGUI(Rect position, MaterialProperty prop, String label, MaterialEditor materialEditor)
|
|
{
|
|
//Material material = materialEditor.target as Material;
|
|
|
|
EditorGUI.BeginChangeCheck();
|
|
|
|
EditorGUI.showMixedValue = prop.hasMixedValue;
|
|
|
|
if (width == 0)
|
|
{
|
|
bool toggle = false;
|
|
|
|
if (prop.floatValue > 0.5f)
|
|
{
|
|
toggle = true;
|
|
}
|
|
|
|
toggle = EditorGUILayout.Toggle(label, toggle);
|
|
|
|
EditorGUI.showMixedValue = false;
|
|
|
|
if (EditorGUI.EndChangeCheck())
|
|
{
|
|
if (toggle)
|
|
{
|
|
prop.floatValue = 1;
|
|
}
|
|
else
|
|
{
|
|
prop.floatValue = 0;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
GUILayout.BeginHorizontal();
|
|
|
|
GUILayout.Label(label);
|
|
|
|
bool toggle = false;
|
|
|
|
if (prop.floatValue > 0.5f)
|
|
{
|
|
toggle = true;
|
|
}
|
|
|
|
toggle = GUILayout.Toggle(toggle, "", GUILayout.Width(width));
|
|
|
|
EditorGUI.showMixedValue = false;
|
|
|
|
if (EditorGUI.EndChangeCheck())
|
|
{
|
|
if (toggle)
|
|
{
|
|
prop.floatValue = 1;
|
|
}
|
|
else
|
|
{
|
|
prop.floatValue = 0;
|
|
}
|
|
}
|
|
|
|
GUILayout.EndHorizontal();
|
|
}
|
|
}
|
|
|
|
public override float GetPropertyHeight(MaterialProperty prop, string label, MaterialEditor editor)
|
|
{
|
|
return -2;
|
|
}
|
|
}
|
|
}
|