如何在不移动盒子的情况下进行 BoxCast() ?

bla*_*ole 2 c# collision-detection unity-game-engine collider

public static bool BoxCast(Vector3 center,
                           Vector3 halfExtents,
                           Vector3 direction,
                           Quaternion orientation = Quaternion.identity, 
                           float maxDistance = Mathf.Infinity,
                           ...);
Run Code Online (Sandbox Code Playgroud)

这些是 Unity3D 中盒播的参数。我对参数的用途感到困惑,maxDistance因为我们已经用参数绘制了方框halfExtents。如果我不想移动盒子怎么办?即,我想画一个盒子并获取有关其内部内容的信息。我不想移动盒子。使用maxDistance = 0似乎没有任何作用,因为它没有记录任何点击。使用maxDistance > 0会移动盒子,我希望避免这种情况。

如何使用 BoxCast(),避免移动盒子?

Fre*_*erg 5

Physics.OverlapBox,也许这更适合您的需求?

public static Collider[] OverlapBox(Vector3 center, Vector3 halfExtents, 
      Quaternion orientation = Quaternion.identity, 
      int layerMask = AllLayers, 
      QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);
Run Code Online (Sandbox Code Playgroud)

https://docs.unity3d.com/ScriptReference/Physics.OverlapBox.html

或者即使Physics.CheckBox你不关心盒子里到底有什么。

https://docs.unity3d.com/ScriptReference/Physics.CheckBox.html