Пример #1
0
        public static void CreatePresetBinding(enum_BindingsName name, enum_PressStatus status, params KeyCode[] codeList)
        {
            KeyBindings binding = new KeyBindings();

            binding.Name = name;
            binding.code = new List <KeyCode>();
            for (int i = 0; i < codeList.Length; i++)
            {
                binding.code.Add(codeList[i]);
            }
            binding.status           = status;
            binding.triggerEventVoid = null;
            binding.triggerEventBool = null;
            List_BindingList.Add(binding);
        }
Пример #2
0
    public void AddBinding <T>(enum_BindingsName name, Action <bool> trigger)
    {
        KeyBindings binding = List_BindingList.Find(p => p.Name == name);

        if (binding.Name == enum_BindingsName.Invalid)
        {
            Debug.LogError("Shoulda Preset Binding At Awake");
            return;
        }
        if (binding.status == enum_PressStatus.Both)
        {
            List_BindingList.Remove(binding);
            binding.triggerEventBool += trigger;
            List_BindingList.Add(binding);
            AddBindingRemoval(typeof(T), delegate() {
                int bindingIndex = List_BindingList.FindIndex(p => p.Name == name);
                KeyBindings temp = List_BindingList[bindingIndex];
                List_BindingList.RemoveAt(bindingIndex);
                temp.Remove(trigger);
                List_BindingList.Add(temp);
            });
        }
    }
Пример #3
0
    void Update()
    {
        for (int i = 0; i < List_BindingList.Count; i++)
        {
            status  = List_BindingList[i].status;
            keyCode = List_BindingList[i].code;
            for (int j = 0; j < keyCode.Count; j++)
            {
                triggerd = false;
                switch (status)
                {
                case enum_PressStatus.Down:
                    if (Input.GetKeyDown(keyCode[j]))
                    {
                        List_BindingList[i].Trigger();
                        triggerd = true;
                    }
                    break;

                case enum_PressStatus.Up:
                    if (Input.GetKeyUp(keyCode[j]))
                    {
                        List_BindingList[i].Trigger();
                        triggerd = true;
                    }
                    break;

                case enum_PressStatus.Press:
                    if (Input.GetKey(keyCode[j]))
                    {
                        List_BindingList[i].Trigger();
                        triggerd = true;
                    }
                    break;

                case enum_PressStatus.Both:
                    if (Input.GetKeyDown(keyCode[j]))
                    {
                        List_BindingList[i].Trigger(true);
                        triggerd = true;
                    }
                    else if (Input.GetKeyUp(keyCode[j]))
                    {
                        List_BindingList[i].Trigger(false);
                        triggerd = true;
                    }
                    break;

                default:
                    Debug.LogError("How A None Status Binding Set?");
                    break;
                }

                keyName = List_BindingList[i].Name;
                switch (keyName)
                {
                case enum_BindingsName.Up:
                    up = Input.GetKey(keyCode[j]) ? 1 : 0;
                    break;

                case enum_BindingsName.Down:
                    down = Input.GetKey(keyCode[j]) ? 1 : 0;
                    break;

                case enum_BindingsName.Left:
                    left = Input.GetKey(keyCode[j]) ? 1 : 0;
                    break;

                case enum_BindingsName.Right:
                    right = Input.GetKey(keyCode[j]) ? 1 : 0;
                    break;
                }

                if (triggerd)
                {
                    break;
                }
            }
        }
        m_MovementDelta = new Vector2(right - left, up - down);
        m_RotateDelta   = new Vector2(Input.GetAxis("Mouse X"), Input.GetAxis("Mouse Y"));
    }