-2

音频剪辑无效。那么如何使用声音元素正确填充数组呢?

请帮我下面的代码:

using UnityEngine; 
using System.Collections; 

public class Audio_RanGen: MonoBehaviour {
    public AudioClip[] sounds;

    // Use this for initialization 
    void Start() {
        sounds=new AudioClip[5];
        // you would need to create/assign for your audio clip here 
    }

    // Update is called once per frame 
    void Update() {
    }

    void OnGUI() {
        if(GUI.Button(new Rect(100, 200, 200, 50), "Random Number Genaration")) {
            audio.clip=sounds[Random.Range(0, 4)];
            print(audio.clip);
            audio.Play();
        }
    }
}
4

2 回答 2

0

You must use Random.Range function. Here is the link to the manual.

http://docs.unity3d.com/Documentation/ScriptReference/Random.Range.html

于 2013-04-09T20:46:49.203 回答
0

在 Unity3D 中,如果您从编辑器中进行分配,则不需要分配公共数组(它是在组件初始化时从 Unity3D 分配的)。所以删除以下行:

sounds = new AudioClip[5];

并从编辑器中分配AudioClips。如果您现在想播放随机音频文件,我建议使用以下行:

audio.clip = sounds[Random.Range(0, sounds.Length * 7) % sounds.Length];

与仅使用数组的初始长度相比,这会产生更好的随机种子,并且每次更新数组数据时都不得更改代码。

如果您不经常使用 Unity3D,我建议您阅读一些教程。尤其是这个

如果您不想AudioClip通过代码创建项目:有几种方法可以做到这一点,使用 google时可以找到最多的方法。但是你需要默认分配声音数组。

于 2013-04-09T22:44:33.497 回答