音频不会在Unity中的实例化对象上播放

时间:2014-12-03 15:57:09

标签: audio unity3d

我有一个名为gameOverScreen的Canvas预制件,它附有一个音频剪辑。只要调用以下函数,就会克隆它。

public static void GameOver()
{
    GameObject gameOverScreen = Instantiate(Resources.Load("gameOverScreen")) as GameObject;
    gameOverScreen.audio.Play();

}

问题是音频无法播放。我通过在另一个函数中使用audio.PlayOneShot()来解决它,但是有一些原因导致它在这种情况下不起作用吗?

1 个答案:

答案 0 :(得分:0)

在c#中你可以使用它:

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class SoundController : MonoBehaviour {
    public AudioClip clip;  

    void Start () {
        AudioSource.PlayClipAtPoint(clip, Vector3.zero, 1.0f);      
    }
}

在Javascript中你可以使用它:

var myClip : AudioClip;
function Start () {
 AudioSource.PlayClipAtPoint(myClip, transform.position);
}

但是如果你想在实例化中播放声音:

#pragma strict
var prefabBullet : Transform;
var forwardForce = 1000;
var myClip : AudioClip;
function Update()
{
if (Input.GetButtonDown("Fire2"))
{
var instanceBullet = Instantiate (prefabBullet, transform.position, 
Quaternion.identity);
instanceBullet.GetComponent.<Rigidbody>().AddForce(transform.forward * 
forwardForce);
AudioSource.PlayClipAtPoint(myClip, transform.position);
}
}