(转)Unity SteamVR ItemPackage

本文介紹如何使用SteamVRPlugin中的ItemPackage物件系統,將任何物件應用到TheLab中的互動方式,例如拿取物品、遙控飛機等。通過該系統,開發者無需編寫複雜的邏輯來實現物件的拾取與放置等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SteamVR Plugin 有一個叫做 ItemPackage 的物件系統,可以把任何物件套上 The Lab 中拿取物品的互動方式,例如:拿桌上的模型、遙控飛機、拿弓箭等等

使用這個系統的好處是,開發者不用考慮拿起物件需要的繁瑣判斷:隱藏控制器、生成物件、設定拿取的手、放回物件歸位、如果手上有東西的話……

這一切 Item Package 都幫我們準備好了!!

本人第一次看到官方範例時,看到上面有這麼多腳本,覺得有點繁雜,但其實套用過程不用修改任何一行程式!

以下逐一說明

事先準備 

Item Package 建立在 SteamVR 的 InteractionSystem 之上

  1. 場景上要有 InteractionSystem 的 Player

     

2. 準備好已經可以獨立操作的物件,這裡我準備了一個簡單的 VR 手電筒

ㄧ、設定 Item Package

 

1. 做一個簡化版本

把碰撞、腳本等等功能全都刪掉,留下一個單純用來看的模型。把這個物件做成 Prefab,並命名為 FlashlightPreview

2. 做一個外框版本

用簡化版模型再做一個只有外框線的版本,用於拿起物件後,可以看到原本位置的輪廓。只要把材質球換成 ItemPickupOutline 即可,這個材質球 SteamVR Plugin 裡就有了

也把這個物件做成Prefab,並命名為 FlashlightOutline

做好後場景上的物件們就可以刪掉了

3. 做一個 ItemPackage

把完整版、簡化版、外框線版做成一個 ItemPackage

新增一個空物件,並命名為 FlashlightItemPackage

在空物件上面加上 ItemPackage 腳本,把這個物件做成 Prefab,照上圖把各個物件擺到指定欄位。

因為我的手電筒是單手拿的,所以把 Package Type 設定為 One Handed,Other Hand Item Prefab 可以空著沒關係。

如果是物件手兩隻手拿的話,另外一個物件放在 Other Hand Item Prefab,並記得把 Package Type 設定為 Two Handed。

4. 給原物件加上必要腳本

給原本的物件加上 ItemPackage 會用到的功能,例如:能夠放回去,並自動消失之類的

  1. Destroy On Detached From Hand
  2. Hide On Hand Focus Lost
  3. Item Package Reference:欄位放入剛做好的 FlashlightItemPackage

二、設定 ItemPackageSpawner

真正放在場景上的東西是它

  1. 在場景上新增一個空物件,並命名為 Flashlight Spawner
  2. 在空物件上面加上 ItemPackageSpawner 腳本
  3. Item Package 欄位拉入剛才做好的 FlashlightItemPackage
  4. 裡面有幾個設定,都蠻白話的,我依手電筒的需求來設定
  5. 在這個空物件底下放一個簡化版本的模型

6. 最後在 Flashlight Spawner 新增一個 Collider,這個是玩家可以拿取/放下物品的範圍

提供這個 Sample 的專案檔(Github)供參考,但是裡面沒有包含 SteamVR Plugin,請自行再去 Asset Store 下載( SteamVR Plugin / InteractionSystem 裡面也有官方的Demo )

侵删   by呂柏甫

https://medium.com/@pofu.lu/unity-steamvr-itempackage-%E6%95%99%E5%AD%B8-1bf51aceaf98icon-default.png?t=LA92https://medium.com/@pofu.lu/unity-steamvr-itempackage-%E6%95%99%E5%AD%B8-1bf51aceaf98 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值