private Vector3 penPos ,hoverDis ;
private void onRightRightPressDown()
{
penPos = GlobeData._RightRaycaster.BreakPoints[0];
hoverDis = Vector3.Distance(GlobeData._RightRaycaster.BreakPoints[0], GlobeData._RightRaycaster.BreakPoints[1]);
}
private void onRightRightPress()
{
Vector3 di = (GlobeData._RightRaycaster.BreakPoints[0] - penPos).normalized;
float dir = Vector3.Dot(penPos, di);
if (dir == 0)
{
return;
}
dir = dir / Mathf.Abs(dir);(1拉远 -1拉近)
float dis = dir * Vector3.Distance(penPos, GlobeData._RightRaycaster.BreakPoints[0]);
float v = (dis + hoverDis) / hoverDis;
transform.localScale = Vector3.Lerp(transform.localScale, ClampVec(minScale, hoverScale * v,maxScale), Time.deltaTime * speed);
}
private float minScale=0.3f;
private float maxScale=3f;
private Vector3 ClampVec(float min, Vector3 v, float max)
{
float newV = Mathf.Clamp(v.x, min, max);
return new Vector3(newV, newV, newV);
}