【Unity3D】Raycast使用
来源:互联网 发布:微谱数据库怎么检索 编辑:程序博客网 时间:2024/06/06 13:24
1.鼠标点击控制移动
1)获得点击坐标,
2)根据坐标设置朝向
3)沿着朝向向前移动
4)当坐标与点击坐标距离小于规定值时停止移动
void Update () {
//点击瞬间改变朝向
if(Input.GetMouseButtonDown(0)&&UICamera.hoveredObject == null){
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hitInfo;
if(Physics.Raycast(ray,out hitInfo)){
if(hitInfo.collider.tag == tags.ground){
showClickEffect(hitInfo.point);
isMoving = true;
changeFaceTo(hitInfo.position);
}
}
}
if(Input.GetMouseButtonUp(0)){
isMoving = false;
}
//实时改变朝向
if(isMoving){
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hitInfo;
if(Physics.Raycast(ray,out hitInfo)){
if(hitInfo.collider.tag == tags.ground){
changeFaceTo(hitInfo.point);
}
}
}
}
2.NGUI击穿判断
与Camera不同,UICamera可以直接检测鼠标点击是否在NGUI控件上,不需要自己构造ray
1)获得点击坐标,
2)根据坐标设置朝向
3)沿着朝向向前移动
4)当坐标与点击坐标距离小于规定值时停止移动
2.NGUI击穿判断
与Camera不同,UICamera可以直接检测鼠标点击是否在NGUI控件上,不需要自己构造ray
if
}
3.任意碰撞检测
常规方法,创建自定义Ray,通过Ray是否与其他物体碰撞进行碰撞检测
Raycast(射线源头坐标,射线方向,碰撞信息,射线长度);
【注意】
1)直接以transform.position为射线源头坐标,可能会因为模型中心在模型脚底下方,使得无法触发碰撞,要检查模型中心坐标
2)射线碰撞检测不管被碰撞物体的collider的isTrigger是否勾选都能检测到
if(Physics.Raycast(rayOriginal.position,dir,out hitInfo,0.4f)){
if(hitInfo.collider.name == "Back Wall"){
Dead();
}
}
0 0
- 【Unity3D】Raycast使用
- 使用Unity3d的Physics.Raycast()的用法做子弹射击
- Unity3D Physics.Raycast 射线检测
- Unity3D Raycast, LayerMask的设置
- 【风宇冲】Unity3D教程宝典之Raycast
- Unity3D的射线检测Physics.Raycast
- unity3d Physics.Raycast和Ray(射线)
- 关于Unity3D中UnityEngine.Physics.Raycast的用法
- U3D开发学习之路--RayCast中layerMask的使用
- Unity官方教程|使用Raycast显示射击轨迹
- unity3d问题集 <3> 对Physics.Raycast和Ray(射线)的理解
- raycast navmesh
- Raycast用法
- 对Physics.Raycast和Ray(射线)的理解 和 分层layer的使用
- [Unity小技巧] 使用射线Raycast判断某个方向是否有碰撞体
- Unity 使用物理射线(Physics.Raycast),实现扇形区域碰撞检测三种方法
- Unity 使用物理射线(Physics.Raycast),实现扇形区域碰撞检测三种方法
- RayCast调试心得
- 项目三
- 链表经典问题汇总
- 算法分析与设计学习笔记
- C++ STL源码学习(之RB Tree篇)
- 数组中包含若干个0,去掉0,且数组的顺序不变
- 【Unity3D】Raycast使用
- newLISP数据拟合
- 10个SQL注入工具
- js 判断移动终端浏览器版本信息
- 【算法】A star algorithm
- 成佩涛—为什么CDN对移动客户端加速“没有”效果
- java TreeSet笔记
- Cocos2d-java中Activity控制Controller
- 杭电acm2029Palindromes _easy version