我如何能够播放两个不同的音频剪辑在团结取决于背后的代码?在我的对象中,我添加了两个音频源,即“Player GunShot”和“outOfAmmo”。
在同一个对象中,我还添加了一个具有以下代码的C#脚本:
public currentBullets = 1;
private AudioSource gunAudio;
private AudioSource outOfAmmo;
void Awake()
{
gunAudio = GetComponent<AudioSource>();
outOfAmmo = GetComponent<AudioSource>();
}
void Update()
{
if (currentBullets == 0)
{
outOfAmmo.Play();
}
else
{
gunAudio.Play();
}
}
因为在Awake
方法中,这段代码会产生任何问题吗?我还没有定义音频源变量必须是。他带哪个线人去玩?
发布于 2015-12-30 02:55:34
尝试这样的方法(只使用一个AudioSource):
public currentBullets = 1;
private AudioSource gunAudio;
public AudioClip gunshot; //set this in ispector with audiofile
public AudioClip outofammo; //set this in ispector with audiofile
void Awake()
{
gunAudio = GetComponent<AudioSource>();
}
void Update()
{
if (currentBullets == 0)
{
gunAudio.clip = outofammo;
}
else
{
gunAudio.clip = gunshot;
}
gunAudio.Play();
}
参考资料:这里
发布于 2015-12-30 02:50:40
将声音文件分配给脚本中的公共变量,然后使用分配给声音剪辑的变量更改音频源的音频剪贴。
关于如何编写脚本:http://answers.unity3d.com/questions/347657/play-audioclip-once-and-switching-clips.html,请看这个问题的答案中给出的代码
发布于 2017-07-04 06:18:46
public AudioSource aud_jump;
public AudioClip clip_jump;
public string SourceNormalPlatJump = " set path in inspecter like "Sounds/jump_11" in resource folder ";
public string SourceDestroyPltJump = "set path in inspecter like "Sounds/jump_11" in resource folder";
Start()
{
aud_jump = GetComponent<AudioSource>();
}
private void OnTriggerEnter2D(Collider2D hitPlatform)
{
if ((hitPlatform.gameObject.tag == "Platform" ) && rigidbody2DPlayer.velocity.y <= 0.2)
{
clip_jump = (AudioClip)Resources.Load(SourceNormalPlatJump);
aud_jump.clip = clip_jump;
aud_jump.Play();
}
// player hits Desroy paltform
if (hitPlatform.gameObject.tag == "DestroyPlatform" && rigidbody2DPlayer.velocity.y <= 1)
{
clip_jump = (AudioClip)Resources.Load(SourceDestroyPltJump);
aud_jump.clip = clip_jump;
aud_jump.Play();
}
}
https://gamedev.stackexchange.com/questions/113917
复制相似问题