public static string TrucatedName(this VRC.SDK3.Avatars.ScriptableObjects.VRCExpressionParameters.Parameter param) => param.name.Truncate(32);
void ConvertVrcParametersToChillout() { Debug.Log("Converting vrc parameters to chillout..."); VRCExpressionParameters vrcParams = vrcAvatarDescriptor.expressionParameters; List <CVRAdvancedSettingsEntry> newParams = new List <CVRAdvancedSettingsEntry>(); for (int i = 0; i < vrcParams.parameters.Length; i++) { VRCExpressionParameter vrcParam = vrcParams.parameters[i]; Debug.Log("Param \"" + vrcParam.name + "\" type \"" + vrcParam.valueType + "\" default \"" + vrcParam.defaultValue + "\""); CVRAdvancedSettingsEntry newParam = null; switch (vrcParam.valueType) { case VRCExpressionParameters.ValueType.Int: List <CVRAdvancedSettingsDropDownEntry> dropdownOptions = ConvertIntToGameObjectDropdownOptions(GetAllIntOptionsForParam(vrcParam.name)); if (dropdownOptions.Count > 1) { newParam = new CVRAdvancedSettingsEntry() { name = vrcParam.name, machineName = vrcParam.name, type = CVRAdvancedSettingsEntry.SettingsType.GameObjectDropdown, setting = new CVRAdvancesAvatarSettingGameObjectDropdown() { defaultValue = (int)vrcParam.defaultValue, options = dropdownOptions } }; } else { Debug.Log("Param has less than 2 options so we are making a toggle instead"); newParam = new CVRAdvancedSettingsEntry() { name = vrcParam.name, machineName = vrcParam.name, setting = new CVRAdvancesAvatarSettingGameObjectToggle() { defaultValue = vrcParam.defaultValue == 1 ? true : false } }; } break; case VRCExpressionParameters.ValueType.Float: newParam = new CVRAdvancedSettingsEntry() { name = vrcParam.name, machineName = vrcParam.name, type = CVRAdvancedSettingsEntry.SettingsType.Slider, setting = new CVRAdvancesAvatarSettingSlider() { defaultValue = vrcParam.defaultValue } }; break; case VRCExpressionParameters.ValueType.Bool: newParam = new CVRAdvancedSettingsEntry() { name = vrcParam.name, machineName = vrcParam.name, setting = new CVRAdvancesAvatarSettingGameObjectToggle() { defaultValue = vrcParam.defaultValue != 0 ? true : false } }; break; default: throw new Exception("Cannot convert vrc parameter to chillout: unknown type \"" + vrcParam.valueType + "\""); } if (newParam != null) { newParams.Add(newParam); } } cvrAvatar.avatarSettings.settings = newParams; Debug.Log("Finished converting vrc params"); }