目前,当我改变孩子的节点颜色时,它会导致所有其他子节点的颜色变化,这是我不想要的。
我用这种方式改变子节点的颜色:
let materials = node.geometry?.materials as! [SCNMaterial]
let material = materials[0]
material.diffuse.contents = UIColor.grayColor()
答案 0 :(得分:10)
默认情况下,如果您有多个节点分配了相同的While 1=1
BEGIN
select top 1 @email_id=email_id, @email_type=email_id, @from_add=from_addr, @to_add=to_addr, @reply_add=reply_addr, @Mysubject=subject, @message=letter_body
from outbound_email_queue
if @@ROWCOUNT = 0
break
begin TRAN
begin try
DELETE FROM outbound_email_queue WHERE EMAIL_ID = @email_id
exec msdb.dbo.sp_send_dbmail @recipients=@to_add ... etc.
commit tran
end try
begin catch
rollback tran
select -1
end catch
END
实例,那么这些节点也具有相同的材质。更改材质会更改使用该材质的所有节点的外观。
SCNGeometry
对象并不直接表示几何数据 - 它实际上只是一组几何数据和一组材料之间关联的轻量级表示。因此,当您想要在具有不同材质的多个节点上渲染相同的几何体时,只需复制几何对象......它们仍然可以共享基础数据,因此渲染时成本可以忽略不计,但是您和#39;能够独立改变他们的材料。
复制几何体后,您可以单独更改两个几何体上的 材质集,但这些集仍然共享相同的SCNGeometry
个实例。 (这很有用,因为几何体可以有多种材质,每种材质都是一组属性,因此尽可能有效地分享它们。)因此,您可以为每个几何体分配新材料,或者取消分享材料。
SCNMaterial
在WWDC 2014关于Building a Game with SceneKit的讨论中对此进行了很好的讨论。相关位在视频中约为37:15,在PDF中为幻灯片159。
答案 1 :(得分:5)
根据@sambro评论和@rickster代码,以下是现成的答案:
curl -X POST{"name":"groupname"} -ik -u application:password-H 'Content-Type: application/json' -H 'Accept: application/json' https://localhost/crowd/rest/usermanagement/1/user/group/direct?username=username.
答案 2 :(得分:0)
现在已简化
let searchNode = node.childNode(withName: "YOUR_CHILD_NODE_NAME", recursively: true)
searchNode?.geometry?.firstMaterial?.diffuse.contents = UIColor.red
在这里,它搜索完整的树。子节点,子子节点等,直到找到具有特定名称的节点。