我有4个声音文件是我想让玩家在与地面碰撞时发出的着陆噪音,此刻没有声音播放。 C#和编程新手需要一些帮助。
PHAsset
答案 0 :(得分:1)
在这里交配
说明: 1 - 将此附加到任何游戏对象 2 - 将带有AudioSource组件的gameobject放置到mySource 3 - 假设您有3个要使用的音频剪辑,请将“范围扫描”和“我的音频元素”都设置为3 4 - 将3个剪辑添加为元素 5 - 启用调试以获取控制台上的剪辑列表,但它们也会在您玩游戏时显示在编辑器上
提示:这是启用,因此每次启用此对象时,它将运行一个新的范围并分配剪辑,希望它帮我花了大约5分钟,如果这有助于你请考虑关注我的facebook开发组{{3 }}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class randomSound : MonoBehaviour {
public AudioSource mySource;
public int rangeScan;
public AudioClip[] myAudio;
public int toPlay;
public bool debugging;
void OnEnable () {
toPlay = Random.Range(0,rangeScan);
if (debugging) {
foreach (AudioClip value in myAudio) {
print (value);
}
}
mySource.PlayOneShot(myAudio[toPlay], 0.9F);
mySource.Play ();
}
}
答案 1 :(得分:0)
如果您在添加[RequireComponent(typeof(AudioSource))]
行之前已将脚本附加到GameObject,则很可能没有GameObject的Audio Source组件(请检查您的Inspector)。如果是这种情况,您可以:
AudioClip
变量(OP不是),请记住再次将声音资源拖放到脚本的公共变量中(通过脚本重新附加清除它)。 / LI>
答案 2 :(得分:-2)
Audio.PlayOneShot(AudioClip[UnityEngine.Random.Range(0,AudioClip.Length)], 0.8f);