当我的球对象击中该脚本所附加的静态对象时,我想随机播放一定数量的声音中的 1 个。一旦球击中物体,物体就会被摧毁,从而切断声音,我不知道如何使用 Random.Range。我也不知道如何制作一个[序列化字段]来容纳这些多种声音。我不知道我会如何去做这件事,因为我是新手。public class ObjectDestroyer : MonoBehaviour{ [SerializeField] AudioClip[] breakColisionSounds; private void OnCollisionEnter2D(Collision2D collision) { AudioSource.PlayClipAtPoint(breakColisionSounds, Camera.main.transform.position); Destroy(gameObject, .03f); }}我希望球击中这个物体,该物体在其序列化场内播放随机声音,同时它被摧毁。
1 回答
慕桂英546537
TA贡献1848条经验 获得超10个赞
您必须在 Unity 编辑器中序列化您的AudioClips 和 the 。AudioSource
然后,您将从数组中随机选择一个剪辑,将其分配给音频源并播放。
我还建议您将功能分解为更小的组件。
void OnCollisionEnter2D(Collision2D collision)
{
GetComponent<AudioCollection>().PlayRandom();
}
public class AudioCollection : MonoBehaviour
{
[SerializeField] AudioClip[] clips;
[SerializeField] AudioSource source;
void PlayRandom()
{
source.clip = clips[Random.Range(0, clips.Length)];
source.Play();
}
}
- 1 回答
- 0 关注
- 126 浏览
添加回答
举报
0/150
提交
取消