SCNNode对象有两个方法:clone 和 flattenedClone,同时还继承有 copy 方法,那它们有什么区别?
方法名
|
作用
|
copy
|
对象拷贝操作,只复制当前对象
|
clone
|
复制出一个新 node,并复制同样的树状结构(childNodes)
|
flattenedClone
|
复制出一个新 node,并将原来树状结构(childNodes)所有内容合并后,存放在当前对象下,可提高性能
|
clone 与 flattenedClone 的使用区别
我们以苹果官方示例程序中的小飞机模型来进行对比,3D 模型结构如下:
let node = scene.rootNode.childNode(withName: "ship", recursively: true)
node?.simdPosition = simd_float3(0, 0, -0.5)
scene.rootNode.addChildNode(node!) let node2 = node?.clone()
node2?.simdPosition = simd_float3(0.5, 0, -0.5)
scene.rootNode.addChildNode(node2!) let node3 = node?.flattenedClone()
node3?.simdPosition = simd_float3(1, 0, -0.5)
scene.rootNode.addChildNode(node3!)
看到的效果如下,我们得到了三个看上去一模一样的小飞机
原文链接:https://juejin.im/post/5e532421e51d4526d05952cf
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。