# Part 1 ###### tags: `VR coordinate` ## Unity的座標關係: Unity中的整體物件主要是在WorldPosition(世界座標)做事。 每個物件都包含Transform: > Transform負責管理Position、Rotation及Scale。 每個物件的Position: > 世界座標,為絕對座標 每個物件的LocalPosition: > 若有子物件,子物件的LocalPosition是相對於父物件的Transform.Position。(即==相對座標==) > 若物件沒有上層父物件時,他的LocalPosition = Position = WorldPosition。 ## 目標:mesh生成於正確的座標位置 + 解決mesh跟著手把移動的問題 取用SteamVR中的Player角色物件,手把為Player子物件。 物件關係為: Player → SteamVRObject → 手把 ### <方法1> **Step1:** 將程式放在右手手把物件上 **Step2:** 抓取右手手把位置(Position),此時的右手手把Position為localPosition,相對於SteamVRObject的座標,SteamVRObject的Position(0,0,0),則我們能直接忽略不計,將右手手把的Position想成相對於Player的座標(Player為主物件,他的座標為世界座標)。 **Step3:** 將右手手把座標從局部座標(LocalPosition)轉為世界座標。取得Player與手把座標的座標向量差(其實就等於手把座標的LocalPosition值),記做變數m。在取得player座標,將 m + Player的Position,就能得到手把的世界座標。 **成果圖(一):**  **可用的內建函式:** ```C# inverse.TransformPoin //世界空間到局部空間。 Transform.TransformPoint //局部座標轉世界座標 ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up