关于播放USDZ文件的动画,我遵循了answer in this SO question,代码如下:

@IBOutlet var arView: ARView!

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.
    
    arView = ARView(frame: self.view.frame)
    self.view.addSubview(arView)
    arView.cameraMode = .nonAR
    let newAnchor = AnchorEntity(world: .zero)
    let newEnt = try! Entity.load(named: "Vintage Toy Robot")
    newAnchor.addChild(newEnt)
    arView.scene.addAnchor(newAnchor)
    
    print(newEnt.availableAnimations)
    
    for anim in newEnt.availableAnimations {
        newEnt.playAnimation(anim.repeat(duration: .infinity), 
                             transitionDuration: 1.25, startsPaused: false)
    }
}

但是,动画不会播放,USDZ文件只是静态的.

推荐答案

AR Quick Look页下载带有动画的机器人模型.您的代码正在运行.不要使用Reality Composer库中未设置动画的机器人.

let entity = try! Entity.load(named: "toy_robot_vintage.usdz")

然后删除这两行代码(你有2个ARView,它阻塞了动画):

arView = ARView(frame: self.view.frame)
self.view.addSubview(arView)

Swift相关问答推荐

日期格式yyyyyy—MM—dd hh:mm:ss +0000到dd MMM,以swift格式表示""""

如何将EnvironmentObject从UIKit视图控制器传递到SwiftUI视图

避免嵌套导航TabView

Swift C外部实现的Task / Future类类型

编写Swift字符串的属性包装时遇到问题

SwiftUI同心圆,通过逐渐出现来显示进度

像WebSocket一样接收实时更新,但通过异步/等待或组合

修改数组中每个类实例的属性

如何使用模型在 SwiftUI 的列表中进行搜索

OSX 中的 Popover 无法确定透明度

Xcode创建GitHub仓库,但未推送所有文件

CardStack 和 Lottie

自定义选取器的出现导致其他视图重新排列

无法分配给属性:absoluteString是一个只能获取的属性

在视图中设置所有变量

Swift 协议只能设置?

如何使用 swift 将 Images.xcassets 中的图像加载到 UIImage 中

在 xcode8 中找不到 ModuleName-Swift.h 文件

Swift 5 秒后关闭 UIAlertView

Swift 中的单元测试致命错误