unity 动画 音频播放
2024-08-29 04:38:37
采用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[], "");
ani.Play("");
yield return new WaitForSeconds(aniClip[].length+2f);
ani[""].time = aniClip[].length;//动画反向播放
ani[""].speed=-;
ani.Play("");
yield return new WaitForSeconds(aniClip[].length + 2f);
ani.AddClip(aniClip[], "");
ani.Play("");
}
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 = ;
bottomAni["BottomMove"].speed = ;
titleAni.Play();
bottomAni.Play();
}
else
{
titleAni["TitleMove"].speed = -;
bottomAni["BottomMove"].speed = -;
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);
最新文章
- Win8下Visual Studio编译报“无法注册程序集***dll- 拒绝访问。请确保您正在以管理员身份运行应用程序。对注册表项”***“的访问被拒绝。”问题修正(转)
- 微信nickname乱码及mysql编码格式设置(utf8mb4)
- linux命令(1):ls命令
- java field, property,variable及getField和getDeclaredField的区别
- android小游戏 飞机躲子弹
- Bowtie2
- Android控件之ToggleButton(多状态按钮)
- javascript触摸事件touch使用
- hibernate映射文件基础
- GPS(1)核心API及3种列出LocationProvider的方法
- C语言计算程序运行时间
- MATLAB LU函数
- 对面向对象程序设计(OOP)的认识
- Android之Camera控制拍照
- hdu 1540 Tunnel Warfare(线段树区间统计)
- IOS开发-Swift新语言初见
- JavaScript中数组Array方法详解
- CSS3浏览器兼容
- FastReport编程方式给Picture控件赋值
- JavaScript splice() 方法和JavaScript split() 方法