触摸射线击中统一的点

问题描述 投票:0回答:1

我搜索了整个互联网,但找不到任何有用的东西。我想在光线撞击物体的位置“做”一个触摸输入,并且只有当它碰到某个物体时才会这样做。我希望你能理解我的意思,而且我知道用光线投影做这件事并不常见,但我需要这样才能获得htc vive。提前致谢。或者更容易说,我如何从我的脚本触摸屏幕,意味着没有真正触摸屏幕?

unity3d touch raycasting
1个回答
1
投票

您可以在代码中使用camera.ScreenToWorldPoint(新的Vector3(您要检查点击的位置))。

        //you can change the start position in your code.
        var startPos =
             camera.ScreenToWorldPoint(new Vector3(2,2, 10));

那么您可以使用此功能检测点击而无需实际点击。

public void CalculateEndPositions(Vector3 start)
{
    //forward
    var rayForward = new Ray(start, Vector3.up);
    Debug.DrawRay(start,Vector3.up, Color.green);
    RaycastHit rayForwardInfo;

    if (Physics.Raycast(rayForward, out rayForwardInfo))
    {
       Debug.Log("Collider Name = " + rayForwardInfo.collider.name);
    }

}

我希望这段代码对你有用。

© www.soinside.com 2019 - 2024. All rights reserved.