[英]Cannot implicitly convert type 'UnityEngine.AudioClip' to 'UnityEngine.AudioSource'
Trying to make random audio play from an array but keep getting this error:尝试从数组中播放随机音频但不断收到此错误:
error CS0029: Cannot implicitly convert type 'UnityEngine.AudioClip' to 'UnityEngine.AudioSource'
This is my code:这是我的代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TonicFunction : MonoBehaviour
{
public AudioSource TonicAudio;
public AudioClip[] audioClipArray;
void Awake()
{
TonicAudio = GetComponent<AudioSource>();
}
void Start()
{
TonicAudio = audioClipArray[Random.Range(0,audioClipArray.Length)];
TonicAudio.PlayOneShot (TonicAudio.clip);
}
}
Beginner at C# so any advice would be appreciated. C# 的初学者,因此我们将不胜感激。 Thanks in advance!
提前致谢!
The problem is the following line:问题是以下行:
TonicAudio = audioClipArray[Random.Range(0,audioClipArray.Length)];
Here you're trying to assign an AudioClip
to something which is an AudioSource
.在这里,您尝试将
AudioClip
分配给AudioSource
。 That won't work.那是行不通的。 What you instead want to do is inform the
AudioSource
which clip to play by assigning clip
and then play it like相反,您想要做的是通过分配
clip
通知AudioSource
要播放哪个剪辑,然后像这样播放
TonicAudio.clip = audioClipArray[Random.Range(0,audioClipArray.Length)];
TonicAudio.Play();
or use PlayOneShot()
instead by using或使用
PlayOneShot()
代替
TonicAudio.PlayOneShot (audioClipArray[Random.Range(0,audioClipArray.Length)]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.