Unity - 简单音频视频
作者:mmseoamin日期:2024-01-25

“Test_04”

音频

Unity - 简单音频视频,音频结构举例,第1张

使用AudioTest脚本控制Audio Source组件,在脚本中声明"music"和"se"之后,在unity中需要将音频资源拖拽到对应位置。

AudioTest

public class AudioTest : MonoBehaviour
{
    // 声明音频
    // AudioClip
    public AudioClip music;
    public AudioClip se;
    
    // 声明播放器组件
    private AudioSource player;
    void Start()
    {
        // 获取播放器组件
        player = GetComponent();
        //      赋值音乐片段
        player.clip = music;
        //      设置循环播放
        player.loop = true;
        //      设置音量
        player.volume = 0.5f;
        //      播放
        player.Play();
    }
    
    void Update()
    {
        // 按空格键来控制声音的播放和暂停
        if (Input.GetKeyDown(KeyCode.Space))
        {
            // 判断是否正在播放
            if (player.isPlaying)
            {
                // 停止播放
                //player.Stop();
                // 暂停播放
                player.Pause();
            }
            else
            {
                // 开始播放
                //player.Play();
                // 继续播放
                player.UnPause();
            }
        }
        
        // 点击鼠标左键播放特效
        if (Input.GetMouseButtonDown(0))
        {
            // 播放特效(不需要再控制暂停/播放,直接播放完)
            player.PlayOneShot(se);
        }
    }
}

视频

平面对象播放

Unity - 简单音频视频,平面对象播放,第2张

  • 在 ‘层级’ 中创建平面对象,在 ‘项目’ 中创建渲染器纹理;
  • 在平面对象中添加 ‘Video Player’ 组件,渲染模式改为渲染器纹理;
  • 将视频和渲染器纹理拖拽到组件中对应位置,并将渲染器纹理拖拽到场景中新建的平面上;
  • 新建脚本 ‘VideoTest’ 脚本控制视频播放。
    UI播放

    Unity - 简单音频视频,新建UI,第3张

    • ‘层级’ 中创建UI原始图像。

      Unity - 简单音频视频,UI结构示例,第4张

    • 将渲染器纹理和视频文件拖拽到 “Raw Image” 组件 和 "Video Player"组件中的对应位置;
    • 同样可以使用脚本控制视频播放。

      VideoTest

      public class VideoTest : MonoBehaviour
      {
          // 声明视频组件
          private VideoPlayer player;
          void Start()
          {
              // 获取视频播放组件
              player = GetComponent();
              // 唤醒程序时自动播放
              player.playOnAwake = true;
              // 循环播放
              player.isLooping = true;
              // 设置播放速度(倍速)
              player.playbackSpeed = 1.0f;
              // 控制音量(音频输出模式为”直接“时)
              player.SetDirectAudioVolume(0, 0.5f);
              // 直接播放视频
              player.Play();
          }
          
          void Update()
          {
              // 按空格键来控制视频的播放和暂停
              if (Input.GetKeyDown(KeyCode.Space))
              {
                  // 判断是否正在播放
                  if (player.isPlaying)
                  {
                      // 停止播放
                      //player.Stop();
                      // 暂停播放
                      player.Pause();
                  }
                  else
                  {
                      // 开始/继续播放
                      player.Play();
                  }
              } 
          }
      }