记录:Unity脚本的编写9.0
目录
- 射线
- 一些准备工作
- 编写代码
突然发现好像没有写过关于射线的内容,我就说怎么总感觉好像少了什么东西(心虚
那就在这里写一下关于射线的内容吧,将在这里实现射线检测鼠标点击的功能
射线
射线是一种在Unity中检测碰撞器或触发器的方法,可以用来实现一些交互效果,如鼠标点击物体,射击游戏,射线跟踪等。射线需要有一个起点和一个方向,可以通过代码创建或者使用Camera.main.ScreenPointToRay方法从摄像机发出。射线检测的结果可以通过RaycastHit结构体获取,包括碰撞点,碰撞物体,碰撞法线等信息。射线检测还可以指定检测的层级,距离,角度等参数,以提高性能和精度
碰撞检测可以帮助我们实现诸如抵达某个地点自动触发剧情、判断子弹是否击中玩家等功能,但我如果想要实现如当鼠标悬浮某个人物上,自动弹出该人物信息,要如何判断呢?这时使用碰撞检测,从摄像机生成一个透明碰撞体朝着人物移动,等碰撞到了人物再弹出该人物信息?会不会太繁琐了。或许你又会想,若我直接生成一个足够长的透明碰撞体呢,是不是在创建的那一刻就可以触发该人物的弹出信息逻辑?没错这样的确可以,而这就是射线!不过是把无限长的透明碰撞体变为了无限长的一条线,仅此而已
一些准备工作
新建一个物体(或者对象?反正就是类似的东西),使得摄像机也就是MainCamera能看到它,也能是我们能够触摸到它,毕竟我们需要一个可以看到的物体来发射射线以达到我们想要的结果,给这个物体添加刚体组件(不然怎么进行碰撞检测?)

编写代码
private void learnRay()
{if (Input.GetMouseButtonDown(0)){//创建一道射线Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);//检测射线if (Physics.Raycast(ray,out RaycastHit hitInfo)){//hitInfo.transform.Translate(transform.up * 10);//Debug.Log(hitInfo.transform.name);//rb.AddForce(transform.up * 500);//Debug.Log(hitInfo.transform.name);//Debug.Log(hitInfo.point);//hitInfo.point; //射线撞击点GameObject shell = Instantiate(Sphere,transform.position+transform.right*offset,transform.rotation);shell.GetComponent<Rigidbody>().velocity = Vector3.Normalize(hitInfo.point - transform.position) * 20;// 计算小球的动量//Vector3 ballMomentum = shell.GetComponent<Rigidbody>().velocity * shell.GetComponent<Rigidbody>().mass;// 给物体施加一个与小球相反方向的同等大小的力,抵消小球的反作用力//rb.AddForce(-ballMomentum, ForceMode.Impulse);}}
}
碰撞检测也不能少
//碰撞检测的方法
private void OnCollisionEnter(Collision collision)//碰撞发生时
{//Destroy(collision.transform.gameObject);Debug.Log("刚碰到");
}
private void OnCollisionExit(Collision collision)//碰撞结束时
{Debug.Log("碰完了");
}
private void OnCollisionStay(Collision collision)//正在碰撞时
{Debug.Log("");
}
private void OnTriggerEnter(Collider other)
{Debug.Log("进来");
}
private void OnTriggerStay(Collider other)
{//Debug.Log("other.transform.name");//rb.AddForce(transform.up * 50);rb.AddForce(transform.up*10);}
private void OnTriggerExit(Collider other)
{Debug.Log("run");
}
当然,在这个脚本中,采用的方法是预先准备一个预制体,也就是代码中的“Sphere”,所以同时需要预先准备一个预制体,无所谓是什么,但是要和代码中相对应,否则会出现一些不可预料的问题
挂载脚本后运行

每当鼠标点击的时候就会触发射线,对预制体进行复制来发射一个小球
相关文章:
记录:Unity脚本的编写9.0
目录 射线一些准备工作编写代码 突然发现好像没有写过关于射线的内容,我就说怎么总感觉好像少了什么东西(心虚 那就在这里写一下关于射线的内容吧,将在这里实现射线检测鼠标点击的功能 射线 射线是一种在Unity中检测碰撞器或触发器的方法&am…...
共享单车停放(简单的struct结构运用)
本来不想写这题的,但是想想最近沉迷玩雨世界,班长又问我这题,就草草写了一下 代码如下: #include<stdio.h> #include<math.h> struct parking{int distance;int remain;int speed;int time;int jud; }parking[50]; …...
【Java8系列07】Java8日期处理
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
为什么做CSGO搬砖的不直接去炒股呢?
首先,CS2并非只有一个交易平台,阿阳个人觉得像IGXE等交易平台一样是交易,况且我记得很早的时候我就开始用IGXE了,我记得最早的时候还是机器人发货,后来因为V社对于很多开箱网站的管控,所以让这种发货的方式…...
12月01日,每日信息差//阿里国际发布3款AI设计生态工具//美团买菜升级为“小象超市”//外国人永居证换新、6国游客免签来华
_灵感 🎖 阿里国际发布3款AI设计生态工具 🎄 AITO问界系列11月交付新车18827辆 🌍 美团买菜升级为“小象超市” 🌋 全球首个金融风控大模型国际标准出炉,由腾讯牵头制定 🎁 支付宝:支持外国人…...
ChatGPT探索:提示工程详解—程序员效率提升必备技能【文末送书】
文章目录 一.人工智能-ChatGPT1.1 ChatGPT简介1.2 ChatGPT探索:提示工程详解1.2 提示工程的优势 二.提示工程探索2.1 提示工程实例:2.2 英语学习助手2.3 Active-Prompt思维链(CoT)方法2.4 提示工程总结 三.文末推荐与福利3.1《Cha…...
Pytest做性能测试?
Pytest其实也是可以做性能测试或者基准测试的。是非常方便的。 可以考虑使用Pytest-benchmark类库进行。 安装pytest-benchmark 首先,确保已经安装了pytest和pytest-benchmark插件。可以使用以下命令安装插件: pip install pytest pytest-benchmark …...
Swagger各版本访问地址
2.9.x 访问地址: http://ip:port/{context-path}/swagger-ui.html 3.0.x 访问地址: http://ip:port/{context-path}/swagger-ui/index.html 3.0集成knife4j 访问地址: http://ip:port/{context-path}/doc.html...
docker-compose;私有镜像仓库harbor搭建;镜像推送到私有仓库harbor
docker-compose;私有镜像仓库harbor搭建;镜像推送到私有仓库harbor 文章目录 docker-compose;私有镜像仓库harbor搭建;镜像推送到私有仓库harbordocker-compose私有镜像仓库harbor搭建镜像推送到私有仓库harbor docker-compose D…...
OpenTSDB(CVE-202035476)漏洞复现及利用
任务一: 复现环境中的命令注入漏洞。 任务二: 利用命令注入执行whoami,使用DNS外带技术获取结果 任务三:使用反弹shell,将漏洞环境中的shell反弹到宿主机或者vps服务器。 任务一: 1.搭建好环境 2.先去了…...
Maven无法拉取依赖/构建失败操作步骤(基本都能解决)
首先检查配置文件,确认配置文件没有问题(也可以直接用同事的配置文件(记得修改文件里的本地仓库地址)) 1.file->Invalidate Caches清除缓存重启(简单粗暴,但最有效) 2.刷新maven以及mvn clean,多刷几次,看看还有没有报红的依赖…...
【数据库】数据库并发控制的目标,可串行化序列的分析,并发控制调度器模型
数据库并发控制 专栏内容: 手写数据库toadb 本专栏主要介绍如何从零开发,开发的步骤,以及开发过程中的涉及的原理,遇到的问题等,让大家能跟上并且可以一起开发,让每个需要的人成为参与者。 本专栏会定期更…...
带头结点的双向循环链表
目录 带头结点的双向循环链表 1.存储定义 2.结点的创建 3.结点的初始化 4.尾插结点 5.尾删结点 6.头插结点 7.头删结点 8.查找并返回结点 9.在pos结点前插入结点 10.删除pos结点 11.打印链表 12.销毁链表 13.头插结点2.0版 14.尾插结点2.0版 前言: 当…...
2023年11月下旬大模型新动向集锦
2023年11月下旬大模型新动向集锦 2023.12.1版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 1、微软将向中国大陆开放Windows Copilot服务 据微软发布的消息,微软将在 2023 年 12 月 1 日面向中国大陆的企业和教育机构推出 We…...
有IP没有域名可以申请证书吗?
一、IP证书是什么? ip证书是用于公网ip地址的SSL证书,与我们通常所讲的SSL证书并无本质上的区别,但由于SSL证书通常颁发给域名,而组织机构需要公共ip地址的SSL证书,这类SSL证书就是我们所说的ip证书。ip证书具有安全、…...
【软件推荐】卸载360软件geek;护眼软件flux;
卸载360软件geek f.lux: software to make your life better (justgetflux.com) 卸载完扫描残留 护眼软件 hf.lux: software to make your life better (justgetflux.com)https://justgetflux.com/https://justgetflux.com/...
Module build failed: Error: ENOENT: no such file or directory
前言 这个错误通常发生在Node.js 和 vue,js项目中,当你试图访问一个不存在的文件或目录时。在大多数情况下,这是因为你的代码试图打开一个不存在的文件,或者你的构建系统(例如Webpack)需要一个配置文件,但找…...
Postgresql BatchInsert唯一键冲突及解决
Postgresql BatchInsert唯一键冲突及解决 当有唯一键冲突时,批量插入可能会报错; insert into tableA(sno,name,age,emp) values(),(),(); 会报错 insert into tableA(sno,name,age,emp) values(),(),() on conflict on contraint tableA_unique_key do …...
腾讯云AMD服务器标准型SA5实例AMD EPYC Bergamo处理器
腾讯云服务器标准型SA5实例是最新一代的标准型实例,CPU采用AMD EPYC™ Bergamo全新处理器,采用最新DDR5内存,默认网络优化,最高内网收发能力达4500万pps。腾讯云百科txybk.com分享腾讯云标准型SA5云服务器CPU、内存、网络、性能、…...
力扣 --- 加油站
题目描述: 在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 给定两个…...
如何快速安装elan:Lean版本管理器的完整指南
如何快速安装elan:Lean版本管理器的完整指南 【免费下载链接】elan The Lean version manager 项目地址: https://gitcode.com/gh_mirrors/el/elan elan是一个专门为Lean定理证明器设计的版本管理工具,它能让你轻松管理多个Lean安装版本。无论你是…...
企业级实时数据采集方案:构建高性能直播弹幕监控系统
企业级实时数据采集方案:构建高性能直播弹幕监控系统 【免费下载链接】BarrageGrab 抖音快手bilibili直播弹幕wss直连,非系统代理方式,无需多开浏览器窗口 项目地址: https://gitcode.com/gh_mirrors/ba/BarrageGrab 在直播电商、游戏…...
如何解决黑苹果USB端口识别问题:USBInjectAll内核扩展完整指南
如何解决黑苹果USB端口识别问题:USBInjectAll内核扩展完整指南 【免费下载链接】OS-X-USB-Inject-All Kext to inject all USB ports for the installed Intel EHCI/XHCI chipset automatically. 项目地址: https://gitcode.com/gh_mirrors/os/OS-X-USB-Inject-Al…...
终极指南:macOS上轻松解密QQ音乐加密音频文件
终极指南:macOS上轻松解密QQ音乐加密音频文件 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录,默认转换结果存…...
抖音内容高效管理方案:批量下载与智能文件组织
抖音内容高效管理方案:批量下载与智能文件组织 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖音…...
Python爬虫实战:构建博物馆藏品数字档案(列表到详情深度采集)
㊗️本期内容已收录至专栏《Python爬虫实战》,持续完善知识体系与项目实战,建议先订阅收藏,后续查阅更方便~ ㊙️本期爬虫难度指数:⭐⭐⭐ (进阶) 🉐福利: 一次订阅后,专栏内的所有文…...
大裁员前夜Meta员工疯狂「薅羊毛」;腾讯操作系统层级AI助手“马维斯”正式上工;GitHub确认遭入侵:3800个内部仓库被窃取 | 极客头条
「极客头条」—— 技术人员的新闻圈!CSDN 的读者朋友们好,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。(投稿或寻求报道:zhanghycsdn.net)整理 | 苏宓出品 | CSDN(ID&…...
CRMEB 让您的在线商城更智能:最新商品模块更新亮点一览!
为了让广大电商商家更好地管理商品、提升用户的购物体验和满意度,近日,CRMEB标准版商城系统再度发力,对商品模块进行了全面升级,新增一系列功能,期待帮助企业商家更好地管理商品,提升用户购物体验ÿ…...
Unity地形草刷不上?根源是单顶点Mesh硬限制
1. 问题不是“刷不上去”,而是Unity地形系统对Mesh草的底层限制逻辑被误解了“Unity地形使用Mesh网格刷草刷不上”——这句话在Unity社区里每年至少被重复提问3000次以上。我第一次遇到它是在2019年做一款开放世界生存游戏时,美术同事把精心建模的蒲公英…...
主芯片LP3717BTT+LP3568C,5V3.1A过认证适配器⽅案(电路原理图)
LP3717BTT LP3568C 是一套 5V/3.1A(15.5W)隔离型反激电源方案,主打"过认证、高效率、低温度"。LP3717BTT 是原边 PWM 控制器,LP3568C 是次级同步整流芯片,两者配合实现高精度恒压输出,板端效率可…...
