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;
}
}
}