【问题标题】:playing a long audiosource/audioclip播放长音频源/音频剪辑
【发布时间】:2016-07-01 10:36:10
【问题描述】:

我正在尝试播放一个音频剪辑,太大而无法使用 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 附加到脚本所在的游戏对象。

你能帮忙吗?

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    这是完全错误的。删除所有提及“AudioClip”的内容 - 您永远不会在代码中使用它

    (1) 制作一个空的游戏对象(称之为“测试”)。 (2) 在上面放一个 AudioSource - 任何你喜欢的音频。 (3) 在您的脚本中,有一个公共检查器变量来获取测试中的 AudioSource。 (4) 只需播放该音频源。老实说,就是这么简单。假设您可能有 20 首不同的歌曲。 只有 20 个不同的游戏对象,例如“测试”。真的就是这么简单。

    假设您在一个项目中有 500 个音效。您只需拥有 500 个游戏对象(例如示例中的“测试”),每个对象上都有不同的声音。

    (当然,只需要一个空的游戏对象,将它们全部放在“下方”,以保持整洁。)

    注意 - Unity 中的一个很棒的功能是,从资产中选择 100 个音效(或任何音频)并将其拖到场景中:请注意,它“知道”为您将每个音效放在游戏对象上。这是 Unity5 中的一个巨大补充。

    就是这么简单。

    【讨论】:

    • 如何播放音源?
    • @GrowAnimation 对来自 #3 的变量调用 .Play()/.Stop()
    猜你喜欢
    • 1970-01-01
    • 2011-03-03
    • 2018-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-17
    相关资源
    最近更新 更多