各位,我在 Unity 中创建音频源并为其分配剪辑时遇到问题。
我正在流式传输文件,调试器告诉我它已找到该文件并且可以使用以下代码进行播放。
@script RequireComponent(AudioSource)
var www : WWW;
var audioSource: AudioSource = gameObject.AddComponent<AudioSource>();
var myAudioClip: AudioClip;
function Start ()
{
www = new WWW ("file://" + Application.dataPath.Substring (0, Application.dataPath.LastIndexOf ("/")) + "/Assets/intro.wav");
myAudioClip = www.audioClip;
Debug.Log(myAudioClip.isReadyToPlay);
}
但是调试器在我的音频源声明中给出了错误。
Unexpected Token: )
expecting ), found ';'
'; expected, insert a semicolon at the end.
此错误指向该行
var audioSource: AudioSource = gameObject.AddComponent();
最终我的目标是将剪辑分配给音频源并开始录制!
最佳答案
您已经声明需要 AudioSource 组件;
@script RequireComponent(AudioSource)
所以不需要将其添加为组件。我通常不使用 UnityScript,但这是您想要的代码;
@script RequireComponent(AudioSource)
var www : WWW;
var audioSource : AudioSource;
var myAudioClip : AudioClip;
function Start () {
audioSource = GetComponent(AudioSource);
StartCoroutine( LoadAudio( "file://" + Application.dataPath.Substring (0, Application.dataPath.LastIndexOf ("/")) + "/Assets/intro.wav" ) );
}
function LoadAudio( path : String ) {
www = new WWW ( path );
yield www;
myAudioClip = www.audioClip;
Debug.Log(myAudioClip.isReadyToPlay);
}
要使用 WWW 类,您可以使用协程来等待它完成加载您需要的资源。或者您可以继续检查 www.isDone 是否为 true。
关于audio - 在 Unity 中创建音频源并分配剪辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25922411/