You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过RealityKit实现UIButton停止Reality Composer设置的场景音效?

如何通过RealityKit停止Reality Composer中添加的音效?

完全可以实现这个功能,具体步骤如下:

  1. 给Reality Composer中的音效实体命名
    打开你的Reality Composer场景,选中带有音效的实体,在右侧检查器面板设置一个唯一的Name(比如BackgroundSound),确保后续代码能精准定位到该实体。

  2. 在项目中加载场景并获取音效实体
    在ViewController中加载Reality Composer导出的场景资源,通过设置的实体名称找到对应的音效载体。

  3. 创建按钮并实现停止逻辑
    将UIButton添加到界面,给按钮绑定点击事件,在事件处理方法中遍历实体的音频播放器并调用停止方法。

示例代码(Swift)

import UIKit
import RealityKit

class ViewController: UIViewController {
    
    @IBOutlet var arView: ARView!
    private var soundEntity: Entity?

    override func viewDidLoad() {
        super.viewDidLoad()
        
        // 加载Reality Composer场景(替换成你的场景名称)
        guard let scene = try? Experience.loadScene() else { return }
        arView.scene.addAnchor(scene)
        
        // 根据名称获取音效实体
        soundEntity = scene.findEntity(named: "BackgroundSound")
    }

    // 按钮点击事件(需在Storyboard或代码中绑定按钮到该方法)
    @IBAction func stopSoundTapped(_ sender: UIButton) {
        soundEntity?.audioPlayers.forEach { player in
            player.stop()
        }
    }
}

注意事项

  • 如果音效直接附加在场景根节点上,可直接从scene根实体中查找音频播放器。
  • audioPlayers是RealityKit中Entity的属性,包含该实体上所有音频播放实例,调用stop()即可终止播放。

内容的提问来源于stack exchange,提问作者kkk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 22:55:39