gpt4 book ai didi

c# - 如何检查对象是否存在于 unity C# 中的特定位置?

转载 作者:太空狗 更新时间:2023-10-30 01:00:22 25 4
gpt4 key购买 nike

在这种情况下,我希望用一个对象填满一个空白区域,但如果该区域不为空,我不想在那里放置一个对象。这是专门谈论立方体,所以我不确定 checkSphere() 是否有效。我是一个初学者,我很难找到这个问题的答案,所以虽然我知道它可能在网上,但我很难找到以我理解的方式解释代码的东西,甚至找不到该代码。

最佳答案

尝试使用 Physics.OverlapSphere .您可以在要检查的 Vector3 点处定义一个球体(例如,(2, 4, 0))。你可以给它一个小半径(或者甚至可能为 0,但你必须检查一下,我不能 100% 确定它是否有效)。

它返回所有接触或在球体内部的碰撞器的数组。只需检查数组是否为空(或长度为 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 false;
}
else
{
return true;
}
}

关于c# - 如何检查对象是否存在于 unity C# 中的特定位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46758167/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com