我很好奇为什么我不能直接从Physics2D.Raycast访问gameObject,因为我可以从Physics2D.OverlapCircle访问。举个例子:
Collider2D topHit = Physics2D.OverlapCircle(top_Collision.position, 0.2f, playerLayer);
if(topHit.gameObject.tag == "Player")对于Physics2D.Raycast:
RaycastHit2D leftHit = Physics2D.Raycast(left_Collision.position, Vector2.left, 0.1f, playerLayer);
if (leftHit.collider.gameObject.tag == "Player")为什么我要用“对撞机”?
另外,请指导我如何使用文档或Microsoft Visual Studio来避免此类问题。我的意思是,我怎么能自己检查这样的东西-怎么去gameObject?
发布于 2020-03-08 07:24:15
由于Physics2D.Raycast的返回类型,您必须使用collider。它返回一个RaycastHit2D,此对象包含对象碰撞器以外的一些其他信息,例如距离和您可以在文档中查看的其他参数。
RaycastHit2D.collider的类型为Collider2D,与Physics2D.OverlapCircle的返回类型相同。
您应该始终参考Unity Scripting Reference并检查您的集成开发环境自动补全建议,它们通常附带文档片段,您能提供帮助吗?
https://stackoverflow.com/questions/60582791
复制相似问题