创建SCNNode数组时出错

时间:2018-08-02 17:50:43

标签: arrays swift

尝试为一组图像创建节点阵列,但失败了,使用场景套件的经验不足。

试图获得

    func addNumbers() {

    let v1 = drand48()
    let v2 = drand48()
    let v3 = drand48()

    var nodeArray : [SCNScene] = []
    var i = 0
    while(i < 10) {
        nodeArray[i] = SCNScene(named: "\(i).dae")!
        self.nodes[i] = nodeArray[i].rootNode.childNode(withName: "\(i)", recursively: false)!
        nodes[i].position = SCNVector3(v1, v2, v3)
        nodes[i].physicsBody = SCNPhysicsBody.static()
        self.sceneView.scene.rootNode.addChildNode(nodes[i])
        i += 1
    }

在每次尝试运行时由于“致命错误:索引超出范围”而无法正常工作

    nodeArray[i] = SCNScene(named: "\(i).dae")!

有人可以帮忙吗?

使用XCode 9和Swift 4.1

1 个答案:

答案 0 :(得分:1)

这不是SceneKit的问题,而是对如何向空的可变Array中添加元素的误解。请查看Collection Types指南。

您将要使用nodeArray.append(…)而不是nodeArray[i] = …