Unity3D射线检测。

int groundLayerIndex = LayerMask.GetMask (Tags.Ground);

Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
RaycastHit hitInfo;
if(Physics.Raycast (ray, out hitInfo, 200, groundLayerIndex))
{
   Vector3 target = hitInfo.point;
    target.y = transform.position.y;
   transform.LookAt(target);
}
Ray ray = new Ray (transform.position,transform.forward);
RaycastHit hitInfo;
if(Physics.Raycast (ray, out hitInfo))
{
   lineRender.SetPosition(1,hitInfo.point);
}
else
{
   lineRender.SetPosition(1,transform.position + transform.forward * 100);
}
时间: 2024-07-30 10:31:29

Unity3D射线检测。的相关文章

Unity3D 之射线检测

这里来记录下射线检测的相关内容: 射线检测故名就是通过射线去检测是否和碰撞器产生了交集,和碰撞器与碰撞器发生交集一样,会返回一个真. 射线的用法很多:比如检测是否跳跃,通过向地面投射射线控制在地面时候可以跳起. 射击游戏中可以通过定长射线去判断目标物体是否被击中,等 主要用到的工具类是: Physics RaycastHit 光线投射碰撞 Ray 射线 第一种是: Physics.Linecast 线性投射 从开始位置到结束位置做一个光线投射,如果与碰撞体交互,返回真. Debug.DrawLi

unity3d之射线检测

问题:在<英雄联盟>里,你的鼠标在地图上点击在了哪里,你的英雄就会走到你所点击的地方,那么,用u3d如何来实现这个小小的功能呢??? 解决方案:做射线检测.首先你要准备两个东西(1):摄像机(这是射线的出发点)       (2):"碰撞信息"(用以记录射线与对象所产生的碰撞点的信息) 在u3d中创建一个空工程并添加一个c#脚本:RaycastTest.添加好我们刚才所说的两个东西:"摄像机"."碰撞信息",并初始化他俩(摄像机稍后再

【Unity3D】枪战游戏—发射子弹、射线检测

一.子弹的碰撞检测: 因为子弹的移动速度非常的快,那么如果为子弹添加一个collider,就有可能检测不到了. 因为collider是每一帧在执行,第一帧子弹可能在100米处,那么下一帧就在900米处了, 那么中间的障碍物就不能被检测到了. 所以就需要射线检测: 在每一帧的执行,都向上一帧发射射线,不断地检测射线中是否有穿过的障碍物体 1 void Update () { 2 transform.Translate (Vector3.forward * Speed * Time.deltaTim

unity3d 射线扫描 忽略图层

原地址:http://blog.csdn.net/w88193363/article/details/38331205 函数说明 static RaycastHit2D[] RaycastAll(Vector2origin,Vector2direction,float distance = Mathf.Infinity,int layerMask = DefaultRaycastLayers,float minDepth = -Mathf.Infinity,float maxDepth = Ma

unity 射线检测

unity中射线检测时非常实用也经常实用的一种手段.下面讲解一下射线检测问题. 1)Ray 根据射线端点和射线的方向定义一条射线 Ray ray= new Ray(transform.position, transform.forward); 定义一个包含射线投射信息的变量RaycastHit hit,并进行射线检测Physics.SphereCast RaycastHit hit; if(Physics.SphereCast(ray,1f,out hit)) { if(hit.distance

【转】 [UnityUI]UGUI射线检测

http://blog.csdn.net/lyh916/article/details/50947026 1.Graphic Raycaster 主要用于UI上的射线检测,挂有这个组件的物体,必须要挂上Canvas这个组件(当挂上Graphic Raycaster时Canvas也会自动挂上). Ignore Reversed Graphics:是否忽略反方向的图形,如果为true,则表示图形正面展示时,会接收到射线检测:反面展示时,不会接收到射线检测:否则,正反面展示都会接收到射线检测 Bloc

UGUI射线检测

1.Graphic Raycaster 主要用于UI上的射线检测,挂有这个组件的物体,必须要挂上Canvas这个组件(当挂上Graphic Raycaster时Canvas也会自动挂上). Ignore Reversed Graphics:是否忽略反方向的图形,如果为true,则表示图形正面展示时,会接收到射线检测:反面展示时,不会接收到射线检测:否则,正反面展示都会接收到射线检测 Blocking Objects:屏蔽指定类型的(物理)对象,使它们不参与射线检测.渲染模式不为ScreenSpa

反复横跳的瞄准线!从向量计算说起!基于射线检测的实现!Cocos Creator!

最近有小伙伴问我瞄准线遇到各种形状该怎么处理?如何实现反复横跳的瞄准线?最近刚好在<Cocos Creator游戏开发实战>中看到物理系统有一个射线检测,于是,基于这个射线检测,写了一个反复横跳的瞄准线效果.一起往下看吧!文章底部获取完整项目! 国际惯例,先上最终效果! 在讲解之前我们需要一些向量的知识,简单的介绍一些吧! 向量的加法,OA + AB = OB 向量的点乘,表示一个向量在另一个向量上的投影,是个标量,有正负之分.向量夹角小于 90度 为正数,等于 90度 为 零,大于 90度

canvas射线检测

public class someclass:monobehaviour { public EventSystem eventssystem;    public GraphicRaycaster gra;    /// <summary>    /// 射线检测    /// </summary>    /// <param name="Name"></param>    /// <returns></returns&