Version: 2017.4
public void PlayScheduled (double time);

パラメーター

timeAudioSettings.dspTime がサウンドの再生を開始するときに参照する絶対タイムライン上の時間(秒)

説明

絶対タイムライン上から AudioSettings.dspTime が読み取った特定の時間に clip を再生します。

これは音楽プレーヤーで推奨される AudioClips を縫い合わせる方法であり、フレームレートには関係なく、サウンドの再生を準備するのためにオープンしたりバッファリング (ストリーム) するのに多くの時間がかかるメディアから CPU がスパイクを起こさずに取得するようにオーディオシステムに十分な時間を与えます。

using UnityEngine;
using System.Collections;

[RequireComponent(typeof(AudioSource))] public class ExampleClass : MonoBehaviour { public float bpm = 140.0F; public int numBeatsPerSegment = 16; public AudioClip[] clips = new AudioClip[2]; private double nextEventTime; private int flip = 0; private AudioSource[] audioSources = new AudioSource[2]; private bool running = false; void Start() { int i = 0; while (i < 2) { GameObject child = new GameObject("Player"); child.transform.parent = gameObject.transform; audioSources[i] = child.AddComponent<AudioSource>(); i++; } nextEventTime = AudioSettings.dspTime + 2.0F; running = true; } void Update() { if (!running) return; double time = AudioSettings.dspTime; if (time + 1.0F > nextEventTime) { audioSources[flip].clip = clips[flip]; audioSources[flip].PlayScheduled(nextEventTime); Debug.Log("Scheduled source " + flip + " to start at time " + nextEventTime); nextEventTime += 60.0F / bpm * numBeatsPerSegment; flip = 1 - flip; } } }

AudioSource.SetScheduledEndTime の例はクリップの間をポップやクリックすることなくふたつのオーディオクリップを再生する方法を示しています。アプローチはクリップをアタッチされているふたつの AudioSources を持つことと、その AudioSource を使用してそれぞれのクリップをキューすることです。

See Also: SetScheduledStartTime.

Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961