2015-12-19 38 views

回答

1

SCNNode是一个模型对象,而不是UIView后代(或更准确地说不符合UIFocusEnvironment),所以我不希望它能够关注。

那么如何选择一个特定的SCNNodeSCNView? Apple tvOS SceneKit模板实现了点击测试,但我没有看到用户如何选择他们正在选择的屏幕上的哪个点;没有视觉反馈。模板/演示似乎没有想到。所以这里有一些方法和我前几天讨论过的方法,但没有尝试实现。

SCNView可以有一个SpriteKit覆盖的场景,overlaySKScene。使用一些手势(也许长按或播放按钮)切换到“我即将选择一个节点”模式。这意味着光标出现在overlaySKScene上,并且可以通过遥控器上的手指移动来移动。用户将光标移动到正确的节点上,然后点击?程序捕获游标的SpriteKit坐标,将其转换回SceneKit命中测试输入,并在场景图上执行命中测试。

@vigneshv指出,Apple不鼓励使用游标。这也是我本周从参加技术会谈的人那里听到的。所以修改的方法可能是在SKScene上使用不可见光标。随着遥控器上的每次移动,执行命中测试。突出显示不可见光标下的节点,但在获取触控板点击之前不要采取行动。当您第一次切换到节点选择模式时,您甚至可以将不可见光标放在最大或最中心的节点上,以提供一些初步的视觉反馈。

根据您的节点图,这可能会变得复杂。我可以想象根据SCNNode中心生成Voronoi图,并使用远程手势从多边形移动到多边形。

还有一个想法:使用一个简单的矩形(或十六进制?)网格来跟踪光标,而不是隐藏的隐含Voronoi图。命中测试变得更加复杂:每个网格单元下可以有多个节点。但是网格变得更容易构建,并且更容易导航。

+0

Apple没有不鼓励使用游标吗? – vigneshv

相关问题