Unity-Technologies/UnityCsReference · error · NotSupportedException

PlayerSettings.storeSmallTile180 is deprecated. Use SetVisua

Error message

PlayerSettings.storeSmallTile180 is deprecated. Use SetVisualAssetsImage() instead.

What it means

PlayerSettings.WSA.storeSmallTile180 is a deprecated static property setter that always throws NotSupportedException. Unity retired the per-scale-factor string properties (from the Windows 8.1 era) in favor of a unified GetVisualAssetsImage(WSAImageType, WSAImageScale) / SetVisualAssetsImage(string, WSAImageType, WSAImageScale) API that covers all UWP image assets. The property is also marked [Obsolete(..., true)] making it a compile error, and [EditorBrowsable(Never)] hiding it from IntelliSense.

Source

Thrown at Editor/Mono/PlayerSettingsWSA.cs:391

                    throw new NotSupportedException("PlayerSettings.storeSmallTile140 is deprecated. Use GetVisualAssetsImage() instead.");
                }
                set
                {
                    throw new NotSupportedException("PlayerSettings.storeSmallTile140 is deprecated. Use SetVisualAssetsImage() instead.");
                }
            }

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

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

            [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]

View on GitHub (pinned to 225b0fbdb5)

Solutions

  1. Replace the assignment with PlayerSettings.WSA.SetVisualAssetsImage(path, WSAImageType.UWPSquare71x71Logo, WSAImageScale._200) — the 180% legacy scale maps closest to the UWP _200 scale.
  2. If compiling against an older API that lacks the new methods, bump the Unity editor version requirement in the project or plugin.
  3. Search the codebase (including DLL references) for 'storeSmallTile180' and migrate all call sites at once.

Example fix

// before
PlayerSettings.WSA.storeSmallTile180 = "Assets/Icons/smallTile.png";

// after
PlayerSettings.WSA.SetVisualAssetsImage("Assets/Icons/smallTile.png", WSAImageType.UWPSquare71x71Logo, WSAImageScale._200);
Defensive patterns

Strategy: type-guard

Validate before calling

// Before accessing, verify the property still exists and prefer the new API:
// Check Unity version to gate the code path
#if !UNITY_5 && !UNITY_2017 // old API removed in newer versions
    PlayerSettings.WSA.SetVisualAssetsImage(path, WSAImageType.UWPSquare71x71Logo, WSAImageScale._200);
#endif

Type guard

// Type-check via reflection before invoking, to avoid NotSupportedException
static bool IsDeprecatedWsaProperty(string name) =>
    typeof(PlayerSettings.WSA)
        .GetProperty(name,
            System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static)
        ?.GetCustomAttribute<ObsoleteAttribute>()?.IsError == true;

Prevention

When it happens

Trigger: Assigning a value to PlayerSettings.WSA.storeSmallTile180 (the setter) in any editor script, build pipeline, or post-processing code. Because [Obsolete(..., true)] turns direct calls into compile errors, this is most often hit via reflection (e.g. SerializedObject/SerializedProperty paths, or scripts compiled against an older Unity API surface that resolved to this member).

Common situations: Upgrading a project from Unity 5.x / Windows 8.1 era to a modern Unity version that only ships the UWP image API; using third-party editor tooling or asset-store plugins that reference the old property names; CI build scripts that set WSA tile images programmatically.

Related errors


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