【发布时间】:2014-11-09 15:19:28
【问题描述】:
在尝试用 Swift 翻译 this 时,我发现我的代码无法编译
let movementShader = SKShader(fileNamed: "reflection.fsh")
movementShader.addUniform(SKUniform(name: "size", SCNVector3: SCNVector3Make(0.0, 0.0, 0.0)))
说我的电话中有一个额外的参数。
这里很新,有什么想法吗?
谢谢
【问题讨论】:
-
SKUniform没有init(name:SCNVector3:)初始化程序。而且你不能从 Swift 调用它确实有的向量初始化器(比如init(name:floatVector3:)),因为它们使用 GLKit 类型。这些是 Swift 不支持的 C 联合类型,因此它不会导入任何使用它们的 API。 -
SCNVector3可在 Swift 中使用,因此如果您在SKUniform的 ObjC 类别中定义initWithSCNVector3:,这可能是一个很好的解决方法。 -
谢谢,你能提供一个起点吗?
-
我的答案有完整的解决方案,你试过了吗?
标签: ios sprite-kit