停止光线投射通过UI按钮

时间:2018-01-13 00:50:36

标签: unity3d unity-ui

如何阻止RayCast通过UI按钮并击中按钮后面的碰撞器?

我尝试过的一些事情:

  • 对撞机覆盖整个视图,但它位于(0,0,2)
  • 按钮打开(0,0,-5),因此从相机的角度来看对撞机前面。
  • 我在Canvas上发现了一个Graphic Raycaster组件,我将其设置为Blocking Objects:All,Blocking Mask:Everything,Ignore Reverse Graphics:True(默认为true)

因此每次我点击按钮时,它都会执行该事件,但我的播放器最终会在按钮后面,因为RayCast也会击中按钮后面的另一个碰撞器。

void Start(){
    touchControl = LayerMask.GetMask("TouchControl");
}

// Update is called once per frame
void Update () {

    if (Input.GetMouseButton(0))
    {
        RaycastHit hit;
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        if (Physics.Raycast(ray, out hit, 100, touchControl))
        {
            Destroy(GameObject.FindGameObjectWithTag("Destination"));
            CalculatedDestination = Instantiate(Destination, hit.point, Quaternion.identity);
        }
    }}

0 个答案:

没有答案