我无法弄清楚如何使用
Swift从Scenekit SCNFloor类访问属性,在objective-c中他们这样做:
SCNNode*floor = [SCNNode node]; floor.geometry = [SCNFloor floor]; ((SCNFloor*)floor.geometry).reflectionFalloffEnd = 10;
这创建了地板,我如何访问“reflectionFalloffEnd”?
let levelFloor = SCNNode() levelFloor.geometry = SCNFloor()
谢谢
编辑感谢您现在的快速反应:)
解决方法
无论您是在ObjC还是Swift中,为了让编译器对您在引用上使用SCNFloor属性或方法感到满意,该引用需要具有SCNFloor类型.
您可以使用强制转换内联:
// ObjC ((SCNFloor*)floor.geometry).reflectionFalloffEnd = 10; // Swift (levelFloor.geometry as SCNFloor).reflectionFalloffEnd = 10
但这可能变得相当笨拙,特别是如果你要在几何上设置一堆属性.我更喜欢只使用局部变量(或常量,因为引用不需要更改):
let floor = SCNFloor() floor.reflectionFalloffEnd = 10 floor.reflectivity = 0.5 let floorNode = SCNNode(geometry: floor) floorNode.position = SCNVector3(x: 0,y: -10.0,z: 0) scene.rootNode.addChildNode(floorNode)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。