移动到圆形区域,然后捕捉到网格?
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.Round
将 float
作为参数,而您在其中传递 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
这里是初学者。 我试图让它在一个圆圈内找到一个随机点,转到那个点然后捕捉到一个网格。
我已经可以在圆内取一个点并移动到那里,但是我一直没有想出任何工作方法。
这是查找并移动到圆内点的代码。
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.Round
将 float
作为参数,而您在其中传递 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