嵌入-parentHWND时,Physics.Raycast总是失败

时间:2019-01-07 14:56:26

标签: c# unity3d embed

我已经将Unity应用程序嵌入到父WPF应用程序中。但是,这有一些奇怪的副作用。

我有一个更新方法,该方法会不断检查是否按下了鼠标0按钮,如果是,则执行Raycast尝试查找该对象。显示在这里:

if (Input.GetMouseButtonDown(0))
{
    RaycastHit hit;

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

    if (Physics.Raycast(ray, out hit))
    {
        //Some code here...
    }
}

此射线广播始终失败。但是,如果在单位编辑器中完成操作(即在引擎中按播放键),则效果很好。

另一个奇怪的行为是,如果使用独立播放器,则所有控件均无效。我有另一种方法可以围绕对象旋转相机:

if (Input.GetMouseButton(0))
    {
        float h = rotateSpeed * Input.GetAxis("Mouse X");
        float v = rotateSpeed * Input.GetAxis("Mouse Y");

        if (cameraOrbit.transform.eulerAngles.z + v <= 0.1f || cameraOrbit.transform.eulerAngles.z + v >= 179.9f)
            v = 0;

        cameraOrbit.transform.eulerAngles = new Vector3(cameraOrbit.transform.eulerAngles.x, cameraOrbit.transform.eulerAngles.y + h, cameraOrbit.transform.eulerAngles.z);
    }

在编辑器中和嵌入时都可以正常工作,但在使用Unity播放器时却不能。我在这里做错什么了,导致这种不希望的和不一致的行为吗?

0 个答案:

没有答案