日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SteamVR---抓取物体

發(fā)布時間:2024/1/18 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SteamVR---抓取物体 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

特別提示: 本系列基于Unity 2020.3.26,SteamVR Unity Plugin - v2.7.3 (sdk 1.14.15)

本系列博客地址: 傳送門

在場景里隨意創(chuàng)建一個cube,分別掛上:Collider(掛在子物體上也行)、Rigidbody、Interactable、Throwable、VelocityEstimator、SteamVR_Skeleton_Poser

一、Interactable

物體交互腳本
hideHandOnAttach:抓取時隱藏手部模型,松手顯示
hideSkeletonOnAttach:抓取時隱藏手的骨骼部分
hideControllerOnAttach:抓取時隱藏控制器
useHandObjectAttachmentPoint:是否使用hand腳本指定的物體連接點
handFollowTransform:手部模型是否鎖定跟隨本物體
highlightOnHover:當(dāng)手覆蓋/觸摸物體時是否高亮

二、Throwable

模擬拋物運動
AttachmentFlags:物體抓取的方式,可多選,正常就用默認(rèn)設(shè)置
SnapOnAttach:物體會匹配到hand腳本連接點objectAttachmentPoint的位置
DetachOthers:當(dāng)手上有物體時,再去抓取物體手上的物體會被分離
DetachFromOtherHand:假如物體當(dāng)前被左手抓著,右手去抓時會被抓到右手
ParentToHand:將物體父物體設(shè)置為hand
VelocityMovement:物體將根據(jù)手的位置和旋轉(zhuǎn)移動。
TurnOnKinematic:會打開Rigidbody的isKinematic,改變碰撞檢測的模式
TurnOffGravity:會關(guān)掉Rigidbody的useGravity
AllowSidegrade:未知

提示:
1.SnapOnAttach必選否則物體抓不起來
2.ParentToHand與VelocityMovement控制物體的移動,兩者二選一,
3.ParentToHand與TurnOnKinematic搭配效果比TurnOffGravity更好,抓取的物體可穿透其他模型
4.VelocityMovement與TurnOffGravity搭配,抓取的物體不可穿透其他模型

ReleaseVelocityStyle:投擲時計算速率的方式
NoChange:選擇此項物體拋不出去,有重力就直接下落,沒有就懸空
GetFromHand:獲取手的移動速率
ShortEstimation:根據(jù)投擲的前三幀來估算速度
AdvancedEstimation:計算投擲的速度峰值,在峰值最近三幀周圍估算速度

三、VelocityEstimator

用于設(shè)置Rigidbody的velocity跟angularVelocity,與Throwable腳本搭配使用

四、SteamVR_Skeleton_Poser

可以設(shè)置物體、手的位置和旋轉(zhuǎn),不是必掛腳本
CurrentPose:配置文件

五、SteamVR_Skeleton_Pose

position:抓取后物體的位置,相對于手
rotation:抓取后物體的旋轉(zhuǎn),相對于手
bonePositions:手骨骼位置
boneRotations:手骨骼旋轉(zhuǎn)

六、說明

1.默認(rèn)GrabPinch(Trigger扳機鍵)與GrabGrip都可以抓取物體,沒找到哪個腳本可以在面板上設(shè)置,底層代碼里面寫的是這兩個鍵都可以,調(diào)用的地方也比較多,不建議直接改腳本
解決方法:在Window-SteamVRInput里添加個Trigger事件,保存然后打開OpenBindingUI在按鍵設(shè)置里把扳機鍵的GrabPinch替換成Trigger(我用的Oculus設(shè)備所以手柄顯示的不一樣),這樣我們就能用Trigger獲取到扳機鍵的按鍵狀態(tài)了,也不會觸發(fā)拾取物體

2.抓取物體需要一直按著按鍵,但是會有按一下抓取物體再按一下松手的需求
解決方法:在配置握持鍵時將作為按鍵使用調(diào)成作為切換按鍵使用

七、案例

在場景找到Throwing演示,下面有3個例子分別展示AttachmentFlagsReleaseVelocityStyle各種搭配的不同效果

Throw with estimated velocity 以估算的速度投擲

左邊是AdvancedEstimation,右邊是ShortEstimation,AdvancedEstimation要比ShortEstimation投擲的更高更遠(yuǎn)

Parent to hand和Move with velocity

除了投擲速率不同外,Move with velocity的物體是不能穿透其他模型的,這個是由AttachmentFlags里的VelocityMovement和TurnOffGravity組合產(chǎn)生的效果

總結(jié)

以上是生活随笔為你收集整理的SteamVR---抓取物体的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。