Unity中如何正确调用Physics2D.CircleCast对应重载的API声明?
报错原因
- 参数顺序不匹配目标重载,导致编译器优先匹配了使用int类型layerMask的基础重载:
你需要的带ContactFilter2D的重载,在direction参数之后要求先传入float类型的distance参数,再传入过滤规则、结果数组等参数。你当前的代码跳过了distance参数直接传ContactFilter2D.NoFilter,编译器会将该参数尝试转换为基础重载要求的int类型layerMask,因此触发类型错误。
修正方法
- 调整参数顺序,把你原本写在末尾的
0f(即distance参数)移到Vector2.up之后,正确调用代码如下:
Physics2D.CircleCast(transform.position, radius, Vector2.up, 0f, ContactFilter2D.NoFilter, colliders);
- 如果你需要额外指定深度过滤规则,可以在
colliders参数之后追加对应的minDepth、maxDepth参数即可。
内容的提问来源于stack exchange,提问作者TheVan
相关产品推荐
相关产品推荐

