namespace Zinnia.Data.Operation.Mutation { using UnityEngine; using Zinnia.Extension; /// /// Mutates the scale of a transform. /// public class TransformScaleMutator : TransformPropertyMutator { /// protected override float GetGlobalAxisValue(int axis) { return Target != null ? Target.transform.lossyScale[axis] : default; } /// protected override float GetLocalAxisValue(int axis) { return Target != null ? Target.transform.localScale[axis] : default; } /// protected override Vector3 GetNewSetValue(Vector3 input) { return input; } /// protected override Vector3 GetNewIncrementValue(Vector3 input) { if (Target == null) { return default; } return (UseLocalValues ? Target.transform.localScale : Target.transform.lossyScale) + input; } /// protected override Vector3 SetGlobalTargetValue(Vector3 input) { if (Target == null) { return default; } Target.transform.SetGlobalScale(input); return input; } /// protected override Vector3 SetLocalTargetValue(Vector3 input) { if (Target == null) { return default; } return Target.transform.localScale = input; } } }