草庐IT

Unity 射线碰撞检测

1定义射线是在三维世界中从一个点沿一个方向发射的一条无限长的线。在射线的轨迹上,一旦与添加了碰撞器的模型发生碰撞,将停止发射。射线碰撞检测,就是由某一物体发射出一道射线,射线碰撞到物体之后,可以得到该物体的相关信息,然后就可以对该物体进行一些操作了。2原理步骤如下:获取屏幕点击点的位置;从主摄像机作出射线到屏幕点击点;使用RayCast函数计算。3代码实现Ray射线类和RaycastHit射线投射碰撞信息类是两个最常用的射线工具类。publicclassExampleClass:MonoBehaviour{//参数hit为out类型,可得到碰撞检测的返回值;RaycastHithit;void

虚幻4学习笔记(10)蓝图接口、拾取物品-射线检测

虚幻4学习笔记蓝图接口拾取物品-射线检测骨架网格体和静态网格体的区别骨架网格体设置碰撞B站UP谌嘉诚课程:https://www.bilibili.com/video/BV164411Y732蓝图接口添加:内容浏览器右键蓝图蓝图接口新建Doorinterface蓝图接口添加canOpendoor和test函数test函数添加输入输出参数组件添加蓝图接口后可以调用其函数只有入参没有出参可以当做事件调用有出参可以当函数调用使用使用蓝图接口完成开关门的操作门蓝图小白人蓝图给蓝图接口的函数发消息调用蓝图接口中的事件并执行仅适用角色与组件重合即使背对着门也可以进行开门的操作蓝图接口配合着射线检测就可以避

第二十八章 Unity射线检测

本章节我们介绍一下射线。射线就是从一个固定点向一个方向发射出一条直线,在发射过程中需要判断该射线有没有与游戏物体发送碰撞。射线既可以用来检测射击游戏中武器指向目标;又可以判断鼠标是否指向游戏物体。射线的创建方式,一般使用代码来实现。接下来,我们就来创建一个新的“SampleScene3.unity”场景。这里注意的是,射线检测都是以物理系统为基础的,因此只有添加碰撞体组件的游戏物体才能被射线检测到。庆幸的是,在Unity中,创建的Cube或者Sphere,都是自动附带相应的碰撞体组件。我们创建了三个球体Sphere1,Sphere2,Sphere3,然后我们由Sphere1为起点向X轴负方向(

VRTK4.0使用总结(一)射线瞬移

        之前一直使用的VRTK2.x的版本,隔了很长一段时间没开发unityvr项目,才发现vrtk已经更新到4.x了,使用上变化很大,在这里简单写一点使用小结。    总结几个碰到的错误。1.运行时报错 InvalidOperationException:YouaretryingtoreadInputusingtheUnityEngine.Inputclass,butyouhaveswitchedactiveInputhandlingtoInputSystempackageinPlayerSettings. 解决方法:在Player中的othersettings中将输入系统改为旧的或

Unity使用SteamVR2.0实现基本功能(瞬移,抓取物品,射线点击,UI交互等)

基础设置 把SteamVR的Player预制件拖到一个空场景,删掉场景内原本的相机一.瞬移新建一个Plane,当做地板找到SteamVR的人物瞬移控制器 Teleporting,把它拖到场景里1.范围移动 我们需要在可以移动的区域,也就是碰撞器上,挂TeleportArea脚本这个脚本会自动修改你的材质球locked该区域是否可以移动markerActive区域跟随按键显示隐藏因为这个脚本会更改材质球的属性,所以我们不能直接给地板挂这个脚本新建一个Plane,给它改名字TeleportArea给TeleportArea对象挂TeleportArea脚本将TeleportArea对象调整到合适位

Unity使用SteamVR2.0实现基本功能(瞬移,抓取物品,射线点击,UI交互等)

基础设置 把SteamVR的Player预制件拖到一个空场景,删掉场景内原本的相机一.瞬移新建一个Plane,当做地板找到SteamVR的人物瞬移控制器 Teleporting,把它拖到场景里1.范围移动 我们需要在可以移动的区域,也就是碰撞器上,挂TeleportArea脚本这个脚本会自动修改你的材质球locked该区域是否可以移动markerActive区域跟随按键显示隐藏因为这个脚本会更改材质球的属性,所以我们不能直接给地板挂这个脚本新建一个Plane,给它改名字TeleportArea给TeleportArea对象挂TeleportArea脚本将TeleportArea对象调整到合适位

【游戏开发实战】Unity实现类似GitHub地球射线的效果(LineRenderer | 贝塞尔曲线)

文章目录一、前言二、实现思路1、曲线的本质是什么?2、如何绘制曲线?3、如何构造曲线的点?4、如何在球的表面选取两个点?5、如何让曲线有动画效果?三、具体实操1、创建Unity工程2、制作宇宙天空盒2.1、天空盒贴图2.2、天空盒材质球2.3、设置场景天空盒3、制作地球3.1、创建球体3.2、地球贴图3.3、制作地球材质球3.4、制作云层4、制作LineRenderer4.1、创建LineRenderer4.2、调节宽度4.3、设置材质球5、Line脚本:曲线逻辑6、Earth脚本:地球逻辑7、运行效果四、动态效果1、Line脚本:动态效果2、运行效果五、加点粒子特效六、工程源码七、完毕一、前

Unity SteamVR 2.x UGUI射线交互 +物品射线点击+物品抓起(超级简单)

刚开始先查看了其他道友的方案:1.Unity使用SteamVR2.0实现基本功能(瞬移,抓取物品,射线点击,UI交互等)_贪小心的博客-CSDN博客_unitysteamvr2.【SteamVR2.0】5.射线操作UGUI-射线点击物体_恩博同学的博客-CSDN博客_htcsteamvr射线点击ui嗯。。。试着尝试了一下,不是很好用,于是乎记得以前用过得的方法(别人做的,我只是使用者),剔除出来,整理一下。一UGUI射线点击:使用插件:CurvedUI(CurvedUI+DOTween+Shaders+Sprites-其它文档类资源-CSDN文库),SteamVRPlugin(商店免费)场景使

UnityXR 之VR射线 3D物体与UI的简单交互设置

因项目需求需要开发一款HDRP的VR项目原先老的一套VRTK和Stemar在新版本已经不适应了,虽然我找到了VRTK4.0,但是用起来和别的插件总是有冲突的情况,而且学习成本更大了,经过了解unity官方推荐了XR,废话不多说直接上最基础的开发流程第一步导入插件这是必备插件导入后可能会让项目重启,如果重启等待重启即可。第二步设置导入成功后会出现XRPlug,点击这个选项选中OpenXR点击下方XR进行设置,因为我是HTC所以选择了htc如果你是其他硬件可以选择其他类型的输入类型,第一个类型选项RenderMode根据我的设置在Player中设置ActiveInputHandling为图中样式然

UE4碰撞射线检测2

UE4内置的函数:UWorld::LineTraceSingleByChannel该线轨迹将光线射入空间,并根据选定的轨迹通道进行碰撞voidAFirstPawn::lineTraceSingleByChannel(){ FHitResultHitResult; FVectorStart=GetActorLocation()/*+FVector(0.f,0.f,75.f)*/; FVectorEnd=Start+GetActorForwardVector()*500.f; FCollisionQueryParamsCollisionQueryParams; CollisionQueryPara