import SwiftUI
import RealityKit
import RealityKitContent
import AVFoundation
struct ImmersiveView: View {
var body: some View {
RealityView { content in
guard let resource = try? TextureResource.load(named: "Starfield") else {
fatalError("加载纹理贴图失败")
}
var material = UnlitMaterial()
material.color = .init(texture: .init(resource))
let environment = Entity()
environment.components.set(ModelComponent(
mesh: .generateSphere(radius: 1000),
materials: [material]
))
environment.scale *= .init(x: -1, y: 1, z: 1)
let timer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { timer in
let radians = Float.pi / 180.0
let rotation = simd_quatf(angle: radians, axis: SIMD3<Float>(0,1,0)) /
environment.move(to: Transform(rotation: rotation), relativeTo: environment, duration: 10, timingFunction: .linear)
}
RunLoop.current.add(timer, forMode: .default)
content.add(environment)
}
}
}
Topic:
Graphics & Games
SubTopic:
General
Tags: