草庐IT

SceneKit

全部标签

ios - SceneKit SCNAction.run 和旋转不起作用

我有一个场景,其中有一个应该永远运行旋转Action的盒子:dps是可以由用户更改的属性。overridefuncviewDidAppear(){super.viewDidAppear()letscene=SCNScene()scene.rootNode.addChildNode(boxNode)self.rateScene.scene=sceneletactionwait=SCNAction.wait(duration:0.001)letrun=SCNAction.run{_inletfps=60.0letdelta=(self.dps*3.14/180.0)/fpsself.box

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)

swift - 4 点之间的 Scenekit 形状

鉴于我在上一个问题中所走的路线:ARKit-placeaSCNPlanebetween2vectorpointsonaplaneinSwift3...似乎有缺陷,我正在寻找其他选择。我可以在2个节点之间画一条线,然后我可以在这些节点之上创建节点,有效地在一个正方形中,但即使我在它们之间画线,我也无法将其变成一个形状。是否可以在Scenekit中绘制一个形状(正方形),其中4个角中的每一个都连接到一个节点。我可以创建一个平面,将其放置在节点上,变换轴心然后旋转,但它并不总是有效,但SCNGeometry线可以。谢谢 最佳答案 所以答案

ios - 我希望 SWIFT/Scenekit 中的所有对象在地板上都有阴影

我正在swift开发一个ARKit项目。在SWIFT中,我将对象添加到场景中。我想对这些对象做的是在它们下面显示一个阴影,使它们更逼真。我尝试了一些东西,但都没有用。我会在这里解释。请理解我对swift还是个新手。我在SWIFT中以编程方式创建对象。我想我可以通过在所有物体下方创建一个不可见的平面并在场景上方放置一盏灯来做到这一点。我了解到,通过取消选中“写入颜色”值红色、绿色、蓝色和alpha,我可以在Xcode的场景编辑器中的不可见平面上转换阴影。我在它上面放了一个聚光灯,它起作用了。现在我想以编程方式执行此操作。我swift创建了灯光和平面,如下所示。我不再使用点了,因为场景太大

swift - 移动 art.scnassets 文件夹后图像未加载

在Xcode中创建一个新的“增强现实应用程序”项目后,我想将art.scnassets文件夹从其默认位置移动到我创建的/Resources/文件夹.因此文件夹路径类似于Resources/art.scnassets。但是,如果我移动文件夹,它无法在其中加载png文件。见下文:之前(工作)://art.scnassetsfolderisinitsdefaultplace//belowcodeloadsimage.pngprint(UIImage(named:"art.scnassets/image.png")!)之后(不工作)://movedfolderto"Resources/art.

ios - Recursion::How to create a mini-view of 3d scenekit of self on top of self?

我有一个带有SceneKit的3d世界,效果很好,可以平移、放大/缩小,但我想在更大的3d世界之上创建3d世界的迷你View。因此,如果用户放大到非常精细的分辨率,他们仍然知道他们在空间中的位置。大多数示例似乎在SceneKitVC之上覆盖了一个不同的VC,如SpriteKit,并带有类似overlaySKScene的内容。迷你版不会放大/缩小,但会平移、改变照明等,但它不接受手势。这更像是如何将self的迷你版本放在self之上的递归。 最佳答案 这是我的做法:您可以简单地在场景中添加另一个相机,然后渲染到SCNLayer。然后,

ios - 为什么在 SceneKit 中不调用 Contact Delegate?

我正在开发一款游戏,但我遇到了SceneKit中的联系人委托(delegate)问题。我在ViewController中声明了正确的委托(delegate)并使用它来设置委托(delegate):sceneView.scene?.physicsWorld.contactDelegate=self它应该可以工作,事实上,对于XCode6.4它应该可以工作,但对于BetaXCode7它却不能。相同的代码。我的问题是:这里有人知道临时修复方法吗? 最佳答案 从iOS9开始,您必须显式配置physicsBody的“contactTestBi

ios - 在 View Controller 中添加 Spark 粒子 Sprite

我基于spark模板创建了一个.sks粒子发射器。我的应用程序是普通应用程序(不是游戏)。当用户单击一个按钮时,我有一个新的ViewController,它以模态方式显示全屏,这样我就可以模糊背景。在这个模态中,我创建了一个View并给它一个SCNView类,见下图:如何加载粒子.sks文件以在ParticlesView的viewController上执行动画?更新如何在ViewController中加载SceneKit粒子系统? 最佳答案 如@mnuages所述,您可以使用.scnp文件代替.sks,这是一个SceneKit粒子系

swift - 使用 SceneKit 和 ARKit 创建一个盒子

我正在尝试使用SceneKit和ARKit创建原语。无论出于何种原因,它都不起作用。letbox=SCNBox(width:0.1,height:0.1,length:0.1,chamferRadius:0)letnode=SCNNode(geometry:box)node.position=SCNVector3(0,0,0)sceneView.scene.rootNode.addChildNode(node)我还需要输入相机坐标吗? 最佳答案 您的代码看起来不错,应该可以工作。我试过如下代码:在使用ARKit模板创建新应用后,我替

ios - 具有贝塞尔曲线路径的 SCNShape

我想在ScenekitiOS中画一条3d线,我正在尝试下面的代码来画线,funcpath()->UIBezierPath{varbPath=UIBezierPath()bPath.moveToPoint(CGPointMake(0,0))bPath.addLineToPoint(CGPointMake(10,10))bPath.addLineToPoint(CGPointMake(5,5))bPath.closePath()returnbPath}下面的代码是加载SCNNode中的行,letsap=SCNShape()sap.path=path()letcarbonNode=SCNNo