我有一个SCNNode的子类"ExSCNNode"来向SCNNode添加更多属性和行为.
class ExSCNNode : SCNNode {
...
}
Run Code Online (Sandbox Code Playgroud)
我比使用ExSCNNode构建一个场景.
let testnode = ExSCNNode()
Run Code Online (Sandbox Code Playgroud)
当测试场景时:
// 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
...
Run Code Online (Sandbox Code Playgroud)
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 {
…
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
484 次 |
| 最近记录: |