2015-12-19 37 views

回答

1

SCNNode是一個模型對象,而不是UIView後代(或更準確地說不符合UIFocusEnvironment),所以我不希望它能夠關注。

那麼如何選擇一個特定的SCNNodeSCNView? Apple tvOS SceneKit模板實現了點擊測試,但我沒有看到用戶如何選擇他們正在選擇的屏幕上的哪個點;沒有視覺反饋。模板/演示似乎沒有想到。所以這裏有一些方法和我前幾天討論過的方法,但沒有嘗試實現。

SCNView可以有一個SpriteKit覆蓋的場景,overlaySKScene。使用一些手勢(也許長按或播放按鈕)切換到「我即將選擇一個節點」模式。這意味着光標出現在overlaySKScene上,並且可以通過遙控器上的手指移動來移動。用戶將光標移動到正確的節點上,然後點擊?程序捕獲遊標的SpriteKit座標,將其轉換回SceneKit命中測試輸入,並在場景圖上執行命中測試。

@vigneshv指出,Apple不鼓勵使用遊標。這也是我本週從參加技術會談的人那裏聽到的。所以修改的方法可能是在SKScene上使用不可見光標。隨着遙控器上的每次移動,執行命中測試。突出顯示不可見光標下的節點,但在獲取觸控板點擊之前不要採取行動。當您第一次切換到節點選擇模式時,您甚至可以將不可見光標放在最大或最中心的節點上,以提供一些初步的視覺反饋。

根據您的節點圖,這可能會變得複雜。我可以想象根據SCNNode中心生成Voronoi圖,並使用遠程手勢從多邊形移動到多邊形。

還有一個想法:使用一個簡單的矩形(或十六進制?)網格來跟蹤光標,而不是隱藏的隱含Voronoi圖。命中測試變得更加複雜:每個網格單元下可以有多個節點。但是網格變得更容易構建,並且更容易導航。

+0

Apple沒有不鼓勵使用遊標嗎? – vigneshv

相關問題