Unity3D 从屏幕中间投射光线
Unity3D casting ray from the middle of the screen
我现在想从屏幕中间投射光线,我通过使用鼠标来做到这一点并将鼠标设置在中间,但这会导致错误。我使用:
ray = Camera.main.ScreenPointToRay(Input.mousePosition);
我应该改用什么?
根据我的经验,我发现调试射线(显示在编辑器场景视图中的射线)在使用射线时很有帮助。
Vector3 rayOrigin = new Vector3(0.5f, 0.5f, 0f); // center of the screen
float rayLength = 500f;
// actual Ray
Ray ray = Camera.main.ViewportPointToRay(rayOrigin);
// debug Ray
Debug.DrawRay(ray.origin, ray.direction * rayLength, Color.red);
RaycastHit hit;
if (Physics.Raycast(ray, out hit, rayLength))
{
// our Ray intersected a collider
}
调试射线仅在场景视图中可用,而游戏是 运行。如果您想在游戏中画一条线,请查看 LineRenderer.
我现在想从屏幕中间投射光线,我通过使用鼠标来做到这一点并将鼠标设置在中间,但这会导致错误。我使用:
ray = Camera.main.ScreenPointToRay(Input.mousePosition);
我应该改用什么?
根据我的经验,我发现调试射线(显示在编辑器场景视图中的射线)在使用射线时很有帮助。
Vector3 rayOrigin = new Vector3(0.5f, 0.5f, 0f); // center of the screen
float rayLength = 500f;
// actual Ray
Ray ray = Camera.main.ViewportPointToRay(rayOrigin);
// debug Ray
Debug.DrawRay(ray.origin, ray.direction * rayLength, Color.red);
RaycastHit hit;
if (Physics.Raycast(ray, out hit, rayLength))
{
// our Ray intersected a collider
}
调试射线仅在场景视图中可用,而游戏是 运行。如果您想在游戏中画一条线,请查看 LineRenderer.