From 988eb9cf3a1ea5f1f7179a22f0c22b3cdbe28c00 Mon Sep 17 00:00:00 2001 From: nekobako Date: Sat, 14 Sep 2024 18:27:43 +0900 Subject: [PATCH] fix: menu item with float value incorrectly generates bool parameter --- .../ReactiveObjects/ParameterAssignerPass.cs | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/Editor/ReactiveObjects/ParameterAssignerPass.cs b/Editor/ReactiveObjects/ParameterAssignerPass.cs index 267be91f..b13d028b 100644 --- a/Editor/ReactiveObjects/ParameterAssignerPass.cs +++ b/Editor/ReactiveObjects/ParameterAssignerPass.cs @@ -115,8 +115,7 @@ namespace nadena.dev.modular_avatar.core.editor var nextValue = 1; - var canBeBool = true; - var canBeInt = true; + var valueType = VRCExpressionParameters.ValueType.Bool; var isSaved = false; var isSynced = false; @@ -137,10 +136,14 @@ namespace nadena.dev.modular_avatar.core.editor } } - if (Mathf.Abs(mami.Control.value - Mathf.Round(mami.Control.value)) > 0.01f) - canBeInt = false; - else - canBeBool &= mami.Control.value is >= 0 and <= 1; + var type = + Mathf.Abs(mami.Control.value - Mathf.Round(mami.Control.value)) > 0.01f ? VRCExpressionParameters.ValueType.Float + : mami.Control.value < 0 || mami.Control.value > 1 ? VRCExpressionParameters.ValueType.Int + : VRCExpressionParameters.ValueType.Bool; + if (valueType == VRCExpressionParameters.ValueType.Bool || type == VRCExpressionParameters.ValueType.Float) + { + valueType = type; + } isSaved |= mami.isSaved; isSynced |= mami.isSynced; @@ -148,15 +151,10 @@ namespace nadena.dev.modular_avatar.core.editor if (!declaredParams.ContainsKey(paramName)) { - VRCExpressionParameters.ValueType newType; - if (canBeBool) newType = VRCExpressionParameters.ValueType.Bool; - else if (canBeInt) newType = VRCExpressionParameters.ValueType.Int; - else newType = VRCExpressionParameters.ValueType.Float; - var newParam = new VRCExpressionParameters.Parameter { name = paramName, - valueType = newType, + valueType = valueType, saved = isSaved, defaultValue = defaultValue, networkSynced = isSynced