如何阻止 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);
}
}}