using UnityEngine; using System.Collections; using System.Collections.Generic; using System; namespace InputHandler { public class InputContext { private Dictionary _mappedButtons; private Dictionary _mappedStates; private Dictionary _mappedAxis; private string _name; public string Name { get { return _name; } } public InputContext(string contextName, InputMap inputMap) { _name = contextName; _mappedButtons = new Dictionary(); _mappedStates = new Dictionary(); _mappedAxis = new Dictionary(); foreach (List buttonsToActionsMap in inputMap.ButtonsToActionsMap) { foreach (InputToActionMap buttonToActionMap in buttonsToActionsMap) { _mappedButtons.Add(buttonToActionMap.input, buttonToActionMap.action); } } foreach (List buttonsToStatesMap in inputMap.ButtonsToStatesMap) { foreach (InputToActionMap buttonToStateMap in buttonsToStatesMap) { _mappedStates.Add(buttonToStateMap.input, buttonToStateMap.action); } } foreach (List axisToRangesMap in inputMap.AxisToRangesMap) { foreach (InputToActionMap axisToRangeMap in axisToRangesMap) { _mappedAxis.Add(axisToRangeMap.input, axisToRangeMap.action); } } } public string GetActionForButton(int button) { return _mappedButtons.ContainsKey(button) ? _mappedButtons[button] : null; } public string GetStateForButton(int button) { return _mappedStates.ContainsKey(button) ? _mappedStates[button] : null; } public string GetRangeForAxis(int axis) { return _mappedAxis.ContainsKey(axis) ? _mappedAxis[axis] : null; } } }