123456789101112131415161718192021222324252627282930313233343536373839404142 |
- namespace Unity.VisualScripting
- {
- [UnitOrder(402)]
- public abstract class Distance<T> : Unit
- {
- /// <summary>
- /// The first vector.
- /// </summary>
- [DoNotSerialize]
- public ValueInput a { get; private set; }
-
- /// <summary>
- /// The second vector.
- /// </summary>
- [DoNotSerialize]
- public ValueInput b { get; private set; }
-
- /// <summary>
- /// The distance between A and B.
- /// </summary>
- [DoNotSerialize]
- [PortLabelHidden]
- public ValueOutput distance { get; private set; }
-
- protected override void Definition()
- {
- a = ValueInput<T>(nameof(a));
- b = ValueInput<T>(nameof(b));
- distance = ValueOutput(nameof(distance), Operation).Predictable();
-
- Requirement(a, distance);
- Requirement(b, distance);
- }
-
- private float Operation(Flow flow)
- {
- return Operation(flow.GetValue<T>(a), flow.GetValue<T>(b));
- }
-
- public abstract float Operation(T a, T b);
- }
- }
|