在 Scene Kit 上只运行一次 SCNNode 动画
Running a SCNNode animation just once on Scene Kit
我正在尝试从 .dae 文件(3D 模型文件)运行一次动画,这是我的代码:
SCNNode *object = (SCNNode*)[self getMyPlayerObject];
NSString *key = @"hit";
CAAnimation *animation = [_animations[key] copy];
[animation setSpeed:1];
[animation setTimeOffset:0];
[object addAnimation:animation forKey:key];
我试过使用 animation.removedOnCompletion = YES;
但没有用,我试过设置委托并尝试使用 animationDidStop:finished:
方法检测它,但它甚至没有被调用,在 DAE 动画的 SCNNodes
上使用 CAAnimations
时有些奇怪。
有什么办法吗?
提前致谢。
您的动画可能配置为重复播放。检查 repeatCount
属性 是否大于 1
。将其设置为 1 将重复动画一次,但您也可以将其设置为 0 以忽略它。如果不是这样,您可以查看 repeatDuration
属性 并将其设置为 0(忽略它),如果它还不是 0.
我正在尝试从 .dae 文件(3D 模型文件)运行一次动画,这是我的代码:
SCNNode *object = (SCNNode*)[self getMyPlayerObject];
NSString *key = @"hit";
CAAnimation *animation = [_animations[key] copy];
[animation setSpeed:1];
[animation setTimeOffset:0];
[object addAnimation:animation forKey:key];
我试过使用 animation.removedOnCompletion = YES;
但没有用,我试过设置委托并尝试使用 animationDidStop:finished:
方法检测它,但它甚至没有被调用,在 DAE 动画的 SCNNodes
上使用 CAAnimations
时有些奇怪。
有什么办法吗?
提前致谢。
您的动画可能配置为重复播放。检查 repeatCount
属性 是否大于 1
。将其设置为 1 将重复动画一次,但您也可以将其设置为 0 以忽略它。如果不是这样,您可以查看 repeatDuration
属性 并将其设置为 0(忽略它),如果它还不是 0.