Unity-Technologies/UnityCsReference · error · NotSupportedException
PlayerSettings.storeTileLogo is deprecated. Use SetVisualAss
Error message
PlayerSettings.storeTileLogo is deprecated. Use SetVisualAssetsImage() instead.
What it means
Writing PlayerSettings.WSA.storeTileLogo throws NotSupportedException directing you to SetVisualAssetsImage(). The setter is [Obsolete("...", true)] and EditorBrowsable(Never), so source-level assignment is a compile-time error (CS0619); the runtime throw fires only via reflection, dynamic, or a pre-compiled assembly. Migrate to SetVisualAssetsImage(image, WSAImageType, WSAImageScale).
Source
Thrown at Editor/Mono/PlayerSettingsWSA.cs:195
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.");
}
}
[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)]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 storeTileLogo from reflective write loops; honor EditorBrowsableState.Never.
- Version-gate reflective access on the obsoleting release.
Example fix
// before
PlayerSettings.WSA.storeTileLogo = "Assets/Logos/tile.png";
// after
PlayerSettings.WSA.SetVisualAssetsImage("Assets/Logos/tile.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.storeTileLogo = path; }
catch (System.NotSupportedException)
{
PlayerSettings.WSA.SetVisualAssetsImage(path,
WSAImageType.UWPSquare150x150Logo, WSAImageScale._100);
} Prevention
- Set tile logos through SetVisualAssetsImage only.
- Recompile against the current editor to get the CS0619 nudge at compile time.
- Drop storeTileLogo from reflective write loops.
- Grep for 'storeTileLogo' before upgrading.
When it happens
Trigger: Reflective SetValue on storeTileLogo, 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.storeTileLogo140 is deprecated. Use GetVisual
- PlayerSettings.storeTileLogo140 is deprecated. Use SetVisual
AI-assisted analysis of Unity-Technologies/UnityCsReference@225b0fbdb5 (2026-08-13).
Data as JSON: /api/errors/42a400442515f927.
Report an issue: GitHub.