[Unity]射线的简单应用和对UGUI的检测
2024-10-20 11:54:05
最近做的小游戏,需要通过触屏来控制移动,主要做法就是在Update中检测Input.TouchCount,但是问题是会盖住UGUI的Button事件,第一时间想到射线检测
常用射线
Unity有射线类Ray和Physics.Raycast()Physics.Linecast()等,他提供强大的API,主要可以从某点发射射线,包括给射线长度和在哪一层检测(LayerMask)
通常的应用就是鼠标点击位置发射射线,对碰到的第一个物体做出反应(FPS游戏)
或者以角色为中心,向一个方向发射射线检测是否在边缘或者是否在地面上(比如向下发射一个很短的射线,如果碰到了地面则表示角色处于地面上而非落下或者跳起状态)
但是这种射线要求被检测物体必须有碰撞器(Collider)
UGUI的检测
所以当想要用射线对UGUI检测时,必须给UGUI绑定碰撞器
而除了加碰撞器外,还可以利用UGUI的EventSystem检测
EventSystem.current.IsPointerOverGameObject();//此方法返回bool值
(如果检测触摸Input.Touch,参数传入Input.GetTouch(0).fingerId)
此方法可以判断是否点击到了UI,但是被检测UI必须勾选RayCast Target
当然还有很多检测方法,比如重载Unity的一些接口如IPointerXXX系列
最新文章
- Vs2010在C#类文件头部添加文件注释的方法
- spring来了-04-AOP
- hadoop的kerberos认证
- 2015第29周六Spring
- Paho - MQTT C Cient的实现
- 手把手教你树莓派实现简易室内监控系统(A)
- webpack优化相关操作
- Python 中写一个装饰器实现限制频率访问
- Linux多线程编程,为什么要使用线程,使用线程的理由和优点等
- Unity 查找泛型List中的相同与不同数据
- Button中command后面函数添加参数解决方法
- 记一次MongoDB裸奔
- linux 之sed
- Java file方法的路径特性
- HDU3480_区间DP平行四边形优化
- SPOJ MKTHNUM &; POJ 2104 - K-th Number - [主席树模板题]
- nohup 与 &;
- nginx安装第三方模块
- nginx 上php不可写解决方法
- 【vue】父向子组件传参、子组件向父传参
热门文章
- Generator(生成器),入门初基,Coroutine(原生协程),登峰造极,Python3.10并发异步编程async底层实现
- MyBatis四大参数两种写法
- 【深入浅出Seata原理及实战】「入门基础专题」探索Seata服务的AT模式下的分布式开发实战指南(2)
- Java集合 - ConcurrentHashMap
- (11)go-micro微服务雪花算法
- 真正“搞”懂HTTP协议08之重定向
- 基于 VScode 搭建 Qt 运行环境
- Blazor入门100天 : 身份验证和授权 (2) - 角色/组件/特性/过程逻辑
- 普冉PY32系列(四) PY32F002/003/030的时钟设置
- ubuntu20.04安装systemback