在这种情况下,我要用对象填充一个空白区域,但是如果该区域不为空,则不想在其中放置对象.
这是专门针对多维数据集,因此我不确定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
}
或者,当然,您可以这样做:
Collider[] intersecting = Physics.OverlapSphere(new Vector3(2, 4, 0), 0.01);
if (!intersecting.Length == 0) {
//code to run if intersecting
}
希望这可以帮助!
编辑:这是一个函数,如果点与对撞机相交,则返回true.
bool isObjectHere(Vector3 position)
{
Collider[] intersecting = Physics.OverlapSphere(position, 0.01f);
if (!intersecting.Length == 0)
{
return true;
}
else
{
return false;
}
}
原文地址:https://codeday.me/bug/20191025/1930008.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。