Unity-Technologies/UnityCsReference · error · NotSupportedException
PlayerSettings.storeTileLogo140 is deprecated. Use SetVisual
Error message
PlayerSettings.storeTileLogo140 is deprecated. Use SetVisualAssetsImage() instead.
What it means
Writing PlayerSettings.WSA.storeTileLogo140 throws NotSupportedException directing you to SetVisualAssetsImage(). The setter is [Obsolete("...", true)] and EditorBrowsable(Never), so source assignment is a compile-time error (CS0619); the runtime throw is reached only via reflection, dynamic, or a pre-compiled assembly. Migrate to SetVisualAssetsImage(image, WSAImageType, WSAImageScale).
Source
Thrown at Editor/Mono/PlayerSettingsWSA.cs:209
throw new NotSupportedException("PlayerSettings.storeTileLogo is deprecated. Use GetVisualAssetsImage() instead.");
}
set
{
throw new NotSupportedException("PlayerSettings.storeTileLogo is deprecated. Use SetVisualAssetsImage() instead.");
}
}
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
[Obsolete("Use GetVisualAssetsImage()/SetVisualAssetsImage()", true)]
public static string storeTileLogo140
{
get
{
throw new NotSupportedException("PlayerSettings.storeTileLogo140 is deprecated. Use GetVisualAssetsImage() instead.");
}
set
{
throw new NotSupportedException("PlayerSettings.storeTileLogo140 is deprecated. Use SetVisualAssetsImage() instead.");
}
}
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
[Obsolete("Use GetVisualAssetsImage()/SetVisualAssetsImage()", true)]
public static string storeTileLogo180
{
get
{
throw new NotSupportedException("PlayerSettings.storeTileLogo180 is deprecated. Use GetVisualAssetsImage() instead.");
}
set
{
throw new NotSupportedException("PlayerSettings.storeTileLogo180 is deprecated. Use SetVisualAssetsImage() instead.");
}
}
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]View on GitHub (pinned to 225b0fbdb5)
Solutions
- Recompile the assembly against the current editor to surface CS0619 and migrate.
- Replace with PlayerSettings.WSA.SetVisualAssetsImage(path, <WSAImageType>, <WSAImageScale>).
- Drop storeTileLogo140 from reflective write loops; honor EditorBrowsableState.Never.
- Version-gate reflective access on the obsoleting release.
Example fix
// before
PlayerSettings.WSA.storeTileLogo140 = "Assets/Logos/tile140.png";
// after
PlayerSettings.WSA.SetVisualAssetsImage("Assets/Logos/tile140.png",
WSAImageType.UWPSquare150x150Logo, WSAImageScale._100); Defensive patterns
Strategy: fallback
Validate before calling
static bool IsDeprecatedStoreTile(System.Reflection.PropertyInfo p)
=> p.GetCustomAttributes(typeof(System.ObsoleteAttribute), false)
.Cast<System.ObsoleteAttribute>().Any(o => o.IsError); Try / catch
try { PlayerSettings.WSA.storeTileLogo140 = path; }
catch (System.NotSupportedException)
{
PlayerSettings.WSA.SetVisualAssetsImage(path,
WSAImageType.UWPSquare150x150Logo, WSAImageScale._100);
} Prevention
- Write tile logos through SetVisualAssetsImage only.
- Recompile against the current editor to get CS0619 at compile time.
- Exclude storeTileLogo140 from reflective write loops.
- Grep for 'storeTileLogo140' before upgrading.
When it happens
Trigger: Reflective SetValue on storeTileLogo140, a stale DLL assigning it, or C# dynamic assignment. Direct assignment in current source does not compile.
Common situations: Legacy plugin or build automation compiled before the deprecation. Reflective write loops over PlayerSettings.WSA. Upgrading a project across the obsoleting Unity version.
Related errors
- PlayerSettings.storeTileLogo80 is deprecated. Use GetVisualA
- PlayerSettings.storeTileLogo80 is deprecated. Use SetVisualA
- PlayerSettings.storeTileLogo is deprecated. Use GetVisualAss
- PlayerSettings.storeTileLogo is deprecated. Use SetVisualAss
- PlayerSettings.storeTileLogo140 is deprecated. Use GetVisual
AI-assisted analysis of Unity-Technologies/UnityCsReference@225b0fbdb5 (2026-08-13).
Data as JSON: /api/errors/9eb84e1a6db66ce1.
Report an issue: GitHub.