# VFXExposedProperty

> This structure describes an exposed property on a VisualEffectAsset.

## Definition

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

```csharp
public struct VFXExposedProperty
```

## Remarks

Additional Resources: [VisualEffectAsset.GetExposedProperties](/engine/6000.5/script-reference/unityengine/vfx/visualeffectasset/getexposedproperties.md), [VisualEffectAsset.GetExposedSpace](/engine/6000.5/script-reference/unityengine/vfx/visualeffectasset/getexposedspace.md), [VisualEffectAsset.GetTextureDimension](/engine/6000.5/script-reference/unityengine/vfx/visualeffectasset/gettexturedimension.md).

```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.");
        }
    }
}
```

This example logs detailed information regarding all exposed properties.

## Fields

| Value                                                                              | Description                       |
| ---------------------------------------------------------------------------------- | --------------------------------- |
| [name](/engine/6000.5/script-reference/unityengine/vfx/vfxexposedproperty/name.md) | The name of the exposed property. |
| [type](/engine/6000.5/script-reference/unityengine/vfx/vfxexposedproperty/type.md) | The type of the exposed property. |
