Files
Genesis_Unity/Assets/MagicaCloth2/Scripts/Editor/Cloth/MagicaSphereColliderEditor.cs
2026-03-27 18:12:31 +09:00

51 lines
1.7 KiB
C#

// Magica Cloth 2.
// Copyright (c) 2023 MagicaSoft.
// https://magicasoft.jp
using UnityEditor;
namespace MagicaCloth2
{
/// <summary>
/// SphereColliderのインスペクター拡張
/// </summary>
[CustomEditor(typeof(MagicaSphereCollider))]
[CanEditMultipleObjects]
public class MagicaSphereColliderEditor : MagicaEditorBase
{
public override void OnInspectorGUI()
{
var scr = target as MagicaSphereCollider;
const string undoName = "SphereCollider";
serializedObject.Update();
Undo.RecordObject(scr, undoName);
using (var check = new EditorGUI.ChangeCheckScope())
{
// radius
var sizeValue = serializedObject.FindProperty("size");
//EditorGUI.showMixedValue = sizeValue.hasMultipleDifferentValues;
var size = sizeValue.vector3Value;
float newSize = EditorGUILayout.Slider("Radius", size.x, 0.001f, 0.5f);
//EditorGUI.showMixedValue = false;
ApplyMultiSelection<MagicaSphereCollider>(check.changed, undoName, x => x.SetSize(newSize));
}
// center
EditorGUILayout.PropertyField(serializedObject.FindProperty("center"));
// Symmetry
EditorGUILayout.Space();
var symmetryModeProperty = serializedObject.FindProperty("symmetryMode");
EditorGUILayout.PropertyField(symmetryModeProperty);
if (symmetryModeProperty.enumValueIndex >= (int)ColliderSymmetryMode.AutomaticTarget)
EditorGUILayout.PropertyField(serializedObject.FindProperty("symmetryTarget"));
serializedObject.ApplyModifiedProperties();
}
}
}