From d4552adc9ec0998725e663c47114e6836061ad2c Mon Sep 17 00:00:00 2001
From: miepzerino <o.skotnik@gmail.com>
Date: Wed, 02 Apr 2025 14:52:46 +0000
Subject: [PATCH] #35 reworked ore generation
---
Assets/Scripts/Attributes/MinMaxAttribute.cs | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 54 insertions(+), 0 deletions(-)
diff --git a/Assets/Scripts/Attributes/MinMaxAttribute.cs b/Assets/Scripts/Attributes/MinMaxAttribute.cs
new file mode 100644
index 0000000..8a42417
--- /dev/null
+++ b/Assets/Scripts/Attributes/MinMaxAttribute.cs
@@ -0,0 +1,54 @@
+using System;
+using System.Reflection;
+using Unity.VisualScripting;
+using UnityEditor;
+using UnityEngine;
+
+namespace Assets.Scripts.Attributes
+{
+ // Custom attribute for the min-max slider
+ public class MinMaxAttribute : PropertyAttribute
+ {
+ public float Min { get; private set; }
+ public float Max { get; private set; }
+
+ public MinMaxAttribute(float min, float max)
+ {
+ Min = min;
+ Max = max;
+ }
+ }
+#if UNITY_EDITOR
+ [CustomPropertyDrawer(typeof(MinMaxAttribute))]
+ public class MinMaxDrawer : PropertyDrawer
+ {
+ public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
+ {
+ if (property.propertyType != SerializedPropertyType.Vector2)
+ {
+ EditorGUI.LabelField(position, label.text, "Use MinMax with Vector2");
+ return;
+ }
+
+ var minMaxAttribute = (MinMaxAttribute)attribute;
+ var vector = property.vector2Value;
+
+ EditorGUI.BeginProperty(position, label, property);
+
+ position = EditorGUI.PrefixLabel(position, GUIUtility.GetControlID(FocusType.Passive), label);
+
+ float[] values = new float[] { vector.x, vector.y };
+ EditorGUI.MultiFloatField(position,
+ new GUIContent[] { new GUIContent("Min"), new GUIContent("Max") },
+ values);
+
+ values[0] = Mathf.Clamp(values[0], minMaxAttribute.Min, values[1]);
+ values[1] = Mathf.Clamp(values[1], values[0], minMaxAttribute.Max);
+
+ property.vector2Value = new Vector2(values[0], values[1]);
+
+ EditorGUI.EndProperty();
+ }
+ }
+#endif
+}
\ No newline at end of file
--
Gitblit v1.10.0