我正在尝试播放音频剪辑,太大而无法使用PlayClipAtPoint(),我需要稍后停止播放。
public class GridPower: MonoBehaviour {
private AudioSource audiosource;
public AudioClip poweroff;
int k;
void Start ()
{
audiosource= GetComponent<AudioSource>();
k = 1;
}
void Update ()
{
if (PlayLevel1.percentageLoadProductionint < 100 && StateManager.activeState is PlayState && Time.timeSinceLevelLoad > 1 && k== 1)
{
audiosource.clip = poweroff;
audiosource.Play ();
k = 2;
}
}
}
我遵循了一些文档但是团结告诉我没有AudioSource附加到脚本所在的游戏对象。
你能帮忙吗?
答案 0 :(得分:3)
这是完全错误的。删除&#34; AudioClip&#34;的任何和所有提及 - 您永远不会在代码中使用。
(1)制作一个空的游戏对象(称之为&#34; test&#34;)。 (2)放一个AudioSource - 无论你喜欢什么音频。 (3)在你的脚本中,有一个公共检查器变量来接受测试时的AudioSource。 (4)只播放该音频源。说实话,它就是那么简单。说你有20首不同的歌。 只有20种不同的游戏对象,例如&#34; test&#34; 。实际上就是这么简单。
假设您在项目中有500个声音效果。你只需要500个游戏对象(例如&#34;测试&#34;在示例中)每个对象都有不同的声音。
(当然,只需要一个空的游戏对象,将它们全部放在&#34;&#34;下,以保持整洁。)
注意 - Unity中的一个很棒的功能是,从资源中选择并拖动100个声音效果(或任何音频)到场景中:注意它&#34;知道&#34;把每个人都放在游戏对象上。这在Unity5中是一个巨大的补充。
就这么简单。