模型點擊事件插曲
在做三維可視化項目的過程中,我們經常會有模型的點擊交互事件,在上一篇我有介紹過模型點擊交互的方法,想了解的話點這里,這里不再贅述。我今天要分享的是模型遮擋或者叫點擊事件穿透。這是一種什么情況下才會有場景呢?我舉一個例子,你有一個木箱(木箱封閉且半透明只是起到一個容器的作用),你在木箱里放一瓶酒,這時負責交互的同事說了,我只想點擊木箱里的酒瓶,展示酒的品種、年份等等,不想點到木箱(有點隔空取物的意思)。在u3d引擎里這種實現比較簡單,酒瓶需要交互,箱子不需要也不想點擊到箱子,只需要在添加碰撞器的時候只給酒瓶添加就可以輕松規避了。但在threejs怎么實現這一偉大壯舉呢,好像我在上一篇講模型點擊事件的時候也沒提到有加碰撞器的說法,其實很簡單。我雖然沒提碰撞器,但我提到了交互模型容器管理,還記得我說的MeshArr(個人命名習慣)嗎,這里是存放我們需要交互模型的數組,在射線檢測時我們只需要檢測鼠標指針范圍內需要交互模型的就行了,很簡單就實現了。末了還是想配一張圖:
只為說明問題