虚拟现实程序开发 6.物理引擎 6.4 射线.docx

虚拟现实程序开发 6.物理引擎 6.4 射线.docx

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
虚拟现实交互程序设计 2 - 6.物理引擎 ——6.4 射线 在Unity中还提供了一种射线检测的方式,使用此种方式用户可以使用一条看不见的具有一定长度的射线来检测是否与其他的碰撞器之间发生了接触。射线就是从一个点往一个方向,发射一根无限长的射线,这根射线与场景中的其余的游戏物体的碰撞器组件相碰撞,射线即结束。由于射线可以与物理组件Collider相交互,所以射线也称之为“物理射线”。 创建射线 Ray射线类和RaycastHit射线投射碰撞信息类是两个最常用的射线工具类。 (1)创建一条射线Ray需要指明射线的起点(origin)和射线的方向(direction)。 (2)RaycastHit类用于存储发射射线后产生的碰撞信息。 (3)Physics.Raycast静态函数用于在场景中发射一条可以和碰撞器碰撞的射线。 (4)在调试时如果想显示一条射线,可以使用Debug.DrawLine来实现。 射线相关的方法 针对向屏幕上的某一点发射射线,Unity提供了两个函数以供使用,分别是ScreenPointToRay和ViewportPointToRay。 (1)Ray Camera.main.ScreenPointToRay(Vector3 position) (2)Ray Camera.main.ViewportPointToRay(Vector3 position) 【课堂练习】利用射线实现鼠标点击平面某一位置,角色就移动到指定位置。 public class PlayerController : MonoBehaviour { /*实现功能:在场景中鼠标点击地面后,角色可以移动到目标位置*/ publicfloat speed; //角色移动速度 private Vector3 target; //目标位置 privatebool isOver = true; //移动是否结束 void Update () { if (Input.GetMouseButtonDown (0)) { //1.获取鼠标点击时的目标位置/目标点 //1)创建射线——从摄像机发射出一条经过鼠标当前位置的射线 Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); //2)发射射线 RaycastHit hit=new RaycastHit(); if (Physics.Raycast (ray, out hit)) { //获取碰撞点的位置 if(hit.collider.name==Plane) { target = hit.point; target.y = 0.5f; isOver = false; } } } //2.让角色移动到目标位置/目标点 MoveTo(target); } private void MoveTo(Vector3 tar) { if (!isOver) { Vector3 v1 = tar - transform.position; //当前位置指向目标位置的向量 transform.position += v1.normalized * speed * Time.deltaTime; //向量由两部分组成:使用方向*大小 if (Vector3.Distance(tar, transform.position) = 0.1f) { //判断角色是否到达目标位置 isOver = true; transform.position = tar; } } } }

您可能关注的文档

文档评论(0)

WanDocx + 关注
实名认证
内容提供者

大部分文档都有全套资料,如需打包优惠下载,请留言联系。 所有资料均来源于互联网公开下载资源,如有侵权,请联系管理员及时删除。

1亿VIP精品文档

相关文档