加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > C语言 > 正文

Unity点击UI时不与3D物体交互

发布时间:2020-12-15 01:15:32 所属栏目:C语言 来源:网络整理
导读:解决方案1:2D转3D UI底背景铺一个热区 当点击到该热区时说明不被其他UI遮挡 这时再用该点发射3D射线 进行3D的碰撞检测 解决方案2:3D阻挡 用EventSystem.current.IsPointerOverGameObject()方法判断鼠标是否在UI上 public class Test : MonoBehaviour { pri

解决方案1:2D转3D
UI底背景铺一个热区 当点击到该热区时说明不被其他UI遮挡 这时再用该点发射3D射线 进行3D的碰撞检测

解决方案2:3D阻挡
用EventSystem.current.IsPointerOverGameObject()方法判断鼠标是否在UI上

public class Test : MonoBehaviour {

private void Update() {
    CheckMouseInput();
}

// 检测鼠标输入
private void CheckMouseInput() {
    // 左键点击
    if (Input.GetMouseButton(0) && !EventSystem.current.IsPointerOverGameObject()) {
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hit;
        if (Physics.Raycast(ray,out hit)) {
            // OK
        }
    }
}

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读