c# - 更改场景时访问 AudioSource 对象
问题描述
我需要更新AudioSource.volume
MusicScript 对象的。关于Awake
MusicScript 类的方法,我有:
void Awake()
{
GameObject[] objs = GameObject.FindGameObjectsWithTag("music");
if (objs.Length > 1)
{
Destroy(this.gameObject);
}
DontDestroyOnLoad(this.gameObject);
}
但是在切换场景时,musicScript.audioSource
被破坏了。我怎样才能保留musicScript.audioSource
对象?
谢谢。
解决方案
我在这里没有看到完整的 audioSource 参考。AudioSource 对象是否附加到带有“音乐”标签的游戏对象上?“musicScript”实例是否也附加到带有“音乐”标签的游戏对象上?
我会这样做的方法是使用单例方法。只需确保要在场景之间保留的游戏对象同时附加了 musicScript 和 AudioSource 组件。然后将此代码添加到您的音乐脚本中:
private void Awake()
{
// if the singleton hasn't been initialized yet
if (instance != null && instance != this)
{
Destroy(this.gameObject);
return;//Avoid doing anything else
}
instance = this;
DontDestroyOnLoad(this.gameObject);
}
其中“instance”应该是一个musicManager 类型的变量。
来源:https ://answers.unity.com/questions/891380/unity-c-singleton.html
推荐阅读
- css - Vuetify:使 v-image 适合屏幕大小
- vega-lite - 使用 Vega Lite 显示已经聚合的数据
- regex - 使用正则表达式删除单词中的空格,包括与号
- excel - 检查列表中的每个数字是否在多个范围之间
- arrays - 使用数组比较用户提供的值
- javascript - 正则表达式正则表达式用于 MMYY 格式的当前年份(例如)19 和未来年份的 javascript
- dynamics-crm - 在 CRM 功能区工作台中,如何根据相关实体中的字段隐藏机会表单上的已关闭按钮?
- react-native - 为什么我在尝试运行 react-native-gifted-chat 项目时收到此错误(无法解析“expo-av”)?
- php - owl-carousel 自动滑块不工作
- r - 如何创建具有两个新类别的新列?