移动到圆形区域,然后捕捉到网格?

Move to area in circle, then snap to a grid?

这里是初学者。 我试图让它在一个圆圈内找到一个随机点,转到那个点然后捕捉到一个网格。

我已经可以在圆内取一个点并移动到那里,但是我一直没有想出任何工作方法。

这是查找并移动到圆内点的代码。

private void RandomizePosition()
{
    double x = -0.5; // center of circle x
    double y = -0.5; // center of circle y

    this.transform.position = UnityEngine.Random.insideUnitCircle * 7; // this makes the circle
}

我已经厌倦了使用 this.transform.position = new Vector3(Mathf.Round(x), Mathf.Round(y), 0.0f); 但我收到错误消息 “无法将类型隐式转换为浮点数” 如果有人有任何想法请分享,谢谢。

Mathf.Roundfloat 作为参数,而您在其中传递 double。以下应该有效:

this.transform.position = new Vector3(Mathf.Round((float)x), Mathf.Round((float)y), 0.0f);

直接使用float

var x = -0.5f; // center of circle x
var y = -0.5f; // center of circle y