瞄準(zhǔn)器!3D入門實(shí)戰(zhàn)!拇指射箭!Cocos Creator 3D !
瞄哪打哪!超簡單的射線檢測!提供試玩和完整項(xiàng)目!
效果預(yù)覽

原理
在 Cocos Creator 3D 剛出來時, 寫了一個簡單的拇指射箭(點(diǎn)擊閱讀)?。
不過,當(dāng)時的瞄準(zhǔn)發(fā)射計(jì)算是以某一個系數(shù)來控制的。
這感覺不太對。

還是用一個射線檢測去處理這個瞄準(zhǔn)結(jié)果吧。

首先,通過攝像機(jī),把瞄準(zhǔn)器的位置轉(zhuǎn)到屏幕坐標(biāo)。
const?screenPoint?=?this.camera_main.worldToScreen(this.NodePos_bows.node.worldPosition);
然后,在通過攝像機(jī)做出一條射線。
const?outRay?=?this.camera_main.screenPointToRay(screenPoint.x,?screenPoint.y);
最后通過射線計(jì)算出終點(diǎn)位置。

這邊用分軸思想。
因?yàn)?code style="font-size: 14px;overflow-wrap: break-word;padding: 2px 4px;border-radius: 4px;margin-right: 2px;margin-left: 2px;background-color: rgba(27, 31, 35, 0.05);font-family: "Operator Mono", Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(92, 157, 255);">z軸坐標(biāo)是確定的,可以先計(jì)算出z軸的方向長度比例。
const?targetZ?=?this.NodePos_target.z;
const?dir_t?=?(targetZ?-?outRay.o.z)?/?outRay.d.z;
再根據(jù)這個比例,計(jì)算出x和y坐標(biāo)就可以啦。
const?targetX?=?outRay.o.x?+?outRay.d.x?*?dir_t;
const?targetY?=?outRay.o.y?+?outRay.d.y?*?dir_t;
小伙伴們學(xué)會了么?
小結(jié)
坐標(biāo)轉(zhuǎn)換!攝像機(jī)!射線!
以上為白玉無冰使用 Cocos Creator 3D v1.1.2 實(shí)現(xiàn) "3D瞄準(zhǔn)器" 的技術(shù)分享。歡迎分享給身邊的朋友!
知識不過是潛在的力量,只有將它組織成明確的行動計(jì)劃,并指引它朝著某個明確目的發(fā)揮作用的時候,知識才是力量。
更多
https://github.com/baiyuwubing/cocos-creator-3d-examples
點(diǎn)擊“閱讀原文”查看精選導(dǎo)航
“在看”是最大的鼓勵▼



