如何检查球体是否接触到物体



我想看看我是否可以根据spherecast是否正在触摸对象来触发对象中的操作。理想情况下,我想通过连接到spherecast组件正在触摸的对象的脚本来实现这一点,最初我使用OnCollisionEnter尝试了类似的操作。

void OnCollisionEnter(Collision col)
{
//Touched = SphereCaster.collider.gameObject.GetComponent(UnityEngine.PlayerLoop.FixedUpdate);
if (col.gameObject.name == "Sphere Caster")
{
dontShow();
}
}

关于如何记录球体碰撞器正在接触物体,有什么想法吗?

提前感谢

你可以,但你必须从不同的思路来处理这个问题。当你选角时,你实际上并没有引入一个";物理";正在与场景交互的对象,而是在物理引擎中查询路径上的对象。

相反,您必须依赖于转换返回给您的结果,并从中应用必要的操作。Physics.SphereCast返回一个bool,表示有人触摸了某个东西,并且out RaycastHit hitInfo包含有关该对象的信息。根据您的对象,您可能会找到包含要调用的函数的脚本。

下面是一个看起来像什么的例子:

if (Physics.SphereCast(origin, radius, direction, out RaycastHit hit, 10))
{
hit.collider.gameObject.GetComponent<YourScript>().YourFunction();
}

最新更新