unity 动画 音频播放
采用Unity進行音頻動畫的播放時最常用的技術,在此進行一下簡單講解與應用。
(一)動畫播放(本文采用animation進行驗證,關于animation和animator區別可問度娘,在此不做贅述)
1、播放默認動畫
直接將動畫拖入動畫對象animation組件的animation變量中,然后加入如下代碼既可以播放(此處采用toggle控制動畫的播放)
public Animation ani;
public void OnPlayClicked(bool isOn)
{
if(isOn)
{
ani.Play();
}
}
2、采用AddClip方法
此方法為給animation組件通過addclip方法添加動畫片段,然后就可以依次播放
//addclip方法
public Animation ani;
public AnimationClip[] aniClip;
public void OnPlayClicked(bool isOn)
{
if(isOn)
{
StartCoroutine(Play()) ;
}
}
IEnumerator Play()
{
ani.AddClip(aniClip[0], "1");
ani.Play("1");
yield return new WaitForSeconds(aniClip[0].length+2f);
ani["1"].time = aniClip[0].length;//動畫反向播放
ani["1"].speed=-1;
ani.Play("1");
yield return new WaitForSeconds(aniClip[0].length + 2f);
ani.AddClip(aniClip[1], "2");
ani.Play("2");
}
3、采用animation組件的animations數組添加動畫片段
在animation組件的animations數組中直接添加動畫(此步驟相當于addclip方法),然后根據動畫名稱就可以播放了。
ani.Play(aniName);
關于動畫播放問題再次追加一點關于動畫回到起始位置的問題,動畫播放回到起始位置可用ani.Rewind();方法。采用rewind方法時必須是動畫播放過程中使用,stop()后時無法回到起始位置的。調用rewind后動畫雖然會回到原點,但是會繼續重復播放,所以在此可以先取樣,然后在停止播放。
ani.Play(); ani.Rewind(); ani.Sample(); ani.Stop();
4、直接用動畫名字播放
if (isOn)
{
titleAni["TitleMove"].speed = 2;
bottomAni["BottomMove"].speed = 2;
titleAni.Play();
bottomAni.Play();
}
else
{
titleAni["TitleMove"].speed = -2;
bottomAni["BottomMove"].speed = -2;
titleAni["TitleMove"].time = titleAni.clip.length;
bottomAni["BottomMove"].time = bottomAni.clip.length;
titleAni.Play();
bottomAni.Play();
}
(二)音頻播放
音頻播放與動畫播放類似
1、播放默認音頻。默認播放音頻只需要在audiosource組件中audioclip參數拖入相關音頻,然后通過audiosource.Play()即可播放。
2、通過賦值方法,即通過代碼給audiosource的audioclip賦值,然后播放即可。
public AudioSource audioSource;
public AudioClip audioClip;
// Use this for initialization
void Start () {
audioSource.clip = audioClip;
audioSource.Play();
}
3、采用靜態方法播放
public static void PlayClipAtPoint(AudioClip clip, Vector3 position);
總結
以上是生活随笔為你收集整理的unity 动画 音频播放的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《请出示证件》Papers, Pleas
- 下一篇: 智能卡做身份验证