1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- using System;
- using UnityEngine;
-
- namespace Unity.VisualScripting
- {
- /// <summary>
- /// Compares two numbers to determine if they are approximately equal (disregarding floating point precision errors).
- /// </summary>
- [UnitCategory("Logic")]
- [UnitShortTitle("Equal")]
- [UnitSubtitle("(Approximately)")]
- [UnitOrder(7)]
- [Obsolete("Use the Equal node with Numeric enabled instead.")]
- public sealed class ApproximatelyEqual : Unit
- {
- /// <summary>
- /// The first number.
- /// </summary>
- [DoNotSerialize]
- public ValueInput a { get; private set; }
-
- /// <summary>
- /// The second number.
- /// </summary>
- [DoNotSerialize]
- public ValueInput b { get; private set; }
-
- /// <summary>
- /// Whether A is approximately equal to B.
- /// </summary>
- [DoNotSerialize]
- [PortLabel("A \u2248 B")]
- public ValueOutput equal { get; private set; }
-
- protected override void Definition()
- {
- a = ValueInput<float>(nameof(a));
- b = ValueInput<float>(nameof(b), 0);
- equal = ValueOutput(nameof(equal), Comparison).Predictable();
-
- Requirement(a, equal);
- Requirement(b, equal);
- }
-
- public bool Comparison(Flow flow)
- {
- return Mathf.Approximately(flow.GetValue<float>(a), flow.GetValue<float>(b));
- }
- }
- }
|