コード例 #1
0
    private void LoadAxis(Key key, bool analog)
    {
        InputActionData inputActionData = new InputActionData();
        ControllerType  controllerType  = (ControllerType)Enum.Parse(typeof(ControllerType), key.GetVariable(2).SValue);

        inputActionData.m_Action         = (InputsManager.InputAction)Enum.Parse(typeof(InputsManager.InputAction), key.GetVariable(0).SValue);
        inputActionData.m_AxisName       = key.GetVariable(1).SValue;
        inputActionData.m_Inverted       = key.GetVariable(3).BValue;
        inputActionData.m_Analog         = analog;
        inputActionData.m_ControllerType = controllerType;
        if (inputActionData.m_ControllerType == ControllerType.Pad)
        {
            inputActionData.m_PadIcon = InputHelpers.GetPadIcon(inputActionData);
        }
        if (!analog)
        {
            inputActionData.m_Histeresis.x = ((key.GetVariable(4) != null) ? Mathf.Min(0.99f, key.GetVariable(4).FValue) : 0.5f);
            inputActionData.m_Histeresis.y = ((key.GetVariable(5) != null) ? Mathf.Min(0.99f, key.GetVariable(5).FValue) : 0.5f);
            inputActionData.m_Type         = ((key.GetVariable(6) != null) ? ((InputsManager.InputActionType)Enum.Parse(typeof(InputsManager.InputActionType), key.GetVariable(6).SValue)) : InputsManager.InputActionType.Down);
            inputActionData.m_Hold         = ((key.GetVariable(7) != null) ? key.GetVariable(7).FValue : 0f);
        }
        InputActionData[] array;
        if (!this.m_ActionsByInputAction.TryGetValue((int)inputActionData.m_Action, out array))
        {
            array = new InputActionData[2];
            this.m_ActionsByInputAction.Add((int)inputActionData.m_Action, array);
        }
        array[(int)controllerType] = inputActionData;
        List <InputActionData> list;

        if (!this.m_ActionsByAxis.TryGetValue(inputActionData.m_AxisName, out list))
        {
            list = new List <InputActionData>();
            this.m_ActionsByAxis.Add(inputActionData.m_AxisName, list);
        }
        list.Add(inputActionData);
    }
コード例 #2
0
    private void LoadAction(Key key, bool trigger, bool show_asserts = true)
    {
        InputActionData inputActionData = new InputActionData();

        if (trigger)
        {
            inputActionData.m_TriggerAction = (TriggerAction.TYPE)Enum.Parse(typeof(TriggerAction.TYPE), key.GetVariable(0).SValue);
        }
        else
        {
            inputActionData.m_Action = (InputsManager.InputAction)Enum.Parse(typeof(InputsManager.InputAction), key.GetVariable(0).SValue);
        }
        string svalue = key.GetVariable(1).SValue;

        inputActionData.m_Type = (InputsManager.InputActionType)Enum.Parse(typeof(InputsManager.InputActionType), key.GetVariable(2).SValue);
        inputActionData.m_Hold = key.GetVariable(3).FValue;
        InputHelpers.PadButton pad_button;
        KeyCode keyCode;

        if (Enum.TryParse <InputHelpers.PadButton>(svalue, out pad_button))
        {
            keyCode = pad_button.KeyFromPad();
            inputActionData.m_Ps4KeyCode = pad_button.KeyFromPad(InputsManager.PadControllerType.Ps4);
            if (this.m_Ps4ActionsByKeyCode.ContainsKey((int)inputActionData.m_Ps4KeyCode))
            {
                this.m_Ps4ActionsByKeyCode[(int)inputActionData.m_Ps4KeyCode].Add(inputActionData);
            }
            else
            {
                List <InputActionData> list = new List <InputActionData>();
                list.Add(inputActionData);
                this.m_Ps4ActionsByKeyCode.Add((int)inputActionData.m_Ps4KeyCode, list);
            }
        }
        else
        {
            keyCode = (KeyCode)Enum.Parse(typeof(KeyCode), svalue);
        }
        inputActionData.m_KeyCode        = keyCode;
        inputActionData.m_ControllerType = keyCode.GetControllerType();
        if (inputActionData.m_ControllerType == ControllerType.Pad)
        {
            inputActionData.m_PadIcon = InputHelpers.GetPadIcon(inputActionData);
        }
        if (this.m_ActionsByKeyCode.ContainsKey((int)keyCode))
        {
            this.m_ActionsByKeyCode[(int)keyCode].Add(inputActionData);
        }
        else
        {
            List <InputActionData> list2 = new List <InputActionData>();
            list2.Add(inputActionData);
            this.m_ActionsByKeyCode.Add((int)keyCode, list2);
        }
        int actionId = inputActionData.m_Action.GetActionId(inputActionData.m_TriggerAction);

        InputActionData[] array;
        if (!this.m_ActionsByInputAction.TryGetValue(actionId, out array))
        {
            array = new InputActionData[2];
            this.m_ActionsByInputAction.Add(actionId, array);
        }
        array[(int)keyCode.GetControllerType()] = inputActionData;
    }