我有一个 SCNNode 的子类“ExSCNNode”,用于向 SCNNode 添加更多属性和行为。
class ExSCNNode : SCNNode {
...
}
我用 ExSCNNode 构建了一个场景。
let testnode = ExSCNNode()
在进行场景测试时:
// check what nodes are tapped
let p = gestureRecognize.location(in: scnView)
let hitResults = scnView.hitTest(p, options: [:])
// check that we clicked on at least one object
if hitResults.count > 0 {
for hit in hitResults {
let hitnode = hit.node
...
hitnode 是 SCNNode 而不是 ExSCNNode。
但我想让 ExSCNNode 访问高级功能。
如何访问子类而不是 SCNNode 类?
最佳答案
只需将对象转换为您的子类:
// check what nodes are tapped
let p = gestureRecognize.location(in: scnView)
let hitResults = scnView.hitTest(p, options: [:])
for hit in hitResults {
if let hitnode = hit.node as? ExSCNNode {
…
}