123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- namespace Unity.VisualScripting
- {
- [UnitOrder(103)]
- public abstract class Multiply<T> : Unit
- {
- /// <summary>
- /// The first value.
- /// </summary>
- [DoNotSerialize]
- public ValueInput a { get; private set; }
-
- /// <summary>
- /// The second value.
- /// </summary>
- [DoNotSerialize]
- public ValueInput b { get; private set; }
-
- /// <summary>
- /// The product of A and B.
- /// </summary>
- [DoNotSerialize]
- [PortLabel("A \u00D7 B")]
- public ValueOutput product { get; private set; }
-
- [DoNotSerialize]
- protected virtual T defaultB => default(T);
-
- protected override void Definition()
- {
- a = ValueInput<T>(nameof(a));
- b = ValueInput(nameof(b), defaultB);
- product = ValueOutput(nameof(product), Operation).Predictable();
-
- Requirement(a, product);
- Requirement(b, product);
- }
-
- private T Operation(Flow flow)
- {
- return Operation(flow.GetValue<T>(a), flow.GetValue<T>(b));
- }
-
- public abstract T Operation(T a, T b);
- }
- }
|