- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我对 Swift 和 IOS 开发还很陌生,所以这可能是一个简单的问题,但我很难在互联网上找到答案。
我试图通过在其中一个节点上运行 SCNAction 来为静态 DAE 模型制作动画。然而,在 SCNAction 完成后(并且节点被移动),节点位置将立即回到其原始位置(加载静态 DAE 模型时的相同位置)。但是当我打印节点的位置时,我注意到节点的位置实际上因为 SCNAction 而改变了。当我在同一个节点上再次运行 SCNAction 时,该节点将返回到最后一个 SCNAction 产生的结束位置,并从那里开始 SCNAction。我想知道为什么节点的实际位置和场景中出现的位置不匹配。
另一个有趣的事情是,当我按顺序 ([action1, action2]) 放置 SCNActions 时,节点不会在 Action 之间返回到其原始位置。但是如果在([action1, SCNAction.wait, action2])之间加入了SCNAction.wait,则节点在等待的过程中会回到原来的位置,从action1的结束位置重新开始action2。
我试图在 SCNActions 结束时保持所有节点的位置。有什么办法可以防止它回到原来的位置吗?
不确定问题是否足够清楚。任何想法和想法表示赞赏。
最佳答案
您是否已确认该节点未附带来自 Collada 文件的动画?动画和 Action 被一个接一个地评估。这些 Action 可能会覆盖动画的效果,直到它们完成(或暂停)。
与 Action 不同,动画不写入模型树 (node.position
),而只写入表示树 (node.presentationNode.position
)。
关于ios - Swift/IOS : SCNNode appeared to return to its original position after SCNAction is finished, 但它的实际位置被 SCNAction 改变了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54982241/
我对 Swift 和 IOS 开发还很陌生,所以这可能是一个简单的问题,但我很难在互联网上找到答案。 我试图通过在其中一个节点上运行 SCNAction 来为静态 DAE 模型制作动画。然而,在 SC
我看到的是SceneKit中的崩溃,这是我在iOS 13.1.2之前没有看到的。 我已将问题追查到以下功能,无法完全推测出导致问题的原因。 如果我注释掉在节点上运行操作的行,一切就很好。 我可以在场景
编辑 我比较了在 iPhone(6+、9.3 (13E5200d))(我的默认设置)和 iOS 模拟器(6+ 9.3 (13E5200d))上运行的结果。模拟器按预期工作。为什么两者之间存在差异? 我
我想放下一个物体,然后将它移回顶部,让它再次落下。第一部分工作正常,但随后节点似乎失去了重力并且不再下落。看起来它的物理 body 停留在地板上并且没有被 SCNActions 移动。解决方案是什么?
即使用户一直触摸激活操作的对象,我如何才能只执行一次操作直到完成?示例:一个按钮在按下时使一个盒子落下 'SCNVector3(0, -1, 0)'。如何让按钮在操作完成之前不再执行操作,即使用户正在
我的 SCNAction 不工作,即使编译器到达那里。这是我创建 SCNAction 的代码: println("log 1") //to check the program gets there l
我有一个节点 (nodeCollection),它有一个 SCNNode 作为子节点,它是这样创建的: let boxGeo = SCNBox(width: 1, height: 1, length:
如何为 SCNAction 结束时编写完成处理程序?或者可能只是在操作结束时收到通知。有什么方法可以知道 Action 何时结束?我最后的办法是使用自定义 delay(delay: Double, c
嘿,我正在尝试弄清楚如何以淡出持续时间结束 scnActions moveto 动作。基本上我有一辆车,汽车移动到现场,但一旦 Action 完成就突然停下来。我希望尝试让汽车更平稳地停下来。但我
NodeA 有一个 SCNAction 运行,持续时间为 10 秒。假设 4 秒过去了。如何获得正在进行的 SCNAction 的剩余持续时间(在本例中为 6 秒)? 我计划使用剩余的持续时间来动态创
我们将崩溃的原因确定为在我们的游戏中使用 SCNAction.playAudio 的声明。如果在我们的游戏中调用了任何 playAudio 语句,则 SCNScene/SCNView 的取消初始化稍后
我正在尝试在场景中移动 SCNNode,并限制为 GKGridGraph。沿着吃 bean 人的思路思考,但在 3D 中。 我有一个 ControlComponent 来处理我的 SCNNode 的移
我正在寻找解决我的问题的方法:我已经使用 Xcode 中的 Action 编辑器将动画定义为 SCNAction。现在我想用 slider 来控制它。因此,基本上操纵 slider 会显示动画中的特定
我在我的 3D 世界中有两个 SCNNodes A 和 B。 A 由用户移动,而 B 具有使其从左向右移动的 Action 。这是对 B 的操作: let moveDirection: Float =
嘿,我有一个球,可以通过施加力来移动。我想让它做的基本上是在它通过空气到达目的地时,重力作用在它身上的因果效应。基本上,当“移动到” Action 正在播放时,重力不会产生影响,所以它不会慢慢落到地面
我有一个聚光灯,用下面的代码创建,在我所有的节点上转换阴影: spotLight.type = SCNLightTypeSpot spotLight.spotInnerAngle = 50.0
我有一个场景,其中有一个应该永远运行旋转 Action 的盒子: dps 是可以由用户更改的属性。 override func viewDidAppear() { super.view
如何在没有 key 的情况下暂停或停止 .runActionForever() 调用的 SCNAction?我看到了使用 node.removeActionForKey("action") 的选项,但
我创建了一个玩家可以在其中移动的 SceneKit 3D 迷宫世界。跳跃等一些 Action 涉及上下移动相机,同时在几秒钟的时间内改变观察方向。在此期间,我想忽略用户的点击和滑动,这些点击和滑动通常
我有一个有约束的节点;更具体地说,它有一个 SCNLookAtConstraint : let constraint = SCNLookAtConstraint(target: scene.r
我是一名优秀的程序员,十分优秀!