小编Pat*_*del的帖子

如何解决SceneKit渲染器“ EXC_BAD_ACCESS(代码= 1,地址= 0xf000000010a10c10)”?

这是我遇到的错误,请查看所附图片以获取更多信息。

com.apple.scenekit.scnview-renderer(17):EXC_BAD_ACCESS(代码= 1,地址= 0xf000000010a10c10)

这是错误的日志: 有关错误的更多信息

我可以在调用以下函数时重现此错误,但前提是此函数在一秒钟内被多次调用。如果用户快速点击该按钮以循环到下一辆可用的汽车,则会发生这种情况。

如您所见,我尝试将其包装在a中DispatchQueue以解决我的问题。

您还会注意到,我创建了一个Bool alreadyCyclingCars来跟踪该cycleCarNext()函数是否已完成,然后再允许再次调用它。

这个功能主要是通过所有的迭代unlockedCarsunlockedCars阵列。

如果汽车的类型与我们当前正在寻找的汽车相匹配,我会打破循环。

然后我们确定当前汽车的索引,以查看我需要显示的下一辆汽车是否是数组中的下一辆汽车(如果有)(如果没有),我们到达了数组的末尾,因此我显示了第一辆汽车在数组中。

有谁比我对此了解更多?真的很感谢,谢谢!

func cycleCarNext() {
        DispatchQueue.main.async { [weak self] in
            guard let self = self else { return }
            if !self.alreadyCyclingCars {
                self.alreadyCyclingCars = true
                var indexOfCurrentCar = 0
                for (index, car) in UserData.shared.unlockedCars.enumerated() {
                    if car.type == self.overlayScene.currentCarOnDisplay {
                        indexOfCurrentCar = index
                        break
                    }
                }

                if indexOfCurrentCar < UserData.shared.unlockedCars.count - 1 {
                    let nextCar = UserData.shared.unlockedCars[indexOfCurrentCar+1]
                    self.playerNode.removeFromParentNode()
                    self.playerNode = …
Run Code Online (Sandbox Code Playgroud)

scenekit swift

11
推荐指数
1
解决办法
1335
查看次数

为什么我的阴影在SceneKit中像素化/波动?

我在SceneKit中遇到平滑阴影时遇到问题.您将在下面找到将灯光添加到场景中的代码以及图片.我圈出了像素化的区域.

甚至SceneKit提供的基本几何图形也没有正确着色.

有谁知道我怎么解决这个问题?

谢谢!

        let directionalLight = SCNNode()
        directionalLight.light = SCNLight()
        directionalLight.light?.type = .directional
        directionalLight.light?.castsShadow = true
        directionalLight.eulerAngles = SCNVector3(0, -toRadians(angle: 45), -toRadians(angle: 60))
        self.scene.rootNode.addChildNode(directionalLight)
        let ambientLight = SCNNode()
        ambientLight.light = SCNLight()
        ambientLight.light?.type = .ambient
        ambientLight.light?.color = UIColor.darkGray
        ambientLight.light?.intensity = 5000
        self.scene.rootNode.addChildNode(ambientLight)
Run Code Online (Sandbox Code Playgroud)

见图

scenekit swift

3
推荐指数
1
解决办法
99
查看次数

标签 统计

scenekit ×2

swift ×2