新闻资讯

新闻资讯 行业动态

clone 与 flattenedClone 的使用区别

编辑:008     时间:2020-02-26

SCNNode对象有两个方法:clone 和 flattenedClone,同时还继承有 copy 方法,那它们有什么区别?

方法名 作用
copy     对象拷贝操作,只复制当前对象
clone     复制出一个新 node,并复制同样的树状结构(childNodes)
flattenedClone     复制出一个新 node,并将原来树状结构(childNodes)所有内容合并后,存放在当前对象下,可提高性能

clone 与 flattenedClone 的使用区别

我们以苹果官方示例程序中的小飞机模型来进行对比,3D 模型结构如下:


// 原始 node let node = scene.rootNode.childNode(withName: "ship", recursively: true)
node?.simdPosition = simd_float3(0, 0, -0.5)
scene.rootNode.addChildNode(node!) // clone 后的 node let node2 = node?.clone()
node2?.simdPosition = simd_float3(0.5, 0, -0.5)
scene.rootNode.addChildNode(node2!) // flattenedClone 后的 node let node3 = node?.flattenedClone()
node3?.simdPosition = simd_float3(1, 0, -0.5)
scene.rootNode.addChildNode(node3!) 

看到的效果如下,我们得到了三个看上去一模一样的小飞机




原文链接:https://juejin.im/post/5e532421e51d4526d05952cf
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

回复列表

相关推荐