2026-06-09 룸 프로토타입 디자인 (진행중)
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
// Stylized Water 3 by Staggart Creations (http://staggart.xyz)
|
||||
// COPYRIGHT PROTECTED UNDER THE UNITY ASSET STORE EULA (https://unity.com/legal/as-terms)
|
||||
// • Copying or referencing source code for the production of new asset store, or public, content is strictly prohibited!
|
||||
// • Uploading this file to a public repository will subject it to an automated DMCA takedown request.
|
||||
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace StylizedWater3
|
||||
{
|
||||
//Use as "[MinMaxSlider(0, 5)]" on a material property. Proper should be a Vector type
|
||||
public class MinMaxSliderDrawer : MaterialPropertyDrawer
|
||||
{
|
||||
private readonly float min;
|
||||
private readonly float max;
|
||||
|
||||
private Rect minFieldRect;
|
||||
private Rect sliderFieldRect;
|
||||
private Rect maxFieldRect;
|
||||
|
||||
public MinMaxSliderDrawer(float min, float max)
|
||||
{
|
||||
this.min = min;
|
||||
this.max = max;
|
||||
}
|
||||
|
||||
public override void OnGUI(Rect position, MaterialProperty prop, GUIContent label, MaterialEditor editor)
|
||||
{
|
||||
MaterialEditor.BeginProperty(prop);
|
||||
|
||||
float minVal = prop.vectorValue.x;
|
||||
float maxVal = prop.vectorValue.y;
|
||||
|
||||
EditorGUI.BeginChangeCheck();
|
||||
EditorGUI.showMixedValue = prop.hasMixedValue;
|
||||
|
||||
Rect labelRect = position;
|
||||
labelRect.width = EditorGUIUtility.labelWidth;
|
||||
EditorGUI.LabelField(labelRect, label);
|
||||
|
||||
minFieldRect = labelRect;
|
||||
minFieldRect.x = labelRect.x + labelRect.width;
|
||||
minFieldRect.width = EditorGUIUtility.fieldWidth;
|
||||
minVal = EditorGUI.FloatField(minFieldRect, minVal);
|
||||
|
||||
sliderFieldRect = labelRect;
|
||||
sliderFieldRect.x = minFieldRect.x + minFieldRect.width + 5f;
|
||||
sliderFieldRect.width = position.width - (EditorGUIUtility.fieldWidth * 2f) - labelRect.width - 10f;
|
||||
|
||||
EditorGUI.MinMaxSlider(sliderFieldRect, ref minVal, ref maxVal, min, max);
|
||||
|
||||
maxFieldRect = labelRect;
|
||||
maxFieldRect.x = sliderFieldRect.x + sliderFieldRect.width + 5f;
|
||||
maxFieldRect.width = EditorGUIUtility.fieldWidth;
|
||||
maxVal = EditorGUI.FloatField(maxFieldRect, maxVal);
|
||||
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
{
|
||||
prop.vectorValue = new Vector4(minVal, maxVal);
|
||||
}
|
||||
EditorGUI.showMixedValue = false;
|
||||
|
||||
MaterialEditor.EndProperty();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user