Unity3d 我想让我的武器跟随光标,但在一个圆plzzz helpp | | unity2d的范围内

Unity3d 我想让我的武器跟随光标,但在一个圆plzzz helpp | | unity2d的范围内,unity3d,Unity3d,我想让我的武器跟随光标,但在一个圆的范围内plzzz helpp,我使用此代码,它工作,但圆的半径为2(0,0),我想控制圆的位置,以防止武器卡在圆中(0,0),帮助帮助 void Update() { mousePos = cam.ScreenToWorldPoint(Input.mousePosition); rb.MovePosition(Vector2.ClampMagnitude(mousePos ,2.0f)); } 这里的圆心是圆心的变换。请尽可能地说明问题所在

我想让我的武器跟随光标,但在一个圆的范围内plzzz helpp,我使用此代码,它工作,但圆的半径为2(0,0),我想控制圆的位置,以防止武器卡在圆中(0,0),帮助帮助

void Update()
{

    mousePos = cam.ScreenToWorldPoint(Input.mousePosition);
    rb.MovePosition(Vector2.ClampMagnitude(mousePos ,2.0f));
}

这里的圆心是圆心的变换。

请尽可能地说明问题所在。乞讨和抱怨并不能让你更容易回答问题。现在还不清楚你在问什么。只需再多做一步,将向量长度限制为2
Input.mousePosition.magnize>2?Input.mousePosition.normalized*2:Input.mousePosition
我想你不明白我想要什么。| Vector2.ClampMagnitude它在向量周围的(0,0)处形成一个不可见的圆ok,所以当我说圆时,我不是指单位对象。你可以指定圆的位置,而不是使用CentreOfCircle.position。我使用了一个变换,因此很容易在编辑器中更改位置。
public Transform CentreOfCircle;

private void Update()
{
    Vector2 targetPosition = cam.ScreenToWorldPoint(Input.mousePosition);
     rb.MovePosition(Vector2.ClampMagnitude(targetPosition - (Vector2)CentreOfCircle.position,Radius)+(Vector2)CentreOfCircle.position);
   
}