Unity3D笔记 英保通十 射线碰撞器检测
射线碰撞检测可以用来检测方向和距离: 通过Physics.RayCast光线投射来实现:常用于射击利用发射的射线来判断、还有对战中刀剑交战中。。
一、要涉及到RayCast和RayCastHit
1.1、光线投射:Physics.RayCast()
static function Raycast (origin : Vector3, direction : Vector3, distance : float = Mathf.Infinity, layerMask : int = kDefaultRaycastLayers) : bool
返回值也是bool
- origin:在世界坐标,射线的起始点。
 - direction:射线的方向
 - distance:射线的长度
 - layerMask:只选定Layermask层内的碰撞器,其它层内碰撞器忽略。
 
1.2、RayCastHit() 光线投射检测
用来获取从raycast函数中得到的信息反馈的结构。
二、案例
using UnityEngine;
using System.Collections; public class rayCast : MonoBehaviour { private RaycastHit rayHit;//光线投射碰撞:用来获取从raycast函数中得到的信息反馈的结构。 // Use this for initialization
void Start () { } // Update is called once per frame
void Update () {
if (Physics.Raycast(transform.position, transform.forward,out rayHit, ))
{
Debug.Log("碰撞检测到第一人称碰撞到了"+rayHit.collider.name);
}
}
}
RayCastHit参数:
- 
The impact point in world space where the ray hit the collider.
在世界空间中,射线碰到碰撞器的碰撞点。 - 
The normal of the surface the ray hit.
射线所碰到的表面的法线。 - 
The barycentric coordinate of the triangle we
hit.
所碰到的三角形的重心坐标。 - 
The distance from the ray's origin to the impact
point.
从光线的原点到碰撞点的距离。 - 
The index of the triangle that was hit.
碰到的三角形的索引。 - 
The uv texture coordinate at the impact
point.
在碰撞点的UV纹理坐标。 - 
The secondary uv texture coordinate at the impact
point.
碰撞点的第二个UV纹理坐标。 - 
The uv lightmap coordinate at the impact
point.
所在碰撞点的光照图UV坐标。 - 
The Collider that was hit.
碰到的碰撞器。 - 
The Rigidbody of the collider that was hit. If the collider
is not attached to a rigidbody then it is
null.
碰到的碰撞器的Rigidbody。如果该碰撞器没有附加刚体那么它为null。 - 
The Transform of the rigidbody or collider that was
hit.
碰到的刚体或碰撞器的变换。 
Unity3D笔记 英保通十 射线碰撞器检测的更多相关文章
- Unity3D笔记 英保通八 关节、 布料、粒子系统
		
一.关节1.1..链条关节 Hinge joint :他可以模拟两个物体间用一根链条连接在一起的情况,能保持两个物体在一个固定距离内部相互移动而不产生作用力,但是达到固定距离后就会产生拉力 1.2.. ...
 - Unity3D笔记 英保通七  物理引擎
		
给球体添加刚体RigidBody和球体碰撞器Sphere Collider 效果: OnTriggerEnter() 代码 using UnityEngine; using System.Collec ...
 - Unity3D笔记 英保通六 角色控制器
		
一.角色控制器 U3D有两种角色控制方式:Rigidbody刚体.角色控制器组件(胶囊体组件) 面试的题目中经常会遇到这个问题: CharacterController和Rigidbody的区别? 这 ...
 - Unity3D笔记 英保通一
		
一.材质和着色器 1.材质和着色器紧密的联系,其中材质相当于是一个框架,而着色器就是框架中中的内容.在材质框架中可以选择不同的Shader并调节不同的 属性 Material和Physic Mater ...
 - Unity3D笔记 英保通九 创建数
		
Unity中创建树:可以直接通过程序自动来创建树木还可以手动创建树木(本质上在我看来就是给程序自动创建的树动动”小手术“) 一.程序自动创建树木 3.1.层次视图中创建:一个平行光.摄像机.地.数并且 ...
 - Unity3D笔记 英保通五 鼠标事件与GUI系统双击检测
		
一.如何使用GUI事件来检测鼠标是否按下的事件: 获取当前事件:var e:Event=Event.current: using UnityEngine; using System.Collectio ...
 - Unity3D笔记 英保通四 虚拟轴应用及键盘事件
		
Input: 1.使用这个类能够读取输入管理器设置的按键,以及访问移动设备的多点触控或加速感应数据.想要读取轴向使用Input.GetAxis方法获取下列默认轴: "Horizontal&q ...
 - Unity3D笔记 英保通三 脚本编写 、物体间通信
		
一.脚本编写 1.1.同一类型的方法JS和C#的书写方式却不一样主要还是语法,在工程中创建一个Cube 分别把JSTest.js和CSharp.cs 添加到Cube中 JSTest.js #pragm ...
 - Unity3D笔记 英保通二
		
一.访问另一个物体 1.代码中定义一个public的物体 例如:var target:Transform; 在面板上直接拖拽一个物体赋值给target 2.通过GameObject.Find(&quo ...
 
随机推荐
- Android Material Design控件学习(三)——使用TextInputLayout实现酷市场登录效果
			
前言 前两次,我们学习了 Android Material Design控件学习(一)--TabLayout的用法 Android Material Design控件学习(二)--Navigation ...
 - koa2使用阿里云oss的nodejs sdk实现上传图片
			
nodejs实现上传图片到阿里云,自然是写成接口形式比较方便,前端监听input file的改变,把file对象传入到formData中传入后端,不能直接传入file对象,后端需要接受formData ...
 - 点击除元素以外的任意地方隐藏元素js
			
比如想实现点击列表弹出筛选器,点击其他任意地方关闭筛选器,如图 该筛选器class名 $(document).click(function () { $(".subMenu").h ...
 - MongoDB数据直接转移
			
本方法较为暴力,有待验证,重要资料切勿使用.... 1.把一台电脑上MongoDB的--dbpath 下的文件夹 直接复制过来,放在新设备上 2.写个可爱的批处理文件 其实,就是改了个--dbpat ...
 - 解决计算机改名无法连接TFS的问题
			
闲着没事改了下计算机名字,结果造成TFS无法连接. 报错讯息如下: ---------------------------Microsoft Visual Studio---------------- ...
 - “NHibernate.Cfg.Configuration 的类型初始值设定项引发异常。”的解决方法【备忘】
			
今天搞到NHibernate时,突然报了一个“NHibernate.Cfg.Configuration 的类型初始值设定项引发异常.”的异常. 详细异常信息“System.IO.FileLoadExc ...
 - Base64编码——学习笔记
			
Base64是一种编码方式. 非加密 chcp->936 编码流程: 位数不够后面补0,例中补了2个0. 末尾加=表示结束符. GB2312,有些敏感词不能显示. GBK,是GB2312升级版. ...
 - 简单了解一下什么是Django或者说Django是做什么的?
			
Django是什么? Django是一个基于Python的Web应用框架.它与Python的另外一个Web 框架 Flask最大的区别是,它奉行 “包含一切” 的哲学.该理念即为:创建 Web 应用所 ...
 - javascript的闭包计数器实现,python实现各种方法来实现计数器
			
菜鸟教程的javascript闭包章节中,演示了js计数器的实现. 教程地址 http://www.runoob.com/js/js-function-closures.html 代码1 var ...
 - [原]unity3D bug记录
			
1.u3d 发出的xcode工程 崩溃出现这种信息 Display::DisplayLinkItem::dispatch() 到AppController.mm 修改成这样 - (void) Repa ...