示例#1
0
            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);
            }
示例#2
0
            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);
            }