Per*_*son 4 c# unity-game-engine
在这种情况下,我要用对象填充一个空白区域,但是如果该区域不为空,则不想在其中放置对象。这是专门针对多维数据集,因此我不确定checkSphere()是否有效。我是一个初学者,我很难找到该问题的答案,所以尽管我知道它可能是在线的,但我还是很难找到一些能以我理解的方式解释代码的东西,甚至找不到该代码。
尝试使用Physics.OverlapSphere。您可以在要检查的Vector3点处定义一个球体(例如((2,4,0))。您可以给它一个较小的半径(甚至是0,但是您必须检查一下,我不确定它是否可行)。
它返回所有接触或在球体内的对撞机的数组。只需检查数组是否为空(或长度为0),如果为空,则什么也没有碰到。
您可以这样使用它:
Collider[] intersecting = Physics.OverlapSphere(new Vector3(2, 4, 0), 0.01f);
if (intersecting.Length == 0) {
//code to run if nothing is intersecting as the length is 0
} else {
//code to run if something is intersecting it
}
Run Code Online (Sandbox Code Playgroud)
或者,当然,您可以这样做:
Collider[] intersecting = Physics.OverlapSphere(new Vector3(2, 4, 0), 0.01);
if (!intersecting.Length == 0) {
//code to run if intersecting
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!
编辑:这是一个函数,如果点与对撞机相交,则仅返回true。
bool isObjectHere(Vector3 position)
{
Collider[] intersecting = Physics.OverlapSphere(position, 0.01f);
if (!intersecting.Length == 0)
{
return true;
}
else
{
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4534 次 |
| 最近记录: |