# LocalVariablesGroup

> A named collection of Smart String variables owned by a localized string.

## Definition

* **Type:** Class
* **Namespace:** [Unity.Localization](/engine/6000.7/script-reference/unity/localization.md)
* **Assembly:** UnityEngine.LocalizationRuntimeModule
* **Implements:** [IVariableGroup](/engine/6000.7/script-reference/unity/smartstrings/persistentvariables/ivariablegroup.md), [ISerializationCallbackReceiver](/engine/6000.7/script-reference/unityengine/iserializationcallbackreceiver.md)

```csharp
public class LocalVariablesGroup : IVariableGroup, ISerializationCallbackReceiver
```

## Remarks

A [LocalVariablesGroup](/engine/6000.7/script-reference/unity/localization/localvariablesgroup.md) implements [IVariableGroup](/engine/6000.7/script-reference/unity/smartstrings/persistentvariables/ivariablegroup.md) to hold the local [IVariable](/engine/6000.7/script-reference/unity/smartstrings/persistentvariables/ivariable.md)s that a [LocalizedString](/engine/6000.7/script-reference/unity/localization/localizedstring.md) formats against. Smart String placeholders such as `{score}` look up values in this group during formatting. Variables are stored polymorphically through `[SerializeReference]`, so a scalar, an object, or a nested [LocalizedString](/engine/6000.7/script-reference/unity/localization/localizedstring.md) can all be added. Names are unique and whitespace-normalized: [LocalVariablesGroup.Add](/engine/6000.7/script-reference/unity/localization/localvariablesgroup/add.md) returns the name a variable was actually stored under.

Additional Resources: [LocalizedString](/engine/6000.7/script-reference/unity/localization/localizedstring.md), [IVariable](/engine/6000.7/script-reference/unity/smartstrings/persistentvariables/ivariable.md)

Add a variable and check that it exists.

## Examples

```csharp
using Unity.Localization;
using UnityEngine;

namespace Unity.Localization.Samples
{
    public class LocalVariablesGroupOverviewExample
    {
        public void AddAndCheck()
        {
            var localizedString = new LocalizedString();
            var group = localizedString.LocalVariables;
            var name = group.Add(new LocalizedString(), "subtitle");
            bool present = group.ContainsName(name);
            Debug.Log(present);
        }
    }
}
```

## Properties

| Property                                                                                 | Description                           |
| ---------------------------------------------------------------------------------------- | ------------------------------------- |
| [Count](/engine/6000.7/script-reference/unity/localization/localvariablesgroup/count.md) | The number of variables in the group. |

## Methods

| Method                                                                                                 | Description                                                                       |
| ------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------- |
| [Add](/engine/6000.7/script-reference/unity/localization/localvariablesgroup/add.md)                   | Adds a variable under a unique, whitespace-normalized name and returns that name. |
| [Clear](/engine/6000.7/script-reference/unity/localization/localvariablesgroup/clear.md)               | Removes every variable from the group.                                            |
| [ContainsName](/engine/6000.7/script-reference/unity/localization/localvariablesgroup/containsname.md) | Determines whether a variable is stored under the given name.                     |
| [Remove](/engine/6000.7/script-reference/unity/localization/localvariablesgroup/remove.md)             | Removes the variable stored under the given name.                                 |
