gpt4 book ai didi

c# - 游戏世界中从相机到鼠标位置的光线转换

转载 作者:行者123 更新时间:2023-11-30 18:14:23 30 4
gpt4 key购买 nike

当鼠标在门口(红色区域)时,我想做点什么。我正在尝试转换射线,但射线没有击中门,而且我无法找到它击中的确切位置。另外我如何Debug.DrawRay这条射线?

Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;

if (Physics.Raycast(ray, out hit, Mathf.Infinity))
{
if (hit.collider.tag == "InteractiveDoor")
{
doorInteractGameObject.SetActive(true);
}
else
{
doorInteractGameObject.SetActive(false);
}
}

Unity Img

最佳答案

您可能需要创建一个 LayerMask 并将其添加到 Physics.Raycast 的参数中;还要确保门上有对撞机。您会惊讶于我有多少次忘记添加对撞机。

在绘制光线方面,以防由于某种原因这不起作用。使用 Debug.DrawRay。我建议将它放在 FixedUpdate() 或 Update() 中。您可以将颜色和持续时间设置为任何您想要的,但我建议将 depthTest 设置为 false,因为您希望无论如何都绘制光线。然后这样调用它:

Debug.DrawRay(ray.origin, ray.direction, <color>, <duration>, false);

关于c# - 游戏世界中从相机到鼠标位置的光线转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50547813/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com