昨天遇到一个很简单问题,但是自己却花了很长时间才解决 ! ! !
接下来解释一下Unity关于瞬间检测的东西,【Physics.OverlapSphere】这是球型检测(检测对象上是否有触发器),还有其他形状的检测,通常来说懂了这一个 其他的也容易懂,所谓一通百通。
箭头指的地方是层级
代码如下:
void Update()
{
if (Input.GetKeyDown(KeyCode.K))
{
print("K");
//参数一:中心点,参数二:球型半径(halfExtents),参数三:检测层级
//中心点(自己的下方-0.5位置),物体范围(半径为10的球体),层级(Default)
Collider[] collider = Physics.OverlapSphere(transform.position + Vector3.up * -0.5f, 10, 1 << LayerMask.NameToLayer("Default"));
for (int i = 0; i < collider.Length; i++)
{
print("检测到物体"+collider[i].gameObject.name);
}
}
if (Input.GetKeyDown(KeyCode.A))
{
transform.rotation = Quaternion.identity;
}
}
Unity中显示结果:
如果有,那么解释如下:
很简单,就是Sphere也有大小范围 并不是一个点,所以会被检测到。
点赞即是支持 ! ! !