У меня есть эта анимационная функция в приложении Swift6 RealityKit. Он тихо подходит в сцену. Это работает.
Но я получаю захват «Simplematerial» с неоплейным типом «Simplematerial» в «@sendable» закрытии . Как мы можем избавиться от этого. < /P>
func fadeInText(entity: ModelEntity, duration: TimeInterval = 1) {
guard var simpleMaterial = entity.model?.materials.first as? SimpleMaterial else { return }
let steps = 60
let interval = duration / Double(steps)
let startTime = CACurrentMediaTime()
Timer.scheduledTimer(withTimeInterval: interval, repeats: true) { t in
let elapsed = CACurrentMediaTime() - startTime
let progress = min(elapsed / duration, 1.0)
let alpha = progress
Task { @MainActor in
simpleMaterial.color.tint = simpleMaterial.color.tint.withAlphaComponent(CGFloat(alpha))
entity.model?.materials = [simpleMaterial]
}
if progress >= 1.0 {
t.invalidate()
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... -animation