首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >子类SCNNode

子类SCNNode
EN

Stack Overflow用户
提问于 2015-04-13 23:50:28
回答 1查看 1.6K关注 0票数 2

我正在导入一个简单的dae文件。我希望其中一些节点是SCNNode - MySCNNode的子类。

代码语言:javascript
运行
复制
 MySCNNode *node = [scnView.scene.rootNode childNodeWithName:@"Box1" recursively:YES];
 //additional initialization goes here 

尝试转换到(MySCNNode *)。

但这不管用。“节点”仍然是一个SCNNode。为什么?

我需要向SCNNode添加一些属性和方法。所以我把SCNNode子类化了。我希望场景中的节点(从dae导入)具有属性和行为。场景中的节点总是SCNNode。我希望它是MySCNNode级的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-15 19:41:06

我知道需要一个子类。我明白为什么这是不典型的。在我的例子中,我正在创建一个RTS并创建它的“任务编辑器”,这样我就可以在搅拌器中获取一个充满各种对象的场景,并在编辑器中构建自定义场景。所以我需要知道什么时候瓷砖是可建造的,可通过的(以及在哪一层),等等。这可能不是完美的,但它应该能工作:

代码语言:javascript
运行
复制
+(instancetype)mySCNNodeWithNode:(SCNNode*)node{

SCNVector3 min,max;
[node getBoundingBoxMin:&min max:&max];
MySCNNode *newNode = [MySCNNode node];
newNode.position = node.position;
newNode.rotation = node.rotation;
newNode.transform = node.transform;
[node setBoundingBoxMin:&min max:&max];
newNode.geometry = [node.geometry copy];
SCNMaterial * material = [node.geometry.firstMaterial copy];
newNode.geometry.firstMaterial = material;

return newNode;

}

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29616913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档