diff --git a/Assets/Samples/RebindingUI/ActionLabelEditor.cs b/Assets/Samples/RebindingUI/ActionLabelEditor.cs
index 8e491b9156..4e8e6a6925 100644
--- a/Assets/Samples/RebindingUI/ActionLabelEditor.cs
+++ b/Assets/Samples/RebindingUI/ActionLabelEditor.cs
@@ -15,13 +15,9 @@ public class ActionLabelEditor : UnityEditor.Editor
{
protected void OnEnable()
{
- m_ActionProperty = serializedObject.FindProperty("m_Action");
- m_BindingIdProperty = serializedObject.FindProperty("m_BindingId");
m_BindingTextProperty = serializedObject.FindProperty("m_BindingText");
- m_DisplayStringOptionsProperty = serializedObject.FindProperty("m_DisplayStringOptions");
m_UpdateBindingUIEventProperty = serializedObject.FindProperty("m_UpdateBindingUIEvent");
-
- RefreshBindingOptions();
+ m_BindingUI = new BindingUI(serializedObject);
}
public override void OnInspectorGUI()
@@ -29,24 +25,7 @@ public override void OnInspectorGUI()
EditorGUI.BeginChangeCheck();
// Binding section.
- EditorGUILayout.LabelField(m_BindingLabel, Styles.boldLabel);
- using (new EditorGUI.IndentLevelScope())
- {
- EditorGUILayout.PropertyField(m_ActionProperty);
-
- var newSelectedBinding = EditorGUILayout.Popup(m_BindingLabel, m_SelectedBindingOption, m_BindingOptions);
- if (newSelectedBinding != m_SelectedBindingOption)
- {
- var bindingId = m_BindingOptionValues[newSelectedBinding];
- m_BindingIdProperty.stringValue = bindingId;
- m_SelectedBindingOption = newSelectedBinding;
- }
-
- var optionsOld = (InputBinding.DisplayStringOptions)m_DisplayStringOptionsProperty.intValue;
- var optionsNew = (InputBinding.DisplayStringOptions)EditorGUILayout.EnumFlagsField(m_DisplayOptionsLabel, optionsOld);
- if (optionsOld != optionsNew)
- m_DisplayStringOptionsProperty.intValue = (int)optionsNew;
- }
+ m_BindingUI.Draw();
// UI section.
EditorGUILayout.Space();
@@ -67,91 +46,16 @@ public override void OnInspectorGUI()
if (EditorGUI.EndChangeCheck())
{
serializedObject.ApplyModifiedProperties();
- RefreshBindingOptions();
- }
- }
-
- protected void RefreshBindingOptions()
- {
- var actionReference = (InputActionReference)m_ActionProperty.objectReferenceValue;
- var action = actionReference?.action;
-
- if (action == null)
- {
- m_BindingOptions = new GUIContent[0];
- m_BindingOptionValues = new string[0];
- m_SelectedBindingOption = -1;
- return;
- }
-
- var bindings = action.bindings;
- var bindingCount = bindings.Count;
-
- m_BindingOptions = new GUIContent[bindingCount];
- m_BindingOptionValues = new string[bindingCount];
- m_SelectedBindingOption = -1;
-
- var currentBindingId = m_BindingIdProperty.stringValue;
- for (var i = 0; i < bindingCount; ++i)
- {
- var binding = bindings[i];
- var bindingId = binding.id.ToString();
- var haveBindingGroups = !string.IsNullOrEmpty(binding.groups);
-
- // If we don't have a binding groups (control schemes), show the device that if there are, for example,
- // there are two bindings with the display string "A", the user can see that one is for the keyboard
- // and the other for the gamepad.
- var displayOptions =
- InputBinding.DisplayStringOptions.DontUseShortDisplayNames | InputBinding.DisplayStringOptions.IgnoreBindingOverrides;
- if (!haveBindingGroups)
- displayOptions |= InputBinding.DisplayStringOptions.DontOmitDevice;
-
- // Create display string.
- var displayString = action.GetBindingDisplayString(i, displayOptions);
-
- // If binding is part of a composite, include the part name.
- if (binding.isPartOfComposite)
- displayString = $"{ObjectNames.NicifyVariableName(binding.name)}: {displayString}";
-
- // Some composites use '/' as a separator. When used in popup, this will lead to to submenus. Prevent
- // by instead using a backlash.
- displayString = displayString.Replace('/', '\\');
-
- // If the binding is part of control schemes, mention them.
- if (haveBindingGroups)
- {
- var asset = action.actionMap?.asset;
- if (asset != null)
- {
- var controlSchemes = string.Join(", ",
- binding.groups.Split(InputBinding.Separator)
- .Select(x => asset.controlSchemes.FirstOrDefault(c => c.bindingGroup == x).name));
-
- displayString = $"{displayString} ({controlSchemes})";
- }
- }
-
- m_BindingOptions[i] = new GUIContent(displayString);
- m_BindingOptionValues[i] = bindingId;
-
- if (currentBindingId == bindingId)
- m_SelectedBindingOption = i;
+ m_BindingUI.Refresh();
}
}
- private SerializedProperty m_ActionProperty;
- private SerializedProperty m_BindingIdProperty;
private SerializedProperty m_BindingTextProperty;
private SerializedProperty m_UpdateBindingUIEventProperty;
- private SerializedProperty m_DisplayStringOptionsProperty;
- private GUIContent m_BindingLabel = new GUIContent("Binding");
- private GUIContent m_DisplayOptionsLabel = new GUIContent("Display Options");
private GUIContent m_UILabel = new GUIContent("UI");
private GUIContent m_EventsLabel = new GUIContent("Events");
- private GUIContent[] m_BindingOptions;
- private string[] m_BindingOptionValues;
- private int m_SelectedBindingOption;
+ private BindingUI m_BindingUI;
private static class Styles
{
diff --git a/Assets/Samples/RebindingUI/BindingUI.cs b/Assets/Samples/RebindingUI/BindingUI.cs
new file mode 100644
index 0000000000..40316db8e8
--- /dev/null
+++ b/Assets/Samples/RebindingUI/BindingUI.cs
@@ -0,0 +1,146 @@
+#if UNITY_EDITOR
+
+using System;
+using System.Linq;
+using UnityEditor;
+
+namespace UnityEngine.InputSystem.Samples.RebindUI
+{
+ ///
+ /// Common binding UI helper to allow editor composition.
+ ///
+ internal class BindingUI
+ {
+ private readonly SerializedProperty m_ActionProperty;
+ private readonly SerializedProperty m_BindingIdProperty;
+ private readonly SerializedProperty m_DisplayStringOptionsProperty;
+
+ public BindingUI(SerializedObject serializedObject)
+ : this(serializedObject.FindProperty("m_Action"), serializedObject.FindProperty("m_BindingId"),
+ serializedObject.FindProperty("m_DisplayStringOptions"))
+ {}
+
+ public BindingUI(SerializedProperty actionProperty, SerializedProperty bindingIdProperty,
+ SerializedProperty displayStringOptionsProperty = null)
+ {
+ m_ActionProperty = actionProperty;
+ m_BindingIdProperty = bindingIdProperty;
+ m_DisplayStringOptionsProperty = displayStringOptionsProperty;
+
+ Reset();
+ Refresh();
+ }
+
+ private void Reset()
+ {
+ bindingOptions = Array.Empty();
+ bindingOptionValues = Array.Empty();
+ selectedBindingIndex = -1;
+ }
+
+ public void Draw()
+ {
+ // Binding section.
+ EditorGUILayout.LabelField(m_BindingLabel);
+ using (new EditorGUI.IndentLevelScope())
+ {
+ EditorGUILayout.PropertyField(m_ActionProperty);
+
+ var newSelectedBinding = EditorGUILayout.Popup(m_BindingLabel, selectedBindingIndex, bindingOptions);
+ if (newSelectedBinding != selectedBindingIndex)
+ {
+ var id = bindingOptionValues[newSelectedBinding];
+ m_BindingIdProperty.stringValue = id;
+ selectedBindingIndex = newSelectedBinding;
+ }
+
+ if (m_DisplayStringOptionsProperty != null)
+ {
+ var optionsOld = (InputBinding.DisplayStringOptions)m_DisplayStringOptionsProperty.intValue;
+ var optionsNew = (InputBinding.DisplayStringOptions)EditorGUILayout.EnumFlagsField(m_DisplayOptionsLabel, optionsOld);
+ if (optionsOld != optionsNew)
+ m_DisplayStringOptionsProperty.intValue = (int)optionsNew;
+ }
+ }
+ }
+
+ public bool Refresh()
+ {
+ if (action == null)
+ {
+ Reset();
+ return false;
+ }
+
+ var bindings = action.bindings;
+ var bindingCount = bindings.Count;
+
+ bindingOptions = new GUIContent[bindingCount];
+ bindingOptionValues = new string[bindingCount];
+ selectedBindingIndex = -1;
+
+ var currentBindingId = m_BindingIdProperty.stringValue;
+ for (var i = 0; i < bindingCount; ++i)
+ {
+ var binding = bindings[i];
+ var id = binding.id.ToString();
+ var haveBindingGroups = !string.IsNullOrEmpty(binding.groups);
+
+ // If we don't have a binding groups (control schemes), show the device that if there are, for example,
+ // there are two bindings with the display string "A", the user can see that one is for the keyboard
+ // and the other for the gamepad.
+ var displayOptions =
+ InputBinding.DisplayStringOptions.DontUseShortDisplayNames | InputBinding.DisplayStringOptions.IgnoreBindingOverrides;
+ if (!haveBindingGroups)
+ displayOptions |= InputBinding.DisplayStringOptions.DontOmitDevice;
+
+ // Create display string.
+ var displayString = action.GetBindingDisplayString(i, displayOptions);
+
+ // If binding is part of a composite, include the part name.
+ if (binding.isPartOfComposite)
+ displayString = $"{ObjectNames.NicifyVariableName(binding.name)}: {displayString}";
+
+ // Some composites use '/' as a separator. When used in popup, this will lead to to submenus. Prevent
+ // by instead using a backlash.
+ displayString = displayString.Replace('/', '\\');
+
+ // If the binding is part of control schemes, mention them.
+ if (haveBindingGroups)
+ {
+ var asset = action.actionMap?.asset;
+ if (asset != null)
+ {
+ var controlSchemes = string.Join(", ",
+ binding.groups.Split(InputBinding.Separator)
+ .Select(x => asset.controlSchemes.FirstOrDefault(c => c.bindingGroup == x).name));
+
+ displayString = $"{displayString} ({controlSchemes})";
+ }
+ }
+
+ bindingOptions[i] = new GUIContent(displayString);
+ bindingOptionValues[i] = id;
+
+ if (currentBindingId == id)
+ selectedBindingIndex = i;
+ }
+
+ return true;
+ }
+
+ public string bindingId => m_BindingIdProperty.stringValue;
+ public int bindingIndex => action.FindBindingById(m_BindingIdProperty.stringValue);
+
+ public InputAction action => ((InputActionReference)m_ActionProperty.objectReferenceValue)?.action;
+
+ private GUIContent[] bindingOptions { get; set; }
+ private string[] bindingOptionValues { get; set; }
+ private int selectedBindingIndex { get; set; }
+
+ private readonly GUIContent m_BindingLabel = new GUIContent("Binding");
+ private readonly GUIContent m_DisplayOptionsLabel = new GUIContent("Display Options");
+ }
+}
+
+#endif // UNITY_EDITOR
diff --git a/Assets/Samples/RebindingUI/BindingUI.cs.meta b/Assets/Samples/RebindingUI/BindingUI.cs.meta
new file mode 100644
index 0000000000..7edd0aaa83
--- /dev/null
+++ b/Assets/Samples/RebindingUI/BindingUI.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 9e880855c77044fb9a41f843560d9a3a
+timeCreated: 1758622918
\ No newline at end of file
diff --git a/Assets/Samples/RebindingUI/Game/GameplayManager.cs b/Assets/Samples/RebindingUI/Game/GameplayManager.cs
index 90eaaf4b62..36eda7c570 100644
--- a/Assets/Samples/RebindingUI/Game/GameplayManager.cs
+++ b/Assets/Samples/RebindingUI/Game/GameplayManager.cs
@@ -191,6 +191,9 @@ internal bool TryTeleportOrthographicExtents(Vector3 position, out Vector3 resul
private void Awake()
{
+ // This game is designed for landscape orientation, so make sure we use it.
+ Screen.orientation = ScreenOrientation.LandscapeLeft;
+
m_FeedbackController = GetComponent();
m_EnemyPool = new ObjectPool(
diff --git a/Assets/Samples/RebindingUI/InputActionExtensions.cs b/Assets/Samples/RebindingUI/InputActionExtensions.cs
new file mode 100644
index 0000000000..7df26ed53d
--- /dev/null
+++ b/Assets/Samples/RebindingUI/InputActionExtensions.cs
@@ -0,0 +1,24 @@
+using System;
+
+namespace UnityEngine.InputSystem.Samples.RebindUI
+{
+ ///
+ /// Extension methods to reduce code bloat of this example.
+ ///
+ public static class InputActionExtensions
+ {
+ ///
+ /// Attempts to find an action binding using its binding ID (GUID).
+ ///
+ /// The action instance, may be null.
+ /// The binding ID (GUID) represented by a string.
+ /// Zero-based index of the binding or -1 if not found.
+ public static int FindBindingById(this InputAction action, string bindingId)
+ {
+ if (action == null || string.IsNullOrEmpty(bindingId))
+ return -1;
+ var id = new Guid(bindingId);
+ return action.bindings.IndexOf(x => x.id == id);
+ }
+ }
+}
diff --git a/Assets/Samples/RebindingUI/InputActionExtensions.cs.meta b/Assets/Samples/RebindingUI/InputActionExtensions.cs.meta
new file mode 100644
index 0000000000..7790740f15
--- /dev/null
+++ b/Assets/Samples/RebindingUI/InputActionExtensions.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: ad53b6fa614c40fa86b979a6dfca6eb5
+timeCreated: 1758779730
\ No newline at end of file
diff --git a/Assets/Samples/RebindingUI/InputActionIndicator.cs b/Assets/Samples/RebindingUI/InputActionIndicator.cs
index f28f5aa554..6193de6b6b 100644
--- a/Assets/Samples/RebindingUI/InputActionIndicator.cs
+++ b/Assets/Samples/RebindingUI/InputActionIndicator.cs
@@ -34,7 +34,9 @@ public class InputActionIndicator : MonoBehaviour
private void OnEnable()
{
if (action != null && action.action != null)
+ {
action.action.performed += OnPerformed;
+ }
}
private void OnDisable()
diff --git a/Assets/Samples/RebindingUI/README.md b/Assets/Samples/RebindingUI/README.md
index 373291438f..f8d96dfb1b 100644
--- a/Assets/Samples/RebindingUI/README.md
+++ b/Assets/Samples/RebindingUI/README.md
@@ -1,10 +1,31 @@
-This sample demonstrates how to use the Input System APIs to set up a rebinding UI. The main file is [RebindActionUI](./RebindActionUI.cs) which, aside from serving as an example, contains a reusable `MonoBehaviour` component for composing rebinding UIs. The [RebindUIPrefab](./RebindUIPrefab.prefab) contains a ready-made prefab that can be used as a simple drop-in setup for rebinding an individual action.
+This sample demonstrates how to use the Input System APIs to set up a rebinding UI. The main file is
+[RebindActionUI](./RebindActionUI.cs) which, aside from serving as an example, contains a reusable `MonoBehaviour`
+component for composing rebinding UIs. The [RebindUIPrefab](./RebindUIPrefab.prefab) contains a ready-made prefab that
+can be used as a simple drop-in setup for rebinding an individual action.
-To demonstrate how to use images instead of textual display strings, take a look at [GamepadIconsExample](./GamepadIconsExample.cs).
+To demonstrate how to use images instead of textual display strings, take a look at
+[GamepadIconsExample](./GamepadIconsExample.cs).
-To demonstrate how to show dynamic texts based on input action bindings, see [ActionLabel](./ActionLabel.cs).
+To demonstrate how to show dynamic UI texts based on input action bindings, see [ActionLabel](./ActionLabel.cs).
- Finally, the [RebindSaveLoad](./RebindSaveLoad.cs) script demonstrates how to persist user rebinds in `PlayerPrefs` and how to restore them from there.
+[InputActionIndicator](./InputActionIndicator.cs) and [InputActionIndicator.prefab](./InputActionIndicator.prefab)
+shows how to make a simple UI indicator that shows whether an associated input action is enabled, disabled or
+performed. This behavior has been added to this sample to add observability of actions triggered within gameplay,
+menu and rebind contexts.
- The icons used in the sample are taken from [Free Prompts Pack v4.0](https://opengameart.org/content/free-keyboard-and-controllers-prompts-pack) created by, and made available to public domain by Nicolae Berbece.
- Icons are licensed under [Creative Commons CC0](https://creativecommons.org/publicdomain/zero/1.0/).
+The [RebindSaveLoad](./RebindSaveLoad.cs) script demonstrates how to persist user rebinds in `PlayerPrefs` and how
+to restore them.
+
+In this sample, keyboard bindings for "Move" (default WASD) is rebound as a single composite. This means that
+indivudual parts will get assigned one after the other. Another way of doing this is to set it up as four individual
+button bindings and assign them individually as four partial bindings.
+
+In this sample it is possible to directly rebind gamepad sticks in the gamepad control scheme. In practice, you
+probably don't want to set up rebinding the sticks like this but rather have a "swap sticks" kind of toggle instead.
+In this sample we have both variants for demonstration purposes. See [RebindActionUI.SwapBinding](./RebindActionUI.cs)
+for a method that swaps two bindings of similar type.
+
+The icons used in the sample are taken from
+[Free Prompts Pack v4.0](https://opengameart.org/content/free-keyboard-and-controllers-prompts-pack) created by,
+and made available to public domain by Nicolae Berbece.
+Icons are licensed under [Creative Commons CC0](https://creativecommons.org/publicdomain/zero/1.0/).
diff --git a/Assets/Samples/RebindingUI/RebindActionParameterUI.cs b/Assets/Samples/RebindingUI/RebindActionParameterUI.cs
new file mode 100644
index 0000000000..55b0fdb209
--- /dev/null
+++ b/Assets/Samples/RebindingUI/RebindActionParameterUI.cs
@@ -0,0 +1,147 @@
+using System;
+using UnityEngine;
+using UnityEngine.InputSystem;
+using UnityEngine.InputSystem.Processors;
+using UnityEngine.UI;
+
+namespace UnityEngine.InputSystem.Samples.RebindUI
+{
+ public class RebindActionParameterUI : MonoBehaviour
+ {
+ ///
+ /// Reference to the action that is to be rebound (Required).
+ ///
+ public InputActionReference actionReference
+ {
+ get => m_Action;
+ set => m_Action = value;
+ }
+
+ ///
+ /// ID (in string form) of the binding that is to be rebound on the action.
+ ///
+ /// If this is not set (null or empty), corresponds to an action processor
+ /// parameter, otherwise it corresponds to a binding parameter.
+ ///
+ public string bindingId
+ {
+ get => m_BindingId;
+ set => m_BindingId = value;
+ }
+
+ ///
+ /// The preference key to be used for persistence.
+ ///
+ public string mPreferenceKey
+ {
+ get => m_PreferenceKey;
+ set => m_PreferenceKey = value;
+ }
+
+ ///
+ /// The associated slider UI component instance.
+ ///
+ public Slider slider
+ {
+ get => m_Slider;
+ set
+ {
+ if (m_Slider != null)
+ m_Slider.onValueChanged.RemoveListener(SetParameterValue);
+ m_Slider = value;
+ if (value != null)
+ value.onValueChanged.AddListener(SetParameterValue);
+ }
+ }
+
+ ///
+ /// The default value to apply when reset or no preference exist.
+ ///
+ public float defaultValue
+ {
+ get => m_DefaultValue;
+ set => m_DefaultValue = value;
+ }
+
+ [Tooltip("Reference to action that holds the parameter to be configurable via this behaviour.")]
+ [SerializeField]
+ private InputActionReference m_Action;
+
+ [Tooltip("Optional binding ID of the binding processor parameter to override.")]
+ [SerializeField]
+ private string m_BindingId;
+
+ [Tooltip("The player preference key to be used for persistence.")]
+ [SerializeField]
+ private string m_PreferenceKey;
+
+ [Tooltip("The default value to be be used when no preference exists or when resetting")]
+ [SerializeField]
+ private float m_DefaultValue;
+
+ [Tooltip("The associated slider UI component used to change the value.")]
+ [SerializeField]
+ private Slider m_Slider;
+
+ [SerializeField]
+ private string[] m_ParameterOverrides;
+
+ private float m_Value;
+
+ public void ResetToDefault()
+ {
+ PlayerPrefs.SetFloat(m_PreferenceKey, m_DefaultValue);
+ SetParameterValue(m_DefaultValue);
+ }
+
+ private void Awake()
+ {
+ if (m_Slider == null)
+ m_Slider = GetComponent();
+ }
+
+ private void OnEnable()
+ {
+ if (!string.IsNullOrEmpty(m_PreferenceKey))
+ SetParameterValue(PlayerPrefs.GetFloat(m_PreferenceKey, m_DefaultValue));
+
+ if (m_Slider != null)
+ m_Slider.onValueChanged.AddListener(SetParameterValue);
+ }
+
+ private void OnDisable()
+ {
+ if (m_Slider != null)
+ m_Slider.onValueChanged.RemoveListener(SetParameterValue);
+
+ if (!string.IsNullOrEmpty(m_PreferenceKey))
+ PlayerPrefs.SetFloat(m_PreferenceKey, m_Value);
+ }
+
+ private void SetParameterValue(float value)
+ {
+ // Apply parameter value as a parametric override
+ if (m_Action != null && m_Action.action != null)
+ {
+ var action = m_Action.action;
+ int bindingIndex = action.FindBindingById(m_BindingId);
+ var bindingMask = bindingIndex >= 0 ? action.bindings[bindingIndex] : default;
+
+ // We apply parameter override. This directly affects matching processors and interactions
+ // if they have matching parameters.
+ foreach (var parameterOverride in m_ParameterOverrides)
+ action.ApplyParameterOverride(parameterOverride, value, bindingMask);
+ }
+
+ m_Value = value;
+
+ UpdateDisplayValue(value);
+ }
+
+ private void UpdateDisplayValue(float value)
+ {
+ if (m_Slider != null)
+ m_Slider.value = Mathf.Clamp(value, m_Slider.minValue, m_Slider.maxValue);
+ }
+ }
+}
diff --git a/Assets/Samples/RebindingUI/RebindActionParameterUI.cs.meta b/Assets/Samples/RebindingUI/RebindActionParameterUI.cs.meta
new file mode 100644
index 0000000000..fbf6f6b58a
--- /dev/null
+++ b/Assets/Samples/RebindingUI/RebindActionParameterUI.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: b52b7577d0f9e44e99408e2e11257fd6
\ No newline at end of file
diff --git a/Assets/Samples/RebindingUI/RebindActionParameterUIEditor.cs b/Assets/Samples/RebindingUI/RebindActionParameterUIEditor.cs
new file mode 100644
index 0000000000..be7f34e2ad
--- /dev/null
+++ b/Assets/Samples/RebindingUI/RebindActionParameterUIEditor.cs
@@ -0,0 +1,77 @@
+#if UNITY_EDITOR
+
+using System;
+using UnityEditor;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace UnityEngine.InputSystem.Samples.RebindUI
+{
+ ///
+ /// Allows persisting a parameter override associated with a binding.
+ ///
+ [CustomEditor(typeof(RebindActionParameterUI))]
+ public class RebindActionParameterUIEditor : UnityEditor.Editor
+ {
+ protected void OnEnable()
+ {
+ m_Binding = new BindingUI(serializedObject);
+ m_DefaultValueProperty = serializedObject.FindProperty("m_DefaultValue");
+ m_PreferenceKeyProperty = serializedObject.FindProperty("m_PreferenceKey");
+ m_SliderProperty = serializedObject.FindProperty("m_Slider");
+ m_ParameterOverridesProperty = serializedObject.FindProperty("m_ParameterOverrides");
+
+ Refresh();
+ }
+
+ public override void OnInspectorGUI()
+ {
+ EditorGUI.BeginChangeCheck();
+
+ // Binding section.
+ m_Binding.Draw();
+
+ // UI section
+ EditorGUILayout.LabelField("UI");
+ using (new EditorGUI.IndentLevelScope())
+ {
+ EditorGUILayout.ObjectField(m_SliderProperty);
+ }
+
+ // Parameter section.
+ EditorGUILayout.LabelField("Parameter");
+ using (new EditorGUI.IndentLevelScope())
+ {
+ EditorGUILayout.PropertyField(m_PreferenceKeyProperty);
+ EditorGUILayout.PropertyField(m_DefaultValueProperty);
+ EditorGUILayout.PropertyField(m_ParameterOverridesProperty, true);
+ }
+
+ if (EditorGUI.EndChangeCheck())
+ {
+ serializedObject.ApplyModifiedProperties();
+ Refresh();
+ }
+ }
+
+ private void Refresh()
+ {
+ m_Binding.Refresh();
+ }
+
+ private struct ParameterValue
+ {
+ public string bindingId;
+ public string name;
+ }
+
+ private SerializedProperty m_PreferenceKeyProperty;
+ private SerializedProperty m_DefaultValueProperty;
+ private SerializedProperty m_SliderProperty;
+ private SerializedProperty m_ParameterOverridesProperty;
+
+ private BindingUI m_Binding;
+ }
+}
+
+#endif
diff --git a/Assets/Samples/RebindingUI/RebindActionParameterUIEditor.cs.meta b/Assets/Samples/RebindingUI/RebindActionParameterUIEditor.cs.meta
new file mode 100644
index 0000000000..6cbbac349e
--- /dev/null
+++ b/Assets/Samples/RebindingUI/RebindActionParameterUIEditor.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 6ae2957a180004e979cb5ae77b2e0f3f
\ No newline at end of file
diff --git a/Assets/Samples/RebindingUI/RebindActionUI.cs b/Assets/Samples/RebindingUI/RebindActionUI.cs
index 3bce3b6068..9b581edd16 100644
--- a/Assets/Samples/RebindingUI/RebindActionUI.cs
+++ b/Assets/Samples/RebindingUI/RebindActionUI.cs
@@ -182,25 +182,15 @@ public InteractiveRebindEvent stopRebindEvent
/// true if able to resolve, otherwise false.
public bool ResolveActionAndBinding(out InputAction action, out int bindingIndex)
{
- bindingIndex = -1;
-
action = m_Action?.action;
- if (action == null)
- return false;
- if (string.IsNullOrEmpty(m_BindingId))
- return false;
+ bindingIndex = action.FindBindingById(m_BindingId);
+ if (bindingIndex >= 0)
+ return true;
- // Look up binding index.
- var id = new Guid(m_BindingId);
- bindingIndex = action.bindings.IndexOf(x => x.id == id);
- if (bindingIndex == -1)
- {
+ if (action != null && !string.IsNullOrEmpty(m_BindingId))
Debug.LogError($"Cannot find binding with ID '{m_BindingId}' on '{action}'", this);
- return false;
- }
-
- return true;
+ return false;
}
///
@@ -250,6 +240,30 @@ public void ResetToDefault()
UpdateBindingDisplay();
}
+ ///
+ /// Attempts to swap associated binding of this instance with another instance.
+ ///
+ /// It is expected that the other control is of a compatible type.
+ /// The other instance to swap binding with.
+ /// true if successfully swapped, else false.
+ public void SwapBinding(RebindActionUI other)
+ {
+ if (this == other)
+ return; // Silently ignore any request to swap binding with itself
+ if (ongoingRebind != null || other.ongoingRebind != null)
+ throw new Exception("Cannot swap bindings when interactive rebinding is ongoing");
+ if (!ResolveActionAndBinding(out var action, out var bindingIndex))
+ throw new Exception("Failed to resolve action and binding index");
+ if (!other.ResolveActionAndBinding(out var otherAction, out var otherBindingIndex))
+ throw new Exception("Failed to resolve action and binding index");
+
+ // Apply binding override to target binding based on swapped effective binding paths.
+ var effectivePath = action.bindings[bindingIndex].effectivePath;
+ var otherEffectivePath = otherAction.bindings[otherBindingIndex].effectivePath;
+ action.ApplyBindingOverride(bindingIndex, otherEffectivePath);
+ otherAction.ApplyBindingOverride(otherBindingIndex, effectivePath);
+ }
+
///
/// Initiate an interactive rebind that lets the player actuate a control to choose a new binding
/// for the action.
diff --git a/Assets/Samples/RebindingUI/RebindActionUIEditor.cs b/Assets/Samples/RebindingUI/RebindActionUIEditor.cs
index 18e4c86532..13875a8247 100644
--- a/Assets/Samples/RebindingUI/RebindActionUIEditor.cs
+++ b/Assets/Samples/RebindingUI/RebindActionUIEditor.cs
@@ -15,8 +15,6 @@ public class RebindActionUIEditor : UnityEditor.Editor
{
protected void OnEnable()
{
- m_ActionProperty = serializedObject.FindProperty("m_Action");
- m_BindingIdProperty = serializedObject.FindProperty("m_BindingId");
m_ActionLabelProperty = serializedObject.FindProperty("m_ActionLabel");
m_BindingTextProperty = serializedObject.FindProperty("m_BindingText");
m_RebindOverlayProperty = serializedObject.FindProperty("m_RebindOverlay");
@@ -27,9 +25,8 @@ protected void OnEnable()
m_UpdateBindingUIEventProperty = serializedObject.FindProperty("m_UpdateBindingUIEvent");
m_RebindStartEventProperty = serializedObject.FindProperty("m_RebindStartEvent");
m_RebindStopEventProperty = serializedObject.FindProperty("m_RebindStopEvent");
- m_DisplayStringOptionsProperty = serializedObject.FindProperty("m_DisplayStringOptions");
- RefreshBindingOptions();
+ m_BindingUI = new BindingUI(serializedObject);
}
public override void OnInspectorGUI()
@@ -37,28 +34,11 @@ public override void OnInspectorGUI()
EditorGUI.BeginChangeCheck();
// Binding section.
- EditorGUILayout.LabelField(m_BindingLabel, Styles.boldLabel);
- using (new EditorGUI.IndentLevelScope())
- {
- EditorGUILayout.PropertyField(m_ActionProperty);
-
- var newSelectedBinding = EditorGUILayout.Popup(m_BindingLabel, m_SelectedBindingOption, m_BindingOptions);
- if (newSelectedBinding != m_SelectedBindingOption)
- {
- var bindingId = m_BindingOptionValues[newSelectedBinding];
- m_BindingIdProperty.stringValue = bindingId;
- m_SelectedBindingOption = newSelectedBinding;
- }
-
- var optionsOld = (InputBinding.DisplayStringOptions)m_DisplayStringOptionsProperty.intValue;
- var optionsNew = (InputBinding.DisplayStringOptions)EditorGUILayout.EnumFlagsField(m_DisplayOptionsLabel, optionsOld);
- if (optionsOld != optionsNew)
- m_DisplayStringOptionsProperty.intValue = (int)optionsNew;
- }
+ m_BindingUI.Draw();
// UI section.
EditorGUILayout.Space();
- EditorGUILayout.LabelField(m_UILabel, Styles.boldLabel);
+ EditorGUILayout.LabelField(m_UILabel);
using (new EditorGUI.IndentLevelScope())
{
EditorGUILayout.PropertyField(m_ActionLabelProperty);
@@ -71,7 +51,7 @@ public override void OnInspectorGUI()
// Rebind options section.
EditorGUILayout.Space();
- EditorGUILayout.LabelField(m_RebindOptionsLabel, Styles.boldLabel);
+ EditorGUILayout.LabelField(m_RebindOptionsLabel);
using (new EditorGUI.IndentLevelScope())
{
EditorGUILayout.PropertyField(m_RebindTimeoutProperty);
@@ -79,7 +59,7 @@ public override void OnInspectorGUI()
// Events section.
EditorGUILayout.Space();
- EditorGUILayout.LabelField(m_EventsLabel, Styles.boldLabel);
+ EditorGUILayout.LabelField(m_EventsLabel);
using (new EditorGUI.IndentLevelScope())
{
EditorGUILayout.PropertyField(m_RebindStartEventProperty);
@@ -90,80 +70,10 @@ public override void OnInspectorGUI()
if (EditorGUI.EndChangeCheck())
{
serializedObject.ApplyModifiedProperties();
- RefreshBindingOptions();
+ m_BindingUI.Refresh();
}
}
- protected void RefreshBindingOptions()
- {
- var actionReference = (InputActionReference)m_ActionProperty.objectReferenceValue;
- var action = actionReference?.action;
-
- if (action == null)
- {
- m_BindingOptions = new GUIContent[0];
- m_BindingOptionValues = new string[0];
- m_SelectedBindingOption = -1;
- return;
- }
-
- var bindings = action.bindings;
- var bindingCount = bindings.Count;
-
- m_BindingOptions = new GUIContent[bindingCount];
- m_BindingOptionValues = new string[bindingCount];
- m_SelectedBindingOption = -1;
-
- var currentBindingId = m_BindingIdProperty.stringValue;
- for (var i = 0; i < bindingCount; ++i)
- {
- var binding = bindings[i];
- var bindingId = binding.id.ToString();
- var haveBindingGroups = !string.IsNullOrEmpty(binding.groups);
-
- // If we don't have a binding groups (control schemes), show the device that if there are, for example,
- // there are two bindings with the display string "A", the user can see that one is for the keyboard
- // and the other for the gamepad.
- var displayOptions =
- InputBinding.DisplayStringOptions.DontUseShortDisplayNames | InputBinding.DisplayStringOptions.IgnoreBindingOverrides;
- if (!haveBindingGroups)
- displayOptions |= InputBinding.DisplayStringOptions.DontOmitDevice;
-
- // Create display string.
- var displayString = action.GetBindingDisplayString(i, displayOptions);
-
- // If binding is part of a composite, include the part name.
- if (binding.isPartOfComposite)
- displayString = $"{ObjectNames.NicifyVariableName(binding.name)}: {displayString}";
-
- // Some composites use '/' as a separator. When used in popup, this will lead to to submenus. Prevent
- // by instead using a backlash.
- displayString = displayString.Replace('/', '\\');
-
- // If the binding is part of control schemes, mention them.
- if (haveBindingGroups)
- {
- var asset = action.actionMap?.asset;
- if (asset != null)
- {
- var controlSchemes = string.Join(", ",
- binding.groups.Split(InputBinding.Separator)
- .Select(x => asset.controlSchemes.FirstOrDefault(c => c.bindingGroup == x).name));
-
- displayString = $"{displayString} ({controlSchemes})";
- }
- }
-
- m_BindingOptions[i] = new GUIContent(displayString);
- m_BindingOptionValues[i] = bindingId;
-
- if (currentBindingId == bindingId)
- m_SelectedBindingOption = i;
- }
- }
-
- private SerializedProperty m_ActionProperty;
- private SerializedProperty m_BindingIdProperty;
private SerializedProperty m_ActionLabelProperty;
private SerializedProperty m_BindingTextProperty;
private SerializedProperty m_RebindOverlayProperty;
@@ -174,21 +84,11 @@ protected void RefreshBindingOptions()
private SerializedProperty m_RebindStartEventProperty;
private SerializedProperty m_RebindStopEventProperty;
private SerializedProperty m_UpdateBindingUIEventProperty;
- private SerializedProperty m_DisplayStringOptionsProperty;
- private GUIContent m_BindingLabel = new GUIContent("Binding");
- private GUIContent m_DisplayOptionsLabel = new GUIContent("Display Options");
private GUIContent m_UILabel = new GUIContent("UI");
private GUIContent m_RebindOptionsLabel = new GUIContent("Rebind Options");
private GUIContent m_EventsLabel = new GUIContent("Events");
- private GUIContent[] m_BindingOptions;
- private string[] m_BindingOptionValues;
- private int m_SelectedBindingOption;
-
- private static class Styles
- {
- public static GUIStyle boldLabel = new GUIStyle("MiniBoldLabel");
- }
+ private BindingUI m_BindingUI;
}
}
#endif
diff --git a/Assets/Samples/RebindingUI/RebindSaveLoad.cs b/Assets/Samples/RebindingUI/RebindSaveLoad.cs
index c94fe6f74e..ef18008e42 100644
--- a/Assets/Samples/RebindingUI/RebindSaveLoad.cs
+++ b/Assets/Samples/RebindingUI/RebindSaveLoad.cs
@@ -3,21 +3,78 @@
namespace UnityEngine.InputSystem.Samples.RebindUI
{
+ ///
+ /// Handles persisting binding overrides which implies that customizations of controls will be persisted
+ /// between runs.
+ ///
public class RebindSaveLoad : MonoBehaviour
{
+ [Tooltip("The associated input action asset to be serialized to player preferences (Required).")]
public InputActionAsset actions;
- public void OnEnable()
+ [Tooltip("The player preference key to be used when serializing binding overrides to player preferences (Required).")]
+ public string playerPreferenceKey;
+
+ [Tooltip("Specifies whether to load and apply binding overrides when the component is enabled")]
+ public bool loadOnEnable = true;
+
+ [Tooltip("Specifies whether to save binding overrides when the component is disabled")]
+ public bool saveOnDisable = true;
+
+ ///
+ /// Loads binding overrides from player preferences and applies them to the associated input action asset.
+ ///
+ public void Load()
{
- var rebinds = PlayerPrefs.GetString("rebinds");
- if (!string.IsNullOrEmpty(rebinds))
- actions.LoadBindingOverridesFromJson(rebinds);
+ if (!IsValidConfiguration())
+ return;
+
+ var rebinds = PlayerPrefs.GetString(playerPreferenceKey);
+ if (string.IsNullOrEmpty(rebinds))
+ return; // OK, we may not have saved any binding overrides yet.
+
+ actions.LoadBindingOverridesFromJson(rebinds);
}
- public void OnDisable()
+ ///
+ /// Saves binding overrides from the associated input action asset and persists them to player preferences.
+ ///
+ public void Save()
{
+ if (!IsValidConfiguration())
+ return;
+
var rebinds = actions.SaveBindingOverridesAsJson();
- PlayerPrefs.SetString("rebinds", rebinds);
+ PlayerPrefs.SetString(playerPreferenceKey, rebinds);
+ }
+
+ private void OnEnable()
+ {
+ if (loadOnEnable)
+ Load();
+ }
+
+ private void OnDisable()
+ {
+ if (saveOnDisable)
+ Save();
+ }
+
+ private bool IsValidConfiguration()
+ {
+ if (actions == null)
+ {
+ Debug.LogWarning("Unable to apply binding overrides from player preferences without an associated action asset.");
+ return false;
+ }
+
+ if (string.IsNullOrEmpty(playerPreferenceKey))
+ {
+ Debug.LogWarning("Unable to load binding overrides from player preferences without a non-empty preference key.");
+ return false;
+ }
+
+ return true;
}
}
}
diff --git a/Assets/Samples/RebindingUI/RebindUISampleActions.inputactions b/Assets/Samples/RebindingUI/RebindUISampleActions.inputactions
index 2cf39cb8ba..24cd0138f9 100644
--- a/Assets/Samples/RebindingUI/RebindUISampleActions.inputactions
+++ b/Assets/Samples/RebindingUI/RebindUISampleActions.inputactions
@@ -115,7 +115,7 @@
"id": "d540edf6-bfaa-4b08-b8d5-925398a2debe",
"path": "/rightStick",
"interactions": "",
- "processors": "ScaleVector2",
+ "processors": "",
"groups": "Gamepad",
"action": "Look",
"isComposite": false,
diff --git a/Assets/Samples/RebindingUI/RebindingUISampleScene.unity b/Assets/Samples/RebindingUI/RebindingUISampleScene.unity
index 621d1b5c14..8efd3029e9 100644
--- a/Assets/Samples/RebindingUI/RebindingUISampleScene.unity
+++ b/Assets/Samples/RebindingUI/RebindingUISampleScene.unity
@@ -13,7 +13,7 @@ OcclusionCullingSettings:
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
- serializedVersion: 10
+ serializedVersion: 9
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
@@ -42,8 +42,8 @@ RenderSettings:
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
- serializedVersion: 13
- m_BakeOnSceneLoad: 0
+ serializedVersion: 12
+ m_GIWorkflowMode: 1
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
@@ -66,6 +66,9 @@ LightmapSettings:
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
+ m_FinalGather: 0
+ m_FinalGatherFiltering: 1
+ m_FinalGatherRayCount: 256
m_ReflectionCompression: 2
m_MixedBakeMode: 2
m_BakeBackend: 1
@@ -172,12 +175,6 @@ MonoBehaviour:
gameplayManager: {fileID: 51853247}
root: {fileID: 535440010}
text: {fileID: 303988307}
---- !u!224 &16074951 stripped
-RectTransform:
- m_CorrespondingSourceObject: {fileID: 6680292650503350825, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- m_PrefabInstance: {fileID: 1855225027}
- m_PrefabAsset: {fileID: 0}
--- !u!1 &24861653
GameObject:
m_ObjectHideFlags: 0
@@ -457,6 +454,9 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
actions: {fileID: -944628639613478452, guid: 7dead05c54ca85b4681351aafd8bd03a, type: 3}
+ playerPreferenceKey: rebinds
+ loadOnEnable: 1
+ saveOnDisable: 1
--- !u!114 &51853247
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -503,6 +503,31 @@ PrefabInstance:
propertyPath: m_Text
value: Start
objectReference: {fileID: 0}
+ - target: {fileID: 4168522202458225171, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_Mode
+ value: 4
+ objectReference: {fileID: 0}
+ - target: {fileID: 4168522202458225171, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_SelectOnUp
+ value:
+ objectReference: {fileID: 852899509}
+ - target: {fileID: 4168522202458225171, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_SelectOnDown
+ value:
+ objectReference: {fileID: 1622482957}
+ - target: {fileID: 4168522202458225171, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_SelectOnLeft
+ value:
+ objectReference: {fileID: 1199058184}
+ - target: {fileID: 4168522202458225171, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_SelectOnRight
+ value:
+ objectReference: {fileID: 67962923}
- target: {fileID: 6680292650503350822, guid: f25dcd618d3acd64795bf8bb32edb6c9,
type: 3}
propertyPath: m_Name
@@ -687,6 +712,30 @@ RectTransform:
type: 3}
m_PrefabInstance: {fileID: 67962919}
m_PrefabAsset: {fileID: 0}
+--- !u!114 &67962922 stripped
+MonoBehaviour:
+ m_CorrespondingSourceObject: {fileID: 4168522202458225171, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ m_PrefabInstance: {fileID: 67962919}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!114 &67962923 stripped
+MonoBehaviour:
+ m_CorrespondingSourceObject: {fileID: 5024266567257472466, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ m_PrefabInstance: {fileID: 67962919}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
--- !u!1001 &113688688
PrefabInstance:
m_ObjectHideFlags: 0
@@ -1055,10 +1104,10 @@ MonoBehaviour:
m_FillRect: {fileID: 685041075}
m_HandleRect: {fileID: 1063908417}
m_Direction: 0
- m_MinValue: 0
- m_MaxValue: 1
+ m_MinValue: 0.5
+ m_MaxValue: 2.5
m_WholeNumbers: 0
- m_Value: 0.5
+ m_Value: 1
m_OnValueChanged:
m_PersistentCalls:
m_Calls: []
@@ -1170,6 +1219,26 @@ PrefabInstance:
propertyPath: m_Text
value: LS
objectReference: {fileID: 0}
+ - target: {fileID: 4168522202458225171, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_Mode
+ value: 4
+ objectReference: {fileID: 0}
+ - target: {fileID: 4168522202458225171, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_SelectOnDown
+ value:
+ objectReference: {fileID: 720160217}
+ - target: {fileID: 4168522202458225171, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_SelectOnLeft
+ value:
+ objectReference: {fileID: 6680292651237943330}
+ - target: {fileID: 4168522202458225171, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_SelectOnRight
+ value:
+ objectReference: {fileID: 331853784}
- target: {fileID: 6680292650503350822, guid: f25dcd618d3acd64795bf8bb32edb6c9,
type: 3}
propertyPath: m_Name
@@ -1358,6 +1427,30 @@ RectTransform:
type: 3}
m_PrefabInstance: {fileID: 331853781}
m_PrefabAsset: {fileID: 0}
+--- !u!114 &331853783 stripped
+MonoBehaviour:
+ m_CorrespondingSourceObject: {fileID: 4168522202458225171, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ m_PrefabInstance: {fileID: 331853781}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!114 &331853784 stripped
+MonoBehaviour:
+ m_CorrespondingSourceObject: {fileID: 5024266567257472466, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ m_PrefabInstance: {fileID: 331853781}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
--- !u!1 &356090907
GameObject:
m_ObjectHideFlags: 0
@@ -1893,11 +1986,11 @@ RectTransform:
m_Children:
- {fileID: 356416661}
- {fileID: 331853782}
+ - {fileID: 725406578}
- {fileID: 720160215}
- {fileID: 982377776}
- {fileID: 852899507}
- {fileID: 67962920}
- - {fileID: 1014357782}
m_Father: {fileID: 1820892250}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 1}
@@ -2125,7 +2218,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.8901961, g: 0.8901961, b: 0.8901961, a: 1}
- m_RaycastTarget: 1
+ m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
@@ -2144,7 +2237,7 @@ MonoBehaviour:
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
- m_Text: Sensitivity
+ m_Text: Look Sensitivity
--- !u!222 &674949963
CanvasRenderer:
m_ObjectHideFlags: 0
@@ -2186,7 +2279,7 @@ RectTransform:
m_Father: {fileID: 785347010}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
- m_AnchorMax: {x: 0.5, y: 1}
+ m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 10, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
@@ -2247,6 +2340,31 @@ PrefabInstance:
propertyPath: m_Text
value: RS
objectReference: {fileID: 0}
+ - target: {fileID: 4168522202458225171, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_Mode
+ value: 4
+ objectReference: {fileID: 0}
+ - target: {fileID: 4168522202458225171, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_SelectOnUp
+ value:
+ objectReference: {fileID: 331853783}
+ - target: {fileID: 4168522202458225171, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_SelectOnDown
+ value:
+ objectReference: {fileID: 982377777}
+ - target: {fileID: 4168522202458225171, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_SelectOnLeft
+ value:
+ objectReference: {fileID: 1424978756}
+ - target: {fileID: 4168522202458225171, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_SelectOnRight
+ value:
+ objectReference: {fileID: 720160218}
- target: {fileID: 6680292650503350822, guid: f25dcd618d3acd64795bf8bb32edb6c9,
type: 3}
propertyPath: m_Name
@@ -2437,6 +2555,165 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: cc11d99b1a6682f4cbc4aba1fcd9ac5d, type: 3}
m_Name:
m_EditorClassIdentifier:
+--- !u!114 &720160217 stripped
+MonoBehaviour:
+ m_CorrespondingSourceObject: {fileID: 4168522202458225171, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ m_PrefabInstance: {fileID: 720160214}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!114 &720160218 stripped
+MonoBehaviour:
+ m_CorrespondingSourceObject: {fileID: 5024266567257472466, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ m_PrefabInstance: {fileID: 720160214}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!1 &725406577
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 725406578}
+ - component: {fileID: 725406581}
+ - component: {fileID: 725406580}
+ - component: {fileID: 725406579}
+ m_Layer: 5
+ m_Name: Swap
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &725406578
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 725406577}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 1737030749}
+ m_Father: {fileID: 589143015}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0}
+ m_AnchorMax: {x: 0.5, y: 0}
+ m_AnchoredPosition: {x: 146.3, y: 325}
+ m_SizeDelta: {x: 30, y: 80}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &725406579
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 725406577}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_WrapAround: 0
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 0.25, g: 0.3071429, b: 0.45, a: 1}
+ m_HighlightedColor: {r: 0.36173913, g: 0.4408696, b: 0.65, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_SelectedColor: {r: 0.8679245, g: 0.4550042, b: 0.045033824, a: 1}
+ m_DisabledColor: {r: 0.21960784, g: 0.21960784, b: 0.25882354, a: 1}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_SelectedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_SelectedTrigger: Selected
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 725406580}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 1627715299}
+ m_TargetAssemblyTypeName: UnityEngine.InputSystem.Samples.RebindUI.RebindActionUI,
+ Unity.InputSystem.RebindingUI
+ m_MethodName: SwapBinding
+ m_Mode: 2
+ m_Arguments:
+ m_ObjectArgument: {fileID: 720160216}
+ m_ObjectArgumentAssemblyTypeName: UnityEngine.InputSystem.Samples.RebindUI.RebindActionUI,
+ Unity.InputSystem.RebindingUI
+ m_IntArgument: 0
+ m_FloatArgument: 0
+ m_StringArgument:
+ m_BoolArgument: 0
+ m_CallState: 2
+--- !u!114 &725406580
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 725406577}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &725406581
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 725406577}
+ m_CullTransparentMesh: 0
--- !u!1001 &736025223
PrefabInstance:
m_ObjectHideFlags: 0
@@ -2790,6 +3067,31 @@ PrefabInstance:
propertyPath: m_Text
value: RMB
objectReference: {fileID: 0}
+ - target: {fileID: 5024266567257472466, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_Mode
+ value: 4
+ objectReference: {fileID: 0}
+ - target: {fileID: 5024266567257472466, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_SelectOnUp
+ value:
+ objectReference: {fileID: 1099885701}
+ - target: {fileID: 5024266567257472466, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_SelectOnDown
+ value:
+ objectReference: {fileID: 1199058184}
+ - target: {fileID: 5024266567257472466, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_SelectOnLeft
+ value:
+ objectReference: {fileID: 825336768}
+ - target: {fileID: 5024266567257472466, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_SelectOnRight
+ value:
+ objectReference: {fileID: 852899509}
- target: {fileID: 6680292650503350822, guid: f25dcd618d3acd64795bf8bb32edb6c9,
type: 3}
propertyPath: m_Name
@@ -2964,6 +3266,30 @@ RectTransform:
type: 3}
m_PrefabInstance: {fileID: 825336765}
m_PrefabAsset: {fileID: 0}
+--- !u!114 &825336767 stripped
+MonoBehaviour:
+ m_CorrespondingSourceObject: {fileID: 5024266567257472466, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ m_PrefabInstance: {fileID: 825336765}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!114 &825336768 stripped
+MonoBehaviour:
+ m_CorrespondingSourceObject: {fileID: 4168522202458225171, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ m_PrefabInstance: {fileID: 825336765}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
--- !u!1001 &852899506
PrefabInstance:
m_ObjectHideFlags: 0
@@ -2977,6 +3303,31 @@ PrefabInstance:
propertyPath: m_Text
value: B
objectReference: {fileID: 0}
+ - target: {fileID: 4168522202458225171, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_Mode
+ value: 4
+ objectReference: {fileID: 0}
+ - target: {fileID: 4168522202458225171, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_SelectOnUp
+ value:
+ objectReference: {fileID: 982377777}
+ - target: {fileID: 4168522202458225171, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_SelectOnDown
+ value:
+ objectReference: {fileID: 67962922}
+ - target: {fileID: 4168522202458225171, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_SelectOnLeft
+ value:
+ objectReference: {fileID: 825336767}
+ - target: {fileID: 4168522202458225171, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_SelectOnRight
+ value:
+ objectReference: {fileID: 852899510}
- target: {fileID: 6680292650503350822, guid: f25dcd618d3acd64795bf8bb32edb6c9,
type: 3}
propertyPath: m_Name
@@ -3161,11 +3512,35 @@ RectTransform:
type: 3}
m_PrefabInstance: {fileID: 852899506}
m_PrefabAsset: {fileID: 0}
---- !u!1 &861395291
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
+--- !u!114 &852899509 stripped
+MonoBehaviour:
+ m_CorrespondingSourceObject: {fileID: 4168522202458225171, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ m_PrefabInstance: {fileID: 852899506}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!114 &852899510 stripped
+MonoBehaviour:
+ m_CorrespondingSourceObject: {fileID: 5024266567257472466, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ m_PrefabInstance: {fileID: 852899506}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!1 &861395291
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
@@ -3238,7 +3613,7 @@ Canvas:
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
m_VertexColorAlwaysGammaSpace: 0
- m_AdditionalShaderChannelsFlag: 0
+ m_AdditionalShaderChannelsFlag: 25
m_UpdateRectTransformForStandalone: 0
m_SortingLayerID: 0
m_SortingOrder: 0
@@ -3649,6 +4024,31 @@ PrefabInstance:
propertyPath: m_Text
value: RT
objectReference: {fileID: 0}
+ - target: {fileID: 4168522202458225171, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_Mode
+ value: 4
+ objectReference: {fileID: 0}
+ - target: {fileID: 4168522202458225171, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_SelectOnUp
+ value:
+ objectReference: {fileID: 720160217}
+ - target: {fileID: 4168522202458225171, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_SelectOnDown
+ value:
+ objectReference: {fileID: 852899509}
+ - target: {fileID: 4168522202458225171, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_SelectOnLeft
+ value:
+ objectReference: {fileID: 1099885701}
+ - target: {fileID: 4168522202458225171, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_SelectOnRight
+ value:
+ objectReference: {fileID: 982377778}
- target: {fileID: 6680292650503350822, guid: f25dcd618d3acd64795bf8bb32edb6c9,
type: 3}
propertyPath: m_Name
@@ -3827,6 +4227,30 @@ RectTransform:
type: 3}
m_PrefabInstance: {fileID: 982377775}
m_PrefabAsset: {fileID: 0}
+--- !u!114 &982377777 stripped
+MonoBehaviour:
+ m_CorrespondingSourceObject: {fileID: 4168522202458225171, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ m_PrefabInstance: {fileID: 982377775}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!114 &982377778 stripped
+MonoBehaviour:
+ m_CorrespondingSourceObject: {fileID: 5024266567257472466, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ m_PrefabInstance: {fileID: 982377775}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
--- !u!1 &1003189950
GameObject:
m_ObjectHideFlags: 0
@@ -3878,7 +4302,7 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1003189950}
m_CullTransparentMesh: 0
---- !u!1 &1014357781
+--- !u!1 &1044043760
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@@ -3886,78 +4310,131 @@ GameObject:
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- - component: {fileID: 1014357782}
- - component: {fileID: 1014357784}
- - component: {fileID: 1014357783}
+ - component: {fileID: 1044043761}
+ - component: {fileID: 1044043764}
+ - component: {fileID: 1044043763}
+ - component: {fileID: 1044043762}
m_Layer: 5
- m_Name: Help
+ m_Name: Resume
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
---- !u!224 &1014357782
+--- !u!224 &1044043761
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1014357781}
+ m_GameObject: {fileID: 1044043760}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 589143015}
+ m_Children:
+ - {fileID: 1853629578}
+ m_Father: {fileID: 1820892250}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 1, y: 1}
- m_AnchorMax: {x: 1, y: 1}
- m_AnchoredPosition: {x: 50, y: -140}
- m_SizeDelta: {x: 175, y: 110}
+ m_AnchorMin: {x: 0.5, y: 0}
+ m_AnchorMax: {x: 0.5, y: 0}
+ m_AnchoredPosition: {x: 0, y: 32.9}
+ m_SizeDelta: {x: 150, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
---- !u!114 &1014357783
+--- !u!114 &1044043762
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1014357781}
+ m_GameObject: {fileID: 1044043760}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 4
+ m_WrapAround: 0
+ m_SelectOnUp: {fileID: 1622482957}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 1199058185}
+ m_SelectOnRight: {fileID: 67962922}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 0.25, g: 0.3071429, b: 0.45, a: 1}
+ m_HighlightedColor: {r: 0.36173913, g: 0.4408696, b: 0.65, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_SelectedColor: {r: 0.8679245, g: 0.4550042, b: 0.045033824, a: 1}
+ m_DisabledColor: {r: 0.21960784, g: 0.21960784, b: 0.25882354, a: 1}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_SelectedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_SelectedTrigger: Selected
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 1044043763}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 51853245}
+ m_TargetAssemblyTypeName: UnityEngine.InputSystem.Samples.RebindUI.RebindUIGameManager,
+ Unity.InputSystem.RebindingUI
+ m_MethodName: ToggleMenu
+ m_Mode: 1
+ m_Arguments:
+ m_ObjectArgument: {fileID: 0}
+ m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+ m_IntArgument: 0
+ m_FloatArgument: 0
+ m_StringArgument:
+ m_BoolArgument: 0
+ m_CallState: 2
+--- !u!114 &1044043763
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1044043760}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
- m_Color: {r: 0.6666667, g: 0.73333335, b: 0.8, a: 1}
- m_RaycastTarget: 0
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
- m_FontData:
- m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
- m_FontSize: 13
- m_FontStyle: 0
- m_BestFit: 0
- m_MinSize: 1
- m_MaxSize: 178
- m_Alignment: 0
- m_AlignByGeometry: 1
- m_RichText: 1
- m_HorizontalOverflow: 0
- m_VerticalOverflow: 1
- m_LineSpacing: 1
- m_Text: In practice, you probably don't want to set up rebinding the sticks like
- this on a gamepad scheme but rather have a "swap sticks" kind of toggle instead.
- The stick bindings here are included mainly for demonstration purposes.
---- !u!222 &1014357784
+ m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &1044043764
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1014357781}
+ m_GameObject: {fileID: 1044043760}
m_CullTransparentMesh: 0
--- !u!1 &1063908416
GameObject:
@@ -3991,8 +4468,8 @@ RectTransform:
m_Children: []
m_Father: {fileID: 2052415375}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0.5, y: 0}
- m_AnchorMax: {x: 0.5, y: 1}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 20, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
@@ -4071,6 +4548,31 @@ PrefabInstance:
propertyPath: m_Text
value: LMB
objectReference: {fileID: 0}
+ - target: {fileID: 5024266567257472466, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_Mode
+ value: 4
+ objectReference: {fileID: 0}
+ - target: {fileID: 5024266567257472466, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_SelectOnUp
+ value:
+ objectReference: {fileID: 1424978756}
+ - target: {fileID: 5024266567257472466, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_SelectOnDown
+ value:
+ objectReference: {fileID: 825336767}
+ - target: {fileID: 5024266567257472466, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_SelectOnLeft
+ value:
+ objectReference: {fileID: 1099885702}
+ - target: {fileID: 5024266567257472466, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_SelectOnRight
+ value:
+ objectReference: {fileID: 982377777}
- target: {fileID: 6680292650503350822, guid: f25dcd618d3acd64795bf8bb32edb6c9,
type: 3}
propertyPath: m_Name
@@ -4245,6 +4747,30 @@ RectTransform:
type: 3}
m_PrefabInstance: {fileID: 1099885699}
m_PrefabAsset: {fileID: 0}
+--- !u!114 &1099885701 stripped
+MonoBehaviour:
+ m_CorrespondingSourceObject: {fileID: 5024266567257472466, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ m_PrefabInstance: {fileID: 1099885699}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!114 &1099885702 stripped
+MonoBehaviour:
+ m_CorrespondingSourceObject: {fileID: 4168522202458225171, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ m_PrefabInstance: {fileID: 1099885699}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
--- !u!1 &1106689461
GameObject:
m_ObjectHideFlags: 0
@@ -4648,6 +5174,31 @@ PrefabInstance:
propertyPath: m_Text
value: Escape
objectReference: {fileID: 0}
+ - target: {fileID: 5024266567257472466, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_Mode
+ value: 4
+ objectReference: {fileID: 0}
+ - target: {fileID: 5024266567257472466, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_SelectOnUp
+ value:
+ objectReference: {fileID: 825336767}
+ - target: {fileID: 5024266567257472466, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_SelectOnDown
+ value:
+ objectReference: {fileID: 1622482957}
+ - target: {fileID: 5024266567257472466, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_SelectOnLeft
+ value:
+ objectReference: {fileID: 1199058185}
+ - target: {fileID: 5024266567257472466, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_SelectOnRight
+ value:
+ objectReference: {fileID: 67962922}
- target: {fileID: 6680292650503350822, guid: f25dcd618d3acd64795bf8bb32edb6c9,
type: 3}
propertyPath: m_Name
@@ -4822,6 +5373,30 @@ RectTransform:
type: 3}
m_PrefabInstance: {fileID: 1199058182}
m_PrefabAsset: {fileID: 0}
+--- !u!114 &1199058184 stripped
+MonoBehaviour:
+ m_CorrespondingSourceObject: {fileID: 5024266567257472466, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ m_PrefabInstance: {fileID: 1199058182}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!114 &1199058185 stripped
+MonoBehaviour:
+ m_CorrespondingSourceObject: {fileID: 4168522202458225171, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ m_PrefabInstance: {fileID: 1199058182}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
--- !u!1 &1207403193
GameObject:
m_ObjectHideFlags: 0
@@ -4986,13 +5561,15 @@ GameObject:
m_Component:
- component: {fileID: 1214352211}
- component: {fileID: 1214352212}
+ - component: {fileID: 1214352214}
+ - component: {fileID: 1214352213}
m_Layer: 5
m_Name: Sensitivity
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
- m_IsActive: 0
+ m_IsActive: 1
--- !u!224 &1214352211
RectTransform:
m_ObjectHideFlags: 0
@@ -5006,14 +5583,14 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 674949961}
- - {fileID: 1424978755}
- {fileID: 244172484}
+ - {fileID: 1424978755}
m_Father: {fileID: 1219085456}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
- m_AnchoredPosition: {x: 430, y: -350}
- m_SizeDelta: {x: 1345.7778, y: 757}
+ m_AnchoredPosition: {x: 430, y: -150}
+ m_SizeDelta: {x: 200, y: 40}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &1214352212
CanvasRenderer:
@@ -5023,90 +5600,79 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1214352210}
m_CullTransparentMesh: 1
---- !u!1 &1219085455
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1219085456}
- - component: {fileID: 1219085458}
- - component: {fileID: 1219085457}
- m_Layer: 5
- m_Name: Keyboard
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &1219085456
-RectTransform:
+--- !u!114 &1214352213
+MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1219085455}
- m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children:
- - {fileID: 1880645689}
- - {fileID: 1414988296}
- - {fileID: 16074951}
- - {fileID: 1099885700}
- - {fileID: 825336766}
- - {fileID: 1199058183}
- - {fileID: 1214352211}
- - {fileID: 1237134518}
- m_Father: {fileID: 1820892250}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0.5, y: 1}
- m_AnchorMax: {x: 0.5, y: 1}
- m_AnchoredPosition: {x: -215, y: -271.1}
- m_SizeDelta: {x: 430, y: 450}
- m_Pivot: {x: 0.5, y: 0.5}
---- !u!114 &1219085457
+ m_GameObject: {fileID: 1214352210}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: b52b7577d0f9e44e99408e2e11257fd6, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: Unity.InputSystem.RebindingUI::UnityEngine.InputSystem.Samples.RebindUI.RebindActionParameterUI
+ m_Action: {fileID: 4485540969121359642, guid: 7dead05c54ca85b4681351aafd8bd03a,
+ type: 3}
+ m_BindingId: 7c03e976-d9da-4d96-9bcd-622e98b0f3c3
+ m_PreferenceKey: lookSensitivity
+ m_DefaultValue: 1
+ m_Slider: {fileID: 244172485}
+ m_ParameterOverrides:
+ - scaleVector2:x
+ - scaleVector2:y
+--- !u!114 &1214352214
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1219085455}
- m_Enabled: 0
+ m_GameObject: {fileID: 1214352210}
+ m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3}
m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 0.13725491, g: 0.16862746, b: 0.24705882, a: 1}
- m_RaycastTarget: 1
- m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
- m_Maskable: 1
- m_OnCullStateChanged:
+ m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Slider
+ m_Navigation:
+ m_Mode: 3
+ m_WrapAround: 0
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_SelectedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_SelectedTrigger: Selected
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 0}
+ m_FillRect: {fileID: 0}
+ m_HandleRect: {fileID: 0}
+ m_Direction: 0
+ m_MinValue: 0
+ m_MaxValue: 1
+ m_WholeNumbers: 0
+ m_Value: 0
+ m_OnValueChanged:
m_PersistentCalls:
m_Calls: []
- m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
- m_Type: 1
- m_PreserveAspect: 0
- m_FillCenter: 1
- m_FillMethod: 4
- m_FillAmount: 1
- m_FillClockwise: 1
- m_FillOrigin: 0
- m_UseSpriteMesh: 0
- m_PixelsPerUnitMultiplier: 1
---- !u!222 &1219085458
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1219085455}
- m_CullTransparentMesh: 0
---- !u!1 &1237134517
+--- !u!1 &1219085455
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@@ -5114,78 +5680,78 @@ GameObject:
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- - component: {fileID: 1237134518}
- - component: {fileID: 1237134520}
- - component: {fileID: 1237134519}
+ - component: {fileID: 1219085456}
+ - component: {fileID: 1219085458}
+ - component: {fileID: 1219085457}
m_Layer: 5
- m_Name: Help
+ m_Name: Keyboard
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
---- !u!224 &1237134518
+--- !u!224 &1219085456
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1237134517}
+ m_GameObject: {fileID: 1219085455}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 1219085456}
+ m_Children:
+ - {fileID: 1880645689}
+ - {fileID: 1414988296}
+ - {fileID: 1214352211}
+ - {fileID: 1099885700}
+ - {fileID: 825336766}
+ - {fileID: 1199058183}
+ m_Father: {fileID: 1820892250}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_AnchorMin: {x: 0, y: 1}
- m_AnchorMax: {x: 0, y: 1}
- m_AnchoredPosition: {x: -50, y: -140}
- m_SizeDelta: {x: 175, y: 110}
+ m_AnchorMin: {x: 0.5, y: 1}
+ m_AnchorMax: {x: 0.5, y: 1}
+ m_AnchoredPosition: {x: -215, y: -271.1}
+ m_SizeDelta: {x: 430, y: 450}
m_Pivot: {x: 0.5, y: 0.5}
---- !u!114 &1237134519
+--- !u!114 &1219085457
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1237134517}
- m_Enabled: 1
+ m_GameObject: {fileID: 1219085455}
+ m_Enabled: 0
m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
- m_Color: {r: 0.6666667, g: 0.73333335, b: 0.8, a: 1}
- m_RaycastTarget: 0
+ m_Color: {r: 0.13725491, g: 0.16862746, b: 0.24705882, a: 1}
+ m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
- m_FontData:
- m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
- m_FontSize: 13
- m_FontStyle: 0
- m_BestFit: 0
- m_MinSize: 1
- m_MaxSize: 40
- m_Alignment: 0
- m_AlignByGeometry: 1
- m_RichText: 1
- m_HorizontalOverflow: 0
- m_VerticalOverflow: 1
- m_LineSpacing: 1
- m_Text: It is up to you whether to do something like e.g. WASD as a single composite
- like to the right (in which case the individual parts will get assigned one after
- the other) or as four separate partial bindings.
---- !u!222 &1237134520
+ m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &1219085458
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1237134517}
+ m_GameObject: {fileID: 1219085455}
m_CullTransparentMesh: 0
--- !u!224 &1311197229 stripped
RectTransform:
@@ -5275,12 +5841,12 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Navigation:
- m_Mode: 3
+ m_Mode: 4
m_WrapAround: 0
- m_SelectOnUp: {fileID: 0}
- m_SelectOnDown: {fileID: 0}
- m_SelectOnLeft: {fileID: 0}
- m_SelectOnRight: {fileID: 0}
+ m_SelectOnUp: {fileID: 6680292651237943330}
+ m_SelectOnDown: {fileID: 1099885701}
+ m_SelectOnLeft: {fileID: 244172485}
+ m_SelectOnRight: {fileID: 720160217}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 0.25, g: 0.3071429, b: 0.45, a: 1}
@@ -5306,8 +5872,9 @@ MonoBehaviour:
m_OnClick:
m_PersistentCalls:
m_Calls:
- - m_Target: {fileID: 1414988297}
- m_TargetAssemblyTypeName:
+ - m_Target: {fileID: 1214352213}
+ m_TargetAssemblyTypeName: UnityEngine.InputSystem.Samples.RebindUI.RebindActionParameterUI,
+ Unity.InputSystem.RebindingUI
m_MethodName: ResetToDefault
m_Mode: 1
m_Arguments:
@@ -5447,18 +6014,6 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: cc11d99b1a6682f4cbc4aba1fcd9ac5d, type: 3}
m_Name:
m_EditorClassIdentifier:
---- !u!114 &1582852134 stripped
-MonoBehaviour:
- m_CorrespondingSourceObject: {fileID: 6680292650503350826, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- m_PrefabInstance: {fileID: 1855225027}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 0}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: cc11d99b1a6682f4cbc4aba1fcd9ac5d, type: 3}
- m_Name:
- m_EditorClassIdentifier:
--- !u!1 &1584683948
GameObject:
m_ObjectHideFlags: 0
@@ -5758,7 +6313,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
- m_AnchoredPosition: {x: 0, y: -16.600098}
+ m_AnchoredPosition: {x: 0, y: -16.600159}
m_SizeDelta: {x: -800, y: -1366.7998}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1617608010
@@ -5820,8 +6375,9 @@ Light:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1618329838}
m_Enabled: 1
- serializedVersion: 11
+ serializedVersion: 10
m_Type: 1
+ m_Shape: 0
m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
m_Intensity: 1
m_Range: 10
@@ -5871,12 +6427,8 @@ Light:
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
m_UseBoundingSphereOverride: 0
m_UseViewFrustumForShadowCasterCull: 1
- m_ForceVisible: 0
m_ShadowRadius: 0
m_ShadowAngle: 0
- m_LightUnit: 1
- m_LuxAtDistance: 1
- m_EnableSpotReflector: 1
--- !u!4 &1618329840
Transform:
m_ObjectHideFlags: 0
@@ -6063,7 +6615,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0}
m_AnchorMax: {x: 0.5, y: 0}
- m_AnchoredPosition: {x: 0, y: 32.9}
+ m_AnchoredPosition: {x: 0, y: 70}
m_SizeDelta: {x: 150, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1622482957
@@ -6079,12 +6631,12 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Navigation:
- m_Mode: 3
+ m_Mode: 4
m_WrapAround: 0
- m_SelectOnUp: {fileID: 0}
- m_SelectOnDown: {fileID: 0}
- m_SelectOnLeft: {fileID: 0}
- m_SelectOnRight: {fileID: 0}
+ m_SelectOnUp: {fileID: 1199058184}
+ m_SelectOnDown: {fileID: 1044043762}
+ m_SelectOnLeft: {fileID: 1199058185}
+ m_SelectOnRight: {fileID: 67962922}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 0.25, g: 0.3071429, b: 0.45, a: 1}
@@ -6188,7 +6740,7 @@ MonoBehaviour:
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
- - m_Target: {fileID: 1582852134}
+ - m_Target: {fileID: 0}
m_TargetAssemblyTypeName: UnityEngine.InputSystem.Samples.RebindUI.RebindActionUI,
Unity.InputSystem.RebindingUI
m_MethodName: ResetToDefault
@@ -6240,6 +6792,19 @@ MonoBehaviour:
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
+ - m_Target: {fileID: 1214352213}
+ m_TargetAssemblyTypeName: UnityEngine.InputSystem.Samples.RebindUI.RebindActionParameterUI,
+ Unity.InputSystem.RebindingUI
+ m_MethodName: ResetToDefault
+ m_Mode: 1
+ m_Arguments:
+ m_ObjectArgument: {fileID: 0}
+ m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+ m_IntArgument: 0
+ m_FloatArgument: 0
+ m_StringArgument:
+ m_BoolArgument: 0
+ m_CallState: 2
--- !u!114 &1622482958
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -6591,6 +7156,85 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: cc11d99b1a6682f4cbc4aba1fcd9ac5d, type: 3}
m_Name:
m_EditorClassIdentifier:
+--- !u!1 &1737030748
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1737030749}
+ - component: {fileID: 1737030751}
+ - component: {fileID: 1737030750}
+ m_Layer: 5
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1737030749
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1737030748}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 725406578}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0.4999999, y: 0.5}
+ m_SizeDelta: {x: -1.0000002, y: 1}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1737030750
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1737030748}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.8901961, g: 0.8901961, b: 0.8901961, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 20
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 2
+ m_MaxSize: 300
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: "\u21C5"
+--- !u!222 &1737030751
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1737030748}
+ m_CullTransparentMesh: 0
--- !u!1 &1801770802
GameObject:
m_ObjectHideFlags: 0
@@ -6704,6 +7348,7 @@ RectTransform:
- {fileID: 1219085456}
- {fileID: 589143015}
- {fileID: 1622482956}
+ - {fileID: 1044043761}
m_Father: {fileID: 508436406}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
@@ -7017,243 +7662,85 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1836782273}
m_CullTransparentMesh: 0
---- !u!1001 &1855225027
-PrefabInstance:
+--- !u!1 &1853629577
+GameObject:
m_ObjectHideFlags: 0
- serializedVersion: 2
- m_Modification:
- serializedVersion: 3
- m_TransformParent: {fileID: 1219085456}
- m_Modifications:
- - target: {fileID: 690190895482579582, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_Text
- value: Delta
- objectReference: {fileID: 0}
- - target: {fileID: 6680292650503350822, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_Name
- value: LookRebind
- objectReference: {fileID: 0}
- - target: {fileID: 6680292650503350825, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_Pivot.x
- value: 0.5
- objectReference: {fileID: 0}
- - target: {fileID: 6680292650503350825, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_Pivot.y
- value: 0.5
- objectReference: {fileID: 0}
- - target: {fileID: 6680292650503350825, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_RootOrder
- value: 2
- objectReference: {fileID: 0}
- - target: {fileID: 6680292650503350825, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_AnchorMax.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 6680292650503350825, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_AnchorMax.y
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: 6680292650503350825, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_AnchorMin.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 6680292650503350825, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_AnchorMin.y
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: 6680292650503350825, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_SizeDelta.x
- value: 166.5
- objectReference: {fileID: 0}
- - target: {fileID: 6680292650503350825, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_SizeDelta.y
- value: 88.099976
- objectReference: {fileID: 0}
- - target: {fileID: 6680292650503350825, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_LocalPosition.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 6680292650503350825, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_LocalPosition.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 6680292650503350825, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_LocalPosition.z
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 6680292650503350825, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_LocalRotation.w
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: 6680292650503350825, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_LocalRotation.x
- value: -0
- objectReference: {fileID: 0}
- - target: {fileID: 6680292650503350825, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_LocalRotation.y
- value: -0
- objectReference: {fileID: 0}
- - target: {fileID: 6680292650503350825, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_LocalRotation.z
- value: -0
- objectReference: {fileID: 0}
- - target: {fileID: 6680292650503350825, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_AnchoredPosition.x
- value: 203.5
- objectReference: {fileID: 0}
- - target: {fileID: 6680292650503350825, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_AnchoredPosition.y
- value: -150
- objectReference: {fileID: 0}
- - target: {fileID: 6680292650503350825, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_LocalEulerAnglesHint.x
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 6680292650503350825, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_LocalEulerAnglesHint.y
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 6680292650503350825, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_LocalEulerAnglesHint.z
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 6680292650503350826, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: action
- value:
- objectReference: {fileID: 7723093844229559393, guid: 7dead05c54ca85b4681351aafd8bd03a,
- type: 3}
- - target: {fileID: 6680292650503350826, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_Action
- value:
- objectReference: {fileID: 4485540969121359642, guid: 7dead05c54ca85b4681351aafd8bd03a,
- type: 3}
- - target: {fileID: 6680292650503350826, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_BindingId
- value: 7c03e976-d9da-4d96-9bcd-622e98b0f3c3
- objectReference: {fileID: 0}
- - target: {fileID: 6680292650503350826, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_RebindInfo
- value:
- objectReference: {fileID: 936560334}
- - target: {fileID: 6680292650503350826, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_RebindText
- value:
- objectReference: {fileID: 1121800143}
- - target: {fileID: 6680292650503350826, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_UIActionMap
- value:
- objectReference: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018,
- type: 3}
- - target: {fileID: 6680292650503350826, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_RebindOverlay
- value:
- objectReference: {fileID: 1106689461}
- - target: {fileID: 6680292650503350826, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_RebindTimeout
- value: 6
- objectReference: {fileID: 0}
- - target: {fileID: 6680292650503350826, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_UIActionMap.m_Id
- value: 9bafb3aa-af47-48ed-a3fb-1e18488dcd33
- objectReference: {fileID: 0}
- - target: {fileID: 6680292650503350826, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_RebindCancelButton
- value:
- objectReference: {fileID: 1836782275}
- - target: {fileID: 6680292650503350826, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_UIActionMap.m_Name
- value: UI
- objectReference: {fileID: 0}
- - target: {fileID: 6680292650503350826, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_DefaultInputActions
- value:
- objectReference: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018,
- type: 3}
- - target: {fileID: 6680292650503350826, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_UIActionMap.m_Actions.Array.size
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 6680292650503350826, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_UIActionMap.m_Bindings.Array.size
- value: 0
- objectReference: {fileID: 0}
- - target: {fileID: 6680292650503350826, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_UIActionMap.m_Actions.Array.data[0].m_Id
- value: c8398143-11a9-4267-bc40-03845d725e0a
- objectReference: {fileID: 0}
- - target: {fileID: 6680292650503350826, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_UIActionMap.m_Bindings.Array.data[0].m_Id
- value: d586299a-f0d3-4146-9911-59a7caa0c454
- objectReference: {fileID: 0}
- - target: {fileID: 6680292650503350826, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_UIActionMap.m_Actions.Array.data[0].m_Name
- value: New action
- objectReference: {fileID: 0}
- - target: {fileID: 6680292650503350826, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_UIActionMap.m_Actions.Array.data[0].m_Type
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: 6680292650503350826, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_UIActionMap.m_Bindings.Array.data[0].m_Action
- value: New action
- objectReference: {fileID: 0}
- - target: {fileID: 6680292650503350826, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_UIActionMap.m_Actions.Array.data[0].m_ExpectedControlType
- value: Button
- objectReference: {fileID: 0}
- - target: {fileID: 6680292650847612335, guid: f25dcd618d3acd64795bf8bb32edb6c9,
- type: 3}
- propertyPath: m_Text
- value: Look
- objectReference: {fileID: 0}
- m_RemovedComponents: []
- m_RemovedGameObjects: []
- m_AddedGameObjects: []
- m_AddedComponents: []
- m_SourcePrefab: {fileID: 100100000, guid: f25dcd618d3acd64795bf8bb32edb6c9, type: 3}
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1853629578}
+ - component: {fileID: 1853629580}
+ - component: {fileID: 1853629579}
+ m_Layer: 5
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1853629578
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1853629577}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1044043761}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1853629579
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1853629577}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.8901961, g: 0.8901961, b: 0.8901961, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 14
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 10
+ m_MaxSize: 40
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: Resume Game
+--- !u!222 &1853629580
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1853629577}
+ m_CullTransparentMesh: 0
--- !u!1 &1870027503
GameObject:
m_ObjectHideFlags: 0
@@ -7712,6 +8199,11 @@ PrefabInstance:
propertyPath: m_Name
value: KeyboardMenu
objectReference: {fileID: 0}
+ - target: {fileID: 5069869388558284848, guid: a6b634f465c284d30ac5a7dd706644da,
+ type: 3}
+ propertyPath: m_IsActive
+ value: 1
+ objectReference: {fileID: 0}
- target: {fileID: 7131517231734196562, guid: a6b634f465c284d30ac5a7dd706644da,
type: 3}
propertyPath: m_FontData.m_FontStyle
@@ -7864,6 +8356,26 @@ PrefabInstance:
propertyPath: m_Text
value: W/A/S/D
objectReference: {fileID: 0}
+ - target: {fileID: 5024266567257472466, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_Mode
+ value: 4
+ objectReference: {fileID: 0}
+ - target: {fileID: 5024266567257472466, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_SelectOnDown
+ value:
+ objectReference: {fileID: 1424978756}
+ - target: {fileID: 5024266567257472466, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_SelectOnLeft
+ value:
+ objectReference: {fileID: 6680292651237943331}
+ - target: {fileID: 5024266567257472466, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_Navigation.m_SelectOnRight
+ value:
+ objectReference: {fileID: 331853783}
- target: {fileID: 6680292650503350822, guid: f25dcd618d3acd64795bf8bb32edb6c9,
type: 3}
propertyPath: m_Name
@@ -8083,11 +8595,40 @@ PrefabInstance:
propertyPath: m_Text
value: Move
objectReference: {fileID: 0}
+ - target: {fileID: 6680292650847612335, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ propertyPath: m_RaycastTarget
+ value: 1
+ objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: f25dcd618d3acd64795bf8bb32edb6c9, type: 3}
+--- !u!114 &6680292651237943330 stripped
+MonoBehaviour:
+ m_CorrespondingSourceObject: {fileID: 5024266567257472466, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ m_PrefabInstance: {fileID: 6680292651237943329}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!114 &6680292651237943331 stripped
+MonoBehaviour:
+ m_CorrespondingSourceObject: {fileID: 4168522202458225171, guid: f25dcd618d3acd64795bf8bb32edb6c9,
+ type: 3}
+ m_PrefabInstance: {fileID: 6680292651237943329}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 581137331}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
--- !u!1660057539 &9223372036854775807
SceneRoots:
m_ObjectHideFlags: 0
diff --git a/Assets/Tests/InputSystem/CoreTests_Actions_Rebinding.cs b/Assets/Tests/InputSystem/CoreTests_Actions_Rebinding.cs
index 55cc136c56..2df0feaefa 100644
--- a/Assets/Tests/InputSystem/CoreTests_Actions_Rebinding.cs
+++ b/Assets/Tests/InputSystem/CoreTests_Actions_Rebinding.cs
@@ -1652,6 +1652,67 @@ public void Actions_CanApplyParameterOverrides_UsingBindingMask()
Assert.That(action.ReadValue(), Is.EqualTo(new Vector2(0.6f * 4, 0.6f * 4)).Using(Vector2EqualityComparer.Instance));
}
+ private static void AssertParameterValue(InputAction action, string name, float value, InputBinding bindingMask)
+ {
+ var x = action.GetParameterValue(name, bindingMask);
+ Assert.That(x.HasValue);
+ Assert.That(x.Value.ToSingle(), Is.EqualTo(value));
+ }
+
+ // ISXB-1721 - Parameter overrides do not work if a binding has the empty string assigned as its name.
+ [TestCase(null, null)]
+ [TestCase("", "")] // ISXB-1721 error case.
+ [TestCase("a", "b")]
+ [Category("Actions")]
+ public void Actions_CanApplySpecificParameterOverrides_UsingSpecificBindingMask(string firstBindingName, string secondBindingName)
+ {
+ var mouse = InputSystem.AddDevice();
+ var gamepad = InputSystem.AddDevice();
+
+ var action = new InputAction(name: "Look", type: InputActionType.PassThrough);
+ var binding1 = action.AddBinding("/delta", groups: "Mouse", processors: "scaleVector2(x=0.25,y=0.25)");
+ var binding2 = action.AddBinding("/leftStick", groups: "Gamepad", processors: "scaleVector2(x=4,y=4)");
+ if (firstBindingName != null)
+ binding1.WithName(firstBindingName);
+ if (secondBindingName != null)
+ binding2.WithName(secondBindingName);
+ action.Enable();
+
+ // Make sure parameters correspond to our binding definitions
+ AssertParameterValue(action, "x", 0.25f, action.bindings[0]);
+ AssertParameterValue(action, "y", 0.25f, action.bindings[0]);
+ AssertParameterValue(action, "x", 4.0f, action.bindings[1]);
+ AssertParameterValue(action, "y", 4.0f, action.bindings[1]);
+
+ // Override with the same mask as we fetched the parameter
+ action.ApplyParameterOverride("x", 1.2f, action.bindings[0]);
+ action.ApplyParameterOverride("y", 0.2f, action.bindings[0]);
+
+ // Check the parameter again
+ AssertParameterValue(action, "x", 1.2f, action.bindings[0]); // overridden
+ AssertParameterValue(action, "y", 0.2f, action.bindings[0]); // overridden
+ AssertParameterValue(action, "x", 4.0f, action.bindings[1]); // unmodified
+ AssertParameterValue(action, "y", 4.0f, action.bindings[1]); // unmodified
+
+ // Check that binding processor overrides are applied
+ Set(mouse.delta, new Vector2(-1.0f, -2.0f));
+ Assert.That(action.ReadValue(),
+ Is.EqualTo(new Vector2(-1.0f * 1.2f, -2.0f * 0.2f))
+ .Using(Vector2EqualityComparer.Instance));
+
+ // Check that binding processor overrides are not applied
+ Set(gamepad.leftStick, new Vector2(1.0f, 0.0f));
+ Assert.That(action.ReadValue(),
+ Is.EqualTo(new Vector2(1.0f * 4.0f, 0.0f * 4.0f))
+ .Using(Vector2EqualityComparer.Instance));
+
+ // Check that binding processor overrides are not applied
+ Set(gamepad.leftStick, new Vector2(0.0f, 1.0f));
+ Assert.That(action.ReadValue(),
+ Is.EqualTo(new Vector2(0.0f * 4.0f, 1.0f * 4.0f))
+ .Using(Vector2EqualityComparer.Instance));
+ }
+
[Test]
[Category("Actions")]
public void Actions_CanApplyParameterOverrides_UsingBindingIndex()
diff --git a/Packages/com.unity.inputsystem/CHANGELOG.md b/Packages/com.unity.inputsystem/CHANGELOG.md
index b6ed804500..b644a5b37d 100644
--- a/Packages/com.unity.inputsystem/CHANGELOG.md
+++ b/Packages/com.unity.inputsystem/CHANGELOG.md
@@ -10,10 +10,17 @@ however, it has to be formatted properly to pass verification tests.
## [Unreleased] - yyyy-mm-dd
+### Changed
+- Replaced "Look" rebinding button for "Keyboard" control scheme with a mouse sensitivity slider in `RebindingUISample` to illustrate how to support customizing scaling of mouse deltas and how to reapply the persisted setting between runs.
+
+### Added
+- Added an example of how to swap two similar controls to the `RebindingUISample`. This is accessible via a button with two arrows at the right hand-side of the screen. Pressing the button allows swapping the current bindings of the "Move" and "Look" gamepad bindings via the new `RebindActionUI.SwapBinding(RebindActionUI other)` method.
+
### Fixed
- Fixed warnings being generated on Unity 6.3 (beta). (ISXB-1718).
- Fixed an issue in `DeltaStateEvent.From` where unsafe code would throw exception or crash if internal pointer `currentStatePtr` was `null`. [ISXB-1637](https://issuetracker.unity3d.com/product/unity/issues/guid/ISXB-1637).
- Fixed an issue in `InputTestFixture.Set` where attempting to change state of a device not belonging to the test fixture context would result in null pointer exception or crash. [ISXB-1637](https://issuetracker.unity3d.com/product/unity/issues/guid/ISXB-1637).
+- Fixed an issue where input action parameter overrides applied via `InputActionRebindingExtensions.ApplyParameterOverride` would not be applied if the associated binding has the empty string as `InputBinding.name`and the binding mask also has the empty string as name. (ISXB-1721).
## [1.15.0] - 2025-10-03
diff --git a/Packages/com.unity.inputsystem/InputSystem/Actions/InputBinding.cs b/Packages/com.unity.inputsystem/InputSystem/Actions/InputBinding.cs
index cb6c83af3d..45b4c3806c 100644
--- a/Packages/com.unity.inputsystem/InputSystem/Actions/InputBinding.cs
+++ b/Packages/com.unity.inputsystem/InputSystem/Actions/InputBinding.cs
@@ -846,9 +846,9 @@ public bool Matches(InputBinding binding)
internal bool Matches(ref InputBinding binding, MatchOptions options = default)
{
// Match name.
- if (name != null)
+ if (!string.IsNullOrEmpty(name))
{
- if (binding.name == null
+ if (string.IsNullOrEmpty(binding.name)
|| !StringHelpers.CharacterSeparatedListsHaveAtLeastOneCommonElement(name, binding.name, Separator))
return false;
}