【问题标题】:SCNAction not firingSCNAction 未触发
【发布时间】:2015-06-24 16:48:59
【问题描述】:

我的SCNAction 不起作用,即使编译器到达那里。这是我创建SCNAction的代码:

println("log 1") //to check the program gets there
let moveInit1: SCNAction = SCNAction.moveTo(SCNVector3Make(0, -3, 0), duration: 1)
moveInit1.timingMode = SCNActionTimingMode.EaseOut
cube.runAction(moveInit1)
println("log 2") //check again

输出是log 1log 2,但是没有动画发生...

有人知道为什么吗?

注意

我在另一种方法中有完全相同的代码,它确实有效。

【问题讨论】:

  • 如果您使用letvar 进行操作,您确定可以覆盖timingMode?我不认为let 属性应该改变。
  • 是的,它确实有效,没有给我任何错误。

标签: ios swift animation scenekit


【解决方案1】:

我不知道为什么您的代码不起作用,但这段代码对我有用。

var node = SCNNode.new()
node.geometry = SCNSphere(radius: 1)
var action = SCNAction.moveTo(SCNVector3Make(0, 3, 0), duration: 1)
action.timingMode = SCNActionTimingMode.EaseOut
node.runAction(action)

【讨论】:

  • 我知道为什么它不起作用。我已经在 VC 之外创建了节点,以使其可用于多种方法。然后,在setup() 中配置节点及其属性。有没有可能,因为这段代码在另一个方法中(并且在if-block 中)它因此不起作用?
  • 我发现了问题,请参阅下面的答案。谢谢你的帮助:)
【解决方案2】:

好的,我发现了问题。当我全局创建节点时(因此它可用于多种方法),我将其设置为let。我在setup() 方法中用var 重新定义了节点,Xcode 没有抱怨,显然我有两个同名的不同节点。
第一个节点(常量节点)没有包含我在setup() 中所做的所有配置。

这是导致问题的原因,它现在运行完美:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-26
    • 2020-11-26
    • 2013-08-28
    • 2016-01-27
    相关资源
    最近更新 更多