我正在尝试加载一个SKShapeNode,其中包含一个自定义的fillShader,当我单击鼠标时,它将开始设置动画。当我这样做时,程序开始挂起大约一秒钟。这是为什么?这个密码有问题吗?
材质球的制作位置:
func shaderSprite(position: CGPoint) -> SKShapeNode {
let sprite = SKShapeNode(rectOf: CGSize(width: 1000, height: 1000))
sprite.fillColor = .red
sprite.strokeColor = .clear
sprite.position = position
sprite.zPosition = -1
sprite.fillShader = SKShader(fileNamed: "inkBlobShader.fsh")
sprite.position = position
return sprite
}
添加节点:
func touchDown(atPoint pos : CGPoint) {
//add the sprite to the scene. (THIS IS WHERE THINGS START LAGGING)
self.addChild(self.shaderSprite(position: pos))
}
最佳答案
延迟可能是由于导致编译着色器的sprite.fillShader = SKShader(fileNamed: "inkBlobShader.fsh")
。尝试在场景加载并保持引用时编译着色器,而不是等待用户与场景交互以加载和编译着色器。
关于ios - 使用自定义fillShader加载SKShapeNode会使程序挂起,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55269727/