最近在复刻一个老外的项目,涉及到了一个2d小球的圆滑缩放,直接写思路,一个是lerp函数实现
一个是smoothDamp函数实现,具体这两个函数的参数和用法这里不去说明
public SpriteRenderer _PlayerSprite;
public float scaleSpeed;
public float res;
void Change_Sacle_Lerp()
{
if(Input.GetMouseButton(0))
{
scaleSpeed += Time.deltaTime;
float x = Mathf.Lerp(transform.localScale.x, 2f, scaleSpeed);
transform.localScale = new Vector3(x, transform.localScale.y, transform.localScale.z);
}
}
void Change_Scale_SmoothDamp()
{
if (Input.GetMouseButton(0))
{
float x = Mathf.SmoothDamp(transform.localScale.x, 2f, ref res, 0.2f);
transform.localScale = new Vector3(x, transform.localScale.y, transform.localScale.z);
}
}
private void Update()
{
//Change_Sacle_Lerp();
Change_Scale_SmoothDamp();
}
注意一下lerp函数两端能不能达到的条件,以及函数的执行条件实在getmouseButton下执行的,这样,如果你的项目有别的需求,更具需要更改就行了