private bool Verify(InputActionTrace.ActionEventPtr eventPtr) { if (eventPtr.action != action || eventPtr.phase != phase) { return(false); } // Check control. if (control != null && eventPtr.control != control) { return(false); } // Check interaction. if (interaction != null && (eventPtr.interaction == null || !interaction.IsInstanceOfType(eventPtr.interaction))) { return(false); } // Check value. if (value != null && !value.Equals(eventPtr.control.ReadValueAsObject())) { return(false); } return(true); }
private bool Verify(InputActionTrace.ActionEventPtr eventPtr) { // NOTE: Using explicit "return false" branches everywhere for easier setting of breakpoints. if (eventPtr.action != action || eventPtr.phase != phase) { return(false); } // Check time. if (time != null && !Mathf.Approximately((float)time.Value, (float)eventPtr.time)) { return(false); } // Check control. if (control != null && eventPtr.control != control) { return(false); } // Check interaction. if (interaction != null && (eventPtr.interaction == null || !interaction.IsInstanceOfType(eventPtr.interaction))) { return(false); } // Check value. if (value != null) { var val = eventPtr.ReadValueAsObject(); if (value is float f && !Mathf.Approximately(f, (float)val)) { return(false); } if (value is Vector2 v2 && !Vector2EqualityComparer.Instance.Equals(v2, (Vector2)val)) { return(false); } if (value is Vector3 v3 && !Vector3EqualityComparer.Instance.Equals(v3, (Vector3)val)) { return(false); } if (!value.Equals(val)) { return(false); } } return(true); }
private bool Verify(InputActionTrace.ActionEventPtr eventPtr) { // NOTE: Using explicit "return false" branches everywhere for easier setting of breakpoints. if (eventPtr.action != action || eventPtr.phase != phase) { return(false); } // Check time. if (time != null && !Mathf.Approximately((float)time.Value, (float)eventPtr.time)) { return(false); } // Check duration. if (duration != null && !Mathf.Approximately((float)duration.Value, (float)eventPtr.duration)) { return(false); } // Check control. if (control != null && eventPtr.control != control) { return(false); } // Check interaction. if (interaction != null && (eventPtr.interaction == null || !interaction.IsInstanceOfType(eventPtr.interaction))) { return(false); } // Check value. if (value != null) { var val = eventPtr.ReadValueAsObject(); if (val is float f) { if (!Mathf.Approximately(f, Convert.ToSingle(value))) { return(false); } } else if (val is double d) { if (!Mathf.Approximately((float)d, (float)Convert.ToDouble(value))) { return(false); } } else if (val is Vector2 v2) { if (!Vector2EqualityComparer.Instance.Equals(v2, value.As <Vector2>())) { return(false); } } else if (val is Vector3 v3) { if (!Vector3EqualityComparer.Instance.Equals(v3, value.As <Vector3>())) { return(false); } } else if (!val.Equals(value)) { return(false); } } return(true); }