我的場景中有幾個節點,我可以旋轉和拖動。我建立了一個physicsWorld委託,爲我的節點添加了類型爲kinematic的physicsBody並檢查了PhysicsWorld didBeginContact - 到目前爲止,一切正常,當我移動節點時,聯繫開始/結束觸發。Scenekit-physicsWorld設置防止運動節點相交
我試圖解決這個問題的方法是設置一個布爾變量,一旦聯繫開始,以防止進一步移動,但我遇到案件(特別是如果我拖動節點太快),更改爲真,該節點在另一個對象內稍微有一點點。
我應該對此採用不同的方法嗎?我不是真的想要碰撞,只是另一個節點表現「堅實」,即使在更高速的接觸下也不允許相交。
編輯:
一些樣本圖像以進一步澄清該問題:
爲了簡單起見我已經添加僅2個節點來證明的問題。第一張圖像是初始位置,第二張和第三張(側面圖)在非常快速的平移之後。只有在節點已經相交後才觸發聯繫檢測。
我嘗試的一種方法是在聯繫人被觸發前抓住最後一個位置,並在檢測到接觸後重新設置節點位置,但結果非常不穩定並且不穩定,並且瞬間可以看到物體相交然後跳到最後的「好」位置。我覺得必須有一些更簡單的方法來實現這一點,但花費數小時後,通過可用資源,我無法弄清楚。
EDIT 2
進一步研究朝下掃描試驗線,technicaly如果我能發現可能的碰撞之前我移動節點,我應該能夠限制運動停止intersetion發生
前UPDATE:另一個死衚衕,因爲Xcode中指出
Error: convexSweep only works with convex shapes