Skip to content

Commit 21f9d07

Browse files
authored
null reference error on adding actions with no action maps fix (#1703)
1 parent fc6adeb commit 21f9d07

File tree

3 files changed

+8
-5
lines changed

3 files changed

+8
-5
lines changed

Packages/com.unity.inputsystem/InputSystem/Editor/UITKAssetEditor/Commands/Commands.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ public static Command DeleteActionMap(int actionMapIndex)
8585

8686
private static InputActionsEditorState SelectPrevActionMap(InputActionsEditorState state)
8787
{
88-
var count = Selectors.GetActionMapCount(state.serializedObject);
88+
var count = Selectors.GetActionMapCount(state);
8989
int index = -1;
9090
if (count != null && count.Value > 0)
9191
index = Math.Max(state.selectedActionMapIndex - 1, 0);

Packages/com.unity.inputsystem/InputSystem/Editor/UITKAssetEditor/Views/ActionsTreeView.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,13 +112,14 @@ public ActionsTreeView(VisualElement root, StateContainer stateContainer)
112112

113113
m_ActionsTreeView.RegisterCallback<KeyDownEvent>(OnKeyDownEvent);
114114

115-
CreateSelector(Selectors.GetActionsForSelectedActionMap,
116-
(_, state) =>
115+
CreateSelector(Selectors.GetActionsForSelectedActionMap, Selectors.GetActionMapCount,
116+
(_, count, state) =>
117117
{
118118
var treeData = Selectors.GetActionsAsTreeViewData(state);
119119
return new ViewState
120120
{
121121
treeViewData = treeData,
122+
actionMapCount = count ?? 0,
122123
newElementID = GetSelectedElementId(state, treeData)
123124
};
124125
});
@@ -174,6 +175,7 @@ public override void RedrawUI(ViewState viewState)
174175
if (viewState.newElementID != -1)
175176
m_ActionsTreeView.SetSelectionById(viewState.newElementID);
176177
RenameNewAction(viewState.newElementID);
178+
addActionButton.SetEnabled(viewState.actionMapCount > 0);
177179
}
178180

179181
private void RenameNewAction(int id)
@@ -242,6 +244,7 @@ private void OnKeyDownEventForDelete()
242244
internal class ViewState
243245
{
244246
public List<TreeViewItemData<ActionOrBindingData>> treeViewData;
247+
public int actionMapCount;
245248
public int newElementID;
246249
}
247250
}

Packages/com.unity.inputsystem/InputSystem/Editor/UITKAssetEditor/Views/Selectors.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,9 @@ public static IEnumerable<SerializedInputAction> GetActionsForSelectedActionMap(
5656
return actionMap?.FindPropertyRelative(nameof(InputActionMap.m_Actions))?.arraySize;
5757
}
5858

59-
public static int? GetActionMapCount(SerializedObject serializedObject)
59+
public static int? GetActionMapCount(InputActionsEditorState state)
6060
{
61-
return serializedObject?.FindProperty(nameof(InputActionAsset.m_ActionMaps))?.arraySize;
61+
return state.serializedObject?.FindProperty(nameof(InputActionAsset.m_ActionMaps))?.arraySize;
6262
}
6363

6464
public static SerializedInputAction GetActionInMap(InputActionsEditorState state, int mapIndex, string name)

0 commit comments

Comments
 (0)