SteamVR---抓取物体
特別提示: 本系列基于Unity 2020.3.26,SteamVR Unity Plugin - v2.7.3 (sdk 1.14.15)
本系列博客地址: 傳送門
在場景里隨意創建一個cube,分別掛上:Collider(掛在子物體上也行)、Rigidbody、Interactable、Throwable、VelocityEstimator、SteamVR_Skeleton_Poser
一、Interactable
物體交互腳本
hideHandOnAttach:抓取時隱藏手部模型,松手顯示
hideSkeletonOnAttach:抓取時隱藏手的骨骼部分
hideControllerOnAttach:抓取時隱藏控制器
useHandObjectAttachmentPoint:是否使用hand腳本指定的物體連接點
handFollowTransform:手部模型是否鎖定跟隨本物體
highlightOnHover:當手覆蓋/觸摸物體時是否高亮
二、Throwable
模擬拋物運動
AttachmentFlags:物體抓取的方式,可多選,正常就用默認設置
SnapOnAttach:物體會匹配到hand腳本連接點objectAttachmentPoint的位置
DetachOthers:當手上有物體時,再去抓取物體手上的物體會被分離
DetachFromOtherHand:假如物體當前被左手抓著,右手去抓時會被抓到右手
ParentToHand:將物體父物體設置為hand
VelocityMovement:物體將根據手的位置和旋轉移動。
TurnOnKinematic:會打開Rigidbody的isKinematic,改變碰撞檢測的模式
TurnOffGravity:會關掉Rigidbody的useGravity
AllowSidegrade:未知
提示:
1.SnapOnAttach必選否則物體抓不起來
2.ParentToHand與VelocityMovement控制物體的移動,兩者二選一,
3.ParentToHand與TurnOnKinematic搭配效果比TurnOffGravity更好,抓取的物體可穿透其他模型
4.VelocityMovement與TurnOffGravity搭配,抓取的物體不可穿透其他模型
ReleaseVelocityStyle:投擲時計算速率的方式
NoChange:選擇此項物體拋不出去,有重力就直接下落,沒有就懸空
GetFromHand:獲取手的移動速率
ShortEstimation:根據投擲的前三幀來估算速度
AdvancedEstimation:計算投擲的速度峰值,在峰值最近三幀周圍估算速度
三、VelocityEstimator
用于設置Rigidbody的velocity跟angularVelocity,與Throwable腳本搭配使用
四、SteamVR_Skeleton_Poser
可以設置物體、手的位置和旋轉,不是必掛腳本
CurrentPose:配置文件
五、SteamVR_Skeleton_Pose
position:抓取后物體的位置,相對于手
rotation:抓取后物體的旋轉,相對于手
bonePositions:手骨骼位置
boneRotations:手骨骼旋轉
六、說明
1.默認GrabPinch(Trigger扳機鍵)與GrabGrip都可以抓取物體,沒找到哪個腳本可以在面板上設置,底層代碼里面寫的是這兩個鍵都可以,調用的地方也比較多,不建議直接改腳本
解決方法:在Window-SteamVRInput里添加個Trigger事件,保存然后打開OpenBindingUI在按鍵設置里把扳機鍵的GrabPinch替換成Trigger(我用的Oculus設備所以手柄顯示的不一樣),這樣我們就能用Trigger獲取到扳機鍵的按鍵狀態了,也不會觸發拾取物體
2.抓取物體需要一直按著按鍵,但是會有按一下抓取物體再按一下松手的需求
解決方法:在配置握持鍵時將作為按鍵使用調成作為切換按鍵使用
七、案例
在場景找到Throwing演示,下面有3個例子分別展示AttachmentFlags和ReleaseVelocityStyle各種搭配的不同效果
Throw with estimated velocity 以估算的速度投擲
左邊是AdvancedEstimation,右邊是ShortEstimation,AdvancedEstimation要比ShortEstimation投擲的更高更遠
Parent to hand和Move with velocity
除了投擲速率不同外,Move with velocity的物體是不能穿透其他模型的,這個是由AttachmentFlags里的VelocityMovement和TurnOffGravity組合產生的效果
總結
以上是生活随笔為你收集整理的SteamVR---抓取物体的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021-技能大赛-信息安全管理与评估-
- 下一篇: 西工大计算机学院报名前联系导师的说明