Unity3D之物理射线
射线:从一个点往一个方向,发射一根无限长的射线,这根射线会与场景中带有 Collider 组件的物体发生碰撞。
射线的使用:
public class Test
{
private void Start()
{
if (Input.GetMouseButtonDown())
{
//从主摄像机发射一条射线至鼠标点击的位置。
Ray ray1 = Camera.main.ScreenPointToRay(Input.mousePosition);
//从自己的位置,向世界坐标轴的 forward 方向发射一条射线。
Ray ray2 = new Ray(this.transform.position, Vector3.forward);
//声明一个 RaycastHit 类型的变量,存储射线的碰撞信息。
RaycastHit hitInfo;
//检查射线是否碰撞到物体
if (Physics.Raycast(ray1,out hitInfo))
{
//执行代码
}
}
}
}
根据上面的代码:
hitInfo.point:表示碰撞点的坐标。
Physics.Raycast():使用这个方法检测射线时,因为该方法重载很多,一定要弄清楚自己使用的是哪个重载方法,填对参数,不然很容易出错。
因为射线是看不见的,我们可以通过画线的方式来模拟射线,方便我们调试,方法如下:
Debug.DrawRay(Vector3 pos,Vector3 dir,Color c):画线。
pos:起点坐标。
dir:方向。
c:颜色。
Unity3D之物理射线的更多相关文章
- Unity3d 基于物理渲染Physically-Based Rendering之最终篇
前情提要: 讲求基本算法 Unity3d 基于物理渲染Physically-Based Rendering之specular BRDF plus篇 Unity3d 基于物理渲染Physically-B ...
- [原]Unity3D深入浅出 - 物理材质(Physics Materials)
在Unity3d中已经配置好了5种常用的物理材质,Bouncy.Ice.Metal.Rubber.Wood,在菜单中依次选择Assets - Import Package - Physics Mate ...
- [原]Unity3D深入浅出 - 物理引擎之碰撞体(Colliders)
通常Colliders会与Rigidbody一起使用,没有添加碰撞体的刚体会彼此相互穿过. 常用碰撞体有以下几种: Box Collider:盒子碰撞体,是一个立方体外形的碰撞体,可调整为不同大小的长 ...
- 【Unity3d】Ray射线初探-射线的原理及用法
http://www.xiaobao1993.com/231.html 射线是一个无穷的线,开始于origin并沿着direction方向. 当射线碰到物体后.它就会停止发射. 在屏幕中拉一个CUBE ...
- unity3d 基于物理渲染的问题解决
最近1个月做了unity 次世代开发的一些程序方面的支持工作,当然也是基于物理渲染相关的,主要还是skyshop marmoset的使用吧,他算是unity4.x版本 PBR的优秀方案之一了但在使用以 ...
- Unity3d:播放物理目录下的MP3文件
u3d里,是支持播放MP3文件的,但要放到资源里,不支持播放物理目录下的MP3文件.由于界面上无需显示,只是当作背景音乐来播放,所以想到调用c#的组件来解决此问题.主要代码都在附件中,根据需要加到自己 ...
- Unity3d 基于物理渲染Physically-Based Rendering之specular BRDF
在实时渲染中Physically-Based Rendering(PBR)中文为基于物理的渲染它能为渲染的物体带来更真实的效果,而且能量守恒 稍微解释一下字母的意思,为对后文的理解有帮助,从右到左L为 ...
- [原]Unity3D深入浅出 - 物理引擎之刚体部件(Rigidbody)
在虚拟世界中,任何物体都是没有活力的,要想变的真实,Rigidbody是必不可少的组件,下面介绍Rigidbody的各个属性: Mass:质量 Drag:阻力,对象在运动时遇到的空气阻力,0表示没有空 ...
- Unity3d 基于物理渲染Physically-Based Rendering之实现
根据前文的例子http://blog.csdn.net/wolf96/article/details/44172243(不弄超链接了审核太慢)弄一下真正的基于物理的渲染逃了节课= =,弄了一下.公式和 ...
随机推荐
- Node学习笔记(三)
1.EventEmitter常用的API EventEmitter.on(event, listener) 为指定事件注册一个监听器,接受一个字符串 event 和一个回调函数 listener. E ...
- 5-安装sqoop
1.解压,修改权限 sudo tar -zvxf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz -C /opt/app/ sudo chown -R hadoo ...
- 深入理解volatile
volatile知识点 --------------------------------------------------------------------------- 1.volatile关键 ...
- python实战博客
2018-10-31 更新Logging日志记录以及异常捕获 感谢廖大教程.Python实战 直接在闲置的服务器上开发.阿里云Centos 6.8 64位. 1 搭建开发环境 Python 环境是Py ...
- orcal 安装失败解决办法
若安装失败
- leetcode79
class Solution { public boolean exist(char[][] board, String word) { for(int i=0; i<board.length; ...
- leetcode142
public class Solution { public ListNode detectCycle( ListNode head ) { if( head == null || head.next ...
- java.util.HashSet, java.util.LinkedHashMap, java.util.IdentityHashMap 源码阅读 (JDK 1.8.0_111)
一.java.util.HashSet 1.1 HashSet集成结构 1.2 java.util.HashSet属性 private transient HashMap<E,Object> ...
- Java ArrayList调用构造方法传入"容量size"不生效,如何初始化List容量size
创建一个ArrayList对象,传入整型参数 @Test public void arrayListConstructor(){ ArrayList<Object> objects = n ...
- IntelliJ IDEA2017 激活方法 最新的(亲测可用)
IntelliJ IDEA2017 激活方法(亲测可用): 搭建自己的授权服务器,对大佬来说也很简单,我作为菜鸟就不说了,网上有教程. 我主要说第二种,现在,直接写入注册码,是不能成功激活的(如果你成 ...