按特定 class 名称搜索 child

search for child by specific class name

在阅读了关于搜索 child 节点的 apple doc 之后,我了解到我不仅可以通过节点名称进行搜索,还可以通过其 class 进行搜索 - 通过在内部使用 project_name.class_name withName 变量。我的项目名称是颜色,我有一个 class 类型 SKShapeNode 的名称 BallNode。不幸的是,我找不到使用这种方法的节点(如 apple doc 所写)。在我的项目中,球是在屏幕上随机创建的,当我按名称 (BALL) 搜索时,每个球的名称都是 "BALL"我可以找到节点,但如果我尝试使用 class 名称,它就会起作用。 这是我的代码:

    override func update(_ currentTime: TimeInterval) {

    self.enumerateChildNodes(withName: "color.BallNode") { node, _ in
        print("ball node found")
    }

有人知道我做错了什么吗?

Apple 的 link 确实显示了正确的代码。我刚刚在测试项目中尝试了以下代码并且它有效

    let ball = PushButton(upTexture: SKTexture(image:#imageLiteral(resourceName: "button")))
    ball.name = "ball1"
    addChild(ball)

    let ball2 = PushButton(upTexture: SKTexture(image:#imageLiteral(resourceName: "button")))
    ball2.name = "ball21"
    addChild(ball2)

    let ball3 = PushButton(upTexture: SKTexture(image:#imageLiteral(resourceName: "button")))
    ball3.name = "ball3"
    addChild(ball3)

    self.enumerateChildNodes(withName: "WordConstructor.PushButton") { node,_ in
            print("node.name \(node.name)")
    }

我会检查你的项目名称是 "color" 而不是 "Color" 你的项目中有多个目标吗?

你能展示一下你把球添加到场景中的代码吗?

仅供参考 运行 在您的更新语句中,您的游戏将尝试每秒查找 60 次,这可能不是最佳选择