static public float GetAxis(MSV_Axis a) { if (AxisDirty) { AxisBindings.Sort(); } ; var axisIdx = AxisBindings.FindIndex(search => a == search.Axis); if (axisIdx == -1) { return(0.0f); } float value = 0.0f; while (axisIdx < AxisBindings.Count && AxisBindings[axisIdx].Axis == a) { var newValue = Input.GetAxis(AxisBindings[axisIdx].Name); if (Mathf.Abs(newValue) > Mathf.Abs(value)) { value = newValue; } ++axisIdx; } return(value); }
static public void AddAxisBinding(MSV_Axis a, string name) { AxisBindings.Add(new AxisBinding() { Axis = a, Name = name }); AxisDirty = true; }
static public void RemoveAxisBinding(MSV_Axis a, string name) { AxisBindings.RemoveAll(search => a == search.Axis && name == search.Name); }