Unity3D射線的方向


剛做完一個項目,里面有用到Untiy3D射線的相關內容,里面有個小坑記錄一下,也把我遇到的這個問題和大家分享下。

使用Unity3D的屏幕射線時,會得到兩個值,一個是Origin,是射線的源點,另一個是Direct,代表了射線的方向,這兩個值均為Vector3類型。

根據數學知識,射線的表示為P(t)=Origin+t*Direct,你以為就這么容易嗎,NO!!!!

重點:射線的Direct表示的是以Origin為原點的方向!!!所以P(t)這個等式在這種情況下並不成立。

那怎么獲得射線上的點呢,Unity3D里面有個剛剛好的接口,是Ray.GetPoint(t),這樣得到的點即為射線上的點。

說回來,那怎么得到射線方向呢(世界坐標系下的)=>   direct=Ray.GetPoint(t)-Origin

這樣就可以使用P(t)=Origin+t*direct這個公式了。

感覺自己繞了個圈圈,如果有更好的方法,歡迎留言。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM