# GetExposedProperties(List<VFXExposedProperty>)

> Gets the name and type of every exposed property.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine.VFX](/engine/6000.7/script-reference/unityengine/vfx.md)
* **Assembly:** UnityEngine.VFXModule

```csharp
public void GetExposedProperties(List<VFXExposedProperty> exposedProperties)
```

### Parameters

**** (\[List\<VFXExposedProperty>]\(https\://learn.microsoft.com/dotnet/api/system.collections.generic.list-1)): The List that this function populates with exposed properties.

### Remarks

The returned `System.Type` is one of the following:

* [AnimationCurve](/engine/6000.7/script-reference/unityengine/animationcurve.md)

* bool

* `float`

* [Gradient](/engine/6000.7/script-reference/unityengine/gradient.md)

* [GraphicsBuffer](/engine/6000.7/script-reference/unityengine/graphicsbuffer.md)

* `int`

* [Matrix4x4](/engine/6000.7/script-reference/unityengine/matrix4x4.md)

* [Mesh](/engine/6000.7/script-reference/unityengine/mesh.md)

* [SkinnedMeshRenderer](/engine/6000.7/script-reference/unityengine/skinnedmeshrenderer.md)

* [Texture](/engine/6000.7/script-reference/unityengine/texture.md)

* `uint`

* [Vector2](/engine/6000.7/script-reference/unityengine/vector2.md)

* [Vector3](/engine/6000.7/script-reference/unityengine/vector3.md)

* [Vector4](/engine/6000.7/script-reference/unityengine/vector4.md)

To determine the [TextureDimension](/engine/6000.7/script-reference/unityengine/rendering/texturedimension.md) of a Texture, call [VisualEffectAsset.GetTextureDimension](/engine/6000.7/script-reference/unityengine/vfx/visualeffectasset/gettexturedimension.md).

To determine the [VFXSpace](/engine/6000.7/script-reference/unityengine/vfx/vfxspace.md) of an exposed property, call [VisualEffectAsset.GetExposedSpace](/engine/6000.7/script-reference/unityengine/vfx/visualeffectasset/getexposedspace.md).

To increase the speed of the retrieval process, preallocate the `exposedProperties` input list.

This example logs detailed information regarding all exposed properties:

### Examples

```csharp
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.VFX;

[ExecuteInEditMode]
class LogExposedProperties : MonoBehaviour
{
	// Called when the script or GameObject is enabled
    void OnEnable()
    {
        VisualEffect vfx = GetComponent<VisualEffect>();
        if (vfx != null && vfx.visualEffectAsset != null)
        {
            VisualEffectAsset vfxAsset = vfx.visualEffectAsset;
            var exposedProperties = new List<VFXExposedProperty>();

            // Retrieve all exposed properties from the VisualEffectAsset and store them in the list
            vfxAsset.GetExposedProperties(exposedProperties);

            if (exposedProperties.Count == 0)
            {
                Debug.Log($"There are no exposed properties for asset: {vfxAsset}");
            }

            foreach (var exposedProperty in exposedProperties)
            {
                // Retrieve additional details about the exposed property
                VFXSpace space = vfxAsset.GetExposedSpace(exposedProperty.name);
                TextureDimension texDim = vfxAsset.GetTextureDimension(exposedProperty.name);

                string log = $"{exposedProperty.name}, {exposedProperty.type}";
                if (space != VFXSpace.None)
                {
                    log += $", {space}";
                }
                if (texDim != TextureDimension.Unknown)
                {
                    log += $", {texDim}";
                }
                Debug.Log(log);
            }
        }
        else
        {
            Debug.Log("Unable to retrieve VisualEffect component or VisualEffectAsset is null.");
        }
    }
}
```
