Skip to content

Commit d4b0a5b

Browse files
fix logic to get active platform settings object to work with build profiles
1 parent 4f0179e commit d4b0a5b

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

Packages/com.unity.inputsystem/InputSystem/Editor/Settings/EditorPlayerSettingHelpers.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
#if UNITY_EDITOR
22
using System;
33
using System.Linq;
4+
using System.Reflection;
45
using UnityEditor;
6+
using UnityEditor.Build.Profile;
57

68
namespace UnityEngine.InputSystem.Editor
79
{
@@ -154,7 +156,23 @@ private static int TupleToActiveInputHandler((bool newSystemEnabled, bool oldSys
154156

155157
private static SerializedProperty GetPropertyOrNull(string name)
156158
{
159+
#if UNITY_6000_0_OR_NEWER
160+
// HOTFIX: the code below works around an issue causing an infinite reimport loop
161+
// this will be replaced by a call to an API in the editor instead of using reflection once it is available
162+
var buildProfileType = typeof(BuildProfile);
163+
var globalPlayerSettingsField = buildProfileType.GetField("s_GlobalPlayerSettings", BindingFlags.Static | BindingFlags.NonPublic);
164+
var playerSettings = (PlayerSettings)globalPlayerSettingsField.GetValue(null);
165+
var activeBuildProfile = BuildProfile.GetActiveBuildProfile();
166+
if (activeBuildProfile != null)
167+
{
168+
var playerSettingsOverrideField = buildProfileType.GetField("m_PlayerSettings", BindingFlags.Instance | BindingFlags.NonPublic);
169+
var playerSettingsOverride = (PlayerSettings)playerSettingsOverrideField.GetValue(activeBuildProfile);
170+
if (playerSettingsOverride != null)
171+
playerSettings = playerSettingsOverride;
172+
}
173+
#else
157174
var playerSettings = Resources.FindObjectsOfTypeAll<PlayerSettings>().FirstOrDefault();
175+
#endif
158176
if (playerSettings == null)
159177
return null;
160178
var playerSettingsObject = new SerializedObject(playerSettings);

0 commit comments

Comments
 (0)