为什么我的物理 2D 光线投射无法正常显示或工作?
Why will my physics 2D raycast not display or work correctly?
基本上我想制作一个用于跳跃的光线投射但由于某种原因光线投射的距离是错误的并且永远不会改变它的位置是如此错误我什至无法找到它:
ray2D = Physics2D.Raycast(transform.position, -Vector2.up, .1f, GroundedLayers);
Debug.Log(ray2D.distance);
isGrounded = groundCheck();
接地层不包括玩家,距离始终 returns 为 0,接地始终为 false,gizmos 线仅在我打开预制件时绘制,根本不在场景中:
此处距离设置为 .1f 但显示与 1f 相同
(编辑:好的,所以我检查了一下,出于某种原因,光线投射发生在 0、-1 附近,即使那离玩家变换不远?)
试试 Vector2.down?
可以尝试的替代方法:
场景中的播放器和预制件一样吗?
增加距离。
在玩家的脚下添加一个新的 GameObject,在脚本中引用它并从那里调用 Raycast。
ray2d 是 RayCastHit2d 吗?
您的地物标签是否正确,包括所有 grammer/caps?
尝试在调试中输出,ray2d.collider.name 看看你实际打的是什么。
如果您使用的是刚体,请尝试使用 rigidbody2d。位置而不是 transform.position
您是否在层次结构中选择了播放器?这是查看小发明所必需的。
我发现 raycast 正在检测一个不可见的触发器,所以我不得不把它放在另一个层上:)
基本上我想制作一个用于跳跃的光线投射但由于某种原因光线投射的距离是错误的并且永远不会改变它的位置是如此错误我什至无法找到它:
ray2D = Physics2D.Raycast(transform.position, -Vector2.up, .1f, GroundedLayers);
Debug.Log(ray2D.distance);
isGrounded = groundCheck();
接地层不包括玩家,距离始终 returns 为 0,接地始终为 false,gizmos 线仅在我打开预制件时绘制,根本不在场景中:
此处距离设置为 .1f 但显示与 1f 相同
(编辑:好的,所以我检查了一下,出于某种原因,光线投射发生在 0、-1 附近,即使那离玩家变换不远?)
试试 Vector2.down?
可以尝试的替代方法:
场景中的播放器和预制件一样吗? 增加距离。 在玩家的脚下添加一个新的 GameObject,在脚本中引用它并从那里调用 Raycast。 ray2d 是 RayCastHit2d 吗? 您的地物标签是否正确,包括所有 grammer/caps? 尝试在调试中输出,ray2d.collider.name 看看你实际打的是什么。 如果您使用的是刚体,请尝试使用 rigidbody2d。位置而不是 transform.position
您是否在层次结构中选择了播放器?这是查看小发明所必需的。
我发现 raycast 正在检测一个不可见的触发器,所以我不得不把它放在另一个层上:)