private void SetLocation() { powerLerp = Mathf.Clamp01(powerLerp + ETime.FRAME_TIME / powerLerpTime); var lerpDir = Player.IsFocus ? 1 : -1; freeFocusLerp = Mathf.Clamp01(freeFocusLerp + lerpDir * ETime.FRAME_TIME / freeFocusLerpTime); original_angle = Mathf.Lerp(freeAngle(bpi), focusAngle(bpi), freeFocusLerp); tr.localPosition = Vector3.Lerp(FreeOffset, FocusOffset, freeFocusLerp); if (doOpacity) { var color = rootColor; color.a *= freeOpacity !(bpi) * (1 - freeFocusLerp) + focusOpacity !(bpi) * freeFocusLerp; sr.color = color; } tr.localEulerAngles = new Vector3(0, 0, original_angle + rotator?.Invoke(bpi) ?? 0f); }