VR 射线瞬移

2023-10-31 12:31
文章标签 vr 射线 瞬移

本文主要是介绍VR 射线瞬移,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

VR实现瞬移效果,并且绘制瞬移曲线
在这里插入图片描述

上代码,代码先对简单

public Transform player;public Transform mark;public float rayLength = 5;private LineRenderer lineRenderer;private Vector3[] linePoints;private Vector3 targetPoint;private void Start(){lineRenderer = GetComponent<LineRenderer>();linePoints = new Vector3[3];}private void Update(){if (Input.GetKey(KeyCode.Space)){Ray ray = new Ray(transform.position, transform.forward);RaycastHit hit;linePoints[0] = transform.position;if (Physics.Raycast(ray, out hit, rayLength)){linePoints[2] = hit.point;linePoints[1] = transform.position + (Vector3.ProjectOnPlane(transform.forward, Vector3.up)) * (linePoints[2] - linePoints[0]).magnitude;targetPoint = linePoints[2] + Vector3.up * player.position.y;}else{ray = new Ray(transform.position + transform.forward * rayLength, Vector3.down);if (Physics.Raycast(ray, out hit, rayLength + Mathf.Abs(transform.position.y))){linePoints[2] = hit.point;linePoints[1] = transform.position + transform.forward * ((linePoints[2] - linePoints[0]).magnitude);targetPoint = linePoints[2] + Vector3.up * player.position.y;}else{linePoints[2] = ray.origin + ray.direction * rayLength;Vector3 middlePoint = transform.position + transform.forward * ((linePoints[2] - linePoints[0]).magnitude);linePoints[1] = middlePoint;}}mark.position = linePoints[2];mark.rotation = Quaternion.Euler(Vector3.zero);DrawLineRenderCurve(lineRenderer, linePoints);}else{if (Input.GetKeyUp(KeyCode.Space)){player.position = targetPoint;lineRenderer.positionCount = 0;mark.position = linePoints[2] * 1000;}}}//绘制曲线private void DrawLineRenderCurve(LineRenderer lineRenderer, Vector3[] points){for (int i = 1; i <= 50; i++){float t = i / (float)50;Vector3 pixel = CalculateBezierPoint(t, points[0], points[1], points[2]);lineRenderer.positionCount = i;if (i == 1){lineRenderer.SetPosition(i - 1, points[0]);}else{lineRenderer.SetPosition(i - 1, pixel);}}}/// <summary>/// 计算二阶贝塞尔曲线的点 公式 (1-t)*(1-t)*p0+2t*(1-t)*p1+t*t*p2   t属于[0,1]/// </summary>/// <param name="t">  0<t<1 </param>/// <param name="p0">起点</param>/// <param name="p1">中点</param>/// <param name="p2">结束点</param>/// <returns></returns>internal static Vector3 CalculateBezierPoint(float t, Vector3 p0, Vector3 p1, Vector3 p2){float u = 1 - t;float tt = t * t;float uu = u * u;return uu * p0 + 2 * u * t * p1 + tt * p2;}
点关注私信领取现相关源码

这篇关于VR 射线瞬移的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/315371

相关文章

2300年都无人能知有长度不同的伪≌射线

黄小宁 【摘要】自有射线概念后的2300年里一直无人能知有长度不同的射线。保距变换和≌图概念是能放大无穷大倍的思维望远镜使人能一下子看到有长度不同的伪重合、伪≌射线。 变量x所取各数也均由x代表,x代表其变域(x所有能取的数组成的集)内任一元。设集A={x}表A各元均由x代表,{x}中变量x的变域是A。其余类推。“实数集”R所有非负元x≥0组成R+={x≥0},这里的x≥0不是表示x可取一切非负

VR虚拟展厅的应用场景有哪些?

虚拟展厅作为一种利用虚拟现实技术构建的三维展示空间,其应用场景广泛且多样。视创云展为企业虚拟展厅搭建提供技术支持。以下是一些主要的应用场景: 1. 博物馆和艺术展览 文物保护与展示: 在博物馆中,为了保护珍贵的文物和艺术品,许多展品被放置在专门的展览柜中,限制了观众的观赏体验。虚拟展厅通过3D建模和虚拟现实技术,可以让观众在不接触实物的情况下,全方位、多角度地观赏文物和艺术品的细节,了解

X 射线测厚仪-高效精准,厚度测量的卓越之选

在现代工业的舞台上,对精准度和效率的追求从未停歇。而 X 射线测厚仪,宛如一颗璀璨的明星,以其高效精准的特质,成为厚度测量的卓越之选。 X 射线测厚仪,是科技与智慧的完美结晶。它凭借先进的 X 射线技术,如同一双透视万物的慧眼,能够轻松穿透各种材料,将厚度信息精准地呈现在人们面前。无论是坚硬的金属板材,还是柔软的塑料制品,亦或是富有弹性的橡胶制品,在它的审视下,厚度无处遁形。 高效,是它的另一

构建全景式智慧文旅生态:EasyCVR视频汇聚平台与AR/VR技术的深度融合实践

在科技日新月异的今天,AR(增强现实)和VR(虚拟现实)技术正以前所未有的速度改变着我们的生活方式和工作模式。而EasyCVR视频汇聚平台,作为一款基于云-边-端一体化架构的视频融合+AI智能分析平台,可以通过其强大的数据接入、处理、转码及分发能力,与AR/VR技术形成完美结合,为多个领域带来了前所未有的创新应用。 在此背景下,增强现实(AR)和虚拟现实(VR)等前沿技术结合EasyCVR平台在

2020-08-21 利用Graphics.DrawMeshNow绘制运行时Gizmos,VR可用,HDRP可用

先放效果图: 功能本身为测试用例,所以写的并不是很严谨,三角线使用的是缩放后的圆柱Mesh,黄色使用Box的Mesh,绿色使用Sphere的Mesh。 box和sphere也可以同时生成多个,但需要修改VrGizmos.cs中的两个方法DrawSphere、DrawBox,逻辑类似三角线的方法DrawSegments 放上VrGizmos.cs的源码: using System.Coll

虚幻引擎VR游戏开发 | VR设备和术语

四款Unreal Engine默认配套按键映射的VR设备 IMC按键映射 Oculus Touch (R) Grip Axis: 代表Oculus Rift或Quest设备的右手控制器的抓握轴输入。Valve Index (R) Grip Axis: 代表Valve Index设备的右手控制器的抓握轴输入。Vive (R) Grip: 代表HTC Vive设备的右手控制器的抓握按

(游戏设计草稿) 《外卖员模拟器》 (3D 科幻 角色扮演 开放世界 AI VR)

游戏名称: 外卖员模拟器. 游戏类型: 3D, 科幻, 角色扮演 (RPG), 开放世界, AI, VR. 游戏的主要目的: 技术测试/验证. 1 文案 (超低空科幻流派) 2030 年, 基于 AI (人工智能) 的 自动驾驶 和 人形机器人 技术已经大规模普及使用, 但是 AI 的能力遭遇了瓶颈, AI 只能解决 99% 的问题, 而对于这最后 1% 的问题, 却无论如何也解决不了,

使用Leap Motion Orion开发酷炫的手势识别VR/AR应用

Leap Motion Orien支持Oculus和HTC Vive开发,当然对Unity的支持显然是必须的。 不过前提是: 1.Windows 7 64位或者windows 10 2.Leap Motion Orion 3.Oculus SDK 1.3(需要Unity 5.3.4 p1以上版本) 4.HTC Vive(需要Unity 5.4+) U

想体验从活火山上滑下来的刺激感?VR来成全你

巴伐利亚银河水上公园目前正在测试VR高级版的水上滑梯。 我们听说过虚拟现实(VR)被用于过山车及其他主题公园游乐设施上,但是戴上VR头显在水滑梯上飞驰,这一想还闻所未闻。 不过,巴伐利亚银河水上公园目前就在试验这个想法。        这种新亮点就是:建造传统风格的水上滑梯,游客可以选择戴上一个VR头显,以感受活火山喷发的热气流,同时他们还要躲避岩石和其他碎片。

脸书员工都在VR上工作了,你还等什么?

(52VR开发网2017年5月5日讯)来自Facebook来源的两条信息使我们深入了解社交媒体巨头内的分工。 Oculus团队的PC VR Brendan Iribe负责人所说的话和Facebook季度报告的一段话表明,该公司的总体员工中超过百分之五的员工在某种程度上是致力于虚拟现实的。 Facebook本周提交季度报告。 在该报告中,这是一个有关公司规模和去年增长情况的数据。 据报道,