Unity-Technologies/UnityCsReference · error · NotSupportedException

PlayerSettings.storeTileLogo80 is deprecated. Use…

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.

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.

Appendix: 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)