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

Audio 音频不会在Unity中的实例化对象上播放,audio,unity3d,Audio,Unity3d,我有一个名为gameOverScreen的画布预制,它附带了一个音频剪辑。无论何时调用以下函数,都会对其进行克隆 public static void GameOver() { GameObject gameOverScreen = Instantiate(Resources.Load("gameOverScreen")) as GameObject; gameOverScreen.audio.Play(); } 问题是音频无法播放。我通过在另一个函数中使用audio.Pla

我有一个名为gameOverScreen的画布预制,它附带了一个音频剪辑。无论何时调用以下函数,都会对其进行克隆

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

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

在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);      
    }
}
var myClip : AudioClip;
function Start () {
 AudioSource.PlayClipAtPoint(myClip, transform.position);
}
在Javascript中,您可以使用以下内容:

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);      
    }
}
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);
}
}

当您使用audio.PlayOneShot时,您如何引用音频剪辑?@Agumander audio.PlayOneShotResources.LoadSounds/Death作为音频剪辑;似乎在加载预置时,预置使用的资源可能不会自动加载。如果这是真的,那么这应该扩展到预置使用的图形。这与您观察到的一致吗?@Agumander加载的gui项目很好。只有音频有问题,我不知道为什么。在这个函数中,除了音频不能播放外,所有的东西都能正确执行。GUI项目是否在resources文件夹中?