unity判断点击的是不是ui_Unity 检查点击是否在UI上

这是一个Unity脚本示例,用于判断用户点击时是交互到了UI元素还是3D物体。当点击在UI上时,会输出"是UI";否则,将使用射线检测判断是否点击了名为"Cube"的物体,并改变其颜色。同时,该脚本也处理了在Android和iOS设备上的触摸事件,区分UI触摸和3D物体交互。
摘要由CSDN通过智能技术生成

using UnityEngine;

using UnityEngine.EventSystems;

///

/// 脚本位于Canvas画布上

///

public class PointerPenetrate : MonoBehaviour

{

///

/// cube

///

public GameObject cube;

void Update()

{

//按下鼠标左键

if (Input.GetMouseButtonDown(0))

{

//当前检测到的是否是UI层

if (EventSystem.current.IsPointerOverGameObject())

{

//是UI的时候,执行相关的UI操作

Debug.Log("是UI");

}

else

{

//不是UI层的时候,执行其它操作

Debug.Log("不是UI");

//射线检测

Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

//定义射线检测器

RaycastHit hitInfo;

if (Physics.Raycast(ray, out hitInfo))

{

//如果当前射线检测到的对象的名字是cube

if (hitInfo.collider.name == "Cube")

{

//改变cube的颜色,随机一个颜色

cube.GetComponent().material.color =

new Color(Random.value, Random.value, Random.value, 1.0f);

}

}

}

}

//【更新内容】安卓IOS上判断是否点击在UI还是3D物体

if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began)

{

if (EventSystem.current.IsPointerOverGameObject(Input.GetTouch(0).fingerId))

{

Debug.Log("Hit UI, Ignore Touch");

}

else

{

Debug.Log("Handle Touch");

}

}

}

}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值