using Unity.Burst; using Unity.Jobs; using Unity.Mathematics; using Unity.Collections; using Unity.Collections.LowLevel.Unsafe; [BurstCompile] public struct ScaleMoveToTweenJob : IJob { [NativeDisableContainerSafetyRestriction] public NativeArray BaseScale; [ReadOnly] public float Speed; [ReadOnly] public float DeltaTime; [ReadOnly] public float3 TargetScale; public void Execute() { var maxDistanceDelta = Speed * DeltaTime; var num1 = TargetScale.x - BaseScale[0].x; var num2 = TargetScale.y - BaseScale[0].y; var num3 = TargetScale.z - BaseScale[0].z; var num4 = (float)((double)num1 * (double)num1 + (double)num2 * (double)num2 + (double)num3 * (double)num3); if ((double)num4 == 0.0 || (double)num4 <= (double)maxDistanceDelta * (double)maxDistanceDelta) { BaseScale[0] = TargetScale; } else { var num5 = (float)math.sqrt((double)num4); BaseScale[0] = new float3(BaseScale[0].x + num1 / num5 * maxDistanceDelta, BaseScale[0].y + num2 / num5 * maxDistanceDelta, BaseScale[0].z + num3 / num5 * maxDistanceDelta); } } }