Unity 点击UI与点击屏幕冲突的解决方案

Unity 有点击屏幕进行移动操作,通过Input.GetMouseButtonDown(0)。如果点击到了一些UI上面会触发点击屏幕事件。

引入UnityEngine.EventSystems,用函数判断一下即可

Unity 点击UI与点击屏幕冲突的解决方案_第1张图片

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;
using UnityEngine.EventSystems;
public class PlayerController : MonoBehaviour
{
    private void Update()
    {
        if (EventSystem.current.IsPointerOverGameObject()) return;
        if (Input.GetMouseButtonDown(0))
        {
            Debug.Log("点击屏幕");
        }
    }
}

这个方法会将点击Text的时候也会当作点击UI

将raycast target 取消勾选可以避免。

Unity 点击UI与点击屏幕冲突的解决方案_第2张图片

补充:unity点击UI跟场景不冲突

unity点击UI跟场景不冲突的方法

在射线检测后加!EventSystem.current.IsPointerOverGameObject()即可

需要引入命名空间using UnityEngine.EventSystems;

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

你可能感兴趣的:(Unity 点击UI与点击屏幕冲突的解决方案)