射线检测

作者: bde04638cca8 | 来源:发表于2016-10-21 14:52 被阅读65次

首先理解一下什么叫射线。射线相当于物体发射的了一条无限延伸的激光线,当他遇到物体的时候,会返回碰撞信息。

再来通过这个熟悉下几个函数的实用。

//定义一个变量收集碰撞信息
RaycastHit hitinfo;
//摄像机向鼠标点击的位置发射一根射线
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); 
//检测是否碰撞到物体,若有,destroy          
if(Physics.Raycast(ray, out hitinfo)){
    Destroy(hitinfo.collider.gameObject);            
}

第二种比较常见的发射射线的情景,比喻主角是否在地上的检测。
第一步,先把锚点定义在主角的脚步,因为射线会从锚点的位置射出。
例如

锚点位置.png

第二步,从锚点的位置向地面发射一个很短的射线,如果碰撞到了,就是在地面上,如果没有,则人物是跳起状态。(先把地面Layer设置成ground 层)


ground.png
RaycastHit hitinfo;
//获取地面layer
  int groundLayerMask = LayerMask.GetMask("ground");
 //判断主角的状态
 isGround =Physics.Raycast(transform.position + Vector3.up *0.1f,Vector3.down,out hitinfo,0.2f,groundLayerMask);

相关文章

  • 射线检测

    首先理解一下什么叫射线。射线相当于物体发射的了一条无限延伸的激光线,当他遇到物体的时候,会返回碰撞信息。 再来通过...

  • 射线检测

    [玩转UE4动画系统>基础篇] 之 什么是射线检测[https://orzgame.blog.csdn.net/a...

  • 射线与球的相交

    今天来说说射线和球的相交检测。 从图形来说 ![射线和圆相交, origin是射线起点, dir是射线的方向向量。...

  • UGUI射线检测

    1.Graphic Raycaster 主要用于UI上的射线检测,挂有这个组件的物体,必须要挂上Canvas这个组...

  • 射线检测-unity

    与最近物体碰撞取得位置: 与指定层的物体碰撞: 另外collider相当于游戏物体了

  • Unity射线检测

    Physics.RayCast方法发射射线,射线碰撞的信息存在RaycastHit中。 Camera.main.S...

  • 射线+获取当前Animator动画片段名字+双击+获取时间+Sc

    //射线检测 RaycastHit hit; void Update () { if (Input.GetMous...

  • unity SteamVR 2.2.0 手柄控制瞬移

    目的:简化脚本,并深入学习VR 注:本次只有相机移动,并无手柄的射线检测 原理:手柄发射射线:检测到地板,返回一个...

  • Unity 之 plane.Raycast 射线检测

    原来一直用Physics.Raycast或者对应的2D射线检测,今天无意中发一个有趣射线检测,话不多说直接上示例 ...

  • Unity学习笔记——地图上放置和移动建筑(未完成)

    具体思路为鼠标向建筑发射一条射线,建筑沿着方向再发射一条射线检测是否有其他建筑,但是这样是以点来检测的,需要改为范...

网友评论

    本文标题:射线检测

    本文链接:https://www.haomeiwen.com/subject/hxqcuttx.html