jjzjj

swift - SCNBox 使正面旋转到 ARKit 中的相机

我有一个简单的ARKit应用程序。当用户触摸屏幕时overridefunctouchesBegan(_touches:Set,withevent:UIEvent?){guardlettouch=touches.firstelse{return}letresult=sceneView.hitTest(touch.location(in:sceneView),types:[ARHitTestResult.ResultType.featurePoint])guardlethitResult=result.lastelse{return}lethitTrasform=SCNMatrix4(hi

ios - 如何旋转 SCNBox

我正在尝试旋转我使用滑动手势创建的SCNBox。例如,当我向右滑动时,盒子应该在Y轴上旋转90度,当我向左滑动时,盒子应该旋转-90度。为此,我一直在使用节点的SCNAction.rotateByX方法来执行旋转动画。现在我遇到的问题是在Y-axis旋转后沿X-axis或Z-axis旋转并且反之亦然,轴的位置发生变化。我注意到,任何在X、Y、Z轴上执行的旋转都会改变其他轴指向的方向。示例:默认位置然后在Z轴旋转之后:当然这会带来问题,因为现在当我向左或向右滑动时,我不再得到想要的效果,因为X轴和Y轴现在已经交换了位置。我想知道的是为什么会发生这种情况?有没有办法在不影响其他轴的情况下执

swift - 通过将 base 保持在相同的 y 来动画 SCNBox 高度

我有一个SCNBox对象通过SCNNode添加到SCNScene中......letbox:SCNBox=SCNBox(width:4,height:4,length:4,chamferRadius:0.1)box.firstMaterial?.diffuse.contents=UIColor.greenColor()letboxNode:SCNNode=SCNNode(geometry:box)boxNode.position=SCNVector3(x:2,y:2,z:2)scene.rootNode.addChildNode(boxNode)我的问题是如何设置高度动画(假设为40)

ios - 将 iOS SceneKit 中的 SCNText 与 SCNBox 与 boundingBox 对齐?

修改后的问题:我不明白为什么白色节点在它是盒子或球体时居中,但在它是文本时却不居中。您可以注释/取消注释whiteGeometry变量以查看每个不同几何图形的显示方式。我原本以为我必须通过确定框和文本的宽度并计算文本的位置来手动将文本居中。我需要这样做吗?为什么文本表现不同?importSceneKitimportPlaygroundSupportletscene=SCNScene()letsceneView=SCNView(frame:CGRect(x:0,y:0,width:500,height:500))sceneView.scene=scenesceneView.backgro

uiimage - Swift:设置 SCNMaterial 适用于 SCNBox 但不适用于从 Wings3D DAE 加载的 SCNGeometry

这段代码摘录(场景、相机、灯光等。从代码中截取)在iOS模拟器上以Swift运行:letboxNode=SCNNode()//CreateaboxboxNode.geometry=SCNBox(width:1,height:1,length:1,chamferRadius:0.1)letnumFaces=6scene.rootNode.addChildNode(boxNode)//createandconfigureamaterialforeachfacevarmaterials:[SCNMaterial]=Array()foriin1...numFaces{letmaterial=S

ios - SCNBox 在每张脸上都有不同的颜色或纹理

我是iOS开发的新手,我被难住了。我正在尝试使用SceneKit渲染一个立方体,每个面都有不同的颜色。这是我目前所得到的:funcsceneSetup(){//1letscene=SCNScene()//2letBoxGeometry=SCNBox(width:0.9,height:0.9,length:0.9,chamferRadius:0.0)BoxGeometry.firstMaterial?.diffuse.contents=UIColor.redColor()letcube=SCNNode(geometry:BoxGeometry)cube.position=SCNVecto