Unity-Technologies/UnityCsReference · error · NotSupportedException
PlayerSettings.packageLogo180 is deprecated. Use SetVisualAs
Error message
PlayerSettings.packageLogo180 is deprecated. Use SetVisualAssetsImage() instead.
What it means
PlayerSettings.WSA.packageLogo180 was a string property whose setter assigned the UWP package logo image at 180% scale. Unity unified all per-scale visual asset setters into SetVisualAssetsImage(image, WSAImageType, WSAImageScale). The [Obsolete(..., true)] flag makes direct usage a compile error; the runtime NotSupportedException catches reflection-based writes.
Source
Thrown at Editor/Mono/PlayerSettingsWSA.cs:727
throw new NotSupportedException("PlayerSettings.packageLogo140 is deprecated. Use GetVisualAssetsImage() instead.");
}
set
{
throw new NotSupportedException("PlayerSettings.packageLogo140 is deprecated. Use SetVisualAssetsImage() instead.");
}
}
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
[Obsolete("Use GetVisualAssetsImage()/SetVisualAssetsImage()", true)]
public static string packageLogo180
{
get
{
throw new NotSupportedException("PlayerSettings.packageLogo180 is deprecated. Use GetVisualAssetsImage() instead.");
}
set
{
throw new NotSupportedException("PlayerSettings.packageLogo180 is deprecated. Use SetVisualAssetsImage() instead.");
}
}
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
[Obsolete("Use GetVisualAssetsImage()/SetVisualAssetsImage()", true)]
public static string packageLogo240
{
get
{
throw new NotSupportedException("PlayerSettings.packageLogo240 is deprecated. Use GetVisualAssetsImage() instead.");
}
set
{
throw new NotSupportedException("PlayerSettings.packageLogo240 is deprecated. Use SetVisualAssetsImage() instead.");
}
}
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]View on GitHub (pinned to 225b0fbdb5)
Solutions
- Replace the setter with PlayerSettings.WSA.SetVisualAssetsImage(path, WSAImageType.PackageLogo, WSAImageScale._180)
- Migrate to UWP-supported scales (_100, _125, _150, _200) since _180 is deprecated for UWP
- Recompile all editor scripts to catch remaining [Obsolete] errors
Example fix
// before
PlayerSettings.WSA.packageLogo180 = "Assets/Logos/logo180.png";
// after
PlayerSettings.WSA.SetVisualAssetsImage("Assets/Logos/logo.png", WSAImageType.PackageLogo, WSAImageScale._200); Defensive patterns
Strategy: validation
Validate before calling
var prop = typeof(PlayerSettings.WSA).GetProperty("packageLogo180");
if (prop?.GetCustomAttribute<System.ObsoleteAttribute>()?.IsError == true)
Debug.LogError("Property is obsolete. Use SetVisualAssetsImage() instead."); Try / catch
try { /* deprecated setter via reflection */ }
catch (NotSupportedException ex) when (ex.Message.Contains("SetVisualAssetsImage"))
{ Debug.LogError("Migrate to SetVisualAssetsImage()."); } Prevention
- Replace all packageLogo setters with SetVisualAssetsImage before Unity upgrade
- Use UWP scales instead of deprecated _180
When it happens
Trigger: Assigning to PlayerSettings.WSA.packageLogo180 through reflection, dynamic keyword, or a pre-compiled plugin DLL.
Common situations: Build pipelines setting UWP package logo assets at multiple scales. Project migration from pre-2018 Unity. Asset store plugins with pre-compiled editor assemblies.
Related errors
- PlayerSettings.packageLogo140 is deprecated. Use GetVisualAs
- PlayerSettings.packageLogo140 is deprecated. Use SetVisualAs
- PlayerSettings.packageLogo180 is deprecated. Use GetVisualAs
- PlayerSettings.packageLogo240 is deprecated. Use GetVisualAs
- PlayerSettings.packageLogo240 is deprecated. Use SetVisualAs
AI-assisted analysis of Unity-Technologies/UnityCsReference@225b0fbdb5 (2026-08-13).
Data as JSON: /api/errors/81b2a94c62fcf1dd.
Report an issue: GitHub.