检测到图像锚点时播放动画
Play animation when image anchor detected
在 RealityKit 中我有一个图像锚点。当检测到图像锚点时,我想显示一个对象并播放它的动画。我在 Reality Composer 中创建了一个动画。这是一个简单的“Ease Out”动画,内置 Reality Composer。
目前,我的代码如下所示:
struct ARViewContainer: UIViewRepresentable {
func makeUIView(context: Context) -> ARView {
let arView = CustomARView(frame: .zero)
// generate image anchor
let anchor = AnchorEntity(.image(group: "AR Resources", name: "imageAnchor"))
// load 3D model from Experience.rcproject file
let box = try! Experience.loadBox()
// add 3D model to anchor
anchor.addChild(box)
// add anchor to scene
arView.scene.addAnchor(anchor)
return arView
}
func updateUIView(_ uiView: ARView, context: Context) {}
}
解决方法很简单。选择 Reality Composer 的 image anchor
(为其提供相应的 .jpg
或 .png
图像)。然后为您的模型分配一个 Custom Behavior
。作为触发器使用 Scene Start
。然后应用任何所需的操作。
您的代码将非常简单:
struct ARViewContainer: UIViewRepresentable {
func makeUIView(context: Context) -> ARView {
let arView = ARView(frame: .zero)
let scene = try! Experience.loadCylinder()
arView.scene.addAnchor(scene)
return arView
}
func updateUIView(_ uiView: ARView, context: Context) { }
}
动作将自动播放(在图像锚点出现后立即播放)。
在 RealityKit 中我有一个图像锚点。当检测到图像锚点时,我想显示一个对象并播放它的动画。我在 Reality Composer 中创建了一个动画。这是一个简单的“Ease Out”动画,内置 Reality Composer。
目前,我的代码如下所示:
struct ARViewContainer: UIViewRepresentable {
func makeUIView(context: Context) -> ARView {
let arView = CustomARView(frame: .zero)
// generate image anchor
let anchor = AnchorEntity(.image(group: "AR Resources", name: "imageAnchor"))
// load 3D model from Experience.rcproject file
let box = try! Experience.loadBox()
// add 3D model to anchor
anchor.addChild(box)
// add anchor to scene
arView.scene.addAnchor(anchor)
return arView
}
func updateUIView(_ uiView: ARView, context: Context) {}
}
解决方法很简单。选择 Reality Composer 的 image anchor
(为其提供相应的 .jpg
或 .png
图像)。然后为您的模型分配一个 Custom Behavior
。作为触发器使用 Scene Start
。然后应用任何所需的操作。
您的代码将非常简单:
struct ARViewContainer: UIViewRepresentable {
func makeUIView(context: Context) -> ARView {
let arView = ARView(frame: .zero)
let scene = try! Experience.loadCylinder()
arView.scene.addAnchor(scene)
return arView
}
func updateUIView(_ uiView: ARView, context: Context) { }
}
动作将自动播放(在图像锚点出现后立即播放)。