【发布时间】:2017-02-23 08:04:13
【问题描述】:
如下图所示,我想在蓝色区域 (B) 而不是红色区域 (A) 内找到一个随机位置。我怎样才能做到这一点? A 和 B 目前是 2 个对撞机。我只需要 B 内的职位,但不能在 A 内。提前致谢。
【问题讨论】:
-
在B中找到一个位置,如果它也在A中,再试一次(即拒绝采样)。
标签: c# unity3d vector spawning
如下图所示,我想在蓝色区域 (B) 而不是红色区域 (A) 内找到一个随机位置。我怎样才能做到这一点? A 和 B 目前是 2 个对撞机。我只需要 B 内的职位,但不能在 A 内。提前致谢。
【问题讨论】:
标签: c# unity3d vector spawning
一个解决方案与 Nico Schertler 在评论中提到的相同
if(Random.value < GetRatio(xminBlue-xminRed),xmaxRed-xmaxBlue){
x= Random.Range(xminBlue,xminRed);
}else
{
x= Random.Range(xmaxRed,xmaxBlue);
}
float GetRatio (float distance_1,float distance_2){
return distance_1 / distance_1 + distance_2;
}
在这个解决方案中你不需要拒绝任何坐标
【讨论】: