Как в RealityKit получить программный доступ к компоненту, созданному в Reality Composer Pro?
Допустим, я создал сцену с излучателем частиц в Reality Composer Pro. Я пытаюсь настроить некоторые значения эмиттера в коде, но не знаю, как получить доступ к эмиттеру частиц в моем коде.
import Foundation
import SwiftUI
import RealityKit
import RealityKitContent
struct ImmersiveSpace: View {
@State var myParticleEmitter: ParticleEmitterComponent?
var body: some View {
RealityView { content in
do {
let scene = try await Entity(named: "Scene", in: realityKitContentBundle)
content.add(scene)
scene.position = [0, 0.25, 0]
self.particleEmitterComponent = scene.howDoIFindIt
} catch {
print(error)
}
} update: { content in
self.particleEmitter.someValue = someUpdatedValue
}
}
}
#Preview {
ImmersiveSpace()
}
1 ответ
Программный доступ к компонентам RCP
Попробуйте этот код для программного доступа к частицам, созданным в Reality Composer Pro:
import SwiftUI
import RealityKit
import RealityKitContent
struct ContentView : View {
var body: some View {
VStack {
RealityView { content in
if let particles = try? await Entity(named: "Scene",
in: realityKitContentBundle) {
content.add(particles)
}
} update: { content in
print(content)
let particles = content.entities[0].findEntity(named: "ParticleEmitter")
if var component = particles?.components[ParticleEmitterComponent.self] {
component.mainEmitter.color = .constant(.single(.green))
particles?.components.set(component)
}
}
}
}
}
#Preview {
ContentView()
}