如果我碰巧触摸了我的 UI,我需要忽略一些功能。但是,我正在努力检测我是否真的在触摸它。
我的 UI 使用了 Unity 中的原生 UI。我的想法是简单地检查图层,如果我触摸了该图层上的任何东西,我会阻止任何功能发生。
所以我写了这个来测试它:
void Update () {
if (Input.touchCount > 0 && Input.GetTouch (0).phase == TouchPhase.Began)
{
Ray ray = Camera.main.ScreenPointToRay( Input.GetTouch(0).position );
RaycastHit hit;
if ( Physics.Raycast(ray, out hit, Mathf.Infinity, mask))
{
Debug.Log("hit ui");
}
}
}
但是,当我按下 UI 上的按钮(它由画布、面板和一个要测试的按钮组成)时,什么也没有发生。但是,如果我在场景中放置一个立方体并将其分配给 UI 层,则会出现调试日志。
这是为什么?