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

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

时间:2024-10-15 18:21:05浏览次数:15  
标签:脚本 传送 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

相关文章

  • 前端开发者必备:学习资源与社区汇总
    在快速变化的前端领域,拥有可靠的学习资源和交流社区对于开发者来说至关重要。以下是一份整理的前端学习资源与社区汇总,希望能为你的前端之旅提供助力。前端学习资源推荐基础学习资源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行能通......
  • PyQt5开发环境搭建和配置
    PyQt5工具可以快速实现简单的界面开发,包括界面设计、布局管理以及业务逻辑实现(信号与槽)。简单说就是使用PyQt5工具可以快速画一个控件摆放整齐、界面整洁有序、布局合理的界面。课程目标可以动手实现简单的GUI程序。系列文章主要以动手实践案例讲解为主。课程对象会一些......