والا من تو یونیتی این کارو اینطوری انجام میدم:
private void OnMouseDrag(){
if (lunched)
return;
Vector3 mousePos=Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x,Input.mousePosition. y,10));
mousePos = new Vector3 (mousePos.x, mousePos.y, firstPos.z);
Vector3 delta = firstPos - mousePos;
if(Vector3.Distance(firstPos,mousePos)<3)
{
transform.position=mousePos;
}
else
{
transform.position=firstPos-delta.normalized*3;
}
}
اما متاسفانه سی شارپ در حالت عادیnormalize نداره ... اگرم داره من ندیدم ... پس کد بالا رو خودتون شخص سازی کنین درواقع خودتون بخش normalize رو بنویسین (ریاضیه دیگه ... ) حوصله ندارم براتون بنویسم اینو از تو یکی از پروژه هام کپی کردم برای همین از وکتور و خواص اون تو یونیتی استفاده شده ... خودتون دیگه درستش کنین ... (وکتور هارو بکنین پوینت distance هم خودتون با ریاضی بنویسین camera هم شما کاری نداشته باشین خودتون از e مختضات موس رو میتونین بگیرین ... )