Unity-Technologies/UnityCsReference · error · NotSupportedException

PlayerSettings.storeTileLogo80 is deprecated. Use GetVisualA

Error message

PlayerSettings.storeTileLogo80 is deprecated. Use GetVisualAssetsImage() instead.

What it means

Reading PlayerSettings.WSA.storeTileLogo80 throws NotSupportedException with a deprecation message directing you to GetVisualAssetsImage(). The property is annotated [Obsolete("Use GetVisualAssetsImage()/SetVisualAssetsImage()", true)] and [EditorBrowsable(Never)], so direct source references are compile-time errors (CS0619); the runtime throw only fires for reflective, dynamic, or pre-compiled callers. storeTileLogo80 was the 80x80 store tile logo; the replacement API takes a WSAImageType plus WSAImageScale pair.

Source

Thrown at Editor/Mono/PlayerSettingsWSA.cs:177

                try
                {
                    return (bool)System.ComponentModel.TypeDescriptor.GetConverter(typeof(bool)).ConvertFromString(stringValue);
                }
                catch
                {
                    Debug.LogError("Failed to parse value  ('" + family + "," + stringValue + "') to bool type.");
                    return false;
                }
            }

            [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
            [Obsolete("Use GetVisualAssetsImage()/SetVisualAssetsImage()", true)]
            public static string storeTileLogo80
            {
                get
                {
                    throw new NotSupportedException("PlayerSettings.storeTileLogo80 is deprecated. Use GetVisualAssetsImage() instead.");
                }
                set
                {
                    throw new NotSupportedException("PlayerSettings.storeTileLogo80 is deprecated. Use SetVisualAssetsImage() instead.");
                }
            }

            [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
            [Obsolete("Use GetVisualAssetsImage()/SetVisualAssetsImage()", true)]
            public static string storeTileLogo
            {
                get
                {
                    throw new NotSupportedException("PlayerSettings.storeTileLogo is deprecated. Use GetVisualAssetsImage() instead.");
                }
                set
                {
                    throw new NotSupportedException("PlayerSettings.storeTileLogo is deprecated. Use SetVisualAssetsImage() instead.");

View on GitHub (pinned to 225b0fbdb5)

Solutions

  1. Recompile the calling assembly against the current editor so the CS0619 error surfaces, then migrate the call.
  2. Replace the read with PlayerSettings.WSA.GetVisualAssetsImage(WSAImageType.UWPSquare44x44Logo, WSAImageScale._100) (or the matching type/scale for the tile you need).
  3. Exclude storeTileLogo* properties from reflective enumeration; they are EditorBrowsableState.Never.
  4. Version-gate any unavoidable reflective access and skip these members on the obsoleting version and later.

Example fix

// before
string logo = PlayerSettings.WSA.storeTileLogo80;

// after
string logo = PlayerSettings.WSA.GetVisualAssetsImage(
    WSAImageType.UWPSquare44x44Logo, WSAImageScale._100);
Defensive patterns

Strategy: fallback

Validate before calling

// Prefer the replacement API outright; if reflecting, skip EditorBrowsableState.Never members.
static bool IsDeprecatedStoreTile(System.Reflection.PropertyInfo p)
    => p.GetCustomAttributes(typeof(System.ObsoleteAttribute), false)
         .Cast<System.ObsoleteAttribute>().Any(o => o.IsError);

Type guard

static bool HasStoreTileReplacement => true; // GetVisualAssetsImage always exists on modern editors

Try / catch

try { _ = PlayerSettings.WSA.storeTileLogo80; }
catch (System.NotSupportedException)
{
    // migrate to the replacement API
    var logo = PlayerSettings.WSA.GetVisualAssetsImage(
        WSAImageType.UWPSquare44x44Logo, WSAImageScale._100);
}

Prevention

When it happens

Trigger: Reflecting over PlayerSettings.WSA to read all properties; loading an assembly compiled before the deprecation that reads storeTileLogo80; using C# dynamic to reach the member. Source-level access is blocked by the compiler.

Common situations: Stale build script or third-party plugin compiled against an older Unity editor. Editor tooling that generically snapshots PlayerSettings.WSA. Project upgrade across the Unity version where storeTileLogo80 was obsoleted.

Related errors


AI-assisted analysis of Unity-Technologies/UnityCsReference@225b0fbdb5 (2026-08-13). Data as JSON: /api/errors/3ed06d68947779e2. Report an issue: GitHub.