11#if UNITY_EDITOR
22#if UNITY_2021_1_OR_NEWER
33using System ;
4+ using System . Collections . Generic ;
45using UnityEditor ;
56
67namespace UnityEngine . InputSystem . Editor
@@ -20,10 +21,10 @@ public class InputSystemPluginControl
2021 private static void CheckForExtension ( )
2122 {
2223 ThrowWarningOnMissingPlugin ( ) ;
23- m_pluginPackageRegistered = false ;
2424 }
2525
26- private static readonly BuildTarget [ ] TargetNoPluginNeeded =
26+ //This static HashSet will be reset OnDomainReload and so it will be emptied and refilled every [InitializeOnLoad]]
27+ private static HashSet < BuildTarget > s_targetNoPluginNeeded = new HashSet < BuildTarget > ( )
2728 {
2829 BuildTarget . StandaloneOSX ,
2930 BuildTarget . StandaloneWindows ,
@@ -51,12 +52,10 @@ private static void CheckForExtension()
5152 BuildTarget . NoTarget
5253 } ;
5354
54- private static bool m_pluginPackageRegistered = false ;
55-
5655 static bool BuildTargetNeedsPlugin ( )
5756 {
5857 BuildTarget target = EditorUserBuildSettings . activeBuildTarget ;
59- foreach ( var platform in TargetNoPluginNeeded )
58+ foreach ( var platform in s_targetNoPluginNeeded )
6059 {
6160 if ( platform == target ) return false ;
6261 }
@@ -73,13 +72,12 @@ static bool BuildTargetNeedsPlugin()
7372 /// </remarks>
7473 public static void RegisterPlatform ( BuildTarget target )
7574 {
76- m_pluginPackageRegistered = true ;
75+ if ( EditorUserBuildSettings . activeBuildTarget == target )
76+ s_targetNoPluginNeeded . Add ( target ) ;
7777 }
7878
7979 private static bool IsPluginInstalled ( )
8080 {
81- if ( m_pluginPackageRegistered )
82- return true ;
8381 var registeredPackages = UnityEditor . PackageManager . PackageInfo . GetAllRegisteredPackages ( ) ;
8482 var plugInName = PlugInName + EditorUserBuildSettings . activeBuildTarget . ToString ( ) . ToLower ( ) ;
8583 foreach ( var package in registeredPackages )
0 commit comments