Unity3D碰撞与射线.doc_第1页
Unity3D碰撞与射线.doc_第2页
Unity3D碰撞与射线.doc_第3页
Unity3D碰撞与射线.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Unity3D碰撞与射线忽略碰撞有些时候我们不想让指定的两对象发生碰撞,即要忽略他们的碰撞。忽略碰撞情况下的限制:1. 保存场景时忽略状态不能保存。2. 只能在活动的对象物体上应用。如果用在失效的物体上,必须要调用一次physics. IgnoreCollision.例如:定义一个球ball,当鼠标点击时,小球向前移动穿过墙 public GameObject ball;void Start () Physics.IgnoreCollision(ball.collider,this.collider); void Update () if(Input.GetButtonDown(Fire1) ball.rigidbody.AddForce(0,0,100); 射线射线是3D世界中一个点向一个方向发射无终点的线。在unity3d中我们发射的射线一旦与其他的碰撞器发生碰撞,射线将停止发射。在游戏制作过程中我们可以通过判断射线是否发生了碰撞,并且可以判断射线和谁发生了碰撞。应用范围非常广泛,如射击类游戏中用它来判断是否射中目标。我们要想在游戏中发射一条射线,必须要有两个元素,一个起始点,一个方向。Ray.origin:射线起点Ray.direction:射线的方向创建一条射线的方法Ray (origin : Vector3, direction : Vector3)Origin是射线的起点,direction是射线的方向。首先在场景中创建一个CUBE,创建一个c#文件,并输入如下代码: void Update () /定义一条射线,起点为Vector3.zero终点为物体坐标 Ray ray=new Ray(Vector3.zero,transform.position); /定义一个光线投射碰撞 RaycastHit hit; /发射射线长度为100 Physics.Raycast(ray,out hit,100); /在Scene中生成这条射线,起点为射线的起点,终点为射线与物体的碰撞点 Debug.DrawLine(ray.origin,hit.point); Debug.DrawLine()方法只在Scene视图中才可以看到下面利用射线技术做的一个种豆游戏当我们用鼠标点击地面,在我们点击地面的位置生成Prefab的实例,就像种豆子一样。代码如下:void Update () /当鼠标点击时发生 if(Input.GetMouseButtonDown(0) /获取鼠标的位置 Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit;/定义一个射线 /判断是否发生碰撞 if (Physics.Raycast(ray, out hit, 100) /克隆一个方块并旋转 Instantiate(cube,hit.point

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论