首页 > 其他分享 >Unity Pico开发之基础功能(1)

Unity Pico开发之基础功能(1)

时间:2024-10-15 18:21:05浏览次数:8  
标签:脚本 传送 Teleportation Unity Pico 锚点 开发 XR Anchor

前言:继专栏上一篇文章搭建开发环境后,本文就射线传送(包括区域传送、锚点传送)进行介绍,操纵摇杆在场景中移动抓取物品旋转镜头视角等基础功能将在下一篇文章中介绍。

搭建开发环境传送门:

Unity Pico开发之环境搭建icon-default.png?t=O83Ahttps://blog.csdn.net/m0_74799789/article/details/142827336?spm=1001.2014.3001.5501

目录

一、射线传送(区域传送)

二、射线传送(锚点传送)

修改锚点位置

进阶:多个传送点


一、射线传送(区域传送)

功能介绍:在指定区域内传送至射线所指方位(使用Grip键)。

1.1 新建两个Plane作为地面,为Plane添加材质,标识为可传送区域。

eb84f1d8c5b440ab9eda54c9e6d7ae73.png

1.2 为XR Origin添加Teleportation ProviderLocomotion System脚本,并将XR Origin分别拖拽到Teleportation Provider脚本下的System处、Locomotion System脚本下的XR Origin处。

e9326a815de4497ebf9f5973fa1eaddd.png

1.3 为Plane添加Teleportation Area脚本(可传送区域),并将XR Origin拖拽到Teleportation Area脚本下的Teleportation Provider处。

f8903c6b4f604af7969445895a37e825.png

运行后发现,玩家只能在指定区域内随意传送,超出区域将无法传送,当射线指向未挂载Teleportation Area脚本的区域时射线颜色也为默认红色,表示不可交互。

ac5c411da9a946dd9923176808194af7.gif

射线传送实现原理:当挂载Teleportation Area脚本的地面被点击后,通过Teleportation Provider找到其下的Locomotion System对象,Locomotion System会找到对应的XR Origin对象,也就是玩家自己,Locomotion System主要用于实现玩家到目标传送点的移动,Teleportation Provider负责将Locomotion System和目标传送点进行绑定。

二、射线传送(锚点传送)

功能介绍:区别于区域传送的大规模传送,锚点传送只能进行指定点位传送。

锚点传送脚本可以挂载在需要传送的锚点上,而挂载传送脚本的(无论是Teleportation Anchor还是Teleportation Area)游戏对象都需要有碰撞体,否则将无法传送,相机上需要挂载Teleportation Provider以及Locomotion System脚本,用于传送。

2.1 将XR Origin移动至Plane (1)上,并为地面添加Teleportation Anchor脚本,此时可传送锚点默认在地面中央,且锚点位置无法修改。展开Teleportation Anchor脚本下的Teleportation Configuration(传送配置),并将XR Origin拖拽至Teleportation Provider处。

运行后发现,无论射线指向Plane (1)何处,最终只能传送至锚点处,即Plane (1)中央。

修改锚点位置

2.2 在上一步骤的基础下,在Plane (1)下新建一个空物体并命名为Anchor,将Anchor拖拽至Teleportation Anchor脚本下的Teleport Anchor Transform。空物体可以随意修改位置。

运行后发现,即便锚点位置能够修改,但同样仅能传送至空物体即锚点的所在位置。

进阶:多个传送点

说明:要实现同一块地面上多个传送点,则无法再给地面直接挂载Teleportation Anchor脚本。创建Canvas的作用是利用Image组件标记每个传送点的位置,标记物也可以是实体对象。

2.3.1 Hierarchy面板右击—XR—UI Canvas,新建XR类型画布。修改Canvas的位置及缩放值,使其完全覆盖Plane (1)。

2.3.2 右击Canvas—UI—Image,新建Image并将其命名为Anchor1。将准备好的标识图拖拽到Image组件下的的Source Image。

2.3.3 为Anchor1添加Box Collider组件及Teleportation Anchor脚本,将XR Origin拖拽至Teleportation Provider处。

2.3.4 重复上述步骤制作其他传送点,也可以直接复制(Ctrl+D)Anchor1并将副本移动至地面的其他位置。

运行后发现,只有当射线指向标识点时,点击其中任意一个才能进行传送。(此处移除了Plane (1)上的Teleportation Anchor脚本,否则当点击地面时会传送至地面相对应的锚点上)

标签:脚本,传送,Teleportation,Unity,Pico,锚点,开发,XR,Anchor
From: https://blog.csdn.net/m0_74799789/article/details/142928678

相关文章

  • 上海交大开源超逼真声音克隆 TTS;微软探索音生图 AI 模型丨 RTE 开发者日报
       这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。 我们的社区编辑团队会整理分享RTE(Real-TimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑的个人观点,欢迎大......
  • AMIS低代码平台,前端开发常见问题(一)
    1.快速进去系统快捷键Ctrl+q2.CRUD(增删改查)添加序号。"tpl":"${index+1}"代码如下:{ "type":"text", "label":"序号", "placeholder":"-", "body":[ ], "id":"u:......
  • 活动报名丨实时互动AI 开发者年度聚会!RTE Open Day@RTE2024,10.25/26北京
         2024年10月25日~26日,由声网和RTE开发者社区联合主办的RTE2024第十届实时互联网大会将在北京·悠唐皇冠假日酒店正式开启! 大会以「AI爱」为主题,推出覆盖实时互联网全生态的论坛及周边活动共计20余场。 RTEOpenDay携手18家展区伙伴齐聚大......
  • 前端开发者必备:学习资源与社区汇总
    在快速变化的前端领域,拥有可靠的学习资源和交流社区对于开发者来说至关重要。以下是一份整理的前端学习资源与社区汇总,希望能为你的前端之旅提供助力。前端学习资源推荐基础学习资源MDNWebDocs网址:https://developer.mozilla.org/描述:Mozilla提供的前端技术文档,内容全面......
  • Unity接入人工智能
    在Unity接入人工智能中,本篇实现了接入百度智能云ai进行npc智能对话,通过http方式,并非插件,适合于所有支持Http链接的Unity版本。对于Chartgpt可以参考本篇内容的实现过程。1-4节讲解测试,第5节讲解Unity中的实现,建议从头开始阅读。一、创建应用1.1注册百度智能云账号按照图片......
  • 软件开发----Java基础每日刷题(转载于牛客)
    1.        A 是抽象父类或接口, B , C 派生自 A ,或实现 A ,现在 Java 源代码中有如下声明:1. A a0=new A();2. A a1=new B();3. A a2=new C();问以下哪个说法是正确的?()A        第1行不能通过编译B        第1、2行能通......
  • Unity纹理压缩
    1、贴图,texture和atlasTextureType贴图类型:Default:普通贴图,这是所有纹理最常用的设置。Normalmap:法线贴图,选择此选项可将颜色通道转换为适合实时法线贴图的格式。EditorGUIandLegacyGUI:UI贴图,把Texture用在HUDorGUIcontrols.上。Sprite(2DandUI):精......
  • PyQt5开发环境搭建和配置
    PyQt5工具可以快速实现简单的界面开发,包括界面设计、布局管理以及业务逻辑实现(信号与槽)。简单说就是使用PyQt5工具可以快速画一个控件摆放整齐、界面整洁有序、布局合理的界面。课程目标可以动手实现简单的GUI程序。系列文章主要以动手实践案例讲解为主。课程对象会一些......
  • 约80%开发效率提升,原生鸿蒙政务、文旅行业样板间专区上线
    10月8日,华为官方正式宣布,其最新操作系统HarmonyOSNEXT于当日10:08正式开启公测。为有效助力开发者加速行业应用开发,华为开发者联盟生态市场(简称生态市场)近日上线了原生鸿蒙政务行业、文旅行业“样板间”专区。政务和文旅行业作为数字化转型的重要领域,对数智应用的需求日益专业化......
  • Spring Boot:中小型医院网站的敏捷开发
    摘要本基于SpringBoot的中小型医院网站设计目标是实现用户网络预约挂号的功能,同时提高医院管理效率,更好的为广大用户服务。本文重点阐述了中小型医院网站的开发过程,以实际运用为开发背景,基于SpringBoot框架,运用了Java技术和MYSQL数据库进行开发设计,充分保证系统的安全......