Ejemplo n.º 1
0
 public static string TrucatedName(this VRC.SDK3.Avatars.ScriptableObjects.VRCExpressionParameters.Parameter param)
 => param.name.Truncate(32);
Ejemplo n.º 2
0
    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");
    }