zoukankan      html  css  js  c++  java
  • 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);
  • 相关阅读:
    面试题-酷家乐面试准备
    英语学习-第一次申请试译的小透明(未完待续)
    操作系统educative版本-笔记1
    周末日记-第一次相对正规的技术教学
    资料推荐-一个神奇的网站educative.io
    面试题-持续集成
    每天5分钟玩转容器技术-读书笔记-第六章
    每天5分钟玩转容器技术-读书笔记-第四章到第五章
    工作日记-文件柜驱动层开发总结
    DP套题练习1
  • 原文地址:https://www.cnblogs.com/llstart-new0201/p/7294373.html
Copyright © 2011-2022 走看看