悬停并按时Unity Raycast

时间:2018-12-09 11:51:53

标签: c# unity3d raycasting

悬停并按下对象时如何使用raycast。 我唯一能想到的方法是使用2 raycast。 但是,只有1个射线广播有效,具体取决于检查顺序。

if (Input.touchCount == 1)
        {
            Touch touch = Input.touches[0];
            if (touch.phase == TouchPhase.Began)
            {
                Ray ray = Camera.main.ViewportPointToRay(new Vector3(0.5f, 0.5f, 0));                                                                    
                Ray ray1 = Camera.main.ScreenPointToRay(Input.GetTouch(0).position);
                RaycastHit hit = new RaycastHit();

                if(Physics.Raycast(ray, out hit, 5))
                 if(Physics.Raycast(ray1, out hit, 5))
                 {
                   ...
                 }
             }
        }

1 个答案:

答案 0 :(得分:0)

也许尝试创建另一个RaycastHit变量并将其传递给第二个raycast语句。

使用它的方式,hit变量将是无用的。此外,也许还有更好的方法来完成您要尝试的操作。

您能更好地说明自己的情况吗?