当前位置: 首页 > news >正文

做旅游网站的设计感想网站第一步建立

做旅游网站的设计感想,网站第一步建立,网站编辑好做吗,建设一个app要多少钱文章目录 1. 定义2. 重要类和方法2.1 Ray2.2 从屏幕发出射线:2.3 Raycast2.4 RaycastAll2.5 RaycastHit 碰撞信息2.6 layerMask 让射线检测只检测指定层级的对象 1. 定义 在Unity中,射线检测(Raycasting)是一种常用的技术&#x…

文章目录

  • 1. 定义
  • 2. 重要类和方法
    • 2.1 Ray
    • 2.2 从屏幕发出射线:
    • 2.3 Raycast
    • 2.4 RaycastAll
    • 2.5 RaycastHit 碰撞信息
    • 2.6 layerMask 让射线检测只检测指定层级的对象

1. 定义

在Unity中,射线检测(Raycasting)是一种常用的技术,用于检测射线是否与场景中的物体相交。这在游戏开发中用于实现点击物体、射线武器的碰撞检测、角色与环境的交互等方面非常有用。

2. 重要类和方法

2.1 Ray

定义:表示从一个点沿着特定方向延伸的虚拟线段
属性:

  • direction 射线的方向。
  • origin 射线的原点。

构造函数:

public Ray (Vector3 origin, Vector3 direction);

在场景中绘制射线(仅在 Debug 下可见):

 // 创建射线
Ray ray = new Ray(Vector3.zero, Vector3.forward);// 在场景中绘制射线,可选操作(仅用于调试目的)
Debug.DrawRay(ray.origin, ray0.direction * 10f, Color.red);

2.2 从屏幕发出射线:

Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

void Update()
{if (Input.GetMouseButton(0)) {Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);Debug.DrawRay(ray.origin, ray.direction * 10f, Color.red);}}

2.3 Raycast

定义:射线检测获取相交的单个物体,它可以检测射线是否与某个物体相交,如果相交,还可以获取有关交点的信息

bool Raycast(Ray ray, out RaycastHit hitInfo, float maxDistance, int layerMask);
参数含义:
Ray——射线对象
RaycastHit——碰撞(相交)对象信息
maxDistance——射线检测的最大距离
layerMask——层蒙版(用于只检测特定层对象)
返回值含义:
bool——当射线和物体相交时返回true

void Update()
{if (Input.GetMouseButtonDown(0)) {Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);RaycastHit hitInfo;if (Physics.Raycast(ray, out hitInfo)){// 射线与物体相交Debug.Log($"Name:{hitInfo.collider.name},Point:{hitInfo.point}");}}
}

在这里插入图片描述

2.4 RaycastAll

定义:射线检测获取相交的多个物体
RaycastHit[] RaycastAll(Ray ray, float maxDistance, int layerMask);
RaycastHit[]——当射线和物体相交时,返回相交的物体们,如果没有碰撞到,数组长度为0

void Update()
{if (Input.GetMouseButtonDown(0)) {Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);RaycastHit[] hitInfos;hitInfos = Physics.RaycastAll(ray, int.MaxValue);// 射线与物体相交foreach (var item in hitInfos){Debug.Log($"Name:{item.collider.name},Point:{item.point}");}       }
}

在这里插入图片描述

2.5 RaycastHit 碰撞信息

在这里插入图片描述

2.6 layerMask 让射线检测只检测指定层级的对象

LayerMask.NameToLayer(层名):根据层名字转换为层编号的方法
层编号:
在这里插入图片描述
1 << LayerMask.NameToLayer(“Cube”)

void Update()
{if (Input.GetMouseButtonDown(0)) {Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);RaycastHit hitInfo;// 1 << LayerMask.NameToLayer("Cube") 将 1 左移得到的层级编号位数,得到层级编号的二进制if (Physics.Raycast(ray, out hitInfo, int.MaxValue, 1 << LayerMask.NameToLayer("Cube"))){// 射线与物体相交Debug.Log($"Name:{hitInfo.collider.name},Point:{hitInfo.point}");}}
}

在这里插入图片描述

http://www.yayakq.cn/news/413322/

相关文章:

  • vps网站空间网站 设计 深圳
  • 网页制作工具可以发布网站吗百姓网找房子租房
  • 做网站创新互联凡科互联网科技股份有限公司
  • 建设网站目的修改wordpress pages
  • 可以做用户旅程图的网站宁夏住房和城乡建设局网站
  • jsp淘宝客网站注册网站账号审核不通过无法登陆怎么办
  • 天津创思佳网络网站制作公司商户网站建设
  • 自己做淘宝返利网站同安区建设局网站
  • 网站开发实验心得ps培训班要学多久多少钱
  • 镇江网站建设制作企业上海建网站开发公
  • 内蒙古住房和城乡建设部网站wordpress添加源码
  • 江山网站设计定制营销产生的原因
  • 自适应企业建站企业html网站开发教程
  • 哪个软件可以做网站哈尔滨网站制作工具
  • 翡翠原石网站首页怎么做淘宝店铺代运营一般怎么收费
  • 网站开发文档编写网站模版更新公告
  • 扁平风格网站 模板免费下载康定网站建设公司
  • 网站配色的方案开网店教学
  • 个人想做企业网站备案查收录网站
  • 微信推广网站建设公司注册网上核名官网
  • 申请手机网站客户关系管理案例经典
  • 企业网站模板 html大恒建设集团有限公司网站
  • 前端开发需要的软件360优化大师下载
  • 任丘网站制作公司工资8000以上的工作
  • 网站建设scyiyouwordpress竞猜插件
  • wordpress 建站wordpress雪樱主题破解
  • 1元云购网站怎样建设网页模板之家免费下载
  • 教育主管部门建设的专题资源网站是常用的erp系统
  • 哪里网站建设公司比较好代理记账一个月多少钱一个月
  • 说说网站建设百度收录减少问题电子商务网站推广的主要方式