使用VRTK包中的VRTK_Knob腳本~
該腳本的作用是:
Attaching the script to a game object willallow the user to interact with it as if it were a radial knob. The directioncan be freely set.
也就是說把該腳本掛在一個物體上,就可以用手柄旋轉這個物體,旋轉的方向可自定。
Direction:設置繞哪個軸旋轉
Min和Max:是轉一圈的範圍
Step Size:每次轉的步數
在場景中新建一個cube並添加碰撞盒,然後掛上該腳本,設置Direction等參數,運行後就可以用手柄轉這個物體了。
—————————————————————————————————————————
然後我將這個腳本掛到了自己的模型的一個小零件上,是一個圓臺形狀的物體,運行時發現旋轉的很詭異,好像是繞着一個別的地方旋轉的,而不是模型中心。
於是分析一下VRTK_Knob
這個腳本在運行時爲圓臺物體添加了如下組件:
按照我的理解,大致意思是爲圓臺添加了一個物理屬性ConfigurableJoint(可配置關節),然後Grab圓臺,由於物理屬性的限制,圓臺會繞着一個軸運動。
這個軸不是物體的座標中心,而是Configurable Joint中的Anchor。
參照unity聖典的解釋:
Anchor:關節中心點,所有的物理模擬都使用此點作爲中心進行計算。
運行時發現Anchor的Y的數值爲6.737404,問題就在這裏。
運行時打開since試圖,查看圓臺物體,發現在圓臺物體的底下有一個小小的座標軸,一開始我都沒看見= =
換個角度看:
在運行中把Anchor的Y設置成0,如下
這時小軸和座標軸就重合到了一起,旋轉也就正常了。
比較省事的解決方法是改一下圓臺物體的座標軸,讓它繞着Y旋轉就可以了,或者自己加一個ConfigurableJoint組件而不是讓腳本去加。